/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { html, ifDefined } from "../vendor/lit.all.mjs"; import { MozBaseInputElement } from "../lit-utils.mjs"; /** * A text input custom element. * * @tagname moz-input-text * @property {string} label - The text of the label element * @property {string} name - The name of the input control * @property {string} value - The value of the input control * @property {boolean} disabled - The disabled state of the input control * @property {boolean} readonly - The readonly state of the input control * @property {string} iconSrc - The src for an optional icon * @property {string} description - The text for the description element that helps describe the input control * @property {string} supportPage - Name of the SUMO support page to link to. * @property {string} placeholder - Text to display when the input has no value. */ export default class MozInputText extends MozBaseInputElement { static properties = { placeholder: { type: String, fluent: true }, readonly: { type: Boolean, reflect: true }, }; static inputLayout = "block"; constructor() { super(); this.value = ""; this.readonly = false; } inputStylesTemplate() { return html``; } handleInput(e) { this.value = e.target.value; } inputTemplate(options = {}) { let { type = "text", classes, styles, inputValue } = options; return html` `; } } customElements.define("moz-input-text", MozInputText);