import { _ as i, n as l } from "./class-map-CwiboTfb.mjs"; import { i as a } from "./element-internals-3IY9gE4L.mjs"; /** * @license * Copyright 2023 Google LLC * SPDX-License-Identifier: Apache-2.0 */ const o = Symbol("getFormValue"), n = Symbol("getFormState"); function h(u) { class r extends u { get form() { return this[a].form; } get labels() { return this[a].labels; } // Use @property for the `name` and `disabled` properties to add them to the // `observedAttributes` array and trigger `attributeChangedCallback()`. // // We don't use Lit's default getter/setter (`noAccessor: true`) because // the attributes need to be updated synchronously to work with synchronous // form APIs, and Lit updates attributes async by default. get name() { return this.getAttribute("name") ?? ""; } set name(t) { this.setAttribute("name", t); } get disabled() { return this.hasAttribute("disabled"); } set disabled(t) { this.toggleAttribute("disabled", t); } attributeChangedCallback(t, e, s) { if (t === "name" || t === "disabled") { const d = t === "disabled" ? e !== null : e; this.requestUpdate(t, d); return; } super.attributeChangedCallback(t, e, s); } requestUpdate(t, e, s) { super.requestUpdate(t, e, s), this[a].setFormValue(this[o](), this[n]()); } [o]() { throw new Error("Implement [getFormValue]"); } [n]() { return this[o](); } formDisabledCallback(t) { this.disabled = t; } } return r.formAssociated = !0, i([ l({ noAccessor: !0 }) ], r.prototype, "name", null), i([ l({ type: Boolean, noAccessor: !0 }) ], r.prototype, "disabled", null), r; } export { n as a, o as g, h as m };