From 2b4ebcb5701ed1f3b1d09c48a445e2f82f8a6fae Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 16 Feb 2026 00:31:00 +0000 Subject: [PATCH] chore: remove accidental a2ui bundle artifacts --- src/canvas-host/a2ui/.bundle.hash | 1 - src/canvas-host/a2ui/a2ui.bundle.js | 19896 -------------------------- 2 files changed, 19897 deletions(-) delete mode 100644 src/canvas-host/a2ui/.bundle.hash delete mode 100644 src/canvas-host/a2ui/a2ui.bundle.js diff --git a/src/canvas-host/a2ui/.bundle.hash b/src/canvas-host/a2ui/.bundle.hash deleted file mode 100644 index e89006bbb3..0000000000 --- a/src/canvas-host/a2ui/.bundle.hash +++ /dev/null @@ -1 +0,0 @@ -07a29aa6e54285e1a54e695e91653b2f62f637e62b173813d6d588db2485a37a diff --git a/src/canvas-host/a2ui/a2ui.bundle.js b/src/canvas-host/a2ui/a2ui.bundle.js deleted file mode 100644 index 8e828c7a05..0000000000 --- a/src/canvas-host/a2ui/a2ui.bundle.js +++ /dev/null @@ -1,19896 +0,0 @@ -var __defProp$1 = Object.defineProperty; -var __exportAll = (all, no_symbols) => { - let target = {}; - for (var name in all) { - __defProp$1(target, name, { - get: all[name], - enumerable: true, - }); - } - if (!no_symbols) { - __defProp$1(target, Symbol.toStringTag, { value: "Module" }); - } - return target; -}; - -/** - * @license - * Copyright 2019 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const t$6 = globalThis, - e$13 = - t$6.ShadowRoot && - (void 0 === t$6.ShadyCSS || t$6.ShadyCSS.nativeShadow) && - "adoptedStyleSheets" in Document.prototype && - "replace" in CSSStyleSheet.prototype, - s$8 = Symbol(), - o$14 = new WeakMap(); -var n$12 = class { - constructor(t, e, o) { - if (((this._$cssResult$ = !0), o !== s$8)) - throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead."); - ((this.cssText = t), (this.t = e)); - } - get styleSheet() { - let t = this.o; - const s = this.t; - if (e$13 && void 0 === t) { - const e = void 0 !== s && 1 === s.length; - (e && (t = o$14.get(s)), - void 0 === t && - ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && o$14.set(s, t))); - } - return t; - } - toString() { - return this.cssText; - } -}; -const r$11 = (t) => new n$12("string" == typeof t ? t : t + "", void 0, s$8), - i$9 = (t, ...e) => { - const o = - 1 === t.length - ? t[0] - : e.reduce( - (e, s, o) => - e + - ((t) => { - if (!0 === t._$cssResult$) return t.cssText; - if ("number" == typeof t) return t; - throw Error( - "Value passed to 'css' function must be a 'css' function result: " + - t + - ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.", - ); - })(s) + - t[o + 1], - t[0], - ); - return new n$12(o, t, s$8); - }, - S$1 = (s, o) => { - if (e$13) s.adoptedStyleSheets = o.map((t) => (t instanceof CSSStyleSheet ? t : t.styleSheet)); - else - for (const e of o) { - const o = document.createElement("style"), - n = t$6.litNonce; - (void 0 !== n && o.setAttribute("nonce", n), (o.textContent = e.cssText), s.appendChild(o)); - } - }, - c$6 = e$13 - ? (t) => t - : (t) => - t instanceof CSSStyleSheet - ? ((t) => { - let e = ""; - for (const s of t.cssRules) e += s.cssText; - return r$11(e); - })(t) - : t; - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const { - is: i$8, - defineProperty: e$12, - getOwnPropertyDescriptor: h$6, - getOwnPropertyNames: r$10, - getOwnPropertySymbols: o$13, - getPrototypeOf: n$11, - } = Object, - a$1 = globalThis, - c$5 = a$1.trustedTypes, - l$4 = c$5 ? c$5.emptyScript : "", - p$2 = a$1.reactiveElementPolyfillSupport, - d$2 = (t, s) => t, - u$3 = { - toAttribute(t, s) { - switch (s) { - case Boolean: - t = t ? l$4 : null; - break; - case Object: - case Array: - t = null == t ? t : JSON.stringify(t); - } - return t; - }, - fromAttribute(t, s) { - let i = t; - switch (s) { - case Boolean: - i = null !== t; - break; - case Number: - i = null === t ? null : Number(t); - break; - case Object: - case Array: - try { - i = JSON.parse(t); - } catch (t) { - i = null; - } - } - return i; - }, - }, - f$3 = (t, s) => !i$8(t, s), - b$1 = { - attribute: !0, - type: String, - converter: u$3, - reflect: !1, - useDefault: !1, - hasChanged: f$3, - }; -((Symbol.metadata ??= Symbol("metadata")), (a$1.litPropertyMetadata ??= new WeakMap())); -var y$1 = class extends HTMLElement { - static addInitializer(t) { - (this._$Ei(), (this.l ??= []).push(t)); - } - static get observedAttributes() { - return (this.finalize(), this._$Eh && [...this._$Eh.keys()]); - } - static createProperty(t, s = b$1) { - if ( - (s.state && (s.attribute = !1), - this._$Ei(), - this.prototype.hasOwnProperty(t) && ((s = Object.create(s)).wrapped = !0), - this.elementProperties.set(t, s), - !s.noAccessor) - ) { - const i = Symbol(), - h = this.getPropertyDescriptor(t, i, s); - void 0 !== h && e$12(this.prototype, t, h); - } - } - static getPropertyDescriptor(t, s, i) { - const { get: e, set: r } = h$6(this.prototype, t) ?? { - get() { - return this[s]; - }, - set(t) { - this[s] = t; - }, - }; - return { - get: e, - set(s) { - const h = e?.call(this); - (r?.call(this, s), this.requestUpdate(t, h, i)); - }, - configurable: !0, - enumerable: !0, - }; - } - static getPropertyOptions(t) { - return this.elementProperties.get(t) ?? b$1; - } - static _$Ei() { - if (this.hasOwnProperty(d$2("elementProperties"))) return; - const t = n$11(this); - (t.finalize(), - void 0 !== t.l && (this.l = [...t.l]), - (this.elementProperties = new Map(t.elementProperties))); - } - static finalize() { - if (this.hasOwnProperty(d$2("finalized"))) return; - if (((this.finalized = !0), this._$Ei(), this.hasOwnProperty(d$2("properties")))) { - const t = this.properties, - s = [...r$10(t), ...o$13(t)]; - for (const i of s) this.createProperty(i, t[i]); - } - const t = this[Symbol.metadata]; - if (null !== t) { - const s = litPropertyMetadata.get(t); - if (void 0 !== s) for (const [t, i] of s) this.elementProperties.set(t, i); - } - this._$Eh = new Map(); - for (const [t, s] of this.elementProperties) { - const i = this._$Eu(t, s); - void 0 !== i && this._$Eh.set(i, t); - } - this.elementStyles = this.finalizeStyles(this.styles); - } - static finalizeStyles(s) { - const i = []; - if (Array.isArray(s)) { - const e = new Set(s.flat(1 / 0).reverse()); - for (const s of e) i.unshift(c$6(s)); - } else void 0 !== s && i.push(c$6(s)); - return i; - } - static _$Eu(t, s) { - const i = s.attribute; - return !1 === i - ? void 0 - : "string" == typeof i - ? i - : "string" == typeof t - ? t.toLowerCase() - : void 0; - } - constructor() { - (super(), - (this._$Ep = void 0), - (this.isUpdatePending = !1), - (this.hasUpdated = !1), - (this._$Em = null), - this._$Ev()); - } - _$Ev() { - ((this._$ES = new Promise((t) => (this.enableUpdating = t))), - (this._$AL = new Map()), - this._$E_(), - this.requestUpdate(), - this.constructor.l?.forEach((t) => t(this))); - } - addController(t) { - ((this._$EO ??= new Set()).add(t), - void 0 !== this.renderRoot && this.isConnected && t.hostConnected?.()); - } - removeController(t) { - this._$EO?.delete(t); - } - _$E_() { - const t = new Map(), - s = this.constructor.elementProperties; - for (const i of s.keys()) this.hasOwnProperty(i) && (t.set(i, this[i]), delete this[i]); - t.size > 0 && (this._$Ep = t); - } - createRenderRoot() { - const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions); - return (S$1(t, this.constructor.elementStyles), t); - } - connectedCallback() { - ((this.renderRoot ??= this.createRenderRoot()), - this.enableUpdating(!0), - this._$EO?.forEach((t) => t.hostConnected?.())); - } - enableUpdating(t) {} - disconnectedCallback() { - this._$EO?.forEach((t) => t.hostDisconnected?.()); - } - attributeChangedCallback(t, s, i) { - this._$AK(t, i); - } - _$ET(t, s) { - const i = this.constructor.elementProperties.get(t), - e = this.constructor._$Eu(t, i); - if (void 0 !== e && !0 === i.reflect) { - const h = (void 0 !== i.converter?.toAttribute ? i.converter : u$3).toAttribute(s, i.type); - ((this._$Em = t), - null == h ? this.removeAttribute(e) : this.setAttribute(e, h), - (this._$Em = null)); - } - } - _$AK(t, s) { - const i = this.constructor, - e = i._$Eh.get(t); - if (void 0 !== e && this._$Em !== e) { - const t = i.getPropertyOptions(e), - h = - "function" == typeof t.converter - ? { fromAttribute: t.converter } - : void 0 !== t.converter?.fromAttribute - ? t.converter - : u$3; - this._$Em = e; - const r = h.fromAttribute(s, t.type); - ((this[e] = r ?? this._$Ej?.get(e) ?? r), (this._$Em = null)); - } - } - requestUpdate(t, s, i, e = !1, h) { - if (void 0 !== t) { - const r = this.constructor; - if ( - (!1 === e && (h = this[t]), - (i ??= r.getPropertyOptions(t)), - !( - (i.hasChanged ?? f$3)(h, s) || - (i.useDefault && i.reflect && h === this._$Ej?.get(t) && !this.hasAttribute(r._$Eu(t, i))) - )) - ) - return; - this.C(t, s, i); - } - !1 === this.isUpdatePending && (this._$ES = this._$EP()); - } - C(t, s, { useDefault: i, reflect: e, wrapped: h }, r) { - (i && - !(this._$Ej ??= new Map()).has(t) && - (this._$Ej.set(t, r ?? s ?? this[t]), !0 !== h || void 0 !== r)) || - (this._$AL.has(t) || (this.hasUpdated || i || (s = void 0), this._$AL.set(t, s)), - !0 === e && this._$Em !== t && (this._$Eq ??= new Set()).add(t)); - } - async _$EP() { - this.isUpdatePending = !0; - try { - await this._$ES; - } catch (t) { - Promise.reject(t); - } - const t = this.scheduleUpdate(); - return (null != t && (await t), !this.isUpdatePending); - } - scheduleUpdate() { - return this.performUpdate(); - } - performUpdate() { - if (!this.isUpdatePending) return; - if (!this.hasUpdated) { - if (((this.renderRoot ??= this.createRenderRoot()), this._$Ep)) { - for (const [t, s] of this._$Ep) this[t] = s; - this._$Ep = void 0; - } - const t = this.constructor.elementProperties; - if (t.size > 0) - for (const [s, i] of t) { - const { wrapped: t } = i, - e = this[s]; - !0 !== t || this._$AL.has(s) || void 0 === e || this.C(s, void 0, i, e); - } - } - let t = !1; - const s = this._$AL; - try { - ((t = this.shouldUpdate(s)), - t - ? (this.willUpdate(s), this._$EO?.forEach((t) => t.hostUpdate?.()), this.update(s)) - : this._$EM()); - } catch (s) { - throw ((t = !1), this._$EM(), s); - } - t && this._$AE(s); - } - willUpdate(t) {} - _$AE(t) { - (this._$EO?.forEach((t) => t.hostUpdated?.()), - this.hasUpdated || ((this.hasUpdated = !0), this.firstUpdated(t)), - this.updated(t)); - } - _$EM() { - ((this._$AL = new Map()), (this.isUpdatePending = !1)); - } - get updateComplete() { - return this.getUpdateComplete(); - } - getUpdateComplete() { - return this._$ES; - } - shouldUpdate(t) { - return !0; - } - update(t) { - ((this._$Eq &&= this._$Eq.forEach((t) => this._$ET(t, this[t]))), this._$EM()); - } - updated(t) {} - firstUpdated(t) {} -}; -((y$1.elementStyles = []), - (y$1.shadowRootOptions = { mode: "open" }), - (y$1[d$2("elementProperties")] = new Map()), - (y$1[d$2("finalized")] = new Map()), - p$2?.({ ReactiveElement: y$1 }), - (a$1.reactiveElementVersions ??= []).push("2.1.2")); - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const t$5 = globalThis, - i$7 = (t) => t, - s$7 = t$5.trustedTypes, - e$11 = s$7 ? s$7.createPolicy("lit-html", { createHTML: (t) => t }) : void 0, - h$5 = "$lit$", - o$12 = `lit$${Math.random().toFixed(9).slice(2)}$`, - n$10 = "?" + o$12, - r$9 = `<${n$10}>`, - l$3 = document, - c$4 = () => l$3.createComment(""), - a = (t) => null === t || ("object" != typeof t && "function" != typeof t), - u$2 = Array.isArray, - d$1 = (t) => u$2(t) || "function" == typeof t?.[Symbol.iterator], - f$2 = "[ \n\f\r]", - v$1 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, - _ = /-->/g, - m$2 = />/g, - p$1 = RegExp(`>|${f$2}(?:([^\\s"'>=/]+)(${f$2}*=${f$2}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), - g = /'/g, - $ = /"/g, - y = /^(?:script|style|textarea|title)$/i, - x = - (t) => - (i, ...s) => ({ - _$litType$: t, - strings: i, - values: s, - }), - b = x(1), - w = x(2), - T = x(3), - E = Symbol.for("lit-noChange"), - A = Symbol.for("lit-nothing"), - C = new WeakMap(), - P = l$3.createTreeWalker(l$3, 129); -function V(t, i) { - if (!u$2(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array"); - return void 0 !== e$11 ? e$11.createHTML(i) : i; -} -const N = (t, i) => { - const s = t.length - 1, - e = []; - let n, - l = 2 === i ? "" : 3 === i ? "" : "", - c = v$1; - for (let i = 0; i < s; i++) { - const s = t[i]; - let a, - u, - d = -1, - f = 0; - for (; f < s.length && ((c.lastIndex = f), (u = c.exec(s)), null !== u); ) - ((f = c.lastIndex), - c === v$1 - ? "!--" === u[1] - ? (c = _) - : void 0 !== u[1] - ? (c = m$2) - : void 0 !== u[2] - ? (y.test(u[2]) && (n = RegExp("" === u[0] - ? ((c = n ?? v$1), (d = -1)) - : void 0 === u[1] - ? (d = -2) - : ((d = c.lastIndex - u[2].length), - (a = u[1]), - (c = void 0 === u[3] ? p$1 : '"' === u[3] ? $ : g)) - : c === $ || c === g - ? (c = p$1) - : c === _ || c === m$2 - ? (c = v$1) - : ((c = p$1), (n = void 0))); - const x = c === p$1 && t[i + 1].startsWith("/>") ? " " : ""; - l += - c === v$1 - ? s + r$9 - : d >= 0 - ? (e.push(a), s.slice(0, d) + h$5 + s.slice(d) + o$12 + x) - : s + o$12 + (-2 === d ? i : x); - } - return [V(t, l + (t[s] || "") + (2 === i ? "" : 3 === i ? "" : "")), e]; -}; -var S = class S { - constructor({ strings: t, _$litType$: i }, e) { - let r; - this.parts = []; - let l = 0, - a = 0; - const u = t.length - 1, - d = this.parts, - [f, v] = N(t, i); - if ( - ((this.el = S.createElement(f, e)), (P.currentNode = this.el.content), 2 === i || 3 === i) - ) { - const t = this.el.content.firstChild; - t.replaceWith(...t.childNodes); - } - for (; null !== (r = P.nextNode()) && d.length < u; ) { - if (1 === r.nodeType) { - if (r.hasAttributes()) - for (const t of r.getAttributeNames()) - if (t.endsWith(h$5)) { - const i = v[a++], - s = r.getAttribute(t).split(o$12), - e = /([.?@])?(.*)/.exec(i); - (d.push({ - type: 1, - index: l, - name: e[2], - strings: s, - ctor: "." === e[1] ? I : "?" === e[1] ? L : "@" === e[1] ? z : H, - }), - r.removeAttribute(t)); - } else - t.startsWith(o$12) && - (d.push({ - type: 6, - index: l, - }), - r.removeAttribute(t)); - if (y.test(r.tagName)) { - const t = r.textContent.split(o$12), - i = t.length - 1; - if (i > 0) { - r.textContent = s$7 ? s$7.emptyScript : ""; - for (let s = 0; s < i; s++) - (r.append(t[s], c$4()), - P.nextNode(), - d.push({ - type: 2, - index: ++l, - })); - r.append(t[i], c$4()); - } - } - } else if (8 === r.nodeType) - if (r.data === n$10) - d.push({ - type: 2, - index: l, - }); - else { - let t = -1; - for (; -1 !== (t = r.data.indexOf(o$12, t + 1)); ) - (d.push({ - type: 7, - index: l, - }), - (t += o$12.length - 1)); - } - l++; - } - } - static createElement(t, i) { - const s = l$3.createElement("template"); - return ((s.innerHTML = t), s); - } -}; -function M$1(t, i, s = t, e) { - if (i === E) return i; - let h = void 0 !== e ? s._$Co?.[e] : s._$Cl; - const o = a(i) ? void 0 : i._$litDirective$; - return ( - h?.constructor !== o && - (h?._$AO?.(!1), - void 0 === o ? (h = void 0) : ((h = new o(t)), h._$AT(t, s, e)), - void 0 !== e ? ((s._$Co ??= [])[e] = h) : (s._$Cl = h)), - void 0 !== h && (i = M$1(t, h._$AS(t, i.values), h, e)), - i - ); -} -var R = class { - constructor(t, i) { - ((this._$AV = []), (this._$AN = void 0), (this._$AD = t), (this._$AM = i)); - } - get parentNode() { - return this._$AM.parentNode; - } - get _$AU() { - return this._$AM._$AU; - } - u(t) { - const { - el: { content: i }, - parts: s, - } = this._$AD, - e = (t?.creationScope ?? l$3).importNode(i, !0); - P.currentNode = e; - let h = P.nextNode(), - o = 0, - n = 0, - r = s[0]; - for (; void 0 !== r; ) { - if (o === r.index) { - let i; - (2 === r.type - ? (i = new k(h, h.nextSibling, this, t)) - : 1 === r.type - ? (i = new r.ctor(h, r.name, r.strings, this, t)) - : 6 === r.type && (i = new Z(h, this, t)), - this._$AV.push(i), - (r = s[++n])); - } - o !== r?.index && ((h = P.nextNode()), o++); - } - return ((P.currentNode = l$3), e); - } - p(t) { - let i = 0; - for (const s of this._$AV) - (void 0 !== s && - (void 0 !== s.strings ? (s._$AI(t, s, i), (i += s.strings.length - 2)) : s._$AI(t[i])), - i++); - } -}; -var k = class k { - get _$AU() { - return this._$AM?._$AU ?? this._$Cv; - } - constructor(t, i, s, e) { - ((this.type = 2), - (this._$AH = A), - (this._$AN = void 0), - (this._$AA = t), - (this._$AB = i), - (this._$AM = s), - (this.options = e), - (this._$Cv = e?.isConnected ?? !0)); - } - get parentNode() { - let t = this._$AA.parentNode; - const i = this._$AM; - return (void 0 !== i && 11 === t?.nodeType && (t = i.parentNode), t); - } - get startNode() { - return this._$AA; - } - get endNode() { - return this._$AB; - } - _$AI(t, i = this) { - ((t = M$1(this, t, i)), - a(t) - ? t === A || null == t || "" === t - ? (this._$AH !== A && this._$AR(), (this._$AH = A)) - : t !== this._$AH && t !== E && this._(t) - : void 0 !== t._$litType$ - ? this.$(t) - : void 0 !== t.nodeType - ? this.T(t) - : d$1(t) - ? this.k(t) - : this._(t)); - } - O(t) { - return this._$AA.parentNode.insertBefore(t, this._$AB); - } - T(t) { - this._$AH !== t && (this._$AR(), (this._$AH = this.O(t))); - } - _(t) { - (this._$AH !== A && a(this._$AH) - ? (this._$AA.nextSibling.data = t) - : this.T(l$3.createTextNode(t)), - (this._$AH = t)); - } - $(t) { - const { values: i, _$litType$: s } = t, - e = - "number" == typeof s - ? this._$AC(t) - : (void 0 === s.el && (s.el = S.createElement(V(s.h, s.h[0]), this.options)), s); - if (this._$AH?._$AD === e) this._$AH.p(i); - else { - const t = new R(e, this), - s = t.u(this.options); - (t.p(i), this.T(s), (this._$AH = t)); - } - } - _$AC(t) { - let i = C.get(t.strings); - return (void 0 === i && C.set(t.strings, (i = new S(t))), i); - } - k(t) { - u$2(this._$AH) || ((this._$AH = []), this._$AR()); - const i = this._$AH; - let s, - e = 0; - for (const h of t) - (e === i.length - ? i.push((s = new k(this.O(c$4()), this.O(c$4()), this, this.options))) - : (s = i[e]), - s._$AI(h), - e++); - e < i.length && (this._$AR(s && s._$AB.nextSibling, e), (i.length = e)); - } - _$AR(t = this._$AA.nextSibling, s) { - for (this._$AP?.(!1, !0, s); t !== this._$AB; ) { - const s = i$7(t).nextSibling; - (i$7(t).remove(), (t = s)); - } - } - setConnected(t) { - void 0 === this._$AM && ((this._$Cv = t), this._$AP?.(t)); - } -}; -var H = class { - get tagName() { - return this.element.tagName; - } - get _$AU() { - return this._$AM._$AU; - } - constructor(t, i, s, e, h) { - ((this.type = 1), - (this._$AH = A), - (this._$AN = void 0), - (this.element = t), - (this.name = i), - (this._$AM = e), - (this.options = h), - s.length > 2 || "" !== s[0] || "" !== s[1] - ? ((this._$AH = Array(s.length - 1).fill(new String())), (this.strings = s)) - : (this._$AH = A)); - } - _$AI(t, i = this, s, e) { - const h = this.strings; - let o = !1; - if (void 0 === h) - ((t = M$1(this, t, i, 0)), (o = !a(t) || (t !== this._$AH && t !== E)), o && (this._$AH = t)); - else { - const e = t; - let n, r; - for (t = h[0], n = 0; n < h.length - 1; n++) - ((r = M$1(this, e[s + n], i, n)), - r === E && (r = this._$AH[n]), - (o ||= !a(r) || r !== this._$AH[n]), - r === A ? (t = A) : t !== A && (t += (r ?? "") + h[n + 1]), - (this._$AH[n] = r)); - } - o && !e && this.j(t); - } - j(t) { - t === A - ? this.element.removeAttribute(this.name) - : this.element.setAttribute(this.name, t ?? ""); - } -}; -var I = class extends H { - constructor() { - (super(...arguments), (this.type = 3)); - } - j(t) { - this.element[this.name] = t === A ? void 0 : t; - } -}; -var L = class extends H { - constructor() { - (super(...arguments), (this.type = 4)); - } - j(t) { - this.element.toggleAttribute(this.name, !!t && t !== A); - } -}; -var z = class extends H { - constructor(t, i, s, e, h) { - (super(t, i, s, e, h), (this.type = 5)); - } - _$AI(t, i = this) { - if ((t = M$1(this, t, i, 0) ?? A) === E) return; - const s = this._$AH, - e = - (t === A && s !== A) || - t.capture !== s.capture || - t.once !== s.once || - t.passive !== s.passive, - h = t !== A && (s === A || e); - (e && this.element.removeEventListener(this.name, this, s), - h && this.element.addEventListener(this.name, this, t), - (this._$AH = t)); - } - handleEvent(t) { - "function" == typeof this._$AH - ? this._$AH.call(this.options?.host ?? this.element, t) - : this._$AH.handleEvent(t); - } -}; -var Z = class { - constructor(t, i, s) { - ((this.element = t), - (this.type = 6), - (this._$AN = void 0), - (this._$AM = i), - (this.options = s)); - } - get _$AU() { - return this._$AM._$AU; - } - _$AI(t) { - M$1(this, t); - } -}; -const j$1 = { - M: h$5, - P: o$12, - A: n$10, - C: 1, - L: N, - R, - D: d$1, - V: M$1, - I: k, - H, - N: L, - U: z, - B: I, - F: Z, - }, - B = t$5.litHtmlPolyfillSupport; -(B?.(S, k), (t$5.litHtmlVersions ??= []).push("3.3.2")); -const D = (t, i, s) => { - const e = s?.renderBefore ?? i; - let h = e._$litPart$; - if (void 0 === h) { - const t = s?.renderBefore ?? null; - e._$litPart$ = h = new k(i.insertBefore(c$4(), t), t, void 0, s ?? {}); - } - return (h._$AI(t), h); -}; - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const s$6 = globalThis; -var i$6 = class extends y$1 { - constructor() { - (super(...arguments), (this.renderOptions = { host: this }), (this._$Do = void 0)); - } - createRenderRoot() { - const t = super.createRenderRoot(); - return ((this.renderOptions.renderBefore ??= t.firstChild), t); - } - update(t) { - const r = this.render(); - (this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), - super.update(t), - (this._$Do = D(r, this.renderRoot, this.renderOptions))); - } - connectedCallback() { - (super.connectedCallback(), this._$Do?.setConnected(!0)); - } - disconnectedCallback() { - (super.disconnectedCallback(), this._$Do?.setConnected(!1)); - } - render() { - return E; - } -}; -((i$6._$litElement$ = !0), - (i$6["finalized"] = !0), - s$6.litElementHydrateSupport?.({ LitElement: i$6 })); -const o$11 = s$6.litElementPolyfillSupport; -o$11?.({ LitElement: i$6 }); -const n$9 = { - _$AK: (t, e, r) => { - t._$AK(e, r); - }, - _$AL: (t) => t._$AL, -}; -(s$6.litElementVersions ??= []).push("4.2.2"); - -/** - * @license - * Copyright 2022 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const o$10 = !1; - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const t$4 = { - ATTRIBUTE: 1, - CHILD: 2, - PROPERTY: 3, - BOOLEAN_ATTRIBUTE: 4, - EVENT: 5, - ELEMENT: 6, - }, - e$10 = - (t) => - (...e) => ({ - _$litDirective$: t, - values: e, - }); -var i$5 = class { - constructor(t) {} - get _$AU() { - return this._$AM._$AU; - } - _$AT(t, e, i) { - ((this._$Ct = t), (this._$AM = e), (this._$Ci = i)); - } - _$AS(t, e) { - return this.update(t, e); - } - update(t, e) { - return this.render(...e); - } -}; - -/** - * @license - * Copyright 2020 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const { I: t$3 } = j$1, - i$4 = (o) => o, - n$8 = (o) => null === o || ("object" != typeof o && "function" != typeof o), - e$9 = { - HTML: 1, - SVG: 2, - MATHML: 3, - }, - l$2 = (o, t) => (void 0 === t ? void 0 !== o?._$litType$ : o?._$litType$ === t), - d = (o) => null != o?._$litType$?.h, - c$3 = (o) => void 0 !== o?._$litDirective$, - f$1 = (o) => o?._$litDirective$, - r$8 = (o) => void 0 === o.strings, - s$5 = () => document.createComment(""), - v = (o, n, e) => { - const l = o._$AA.parentNode, - d = void 0 === n ? o._$AB : n._$AA; - if (void 0 === e) { - const i = l.insertBefore(s$5(), d), - n = l.insertBefore(s$5(), d); - e = new t$3(i, n, o, o.options); - } else { - const t = e._$AB.nextSibling, - n = e._$AM, - c = n !== o; - if (c) { - let t; - (e._$AQ?.(o), (e._$AM = o), void 0 !== e._$AP && (t = o._$AU) !== n._$AU && e._$AP(t)); - } - if (t !== d || c) { - let o = e._$AA; - for (; o !== t; ) { - const t = i$4(o).nextSibling; - (i$4(l).insertBefore(o, d), (o = t)); - } - } - } - return e; - }, - u$1 = (o, t, i = o) => (o._$AI(t, i), o), - m$1 = {}, - p = (o, t = m$1) => (o._$AH = t), - M = (o) => o._$AH, - h$4 = (o) => { - (o._$AR(), o._$AA.remove()); - }, - j = (o) => { - o._$AR(); - }; - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const u = (e, s, t) => { - const r = new Map(); - for (let l = s; l <= t; l++) r.set(e[l], l); - return r; - }, - c$2 = e$10( - class extends i$5 { - constructor(e) { - if ((super(e), e.type !== t$4.CHILD)) - throw Error("repeat() can only be used in text expressions"); - } - dt(e, s, t) { - let r; - void 0 === t ? (t = s) : void 0 !== s && (r = s); - const l = [], - o = []; - let i = 0; - for (const s of e) ((l[i] = r ? r(s, i) : i), (o[i] = t(s, i)), i++); - return { - values: o, - keys: l, - }; - } - render(e, s, t) { - return this.dt(e, s, t).values; - } - update(s, [t, r, c]) { - const d = M(s), - { values: p$3, keys: a } = this.dt(t, r, c); - if (!Array.isArray(d)) return ((this.ut = a), p$3); - const h = (this.ut ??= []), - v$2 = []; - let m, - y, - x = 0, - j = d.length - 1, - k = 0, - w = p$3.length - 1; - for (; x <= j && k <= w; ) - if (null === d[x]) x++; - else if (null === d[j]) j--; - else if (h[x] === a[k]) ((v$2[k] = u$1(d[x], p$3[k])), x++, k++); - else if (h[j] === a[w]) ((v$2[w] = u$1(d[j], p$3[w])), j--, w--); - else if (h[x] === a[w]) ((v$2[w] = u$1(d[x], p$3[w])), v(s, v$2[w + 1], d[x]), x++, w--); - else if (h[j] === a[k]) ((v$2[k] = u$1(d[j], p$3[k])), v(s, d[x], d[j]), j--, k++); - else if ((void 0 === m && ((m = u(a, k, w)), (y = u(h, x, j))), m.has(h[x]))) - if (m.has(h[j])) { - const e = y.get(a[k]), - t = void 0 !== e ? d[e] : null; - if (null === t) { - const e = v(s, d[x]); - (u$1(e, p$3[k]), (v$2[k] = e)); - } else ((v$2[k] = u$1(t, p$3[k])), v(s, d[x], t), (d[e] = null)); - k++; - } else (h$4(d[j]), j--); - else (h$4(d[x]), x++); - for (; k <= w; ) { - const e = v(s, v$2[w + 1]); - (u$1(e, p$3[k]), (v$2[k++] = e)); - } - for (; x <= j; ) { - const e = d[x++]; - null !== e && h$4(e); - } - return ((this.ut = a), p(s, v$2), E); - } - }, - ); - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -var s$4 = class extends Event { - constructor(s, t, e, o) { - (super("context-request", { - bubbles: !0, - composed: !0, - }), - (this.context = s), - (this.contextTarget = t), - (this.callback = e), - (this.subscribe = o ?? !1)); - } -}; - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -function n$7(n) { - return n; -} - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ var s$3 = class { - constructor(t, s, i, h) { - if ( - ((this.subscribe = !1), - (this.provided = !1), - (this.value = void 0), - (this.t = (t, s) => { - (this.unsubscribe && - (this.unsubscribe !== s && ((this.provided = !1), this.unsubscribe()), - this.subscribe || this.unsubscribe()), - (this.value = t), - this.host.requestUpdate(), - (this.provided && !this.subscribe) || - ((this.provided = !0), this.callback && this.callback(t, s)), - (this.unsubscribe = s)); - }), - (this.host = t), - void 0 !== s.context) - ) { - const t = s; - ((this.context = t.context), - (this.callback = t.callback), - (this.subscribe = t.subscribe ?? !1)); - } else ((this.context = s), (this.callback = i), (this.subscribe = h ?? !1)); - this.host.addController(this); - } - hostConnected() { - this.dispatchRequest(); - } - hostDisconnected() { - this.unsubscribe && (this.unsubscribe(), (this.unsubscribe = void 0)); - } - dispatchRequest() { - this.host.dispatchEvent(new s$4(this.context, this.host, this.t, this.subscribe)); - } -}; - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -var s$2 = class { - get value() { - return this.o; - } - set value(s) { - this.setValue(s); - } - setValue(s, t = !1) { - const i = t || !Object.is(s, this.o); - ((this.o = s), i && this.updateObservers()); - } - constructor(s) { - ((this.subscriptions = new Map()), - (this.updateObservers = () => { - for (const [s, { disposer: t }] of this.subscriptions) s(this.o, t); - }), - void 0 !== s && (this.value = s)); - } - addCallback(s, t, i) { - if (!i) return void s(this.value); - this.subscriptions.has(s) || - this.subscriptions.set(s, { - disposer: () => { - this.subscriptions.delete(s); - }, - consumerHost: t, - }); - const { disposer: h } = this.subscriptions.get(s); - s(this.value, h); - } - clearCallbacks() { - this.subscriptions.clear(); - } -}; - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ var e$8 = class extends Event { - constructor(t, s) { - (super("context-provider", { - bubbles: !0, - composed: !0, - }), - (this.context = t), - (this.contextTarget = s)); - } -}; -var i$3 = class extends s$2 { - constructor(s, e, i) { - (super(void 0 !== e.context ? e.initialValue : i), - (this.onContextRequest = (t) => { - if (t.context !== this.context) return; - const s = t.contextTarget ?? t.composedPath()[0]; - s !== this.host && (t.stopPropagation(), this.addCallback(t.callback, s, t.subscribe)); - }), - (this.onProviderRequest = (s) => { - if (s.context !== this.context) return; - if ((s.contextTarget ?? s.composedPath()[0]) === this.host) return; - const e = new Set(); - for (const [s, { consumerHost: i }] of this.subscriptions) - e.has(s) || (e.add(s), i.dispatchEvent(new s$4(this.context, i, s, !0))); - s.stopPropagation(); - }), - (this.host = s), - void 0 !== e.context ? (this.context = e.context) : (this.context = e), - this.attachListeners(), - this.host.addController?.(this)); - } - attachListeners() { - (this.host.addEventListener("context-request", this.onContextRequest), - this.host.addEventListener("context-provider", this.onProviderRequest)); - } - hostConnected() { - this.host.dispatchEvent(new e$8(this.context, this.host)); - } -}; - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ var t$2 = class { - constructor() { - ((this.pendingContextRequests = new Map()), - (this.onContextProvider = (t) => { - const s = this.pendingContextRequests.get(t.context); - if (void 0 === s) return; - this.pendingContextRequests.delete(t.context); - const { requests: o } = s; - for (const { elementRef: s, callbackRef: n } of o) { - const o = s.deref(), - c = n.deref(); - void 0 === o || void 0 === c || o.dispatchEvent(new s$4(t.context, o, c, !0)); - } - }), - (this.onContextRequest = (e) => { - if (!0 !== e.subscribe) return; - const t = e.contextTarget ?? e.composedPath()[0], - s = e.callback; - let o = this.pendingContextRequests.get(e.context); - void 0 === o && - this.pendingContextRequests.set( - e.context, - (o = { - callbacks: new WeakMap(), - requests: [], - }), - ); - let n = o.callbacks.get(t); - (void 0 === n && o.callbacks.set(t, (n = new WeakSet())), - n.has(s) || - (n.add(s), - o.requests.push({ - elementRef: new WeakRef(t), - callbackRef: new WeakRef(s), - }))); - })); - } - attach(e) { - (e.addEventListener("context-request", this.onContextRequest), - e.addEventListener("context-provider", this.onContextProvider)); - } - detach(e) { - (e.removeEventListener("context-request", this.onContextRequest), - e.removeEventListener("context-provider", this.onContextProvider)); - } -}; - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ function e$7({ context: e }) { - return (n, i) => { - const r = new WeakMap(); - if ("object" == typeof i) - return { - get() { - return n.get.call(this); - }, - set(t) { - return (r.get(this).setValue(t), n.set.call(this, t)); - }, - init(n) { - return ( - r.set( - this, - new i$3(this, { - context: e, - initialValue: n, - }), - ), - n - ); - }, - }; - { - n.constructor.addInitializer((n) => { - r.set(n, new i$3(n, { context: e })); - }); - const o = Object.getOwnPropertyDescriptor(n, i); - let s; - if (void 0 === o) { - const t = new WeakMap(); - s = { - get() { - return t.get(this); - }, - set(e) { - (r.get(this).setValue(e), t.set(this, e)); - }, - configurable: !0, - enumerable: !0, - }; - } else { - const t = o.set; - s = { - ...o, - set(e) { - (r.get(this).setValue(e), t?.call(this, e)); - }, - }; - } - return void Object.defineProperty(n, i, s); - } - }; -} - -/** - * @license - * Copyright 2022 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ function c$1({ context: c, subscribe: e }) { - return (o, n) => { - "object" == typeof n - ? n.addInitializer(function () { - new s$3(this, { - context: c, - callback: (t) => { - o.set.call(this, t); - }, - subscribe: e, - }); - }) - : o.constructor.addInitializer((o) => { - new s$3(o, { - context: c, - callback: (t) => { - o[n] = t; - }, - subscribe: e, - }); - }); - }; -} - -const eventInit = { - bubbles: true, - cancelable: true, - composed: true, -}; -var StateEvent = class StateEvent extends CustomEvent { - static { - this.eventName = "a2uiaction"; - } - constructor(payload) { - super(StateEvent.eventName, { - detail: payload, - ...eventInit, - }); - this.payload = payload; - } -}; - -const opacityBehavior = ` - &:not([disabled]) { - cursor: pointer; - opacity: var(--opacity, 0); - transition: opacity var(--speed, 0.2s) cubic-bezier(0, 0, 0.3, 1); - - &:hover, - &:focus { - opacity: 1; - } - }`; -const behavior = ` - ${new Array(21) - .fill(0) - .map((_, idx) => { - return `.behavior-ho-${idx * 5} { - --opacity: ${idx / 20}; - ${opacityBehavior} - }`; - }) - .join("\n")} - - .behavior-o-s { - overflow: scroll; - } - - .behavior-o-a { - overflow: auto; - } - - .behavior-o-h { - overflow: hidden; - } - - .behavior-sw-n { - scrollbar-width: none; - } -`; - -const grid = 4; - -const border = ` - ${new Array(25) - .fill(0) - .map((_, idx) => { - return ` - .border-bw-${idx} { border-width: ${idx}px; } - .border-btw-${idx} { border-top-width: ${idx}px; } - .border-bbw-${idx} { border-bottom-width: ${idx}px; } - .border-blw-${idx} { border-left-width: ${idx}px; } - .border-brw-${idx} { border-right-width: ${idx}px; } - - .border-ow-${idx} { outline-width: ${idx}px; } - .border-br-${idx} { border-radius: ${idx * grid}px; overflow: hidden;}`; - }) - .join("\n")} - - .border-br-50pc { - border-radius: 50%; - } - - .border-bs-s { - border-style: solid; - } -`; - -const shades = [0, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100]; - -function merge(...classes) { - const styles = {}; - for (const clazz of classes) { - for (const [key, val] of Object.entries(clazz)) { - const prefix = key.split("-").with(-1, "").join("-"); - const existingKeys = Object.keys(styles).filter((key) => key.startsWith(prefix)); - for (const existingKey of existingKeys) { - delete styles[existingKey]; - } - styles[key] = val; - } - } - return styles; -} -function appendToAll(target, exclusions, ...classes) { - const updatedTarget = structuredClone(target); - for (const clazz of classes) { - for (const key of Object.keys(clazz)) { - const prefix = key.split("-").with(-1, "").join("-"); - for (const [tagName, classesToAdd] of Object.entries(updatedTarget)) { - if (exclusions.includes(tagName)) { - continue; - } - let found = false; - for (let t = 0; t < classesToAdd.length; t++) { - if (classesToAdd[t].startsWith(prefix)) { - found = true; - classesToAdd[t] = key; - } - } - if (!found) { - classesToAdd.push(key); - } - } - } - } - return updatedTarget; -} -function createThemeStyles(palettes) { - const styles = {}; - for (const palette of Object.values(palettes)) { - for (const [key, val] of Object.entries(palette)) { - const prop = toProp(key); - styles[prop] = val; - } - } - return styles; -} -function toProp(key) { - if (key.startsWith("nv")) { - return `--nv-${key.slice(2)}`; - } - return `--${key[0]}-${key.slice(1)}`; -} - -const color = (src) => ` - ${src - .map((key) => { - const inverseKey = getInverseKey(key); - return `.color-bc-${key} { border-color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`; - }) - .join("\n")} - - ${src - .map((key) => { - const inverseKey = getInverseKey(key); - const vals = [ - `.color-bgc-${key} { background-color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`, - `.color-bbgc-${key}::backdrop { background-color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`, - ]; - for (let o = 0.1; o < 1; o += 0.1) { - vals.push(`.color-bbgc-${key}_${(o * 100).toFixed(0)}::backdrop { - background-color: light-dark(oklch(from var(${toProp(key)}) l c h / calc(alpha * ${o.toFixed(1)})), oklch(from var(${toProp(inverseKey)}) l c h / calc(alpha * ${o.toFixed(1)})) ); - } - `); - } - return vals.join("\n"); - }) - .join("\n")} - - ${src - .map((key) => { - const inverseKey = getInverseKey(key); - return `.color-c-${key} { color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`; - }) - .join("\n")} - `; -const getInverseKey = (key) => { - const match = key.match(/^([a-z]+)(\d+)$/); - if (!match) return key; - const [, prefix, shadeStr] = match; - const shade = parseInt(shadeStr, 10); - const target = 100 - shade; - const inverseShade = shades.reduce((prev, curr) => - Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev, - ); - return `${prefix}${inverseShade}`; -}; -const keyFactory = (prefix) => { - return shades.map((v) => `${prefix}${v}`); -}; -const colors = [ - color(keyFactory("p")), - color(keyFactory("s")), - color(keyFactory("t")), - color(keyFactory("n")), - color(keyFactory("nv")), - color(keyFactory("e")), - ` - .color-bgc-transparent { - background-color: transparent; - } - - :host { - color-scheme: var(--color-scheme); - } - `, -]; - -/** - * CSS classes for Google Symbols. - * - * Usage: - * - * ```html - * pen_spark - * ``` - */ -const icons = ` - .g-icon { - font-family: "Material Symbols Outlined", "Google Symbols"; - font-weight: normal; - font-style: normal; - font-display: optional; - font-size: 20px; - width: 1em; - height: 1em; - user-select: none; - line-height: 1; - letter-spacing: normal; - text-transform: none; - display: inline-block; - white-space: nowrap; - word-wrap: normal; - direction: ltr; - -webkit-font-feature-settings: "liga"; - -webkit-font-smoothing: antialiased; - overflow: hidden; - - font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 48, - "ROND" 100; - - &.filled { - font-variation-settings: "FILL" 1, "wght" 300, "GRAD" 0, "opsz" 48, - "ROND" 100; - } - - &.filled-heavy { - font-variation-settings: "FILL" 1, "wght" 700, "GRAD" 0, "opsz" 48, - "ROND" 100; - } - } -`; - -const layout = ` - :host { - ${new Array(16) - .fill(0) - .map((_, idx) => { - return `--g-${idx + 1}: ${(idx + 1) * grid}px;`; - }) - .join("\n")} - } - - ${new Array(49) - .fill(0) - .map((_, index) => { - const idx = index - 24; - const lbl = idx < 0 ? `n${Math.abs(idx)}` : idx.toString(); - return ` - .layout-p-${lbl} { --padding: ${idx * grid}px; padding: var(--padding); } - .layout-pt-${lbl} { padding-top: ${idx * grid}px; } - .layout-pr-${lbl} { padding-right: ${idx * grid}px; } - .layout-pb-${lbl} { padding-bottom: ${idx * grid}px; } - .layout-pl-${lbl} { padding-left: ${idx * grid}px; } - - .layout-m-${lbl} { --margin: ${idx * grid}px; margin: var(--margin); } - .layout-mt-${lbl} { margin-top: ${idx * grid}px; } - .layout-mr-${lbl} { margin-right: ${idx * grid}px; } - .layout-mb-${lbl} { margin-bottom: ${idx * grid}px; } - .layout-ml-${lbl} { margin-left: ${idx * grid}px; } - - .layout-t-${lbl} { top: ${idx * grid}px; } - .layout-r-${lbl} { right: ${idx * grid}px; } - .layout-b-${lbl} { bottom: ${idx * grid}px; } - .layout-l-${lbl} { left: ${idx * grid}px; }`; - }) - .join("\n")} - - ${new Array(25) - .fill(0) - .map((_, idx) => { - return ` - .layout-g-${idx} { gap: ${idx * grid}px; }`; - }) - .join("\n")} - - ${new Array(8) - .fill(0) - .map((_, idx) => { - return ` - .layout-grd-col${idx + 1} { grid-template-columns: ${"1fr ".repeat(idx + 1).trim()}; }`; - }) - .join("\n")} - - .layout-pos-a { - position: absolute; - } - - .layout-pos-rel { - position: relative; - } - - .layout-dsp-none { - display: none; - } - - .layout-dsp-block { - display: block; - } - - .layout-dsp-grid { - display: grid; - } - - .layout-dsp-iflex { - display: inline-flex; - } - - .layout-dsp-flexvert { - display: flex; - flex-direction: column; - } - - .layout-dsp-flexhor { - display: flex; - flex-direction: row; - } - - .layout-fw-w { - flex-wrap: wrap; - } - - .layout-al-fs { - align-items: start; - } - - .layout-al-fe { - align-items: end; - } - - .layout-al-c { - align-items: center; - } - - .layout-as-n { - align-self: normal; - } - - .layout-js-c { - justify-self: center; - } - - .layout-sp-c { - justify-content: center; - } - - .layout-sp-ev { - justify-content: space-evenly; - } - - .layout-sp-bt { - justify-content: space-between; - } - - .layout-sp-s { - justify-content: start; - } - - .layout-sp-e { - justify-content: end; - } - - .layout-ji-e { - justify-items: end; - } - - .layout-r-none { - resize: none; - } - - .layout-fs-c { - field-sizing: content; - } - - .layout-fs-n { - field-sizing: none; - } - - .layout-flx-0 { - flex: 0 0 auto; - } - - .layout-flx-1 { - flex: 1 0 auto; - } - - .layout-c-s { - contain: strict; - } - - /** Widths **/ - - ${new Array(10) - .fill(0) - .map((_, idx) => { - const weight = (idx + 1) * 10; - return `.layout-w-${weight} { width: ${weight}%; max-width: ${weight}%; }`; - }) - .join("\n")} - - ${new Array(16) - .fill(0) - .map((_, idx) => { - const weight = idx * grid; - return `.layout-wp-${idx} { width: ${weight}px; }`; - }) - .join("\n")} - - /** Heights **/ - - ${new Array(10) - .fill(0) - .map((_, idx) => { - const height = (idx + 1) * 10; - return `.layout-h-${height} { height: ${height}%; }`; - }) - .join("\n")} - - ${new Array(16) - .fill(0) - .map((_, idx) => { - const height = idx * grid; - return `.layout-hp-${idx} { height: ${height}px; }`; - }) - .join("\n")} - - .layout-el-cv { - & img, - & video { - width: 100%; - height: 100%; - object-fit: cover; - margin: 0; - } - } - - .layout-ar-sq { - aspect-ratio: 1 / 1; - } - - .layout-ex-fb { - margin: calc(var(--padding) * -1) 0 0 calc(var(--padding) * -1); - width: calc(100% + var(--padding) * 2); - height: calc(100% + var(--padding) * 2); - } -`; - -const opacity = ` - ${new Array(21) - .fill(0) - .map((_, idx) => { - return `.opacity-el-${idx * 5} { opacity: ${idx / 20}; }`; - }) - .join("\n")} -`; - -const type$1 = ` - :host { - --default-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - --default-font-family-mono: "Courier New", Courier, monospace; - } - - .typography-f-s { - font-family: var(--font-family, var(--default-font-family)); - font-optical-sizing: auto; - font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0; - } - - .typography-f-sf { - font-family: var(--font-family-flex, var(--default-font-family)); - font-optical-sizing: auto; - } - - .typography-f-c { - font-family: var(--font-family-mono, var(--default-font-family)); - font-optical-sizing: auto; - font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0; - } - - .typography-v-r { - font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0, "ROND" 100; - } - - .typography-ta-s { - text-align: start; - } - - .typography-ta-c { - text-align: center; - } - - .typography-fs-n { - font-style: normal; - } - - .typography-fs-i { - font-style: italic; - } - - .typography-sz-ls { - font-size: 11px; - line-height: 16px; - } - - .typography-sz-lm { - font-size: 12px; - line-height: 16px; - } - - .typography-sz-ll { - font-size: 14px; - line-height: 20px; - } - - .typography-sz-bs { - font-size: 12px; - line-height: 16px; - } - - .typography-sz-bm { - font-size: 14px; - line-height: 20px; - } - - .typography-sz-bl { - font-size: 16px; - line-height: 24px; - } - - .typography-sz-ts { - font-size: 14px; - line-height: 20px; - } - - .typography-sz-tm { - font-size: 16px; - line-height: 24px; - } - - .typography-sz-tl { - font-size: 22px; - line-height: 28px; - } - - .typography-sz-hs { - font-size: 24px; - line-height: 32px; - } - - .typography-sz-hm { - font-size: 28px; - line-height: 36px; - } - - .typography-sz-hl { - font-size: 32px; - line-height: 40px; - } - - .typography-sz-ds { - font-size: 36px; - line-height: 44px; - } - - .typography-sz-dm { - font-size: 45px; - line-height: 52px; - } - - .typography-sz-dl { - font-size: 57px; - line-height: 64px; - } - - .typography-ws-p { - white-space: pre-line; - } - - .typography-ws-nw { - white-space: nowrap; - } - - .typography-td-none { - text-decoration: none; - } - - /** Weights **/ - - ${new Array(9) - .fill(0) - .map((_, idx) => { - const weight = (idx + 1) * 100; - return `.typography-w-${weight} { font-weight: ${weight}; }`; - }) - .join("\n")} -`; - -const structuralStyles$1 = [behavior, border, colors, icons, layout, opacity, type$1] - .flat(Infinity) - .join("\n"); - -var guards_exports = /* @__PURE__ */ __exportAll({ - isComponentArrayReference: () => isComponentArrayReference, - isObject: () => isObject$1, - isPath: () => isPath, - isResolvedAudioPlayer: () => isResolvedAudioPlayer, - isResolvedButton: () => isResolvedButton, - isResolvedCard: () => isResolvedCard, - isResolvedCheckbox: () => isResolvedCheckbox, - isResolvedColumn: () => isResolvedColumn, - isResolvedDateTimeInput: () => isResolvedDateTimeInput, - isResolvedDivider: () => isResolvedDivider, - isResolvedIcon: () => isResolvedIcon, - isResolvedImage: () => isResolvedImage, - isResolvedList: () => isResolvedList, - isResolvedModal: () => isResolvedModal, - isResolvedMultipleChoice: () => isResolvedMultipleChoice, - isResolvedRow: () => isResolvedRow, - isResolvedSlider: () => isResolvedSlider, - isResolvedTabs: () => isResolvedTabs, - isResolvedText: () => isResolvedText, - isResolvedTextField: () => isResolvedTextField, - isResolvedVideo: () => isResolvedVideo, - isValueMap: () => isValueMap, -}); -function isValueMap(value) { - return isObject$1(value) && "key" in value; -} -function isPath(key, value) { - return key === "path" && typeof value === "string"; -} -function isObject$1(value) { - return typeof value === "object" && value !== null && !Array.isArray(value); -} -function isComponentArrayReference(value) { - if (!isObject$1(value)) return false; - return "explicitList" in value || "template" in value; -} -function isStringValue(value) { - return ( - isObject$1(value) && - ("path" in value || - ("literal" in value && typeof value.literal === "string") || - "literalString" in value) - ); -} -function isNumberValue(value) { - return ( - isObject$1(value) && - ("path" in value || - ("literal" in value && typeof value.literal === "number") || - "literalNumber" in value) - ); -} -function isBooleanValue(value) { - return ( - isObject$1(value) && - ("path" in value || - ("literal" in value && typeof value.literal === "boolean") || - "literalBoolean" in value) - ); -} -function isAnyComponentNode(value) { - if (!isObject$1(value)) return false; - const hasBaseKeys = "id" in value && "type" in value && "properties" in value; - if (!hasBaseKeys) return false; - return true; -} -function isResolvedAudioPlayer(props) { - return isObject$1(props) && "url" in props && isStringValue(props.url); -} -function isResolvedButton(props) { - return ( - isObject$1(props) && "child" in props && isAnyComponentNode(props.child) && "action" in props - ); -} -function isResolvedCard(props) { - if (!isObject$1(props)) return false; - if (!("child" in props)) { - if (!("children" in props)) { - return false; - } else { - return Array.isArray(props.children) && props.children.every(isAnyComponentNode); - } - } - return isAnyComponentNode(props.child); -} -function isResolvedCheckbox(props) { - return ( - isObject$1(props) && - "label" in props && - isStringValue(props.label) && - "value" in props && - isBooleanValue(props.value) - ); -} -function isResolvedColumn(props) { - return ( - isObject$1(props) && - "children" in props && - Array.isArray(props.children) && - props.children.every(isAnyComponentNode) - ); -} -function isResolvedDateTimeInput(props) { - return isObject$1(props) && "value" in props && isStringValue(props.value); -} -function isResolvedDivider(props) { - return isObject$1(props); -} -function isResolvedImage(props) { - return isObject$1(props) && "url" in props && isStringValue(props.url); -} -function isResolvedIcon(props) { - return isObject$1(props) && "name" in props && isStringValue(props.name); -} -function isResolvedList(props) { - return ( - isObject$1(props) && - "children" in props && - Array.isArray(props.children) && - props.children.every(isAnyComponentNode) - ); -} -function isResolvedModal(props) { - return ( - isObject$1(props) && - "entryPointChild" in props && - isAnyComponentNode(props.entryPointChild) && - "contentChild" in props && - isAnyComponentNode(props.contentChild) - ); -} -function isResolvedMultipleChoice(props) { - return isObject$1(props) && "selections" in props; -} -function isResolvedRow(props) { - return ( - isObject$1(props) && - "children" in props && - Array.isArray(props.children) && - props.children.every(isAnyComponentNode) - ); -} -function isResolvedSlider(props) { - return isObject$1(props) && "value" in props && isNumberValue(props.value); -} -function isResolvedTabItem(item) { - return ( - isObject$1(item) && - "title" in item && - isStringValue(item.title) && - "child" in item && - isAnyComponentNode(item.child) - ); -} -function isResolvedTabs(props) { - return ( - isObject$1(props) && - "tabItems" in props && - Array.isArray(props.tabItems) && - props.tabItems.every(isResolvedTabItem) - ); -} -function isResolvedText(props) { - return isObject$1(props) && "text" in props && isStringValue(props.text); -} -function isResolvedTextField(props) { - return isObject$1(props) && "label" in props && isStringValue(props.label); -} -function isResolvedVideo(props) { - return isObject$1(props) && "url" in props && isStringValue(props.url); -} - -/** - * Processes and consolidates A2UIProtocolMessage objects into a structured, - * hierarchical model of UI surfaces. - */ -var A2uiMessageProcessor = class A2uiMessageProcessor { - static { - this.DEFAULT_SURFACE_ID = "@default"; - } - #mapCtor = Map; - #arrayCtor = Array; - #setCtor = Set; - #objCtor = Object; - #surfaces; - constructor( - opts = { - mapCtor: Map, - arrayCtor: Array, - setCtor: Set, - objCtor: Object, - }, - ) { - this.opts = opts; - this.#arrayCtor = opts.arrayCtor; - this.#mapCtor = opts.mapCtor; - this.#setCtor = opts.setCtor; - this.#objCtor = opts.objCtor; - this.#surfaces = new opts.mapCtor(); - } - getSurfaces() { - return this.#surfaces; - } - clearSurfaces() { - this.#surfaces.clear(); - } - processMessages(messages) { - for (const message of messages) { - if (message.beginRendering) { - this.#handleBeginRendering(message.beginRendering, message.beginRendering.surfaceId); - } - if (message.surfaceUpdate) { - this.#handleSurfaceUpdate(message.surfaceUpdate, message.surfaceUpdate.surfaceId); - } - if (message.dataModelUpdate) { - this.#handleDataModelUpdate(message.dataModelUpdate, message.dataModelUpdate.surfaceId); - } - if (message.deleteSurface) { - this.#handleDeleteSurface(message.deleteSurface); - } - } - } - /** - * Retrieves the data for a given component node and a relative path string. - * This correctly handles the special `.` path, which refers to the node's - * own data context. - */ - getData(node, relativePath, surfaceId = A2uiMessageProcessor.DEFAULT_SURFACE_ID) { - const surface = this.#getOrCreateSurface(surfaceId); - if (!surface) return null; - let finalPath; - if (relativePath === "." || relativePath === "") { - finalPath = node.dataContextPath ?? "/"; - } else { - finalPath = this.resolvePath(relativePath, node.dataContextPath); - } - return this.#getDataByPath(surface.dataModel, finalPath); - } - setData(node, relativePath, value, surfaceId = A2uiMessageProcessor.DEFAULT_SURFACE_ID) { - if (!node) { - console.warn("No component node set"); - return; - } - const surface = this.#getOrCreateSurface(surfaceId); - if (!surface) return; - let finalPath; - if (relativePath === "." || relativePath === "") { - finalPath = node.dataContextPath ?? "/"; - } else { - finalPath = this.resolvePath(relativePath, node.dataContextPath); - } - this.#setDataByPath(surface.dataModel, finalPath, value); - } - resolvePath(path, dataContextPath) { - if (path.startsWith("/")) { - return path; - } - if (dataContextPath && dataContextPath !== "/") { - return dataContextPath.endsWith("/") - ? `${dataContextPath}${path}` - : `${dataContextPath}/${path}`; - } - return `/${path}`; - } - #parseIfJsonString(value) { - if (typeof value !== "string") { - return value; - } - const trimmedValue = value.trim(); - if ( - (trimmedValue.startsWith("{") && trimmedValue.endsWith("}")) || - (trimmedValue.startsWith("[") && trimmedValue.endsWith("]")) - ) { - try { - return JSON.parse(value); - } catch (e) { - console.warn(`Failed to parse potential JSON string: "${value.substring(0, 50)}..."`, e); - return value; - } - } - return value; - } - /** - * Converts a specific array format [{key: "...", value_string: "..."}, ...] - * into a standard Map. It also attempts to parse any string values that - * appear to be stringified JSON. - */ - #convertKeyValueArrayToMap(arr) { - const map = new this.#mapCtor(); - for (const item of arr) { - if (!isObject$1(item) || !("key" in item)) continue; - const key = item.key; - const valueKey = this.#findValueKey(item); - if (!valueKey) continue; - let value = item[valueKey]; - if (valueKey === "valueMap" && Array.isArray(value)) { - value = this.#convertKeyValueArrayToMap(value); - } else if (typeof value === "string") { - value = this.#parseIfJsonString(value); - } - this.#setDataByPath(map, key, value); - } - return map; - } - #setDataByPath(root, path, value) { - if ( - Array.isArray(value) && - (value.length === 0 || (isObject$1(value[0]) && "key" in value[0])) - ) { - if (value.length === 1 && isObject$1(value[0]) && value[0].key === ".") { - const item = value[0]; - const valueKey = this.#findValueKey(item); - if (valueKey) { - value = item[valueKey]; - if (valueKey === "valueMap" && Array.isArray(value)) { - value = this.#convertKeyValueArrayToMap(value); - } else if (typeof value === "string") { - value = this.#parseIfJsonString(value); - } - } else { - value = this.#convertKeyValueArrayToMap(value); - } - } else { - value = this.#convertKeyValueArrayToMap(value); - } - } - const segments = this.#normalizePath(path) - .split("/") - .filter((s) => s); - if (segments.length === 0) { - if (value instanceof Map || isObject$1(value)) { - if (!(value instanceof Map) && isObject$1(value)) { - value = new this.#mapCtor(Object.entries(value)); - } - root.clear(); - for (const [key, v] of value.entries()) { - root.set(key, v); - } - } else { - console.error("Cannot set root of DataModel to a non-Map value."); - } - return; - } - let current = root; - for (let i = 0; i < segments.length - 1; i++) { - const segment = segments[i]; - let target; - if (current instanceof Map) { - target = current.get(segment); - } else if (Array.isArray(current) && /^\d+$/.test(segment)) { - target = current[parseInt(segment, 10)]; - } - if (target === undefined || typeof target !== "object" || target === null) { - target = new this.#mapCtor(); - if (current instanceof this.#mapCtor) { - current.set(segment, target); - } else if (Array.isArray(current)) { - current[parseInt(segment, 10)] = target; - } - } - current = target; - } - const finalSegment = segments[segments.length - 1]; - const storedValue = value; - if (current instanceof this.#mapCtor) { - current.set(finalSegment, storedValue); - } else if (Array.isArray(current) && /^\d+$/.test(finalSegment)) { - current[parseInt(finalSegment, 10)] = storedValue; - } - } - /** - * Normalizes a path string into a consistent, slash-delimited format. - * Converts bracket notation and dot notation in a two-pass. - * e.g., "bookRecommendations[0].title" -> "/bookRecommendations/0/title" - * e.g., "book.0.title" -> "/book/0/title" - */ - #normalizePath(path) { - const dotPath = path.replace(/\[(\d+)\]/g, ".$1"); - const segments = dotPath.split("."); - return "/" + segments.filter((s) => s.length > 0).join("/"); - } - #getDataByPath(root, path) { - const segments = this.#normalizePath(path) - .split("/") - .filter((s) => s); - let current = root; - for (const segment of segments) { - if (current === undefined || current === null) return null; - if (current instanceof Map) { - current = current.get(segment); - } else if (Array.isArray(current) && /^\d+$/.test(segment)) { - current = current[parseInt(segment, 10)]; - } else if (isObject$1(current)) { - current = current[segment]; - } else { - return null; - } - } - return current; - } - #getOrCreateSurface(surfaceId) { - let surface = this.#surfaces.get(surfaceId); - if (!surface) { - surface = new this.#objCtor({ - rootComponentId: null, - componentTree: null, - dataModel: new this.#mapCtor(), - components: new this.#mapCtor(), - styles: new this.#objCtor(), - }); - this.#surfaces.set(surfaceId, surface); - } - return surface; - } - #handleBeginRendering(message, surfaceId) { - const surface = this.#getOrCreateSurface(surfaceId); - surface.rootComponentId = message.root; - surface.styles = message.styles ?? {}; - this.#rebuildComponentTree(surface); - } - #handleSurfaceUpdate(message, surfaceId) { - const surface = this.#getOrCreateSurface(surfaceId); - for (const component of message.components) { - surface.components.set(component.id, component); - } - this.#rebuildComponentTree(surface); - } - #handleDataModelUpdate(message, surfaceId) { - const surface = this.#getOrCreateSurface(surfaceId); - const path = message.path ?? "/"; - this.#setDataByPath(surface.dataModel, path, message.contents); - this.#rebuildComponentTree(surface); - } - #handleDeleteSurface(message) { - this.#surfaces.delete(message.surfaceId); - } - /** - * Starts at the root component of the surface and builds out the tree - * recursively. This process involves resolving all properties of the child - * components, and expanding on any explicit children lists or templates - * found in the structure. - * - * @param surface The surface to be built. - */ - #rebuildComponentTree(surface) { - if (!surface.rootComponentId) { - surface.componentTree = null; - return; - } - const visited = new this.#setCtor(); - surface.componentTree = this.#buildNodeRecursive( - surface.rootComponentId, - surface, - visited, - "/", - "", - ); - } - /** Finds a value key in a map. */ - #findValueKey(value) { - return Object.keys(value).find((k) => k.startsWith("value")); - } - /** - * Builds out the nodes recursively. - */ - #buildNodeRecursive(baseComponentId, surface, visited, dataContextPath, idSuffix = "") { - const fullId = `${baseComponentId}${idSuffix}`; - const { components } = surface; - if (!components.has(baseComponentId)) { - return null; - } - if (visited.has(fullId)) { - throw new Error(`Circular dependency for component "${fullId}".`); - } - visited.add(fullId); - const componentData = components.get(baseComponentId); - const componentProps = componentData.component ?? {}; - const componentType = Object.keys(componentProps)[0]; - const unresolvedProperties = componentProps[componentType]; - const resolvedProperties = new this.#objCtor(); - if (isObject$1(unresolvedProperties)) { - for (const [key, value] of Object.entries(unresolvedProperties)) { - resolvedProperties[key] = this.#resolvePropertyValue( - value, - surface, - visited, - dataContextPath, - idSuffix, - key, - ); - } - } - visited.delete(fullId); - const baseNode = { - id: fullId, - dataContextPath, - weight: componentData.weight ?? "initial", - }; - switch (componentType) { - case "Text": - if (!isResolvedText(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Text", - properties: resolvedProperties, - }); - case "Image": - if (!isResolvedImage(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Image", - properties: resolvedProperties, - }); - case "Icon": - if (!isResolvedIcon(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Icon", - properties: resolvedProperties, - }); - case "Video": - if (!isResolvedVideo(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Video", - properties: resolvedProperties, - }); - case "AudioPlayer": - if (!isResolvedAudioPlayer(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "AudioPlayer", - properties: resolvedProperties, - }); - case "Row": - if (!isResolvedRow(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Row", - properties: resolvedProperties, - }); - case "Column": - if (!isResolvedColumn(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Column", - properties: resolvedProperties, - }); - case "List": - if (!isResolvedList(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "List", - properties: resolvedProperties, - }); - case "Card": - if (!isResolvedCard(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Card", - properties: resolvedProperties, - }); - case "Tabs": - if (!isResolvedTabs(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Tabs", - properties: resolvedProperties, - }); - case "Divider": - if (!isResolvedDivider(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Divider", - properties: resolvedProperties, - }); - case "Modal": - if (!isResolvedModal(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Modal", - properties: resolvedProperties, - }); - case "Button": - if (!isResolvedButton(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Button", - properties: resolvedProperties, - }); - case "CheckBox": - if (!isResolvedCheckbox(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "CheckBox", - properties: resolvedProperties, - }); - case "TextField": - if (!isResolvedTextField(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "TextField", - properties: resolvedProperties, - }); - case "DateTimeInput": - if (!isResolvedDateTimeInput(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "DateTimeInput", - properties: resolvedProperties, - }); - case "MultipleChoice": - if (!isResolvedMultipleChoice(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "MultipleChoice", - properties: resolvedProperties, - }); - case "Slider": - if (!isResolvedSlider(resolvedProperties)) { - throw new Error(`Invalid data; expected ${componentType}`); - } - return new this.#objCtor({ - ...baseNode, - type: "Slider", - properties: resolvedProperties, - }); - default: - return new this.#objCtor({ - ...baseNode, - type: componentType, - properties: resolvedProperties, - }); - } - } - /** - * Recursively resolves an individual property value. If a property indicates - * a child node (a string that matches a component ID), an explicitList of - * children, or a template, these will be built out here. - */ - #resolvePropertyValue( - value, - surface, - visited, - dataContextPath, - idSuffix = "", - propertyKey = null, - ) { - const isComponentIdReferenceKey = (key) => key === "child" || key.endsWith("Child"); - if ( - typeof value === "string" && - propertyKey && - isComponentIdReferenceKey(propertyKey) && - surface.components.has(value) - ) { - return this.#buildNodeRecursive(value, surface, visited, dataContextPath, idSuffix); - } - if (isComponentArrayReference(value)) { - if (value.explicitList) { - return value.explicitList.map((id) => - this.#buildNodeRecursive(id, surface, visited, dataContextPath, idSuffix), - ); - } - if (value.template) { - const fullDataPath = this.resolvePath(value.template.dataBinding, dataContextPath); - const data = this.#getDataByPath(surface.dataModel, fullDataPath); - const template = value.template; - if (Array.isArray(data)) { - return data.map((_, index) => { - const parentIndices = dataContextPath - .split("/") - .filter((segment) => /^\d+$/.test(segment)); - const newIndices = [...parentIndices, index]; - const newSuffix = `:${newIndices.join(":")}`; - const childDataContextPath = `${fullDataPath}/${index}`; - return this.#buildNodeRecursive( - template.componentId, - surface, - visited, - childDataContextPath, - newSuffix, - ); - }); - } - const mapCtor = this.#mapCtor; - if (data instanceof mapCtor) { - return Array.from(data.keys(), (key) => { - const newSuffix = `:${key}`; - const childDataContextPath = `${fullDataPath}/${key}`; - return this.#buildNodeRecursive( - template.componentId, - surface, - visited, - childDataContextPath, - newSuffix, - ); - }); - } - return new this.#arrayCtor(); - } - } - if (Array.isArray(value)) { - return value.map((item) => - this.#resolvePropertyValue(item, surface, visited, dataContextPath, idSuffix, propertyKey), - ); - } - if (isObject$1(value)) { - const newObj = new this.#objCtor(); - for (const [key, propValue] of Object.entries(value)) { - let propertyValue = propValue; - if (isPath(key, propValue) && dataContextPath !== "/") { - propertyValue = propValue - .replace(/^\.?\/item/, "") - .replace(/^\.?\/text/, "") - .replace(/^\.?\/label/, "") - .replace(/^\.?\//, ""); - newObj[key] = propertyValue; - continue; - } - newObj[key] = this.#resolvePropertyValue( - propertyValue, - surface, - visited, - dataContextPath, - idSuffix, - key, - ); - } - return newObj; - } - return value; - } -}; - -var __defProp = Object.defineProperty; -var __defNormalProp = (obj, key, value) => - key in obj - ? __defProp(obj, key, { - enumerable: true, - configurable: true, - writable: true, - value, - }) - : (obj[key] = value); -var __publicField = (obj, key, value) => { - __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); - return value; -}; -var __accessCheck = (obj, member, msg) => { - if (!member.has(obj)) throw TypeError("Cannot " + msg); -}; -var __privateIn = (member, obj) => { - if (Object(obj) !== obj) throw TypeError('Cannot use the "in" operator on this value'); - return member.has(obj); -}; -var __privateAdd = (obj, member, value) => { - if (member.has(obj)) throw TypeError("Cannot add the same private member more than once"); - member instanceof WeakSet ? member.add(obj) : member.set(obj, value); -}; -var __privateMethod = (obj, member, method) => { - __accessCheck(obj, member, "access private method"); - return method; -}; -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function defaultEquals(a, b) { - return Object.is(a, b); -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -let activeConsumer = null; -let inNotificationPhase = false; -let epoch = 1; -const SIGNAL = /* @__PURE__ */ Symbol("SIGNAL"); -function setActiveConsumer(consumer) { - const prev = activeConsumer; - activeConsumer = consumer; - return prev; -} -function getActiveConsumer() { - return activeConsumer; -} -function isInNotificationPhase() { - return inNotificationPhase; -} -const REACTIVE_NODE = { - version: 0, - lastCleanEpoch: 0, - dirty: false, - producerNode: void 0, - producerLastReadVersion: void 0, - producerIndexOfThis: void 0, - nextProducerIndex: 0, - liveConsumerNode: void 0, - liveConsumerIndexOfThis: void 0, - consumerAllowSignalWrites: false, - consumerIsAlwaysLive: false, - producerMustRecompute: () => false, - producerRecomputeValue: () => {}, - consumerMarkedDirty: () => {}, - consumerOnSignalRead: () => {}, -}; -function producerAccessed(node) { - if (inNotificationPhase) { - throw new Error( - typeof ngDevMode !== "undefined" && ngDevMode - ? `Assertion error: signal read during notification phase` - : "", - ); - } - if (activeConsumer === null) { - return; - } - activeConsumer.consumerOnSignalRead(node); - const idx = activeConsumer.nextProducerIndex++; - assertConsumerNode(activeConsumer); - if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) { - if (consumerIsLive(activeConsumer)) { - const staleProducer = activeConsumer.producerNode[idx]; - producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]); - } - } - if (activeConsumer.producerNode[idx] !== node) { - activeConsumer.producerNode[idx] = node; - activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) - ? producerAddLiveConsumer(node, activeConsumer, idx) - : 0; - } - activeConsumer.producerLastReadVersion[idx] = node.version; -} -function producerIncrementEpoch() { - epoch++; -} -function producerUpdateValueVersion(node) { - if (!node.dirty && node.lastCleanEpoch === epoch) { - return; - } - if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) { - node.dirty = false; - node.lastCleanEpoch = epoch; - return; - } - node.producerRecomputeValue(node); - node.dirty = false; - node.lastCleanEpoch = epoch; -} -function producerNotifyConsumers(node) { - if (node.liveConsumerNode === void 0) { - return; - } - const prev = inNotificationPhase; - inNotificationPhase = true; - try { - for (const consumer of node.liveConsumerNode) { - if (!consumer.dirty) { - consumerMarkDirty(consumer); - } - } - } finally { - inNotificationPhase = prev; - } -} -function producerUpdatesAllowed() { - return (activeConsumer == null ? void 0 : activeConsumer.consumerAllowSignalWrites) !== false; -} -function consumerMarkDirty(node) { - var _a; - node.dirty = true; - producerNotifyConsumers(node); - (_a = node.consumerMarkedDirty) == null ? void 0 : _a.call(node.wrapper ?? node); -} -function consumerBeforeComputation(node) { - node && (node.nextProducerIndex = 0); - return setActiveConsumer(node); -} -function consumerAfterComputation(node, prevConsumer) { - setActiveConsumer(prevConsumer); - if ( - !node || - node.producerNode === void 0 || - node.producerIndexOfThis === void 0 || - node.producerLastReadVersion === void 0 - ) { - return; - } - if (consumerIsLive(node)) { - for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) { - producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]); - } - } - while (node.producerNode.length > node.nextProducerIndex) { - node.producerNode.pop(); - node.producerLastReadVersion.pop(); - node.producerIndexOfThis.pop(); - } -} -function consumerPollProducersForChange(node) { - assertConsumerNode(node); - for (let i = 0; i < node.producerNode.length; i++) { - const producer = node.producerNode[i]; - const seenVersion = node.producerLastReadVersion[i]; - if (seenVersion !== producer.version) { - return true; - } - producerUpdateValueVersion(producer); - if (seenVersion !== producer.version) { - return true; - } - } - return false; -} -function producerAddLiveConsumer(node, consumer, indexOfThis) { - var _a; - assertProducerNode(node); - assertConsumerNode(node); - if (node.liveConsumerNode.length === 0) { - (_a = node.watched) == null ? void 0 : _a.call(node.wrapper); - for (let i = 0; i < node.producerNode.length; i++) { - node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i); - } - } - node.liveConsumerIndexOfThis.push(indexOfThis); - return node.liveConsumerNode.push(consumer) - 1; -} -function producerRemoveLiveConsumerAtIndex(node, idx) { - var _a; - assertProducerNode(node); - assertConsumerNode(node); - if (typeof ngDevMode !== "undefined" && ngDevMode && idx >= node.liveConsumerNode.length) { - throw new Error( - `Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`, - ); - } - if (node.liveConsumerNode.length === 1) { - (_a = node.unwatched) == null ? void 0 : _a.call(node.wrapper); - for (let i = 0; i < node.producerNode.length; i++) { - producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]); - } - } - const lastIdx = node.liveConsumerNode.length - 1; - node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx]; - node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx]; - node.liveConsumerNode.length--; - node.liveConsumerIndexOfThis.length--; - if (idx < node.liveConsumerNode.length) { - const idxProducer = node.liveConsumerIndexOfThis[idx]; - const consumer = node.liveConsumerNode[idx]; - assertConsumerNode(consumer); - consumer.producerIndexOfThis[idxProducer] = idx; - } -} -function consumerIsLive(node) { - var _a; - return ( - node.consumerIsAlwaysLive || - (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0 - ); -} -function assertConsumerNode(node) { - node.producerNode ?? (node.producerNode = []); - node.producerIndexOfThis ?? (node.producerIndexOfThis = []); - node.producerLastReadVersion ?? (node.producerLastReadVersion = []); -} -function assertProducerNode(node) { - node.liveConsumerNode ?? (node.liveConsumerNode = []); - node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []); -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function computedGet(node) { - producerUpdateValueVersion(node); - producerAccessed(node); - if (node.value === ERRORED) { - throw node.error; - } - return node.value; -} -function createComputed(computation) { - const node = Object.create(COMPUTED_NODE); - node.computation = computation; - const computed = () => computedGet(node); - computed[SIGNAL] = node; - return computed; -} -const UNSET = /* @__PURE__ */ Symbol("UNSET"); -const COMPUTING = /* @__PURE__ */ Symbol("COMPUTING"); -const ERRORED = /* @__PURE__ */ Symbol("ERRORED"); -const COMPUTED_NODE = /* @__PURE__ */ (() => { - return { - ...REACTIVE_NODE, - value: UNSET, - dirty: true, - error: null, - equal: defaultEquals, - producerMustRecompute(node) { - return node.value === UNSET || node.value === COMPUTING; - }, - producerRecomputeValue(node) { - if (node.value === COMPUTING) { - throw new Error("Detected cycle in computations."); - } - const oldValue = node.value; - node.value = COMPUTING; - const prevConsumer = consumerBeforeComputation(node); - let newValue; - let wasEqual = false; - try { - newValue = node.computation.call(node.wrapper); - const oldOk = oldValue !== UNSET && oldValue !== ERRORED; - wasEqual = oldOk && node.equal.call(node.wrapper, oldValue, newValue); - } catch (err) { - newValue = ERRORED; - node.error = err; - } finally { - consumerAfterComputation(node, prevConsumer); - } - if (wasEqual) { - node.value = oldValue; - return; - } - node.value = newValue; - node.version++; - }, - }; -})(); -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function defaultThrowError() { - throw new Error(); -} -let throwInvalidWriteToSignalErrorFn = defaultThrowError; -function throwInvalidWriteToSignalError() { - throwInvalidWriteToSignalErrorFn(); -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function createSignal(initialValue) { - const node = Object.create(SIGNAL_NODE); - node.value = initialValue; - const getter = () => { - producerAccessed(node); - return node.value; - }; - getter[SIGNAL] = node; - return getter; -} -function signalGetFn() { - producerAccessed(this); - return this.value; -} -function signalSetFn(node, newValue) { - if (!producerUpdatesAllowed()) { - throwInvalidWriteToSignalError(); - } - if (!node.equal.call(node.wrapper, node.value, newValue)) { - node.value = newValue; - signalValueChanged(node); - } -} -const SIGNAL_NODE = /* @__PURE__ */ (() => { - return { - ...REACTIVE_NODE, - equal: defaultEquals, - value: void 0, - }; -})(); -function signalValueChanged(node) { - node.version++; - producerIncrementEpoch(); - producerNotifyConsumers(node); -} -/** - * @license - * Copyright 2024 Bloomberg Finance L.P. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const NODE = Symbol("node"); -var Signal; -((Signal2) => { - var _a, _brand, brand_fn, _b, _brand2, brand_fn2; - class State { - constructor(initialValue, options = {}) { - __privateAdd(this, _brand); - __publicField(this, _a); - const ref = createSignal(initialValue); - const node = ref[SIGNAL]; - this[NODE] = node; - node.wrapper = this; - if (options) { - const equals = options.equals; - if (equals) { - node.equal = equals; - } - node.watched = options[Signal2.subtle.watched]; - node.unwatched = options[Signal2.subtle.unwatched]; - } - } - get() { - if (!(0, Signal2.isState)(this)) - throw new TypeError("Wrong receiver type for Signal.State.prototype.get"); - return signalGetFn.call(this[NODE]); - } - set(newValue) { - if (!(0, Signal2.isState)(this)) - throw new TypeError("Wrong receiver type for Signal.State.prototype.set"); - if (isInNotificationPhase()) { - throw new Error("Writes to signals not permitted during Watcher callback"); - } - const ref = this[NODE]; - signalSetFn(ref, newValue); - } - } - _a = NODE; - _brand = new WeakSet(); - brand_fn = function () {}; - Signal2.isState = (s) => typeof s === "object" && __privateIn(_brand, s); - Signal2.State = State; - class Computed { - constructor(computation, options) { - __privateAdd(this, _brand2); - __publicField(this, _b); - const ref = createComputed(computation); - const node = ref[SIGNAL]; - node.consumerAllowSignalWrites = true; - this[NODE] = node; - node.wrapper = this; - if (options) { - const equals = options.equals; - if (equals) { - node.equal = equals; - } - node.watched = options[Signal2.subtle.watched]; - node.unwatched = options[Signal2.subtle.unwatched]; - } - } - get() { - if (!(0, Signal2.isComputed)(this)) - throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get"); - return computedGet(this[NODE]); - } - } - _b = NODE; - _brand2 = new WeakSet(); - brand_fn2 = function () {}; - Signal2.isComputed = (c) => typeof c === "object" && __privateIn(_brand2, c); - Signal2.Computed = Computed; - ((subtle2) => { - var _a2, _brand3, brand_fn3, _assertSignals, assertSignals_fn; - function untrack(cb) { - let output; - let prevActiveConsumer = null; - try { - prevActiveConsumer = setActiveConsumer(null); - output = cb(); - } finally { - setActiveConsumer(prevActiveConsumer); - } - return output; - } - subtle2.untrack = untrack; - function introspectSources(sink) { - var _a3; - if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) { - throw new TypeError("Called introspectSources without a Computed or Watcher argument"); - } - return ((_a3 = sink[NODE].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? []; - } - subtle2.introspectSources = introspectSources; - function introspectSinks(signal) { - var _a3; - if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) { - throw new TypeError("Called introspectSinks without a Signal argument"); - } - return ( - ((_a3 = signal[NODE].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [] - ); - } - subtle2.introspectSinks = introspectSinks; - function hasSinks(signal) { - if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) { - throw new TypeError("Called hasSinks without a Signal argument"); - } - const liveConsumerNode = signal[NODE].liveConsumerNode; - if (!liveConsumerNode) return false; - return liveConsumerNode.length > 0; - } - subtle2.hasSinks = hasSinks; - function hasSources(signal) { - if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) { - throw new TypeError("Called hasSources without a Computed or Watcher argument"); - } - const producerNode = signal[NODE].producerNode; - if (!producerNode) return false; - return producerNode.length > 0; - } - subtle2.hasSources = hasSources; - class Watcher { - constructor(notify) { - __privateAdd(this, _brand3); - __privateAdd(this, _assertSignals); - __publicField(this, _a2); - let node = Object.create(REACTIVE_NODE); - node.wrapper = this; - node.consumerMarkedDirty = notify; - node.consumerIsAlwaysLive = true; - node.consumerAllowSignalWrites = false; - node.producerNode = []; - this[NODE] = node; - } - watch(...signals) { - if (!(0, Signal2.isWatcher)(this)) { - throw new TypeError("Called unwatch without Watcher receiver"); - } - __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals); - const node = this[NODE]; - node.dirty = false; - const prev = setActiveConsumer(node); - for (const signal of signals) { - producerAccessed(signal[NODE]); - } - setActiveConsumer(prev); - } - unwatch(...signals) { - if (!(0, Signal2.isWatcher)(this)) { - throw new TypeError("Called unwatch without Watcher receiver"); - } - __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals); - const node = this[NODE]; - assertConsumerNode(node); - for (let i = node.producerNode.length - 1; i >= 0; i--) { - if (signals.includes(node.producerNode[i].wrapper)) { - producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]); - const lastIdx = node.producerNode.length - 1; - node.producerNode[i] = node.producerNode[lastIdx]; - node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx]; - node.producerNode.length--; - node.producerIndexOfThis.length--; - node.nextProducerIndex--; - if (i < node.producerNode.length) { - const idxConsumer = node.producerIndexOfThis[i]; - const producer = node.producerNode[i]; - assertProducerNode(producer); - producer.liveConsumerIndexOfThis[idxConsumer] = i; - } - } - } - } - getPending() { - if (!(0, Signal2.isWatcher)(this)) { - throw new TypeError("Called getPending without Watcher receiver"); - } - const node = this[NODE]; - return node.producerNode.filter((n) => n.dirty).map((n) => n.wrapper); - } - } - _a2 = NODE; - _brand3 = new WeakSet(); - brand_fn3 = function () {}; - _assertSignals = new WeakSet(); - assertSignals_fn = function (signals) { - for (const signal of signals) { - if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) { - throw new TypeError("Called watch/unwatch without a Computed or State argument"); - } - } - }; - Signal2.isWatcher = (w) => __privateIn(_brand3, w); - subtle2.Watcher = Watcher; - function currentComputed() { - var _a3; - return (_a3 = getActiveConsumer()) == null ? void 0 : _a3.wrapper; - } - subtle2.currentComputed = currentComputed; - subtle2.watched = Symbol("watched"); - subtle2.unwatched = Symbol("unwatched"); - })(Signal2.subtle || (Signal2.subtle = {})); -})(Signal || (Signal = {})); - -/** - * equality check here is always false so that we can dirty the storage - * via setting to _anything_ - * - * - * This is for a pattern where we don't *directly* use signals to back the values used in collections - * so that instanceof checks and getters and other native features "just work" without having - * to do nested proxying. - * - * (though, see deep.ts for nested / deep behavior) - */ -const createStorage = (initial = null) => new Signal.State(initial, { equals: () => false }); -/** - * Just an alias for brevity - */ -const BOUND_FUNS = new WeakMap(); -function fnCacheFor(context) { - let fnCache = BOUND_FUNS.get(context); - if (!fnCache) { - fnCache = new Map(); - BOUND_FUNS.set(context, fnCache); - } - return fnCache; -} - -const ARRAY_GETTER_METHODS = new Set([ - Symbol.iterator, - "concat", - "entries", - "every", - "filter", - "find", - "findIndex", - "flat", - "flatMap", - "forEach", - "includes", - "indexOf", - "join", - "keys", - "lastIndexOf", - "map", - "reduce", - "reduceRight", - "slice", - "some", - "values", -]); -const ARRAY_WRITE_THEN_READ_METHODS = new Set(["fill", "push", "unshift"]); -function convertToInt(prop) { - if (typeof prop === "symbol") return null; - const num = Number(prop); - if (isNaN(num)) return null; - return num % 1 === 0 ? num : null; -} -var SignalArray = class SignalArray { - /** - * Creates an array from an iterable object. - * @param iterable An iterable object to convert to an array. - */ - /** - * Creates an array from an iterable object. - * @param iterable An iterable object to convert to an array. - * @param mapfn A mapping function to call on every element of the array. - * @param thisArg Value of 'this' used to invoke the mapfn. - */ - static from(iterable, mapfn, thisArg) { - return mapfn - ? new SignalArray(Array.from(iterable, mapfn, thisArg)) - : new SignalArray(Array.from(iterable)); - } - static of(...arr) { - return new SignalArray(arr); - } - constructor(arr = []) { - let clone = arr.slice(); - let self = this; - let boundFns = new Map(); - /** - Flag to track whether we have *just* intercepted a call to `.push()` or - `.unshift()`, since in those cases (and only those cases!) the `Array` - itself checks `.length` to return from the function call. - */ - let nativelyAccessingLengthFromPushOrUnshift = false; - return new Proxy(clone, { - get(target, prop) { - let index = convertToInt(prop); - if (index !== null) { - self.#readStorageFor(index); - self.#collection.get(); - return target[index]; - } - if (prop === "length") { - if (nativelyAccessingLengthFromPushOrUnshift) { - nativelyAccessingLengthFromPushOrUnshift = false; - } else { - self.#collection.get(); - } - return target[prop]; - } - if (ARRAY_WRITE_THEN_READ_METHODS.has(prop)) { - nativelyAccessingLengthFromPushOrUnshift = true; - } - if (ARRAY_GETTER_METHODS.has(prop)) { - let fn = boundFns.get(prop); - if (fn === undefined) { - fn = (...args) => { - self.#collection.get(); - return target[prop](...args); - }; - boundFns.set(prop, fn); - } - return fn; - } - return target[prop]; - }, - set(target, prop, value) { - target[prop] = value; - let index = convertToInt(prop); - if (index !== null) { - self.#dirtyStorageFor(index); - self.#collection.set(null); - } else if (prop === "length") { - self.#collection.set(null); - } - return true; - }, - getPrototypeOf() { - return SignalArray.prototype; - }, - }); - } - #collection = createStorage(); - #storages = new Map(); - #readStorageFor(index) { - let storage = this.#storages.get(index); - if (storage === undefined) { - storage = createStorage(); - this.#storages.set(index, storage); - } - storage.get(); - } - #dirtyStorageFor(index) { - const storage = this.#storages.get(index); - if (storage) { - storage.set(null); - } - } -}; -Object.setPrototypeOf(SignalArray.prototype, Array.prototype); -function signalArray(x) { - return new SignalArray(x); -} - -var SignalMap = class { - collection = createStorage(); - storages = new Map(); - vals; - readStorageFor(key) { - const { storages } = this; - let storage = storages.get(key); - if (storage === undefined) { - storage = createStorage(); - storages.set(key, storage); - } - storage.get(); - } - dirtyStorageFor(key) { - const storage = this.storages.get(key); - if (storage) { - storage.set(null); - } - } - constructor(existing) { - this.vals = existing ? new Map(existing) : new Map(); - } - get(key) { - this.readStorageFor(key); - return this.vals.get(key); - } - has(key) { - this.readStorageFor(key); - return this.vals.has(key); - } - entries() { - this.collection.get(); - return this.vals.entries(); - } - keys() { - this.collection.get(); - return this.vals.keys(); - } - values() { - this.collection.get(); - return this.vals.values(); - } - forEach(fn) { - this.collection.get(); - this.vals.forEach(fn); - } - get size() { - this.collection.get(); - return this.vals.size; - } - [Symbol.iterator]() { - this.collection.get(); - return this.vals[Symbol.iterator](); - } - get [Symbol.toStringTag]() { - return this.vals[Symbol.toStringTag]; - } - set(key, value) { - this.dirtyStorageFor(key); - this.collection.set(null); - this.vals.set(key, value); - return this; - } - delete(key) { - this.dirtyStorageFor(key); - this.collection.set(null); - return this.vals.delete(key); - } - clear() { - this.storages.forEach((s) => s.set(null)); - this.collection.set(null); - this.vals.clear(); - } -}; -Object.setPrototypeOf(SignalMap.prototype, Map.prototype); - -/** - * Implementation based of tracked-built-ins' TrackedObject - * https://github.com/tracked-tools/tracked-built-ins/blob/master/addon/src/-private/object.js - */ -var SignalObjectImpl = class SignalObjectImpl { - static fromEntries(entries) { - return new SignalObjectImpl(Object.fromEntries(entries)); - } - #storages = new Map(); - #collection = createStorage(); - constructor(obj = {}) { - let proto = Object.getPrototypeOf(obj); - let descs = Object.getOwnPropertyDescriptors(obj); - let clone = Object.create(proto); - for (let prop in descs) { - Object.defineProperty(clone, prop, descs[prop]); - } - let self = this; - return new Proxy(clone, { - get(target, prop, receiver) { - self.#readStorageFor(prop); - return Reflect.get(target, prop, receiver); - }, - has(target, prop) { - self.#readStorageFor(prop); - return prop in target; - }, - ownKeys(target) { - self.#collection.get(); - return Reflect.ownKeys(target); - }, - set(target, prop, value, receiver) { - let result = Reflect.set(target, prop, value, receiver); - self.#dirtyStorageFor(prop); - self.#dirtyCollection(); - return result; - }, - deleteProperty(target, prop) { - if (prop in target) { - delete target[prop]; - self.#dirtyStorageFor(prop); - self.#dirtyCollection(); - } - return true; - }, - getPrototypeOf() { - return SignalObjectImpl.prototype; - }, - }); - } - #readStorageFor(key) { - let storage = this.#storages.get(key); - if (storage === undefined) { - storage = createStorage(); - this.#storages.set(key, storage); - } - storage.get(); - } - #dirtyStorageFor(key) { - const storage = this.#storages.get(key); - if (storage) { - storage.set(null); - } - } - #dirtyCollection() { - this.#collection.set(null); - } -}; -/** - * Create a reactive Object, backed by Signals, using a Proxy. - * This allows dynamic creation and deletion of signals using the object primitive - * APIs that most folks are familiar with -- the only difference is instantiation. - * ```js - * const obj = new SignalObject({ foo: 123 }); - * - * obj.foo // 123 - * obj.foo = 456 - * obj.foo // 456 - * obj.bar = 2 - * obj.bar // 2 - * ``` - */ -const SignalObject = SignalObjectImpl; -function signalObject(obj) { - return new SignalObject(obj); -} - -var SignalSet = class { - collection = createStorage(); - storages = new Map(); - vals; - storageFor(key) { - const storages = this.storages; - let storage = storages.get(key); - if (storage === undefined) { - storage = createStorage(); - storages.set(key, storage); - } - return storage; - } - dirtyStorageFor(key) { - const storage = this.storages.get(key); - if (storage) { - storage.set(null); - } - } - constructor(existing) { - this.vals = new Set(existing); - } - has(value) { - this.storageFor(value).get(); - return this.vals.has(value); - } - entries() { - this.collection.get(); - return this.vals.entries(); - } - keys() { - this.collection.get(); - return this.vals.keys(); - } - values() { - this.collection.get(); - return this.vals.values(); - } - forEach(fn) { - this.collection.get(); - this.vals.forEach(fn); - } - get size() { - this.collection.get(); - return this.vals.size; - } - [Symbol.iterator]() { - this.collection.get(); - return this.vals[Symbol.iterator](); - } - get [Symbol.toStringTag]() { - return this.vals[Symbol.toStringTag]; - } - add(value) { - this.dirtyStorageFor(value); - this.collection.set(null); - this.vals.add(value); - return this; - } - delete(value) { - this.dirtyStorageFor(value); - this.collection.set(null); - return this.vals.delete(value); - } - clear() { - this.storages.forEach((s) => s.set(null)); - this.collection.set(null); - this.vals.clear(); - } -}; -Object.setPrototypeOf(SignalSet.prototype, Set.prototype); - -function create() { - return new A2uiMessageProcessor({ - arrayCtor: SignalArray, - mapCtor: SignalMap, - objCtor: SignalObject, - setCtor: SignalSet, - }); -} - -var server_to_client_with_standard_catalog_default = { - title: "A2UI Message Schema", - description: - "Describes a JSON payload for an A2UI (Agent to UI) message, which is used to dynamically construct and update user interfaces. A message MUST contain exactly ONE of the action properties: 'beginRendering', 'surfaceUpdate', 'dataModelUpdate', or 'deleteSurface'.", - type: "object", - additionalProperties: false, - properties: { - beginRendering: { - type: "object", - description: - "Signals the client to begin rendering a surface with a root component and specific styles.", - additionalProperties: false, - properties: { - surfaceId: { - type: "string", - description: "The unique identifier for the UI surface to be rendered.", - }, - root: { - type: "string", - description: "The ID of the root component to render.", - }, - styles: { - type: "object", - description: "Styling information for the UI.", - additionalProperties: false, - properties: { - font: { - type: "string", - description: "The primary font for the UI.", - }, - primaryColor: { - type: "string", - description: "The primary UI color as a hexadecimal code (e.g., '#00BFFF').", - pattern: "^#[0-9a-fA-F]{6}$", - }, - }, - }, - }, - required: ["root", "surfaceId"], - }, - surfaceUpdate: { - type: "object", - description: "Updates a surface with a new set of components.", - additionalProperties: false, - properties: { - surfaceId: { - type: "string", - description: - "The unique identifier for the UI surface to be updated. If you are adding a new surface this *must* be a new, unique identified that has never been used for any existing surfaces shown.", - }, - components: { - type: "array", - description: "A list containing all UI components for the surface.", - minItems: 1, - items: { - type: "object", - description: - "Represents a *single* component in a UI widget tree. This component could be one of many supported types.", - additionalProperties: false, - properties: { - id: { - type: "string", - description: "The unique identifier for this component.", - }, - weight: { - type: "number", - description: - "The relative weight of this component within a Row or Column. This corresponds to the CSS 'flex-grow' property. Note: this may ONLY be set when the component is a direct descendant of a Row or Column.", - }, - component: { - type: "object", - description: - "A wrapper object that MUST contain exactly one key, which is the name of the component type (e.g., 'Heading'). The value is an object containing the properties for that specific component.", - additionalProperties: false, - properties: { - Text: { - type: "object", - additionalProperties: false, - properties: { - text: { - type: "object", - description: - "The text content to display. This can be a literal string or a reference to a value in the data model ('path', e.g., '/doc/title'). While simple Markdown formatting is supported (i.e. without HTML, images, or links), utilizing dedicated UI components is generally preferred for a richer and more structured presentation.", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - usageHint: { - type: "string", - description: - "A hint for the base text style. One of:\n- `h1`: Largest heading.\n- `h2`: Second largest heading.\n- `h3`: Third largest heading.\n- `h4`: Fourth largest heading.\n- `h5`: Fifth largest heading.\n- `caption`: Small text for captions.\n- `body`: Standard body text.", - enum: ["h1", "h2", "h3", "h4", "h5", "caption", "body"], - }, - }, - required: ["text"], - }, - Image: { - type: "object", - additionalProperties: false, - properties: { - url: { - type: "object", - description: - "The URL of the image to display. This can be a literal string ('literal') or a reference to a value in the data model ('path', e.g. '/thumbnail/url').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - fit: { - type: "string", - description: - "Specifies how the image should be resized to fit its container. This corresponds to the CSS 'object-fit' property.", - enum: ["contain", "cover", "fill", "none", "scale-down"], - }, - usageHint: { - type: "string", - description: - "A hint for the image size and style. One of:\n- `icon`: Small square icon.\n- `avatar`: Circular avatar image.\n- `smallFeature`: Small feature image.\n- `mediumFeature`: Medium feature image.\n- `largeFeature`: Large feature image.\n- `header`: Full-width, full bleed, header image.", - enum: [ - "icon", - "avatar", - "smallFeature", - "mediumFeature", - "largeFeature", - "header", - ], - }, - }, - required: ["url"], - }, - Icon: { - type: "object", - additionalProperties: false, - properties: { - name: { - type: "object", - description: - "The name of the icon to display. This can be a literal string or a reference to a value in the data model ('path', e.g. '/form/submit').", - additionalProperties: false, - properties: { - literalString: { - type: "string", - enum: [ - "accountCircle", - "add", - "arrowBack", - "arrowForward", - "attachFile", - "calendarToday", - "call", - "camera", - "check", - "close", - "delete", - "download", - "edit", - "event", - "error", - "favorite", - "favoriteOff", - "folder", - "help", - "home", - "info", - "locationOn", - "lock", - "lockOpen", - "mail", - "menu", - "moreVert", - "moreHoriz", - "notificationsOff", - "notifications", - "payment", - "person", - "phone", - "photo", - "print", - "refresh", - "search", - "send", - "settings", - "share", - "shoppingCart", - "star", - "starHalf", - "starOff", - "upload", - "visibility", - "visibilityOff", - "warning", - ], - }, - path: { type: "string" }, - }, - }, - }, - required: ["name"], - }, - Video: { - type: "object", - additionalProperties: false, - properties: { - url: { - type: "object", - description: - "The URL of the video to display. This can be a literal string or a reference to a value in the data model ('path', e.g. '/video/url').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - }, - required: ["url"], - }, - AudioPlayer: { - type: "object", - additionalProperties: false, - properties: { - url: { - type: "object", - description: - "The URL of the audio to be played. This can be a literal string ('literal') or a reference to a value in the data model ('path', e.g. '/song/url').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - description: { - type: "object", - description: - "A description of the audio, such as a title or summary. This can be a literal string or a reference to a value in the data model ('path', e.g. '/song/title').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - }, - required: ["url"], - }, - Row: { - type: "object", - additionalProperties: false, - properties: { - children: { - type: "object", - description: - "Defines the children. Use 'explicitList' for a fixed set of children, or 'template' to generate children from a data list.", - additionalProperties: false, - properties: { - explicitList: { - type: "array", - items: { type: "string" }, - }, - template: { - type: "object", - description: - "A template for generating a dynamic list of children from a data model list. `componentId` is the component to use as a template, and `dataBinding` is the path to the map of components in the data model. Values in the map will define the list of children.", - additionalProperties: false, - properties: { - componentId: { type: "string" }, - dataBinding: { type: "string" }, - }, - required: ["componentId", "dataBinding"], - }, - }, - }, - distribution: { - type: "string", - description: - "Defines the arrangement of children along the main axis (horizontally). This corresponds to the CSS 'justify-content' property.", - enum: [ - "center", - "end", - "spaceAround", - "spaceBetween", - "spaceEvenly", - "start", - ], - }, - alignment: { - type: "string", - description: - "Defines the alignment of children along the cross axis (vertically). This corresponds to the CSS 'align-items' property.", - enum: ["start", "center", "end", "stretch"], - }, - }, - required: ["children"], - }, - Column: { - type: "object", - additionalProperties: false, - properties: { - children: { - type: "object", - description: - "Defines the children. Use 'explicitList' for a fixed set of children, or 'template' to generate children from a data list.", - additionalProperties: false, - properties: { - explicitList: { - type: "array", - items: { type: "string" }, - }, - template: { - type: "object", - description: - "A template for generating a dynamic list of children from a data model list. `componentId` is the component to use as a template, and `dataBinding` is the path to the map of components in the data model. Values in the map will define the list of children.", - additionalProperties: false, - properties: { - componentId: { type: "string" }, - dataBinding: { type: "string" }, - }, - required: ["componentId", "dataBinding"], - }, - }, - }, - distribution: { - type: "string", - description: - "Defines the arrangement of children along the main axis (vertically). This corresponds to the CSS 'justify-content' property.", - enum: [ - "start", - "center", - "end", - "spaceBetween", - "spaceAround", - "spaceEvenly", - ], - }, - alignment: { - type: "string", - description: - "Defines the alignment of children along the cross axis (horizontally). This corresponds to the CSS 'align-items' property.", - enum: ["center", "end", "start", "stretch"], - }, - }, - required: ["children"], - }, - List: { - type: "object", - additionalProperties: false, - properties: { - children: { - type: "object", - description: - "Defines the children. Use 'explicitList' for a fixed set of children, or 'template' to generate children from a data list.", - additionalProperties: false, - properties: { - explicitList: { - type: "array", - items: { type: "string" }, - }, - template: { - type: "object", - description: - "A template for generating a dynamic list of children from a data model list. `componentId` is the component to use as a template, and `dataBinding` is the path to the map of components in the data model. Values in the map will define the list of children.", - additionalProperties: false, - properties: { - componentId: { type: "string" }, - dataBinding: { type: "string" }, - }, - required: ["componentId", "dataBinding"], - }, - }, - }, - direction: { - type: "string", - description: "The direction in which the list items are laid out.", - enum: ["vertical", "horizontal"], - }, - alignment: { - type: "string", - description: "Defines the alignment of children along the cross axis.", - enum: ["start", "center", "end", "stretch"], - }, - }, - required: ["children"], - }, - Card: { - type: "object", - additionalProperties: false, - properties: { - child: { - type: "string", - description: "The ID of the component to be rendered inside the card.", - }, - }, - required: ["child"], - }, - Tabs: { - type: "object", - additionalProperties: false, - properties: { - tabItems: { - type: "array", - description: - "An array of objects, where each object defines a tab with a title and a child component.", - items: { - type: "object", - additionalProperties: false, - properties: { - title: { - type: "object", - description: - "The tab title. Defines the value as either a literal value or a path to data model value (e.g. '/options/title').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - child: { type: "string" }, - }, - required: ["title", "child"], - }, - }, - }, - required: ["tabItems"], - }, - Divider: { - type: "object", - additionalProperties: false, - properties: { - axis: { - type: "string", - description: "The orientation of the divider.", - enum: ["horizontal", "vertical"], - }, - }, - }, - Modal: { - type: "object", - additionalProperties: false, - properties: { - entryPointChild: { - type: "string", - description: - "The ID of the component that opens the modal when interacted with (e.g., a button).", - }, - contentChild: { - type: "string", - description: "The ID of the component to be displayed inside the modal.", - }, - }, - required: ["entryPointChild", "contentChild"], - }, - Button: { - type: "object", - additionalProperties: false, - properties: { - child: { - type: "string", - description: - "The ID of the component to display in the button, typically a Text component.", - }, - primary: { - type: "boolean", - description: - "Indicates if this button should be styled as the primary action.", - }, - action: { - type: "object", - description: - "The client-side action to be dispatched when the button is clicked. It includes the action's name and an optional context payload.", - additionalProperties: false, - properties: { - name: { type: "string" }, - context: { - type: "array", - items: { - type: "object", - additionalProperties: false, - properties: { - key: { type: "string" }, - value: { - type: "object", - description: - "Defines the value to be included in the context as either a literal value or a path to a data model value (e.g. '/user/name').", - additionalProperties: false, - properties: { - path: { type: "string" }, - literalString: { type: "string" }, - literalNumber: { type: "number" }, - literalBoolean: { type: "boolean" }, - }, - }, - }, - required: ["key", "value"], - }, - }, - }, - required: ["name"], - }, - }, - required: ["child", "action"], - }, - CheckBox: { - type: "object", - additionalProperties: false, - properties: { - label: { - type: "object", - description: - "The text to display next to the checkbox. Defines the value as either a literal value or a path to data model ('path', e.g. '/option/label').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - value: { - type: "object", - description: - "The current state of the checkbox (true for checked, false for unchecked). This can be a literal boolean ('literalBoolean') or a reference to a value in the data model ('path', e.g. '/filter/open').", - additionalProperties: false, - properties: { - literalBoolean: { type: "boolean" }, - path: { type: "string" }, - }, - }, - }, - required: ["label", "value"], - }, - TextField: { - type: "object", - additionalProperties: false, - properties: { - label: { - type: "object", - description: - "The text label for the input field. This can be a literal string or a reference to a value in the data model ('path, e.g. '/user/name').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - text: { - type: "object", - description: - "The value of the text field. This can be a literal string or a reference to a value in the data model ('path', e.g. '/user/name').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - textFieldType: { - type: "string", - description: "The type of input field to display.", - enum: ["date", "longText", "number", "shortText", "obscured"], - }, - validationRegexp: { - type: "string", - description: - "A regular expression used for client-side validation of the input.", - }, - }, - required: ["label"], - }, - DateTimeInput: { - type: "object", - additionalProperties: false, - properties: { - value: { - type: "object", - description: - "The selected date and/or time value. This can be a literal string ('literalString') or a reference to a value in the data model ('path', e.g. '/user/dob').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - enableDate: { - type: "boolean", - description: "If true, allows the user to select a date.", - }, - enableTime: { - type: "boolean", - description: "If true, allows the user to select a time.", - }, - outputFormat: { - type: "string", - description: - "The desired format for the output string after a date or time is selected.", - }, - }, - required: ["value"], - }, - MultipleChoice: { - type: "object", - additionalProperties: false, - properties: { - selections: { - type: "object", - description: - "The currently selected values for the component. This can be a literal array of strings or a path to an array in the data model('path', e.g. '/hotel/options').", - additionalProperties: false, - properties: { - literalArray: { - type: "array", - items: { type: "string" }, - }, - path: { type: "string" }, - }, - }, - options: { - type: "array", - description: "An array of available options for the user to choose from.", - items: { - type: "object", - additionalProperties: false, - properties: { - label: { - type: "object", - description: - "The text to display for this option. This can be a literal string or a reference to a value in the data model (e.g. '/option/label').", - additionalProperties: false, - properties: { - literalString: { type: "string" }, - path: { type: "string" }, - }, - }, - value: { - type: "string", - description: - "The value to be associated with this option when selected.", - }, - }, - required: ["label", "value"], - }, - }, - maxAllowedSelections: { - type: "integer", - description: - "The maximum number of options that the user is allowed to select.", - }, - }, - required: ["selections", "options"], - }, - Slider: { - type: "object", - additionalProperties: false, - properties: { - value: { - type: "object", - description: - "The current value of the slider. This can be a literal number ('literalNumber') or a reference to a value in the data model ('path', e.g. '/restaurant/cost').", - additionalProperties: false, - properties: { - literalNumber: { type: "number" }, - path: { type: "string" }, - }, - }, - minValue: { - type: "number", - description: "The minimum value of the slider.", - }, - maxValue: { - type: "number", - description: "The maximum value of the slider.", - }, - }, - required: ["value"], - }, - }, - }, - }, - required: ["id", "component"], - }, - }, - }, - required: ["surfaceId", "components"], - }, - dataModelUpdate: { - type: "object", - description: "Updates the data model for a surface.", - additionalProperties: false, - properties: { - surfaceId: { - type: "string", - description: - "The unique identifier for the UI surface this data model update applies to.", - }, - path: { - type: "string", - description: - "An optional path to a location within the data model (e.g., '/user/name'). If omitted, or set to '/', the entire data model will be replaced.", - }, - contents: { - type: "array", - description: - "An array of data entries. Each entry must contain a 'key' and exactly one corresponding typed 'value*' property.", - items: { - type: "object", - description: - "A single data entry. Exactly one 'value*' property should be provided alongside the key.", - additionalProperties: false, - properties: { - key: { - type: "string", - description: "The key for this data entry.", - }, - valueString: { type: "string" }, - valueNumber: { type: "number" }, - valueBoolean: { type: "boolean" }, - valueMap: { - description: "Represents a map as an adjacency list.", - type: "array", - items: { - type: "object", - description: - "One entry in the map. Exactly one 'value*' property should be provided alongside the key.", - additionalProperties: false, - properties: { - key: { type: "string" }, - valueString: { type: "string" }, - valueNumber: { type: "number" }, - valueBoolean: { type: "boolean" }, - }, - required: ["key"], - }, - }, - }, - required: ["key"], - }, - }, - }, - required: ["contents", "surfaceId"], - }, - deleteSurface: { - type: "object", - description: "Signals the client to delete the surface identified by 'surfaceId'.", - additionalProperties: false, - properties: { - surfaceId: { - type: "string", - description: "The unique identifier for the UI surface to be deleted.", - }, - }, - required: ["surfaceId"], - }, - }, -}; - -const Data = { - createSignalA2uiMessageProcessor: create, - A2uiMessageProcessor, - Guards: guards_exports, -}; -const Schemas = { A2UIClientEventMessage: server_to_client_with_standard_catalog_default }; - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const t$1 = (t) => (e, o) => { - void 0 !== o - ? o.addInitializer(() => { - customElements.define(t, e); - }) - : customElements.define(t, e); -}; - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const o$9 = { - attribute: !0, - type: String, - converter: u$3, - reflect: !1, - hasChanged: f$3, - }, - r$7 = (t = o$9, e, r) => { - const { kind: n, metadata: i } = r; - let s = globalThis.litPropertyMetadata.get(i); - if ( - (void 0 === s && globalThis.litPropertyMetadata.set(i, (s = new Map())), - "setter" === n && ((t = Object.create(t)).wrapped = !0), - s.set(r.name, t), - "accessor" === n) - ) { - const { name: o } = r; - return { - set(r) { - const n = e.get.call(this); - (e.set.call(this, r), this.requestUpdate(o, n, t, !0, r)); - }, - init(e) { - return (void 0 !== e && this.C(o, void 0, t, e), e); - }, - }; - } - if ("setter" === n) { - const { name: o } = r; - return function (r) { - const n = this[o]; - (e.call(this, r), this.requestUpdate(o, n, t, !0, r)); - }; - } - throw Error("Unsupported decorator location: " + n); - }; -function n$6(t) { - return (e, o) => - "object" == typeof o - ? r$7(t, e, o) - : ((t, e, o) => { - const r = e.hasOwnProperty(o); - return ( - e.constructor.createProperty(o, t), r ? Object.getOwnPropertyDescriptor(e, o) : void 0 - ); - })(t, e, o); -} - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ function r$6(r) { - return n$6({ - ...r, - state: !0, - attribute: !1, - }); -} - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -function t(t) { - return (n, o) => { - const c = "function" == typeof n ? n : n[o]; - Object.assign(c, t); - }; -} - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const e$6 = (e, t, c) => ( - (c.configurable = !0), - (c.enumerable = !0), - Reflect.decorate && "object" != typeof t && Object.defineProperty(e, t, c), - c -); - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ function e$5(e, r) { - return (n, s, i) => { - const o = (t) => t.renderRoot?.querySelector(e) ?? null; - if (r) { - const { get: e, set: r } = - "object" == typeof s - ? n - : (i ?? - (() => { - const t = Symbol(); - return { - get() { - return this[t]; - }, - set(e) { - this[t] = e; - }, - }; - })()); - return e$6(n, s, { - get() { - let t = e.call(this); - return ( - void 0 === t && ((t = o(this)), (null !== t || this.hasUpdated) && r.call(this, t)), t - ); - }, - }); - } - return e$6(n, s, { - get() { - return o(this); - }, - }); - }; -} - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -let e$4; -function r$5(r) { - return (n, o) => - e$6(n, o, { - get() { - return (this.renderRoot ?? (e$4 ??= document.createDocumentFragment())).querySelectorAll(r); - }, - }); -} - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -function r$4(r) { - return (n, e) => - e$6(n, e, { - async get() { - return (await this.updateComplete, this.renderRoot?.querySelector(r) ?? null); - }, - }); -} - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ function o$8(o) { - return (e, n) => { - const { slot: r, selector: s } = o ?? {}, - c = "slot" + (r ? `[name=${r}]` : ":not([name])"); - return e$6(e, n, { - get() { - const t = this.renderRoot?.querySelector(c), - e = t?.assignedElements(o) ?? []; - return void 0 === s ? e : e.filter((t) => t.matches(s)); - }, - }); - }; -} - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ function n$5(n) { - return (o, r) => { - const { slot: e } = n ?? {}, - s = "slot" + (e ? `[name=${e}]` : ":not([name])"); - return e$6(o, r, { - get() { - const t = this.renderRoot?.querySelector(s); - return t?.assignedNodes(n) ?? []; - }, - }); - }; -} - -/** - * @license - * Copyright 2023 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ let i$2 = !1; -const s$1 = new Signal.subtle.Watcher(() => { - i$2 || - ((i$2 = !0), - queueMicrotask(() => { - i$2 = !1; - for (const t of s$1.getPending()) t.get(); - s$1.watch(); - })); - }), - h$3 = Symbol("SignalWatcherBrand"), - e$3 = new FinalizationRegistry((i) => { - i.unwatch(...Signal.subtle.introspectSources(i)); - }), - n$4 = new WeakMap(); -function o$7(i) { - return !0 === i[h$3] - ? (console.warn("SignalWatcher should not be applied to the same class more than once."), i) - : class extends i { - constructor() { - (super(...arguments), - (this._$St = new Map()), - (this._$So = new Signal.State(0)), - (this._$Si = !1)); - } - _$Sl() { - var t, i; - const s = [], - h = []; - this._$St.forEach((t, i) => { - ((null == t ? void 0 : t.beforeUpdate) ? s : h).push(i); - }); - const e = - null === (t = this.h) || void 0 === t - ? void 0 - : t.getPending().filter((t) => t !== this._$Su && !this._$St.has(t)); - (s.forEach((t) => t.get()), - null === (i = this._$Su) || void 0 === i || i.get(), - e.forEach((t) => t.get()), - h.forEach((t) => t.get())); - } - _$Sv() { - this.isUpdatePending || - queueMicrotask(() => { - this.isUpdatePending || this._$Sl(); - }); - } - _$S_() { - if (void 0 !== this.h) return; - this._$Su = new Signal.Computed(() => { - (this._$So.get(), super.performUpdate()); - }); - const i = (this.h = new Signal.subtle.Watcher(function () { - const t = n$4.get(this); - void 0 !== t && - (!1 === t._$Si && - (new Set(this.getPending()).has(t._$Su) ? t.requestUpdate() : t._$Sv()), - this.watch()); - })); - (n$4.set(i, this), - e$3.register(this, i), - i.watch(this._$Su), - i.watch(...Array.from(this._$St).map(([t]) => t))); - } - _$Sp() { - if (void 0 === this.h) return; - let i = !1; - (this.h.unwatch( - ...Signal.subtle.introspectSources(this.h).filter((t) => { - var s; - const h = - !0 !== (null === (s = this._$St.get(t)) || void 0 === s ? void 0 : s.manualDispose); - return (h && this._$St.delete(t), i || (i = !h), h); - }), - ), - i || ((this._$Su = void 0), (this.h = void 0), this._$St.clear())); - } - updateEffect(i, s) { - var h; - this._$S_(); - const e = new Signal.Computed(() => { - i(); - }); - return ( - this.h.watch(e), - this._$St.set(e, s), - null !== (h = null == s ? void 0 : s.beforeUpdate) && void 0 !== h && h - ? Signal.subtle.untrack(() => e.get()) - : this.updateComplete.then(() => Signal.subtle.untrack(() => e.get())), - () => { - (this._$St.delete(e), this.h.unwatch(e), !1 === this.isConnected && this._$Sp()); - } - ); - } - performUpdate() { - this.isUpdatePending && - (this._$S_(), - (this._$Si = !0), - this._$So.set(this._$So.get() + 1), - (this._$Si = !1), - this._$Sl()); - } - connectedCallback() { - (super.connectedCallback(), this.requestUpdate()); - } - disconnectedCallback() { - (super.disconnectedCallback(), - queueMicrotask(() => { - !1 === this.isConnected && this._$Sp(); - })); - } - }; -} - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const s = (i, t) => { - const e = i._$AN; - if (void 0 === e) return !1; - for (const i of e) (i._$AO?.(t, !1), s(i, t)); - return !0; - }, - o$6 = (i) => { - let t, e; - do { - if (void 0 === (t = i._$AM)) break; - ((e = t._$AN), e.delete(i), (i = t)); - } while (0 === e?.size); - }, - r$3 = (i) => { - for (let t; (t = i._$AM); i = t) { - let e = t._$AN; - if (void 0 === e) t._$AN = e = new Set(); - else if (e.has(i)) break; - (e.add(i), c(t)); - } - }; -function h$2(i) { - void 0 !== this._$AN ? (o$6(this), (this._$AM = i), r$3(this)) : (this._$AM = i); -} -function n$3(i, t = !1, e = 0) { - const r = this._$AH, - h = this._$AN; - if (void 0 !== h && 0 !== h.size) - if (t) - if (Array.isArray(r)) for (let i = e; i < r.length; i++) (s(r[i], !1), o$6(r[i])); - else null != r && (s(r, !1), o$6(r)); - else s(this, i); -} -const c = (i) => { - i.type == t$4.CHILD && ((i._$AP ??= n$3), (i._$AQ ??= h$2)); -}; -var f = class extends i$5 { - constructor() { - (super(...arguments), (this._$AN = void 0)); - } - _$AT(i, t, e) { - (super._$AT(i, t, e), r$3(this), (this.isConnected = i._$AU)); - } - _$AO(i, t = !0) { - (i !== this.isConnected && - ((this.isConnected = i), i ? this.reconnected?.() : this.disconnected?.()), - t && (s(this, i), o$6(this))); - } - setValue(t) { - if (r$8(this._$Ct)) this._$Ct._$AI(t, this); - else { - const i = [...this._$Ct._$AH]; - ((i[this._$Ci] = t), this._$Ct._$AI(i, this, 0)); - } - } - disconnected() {} - reconnected() {} -}; - -/** - * @license - * Copyright 2023 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -let o$5 = !1; -const n$2 = new Signal.subtle.Watcher(async () => { - o$5 || - ((o$5 = !0), - queueMicrotask(() => { - o$5 = !1; - for (const i of n$2.getPending()) i.get(); - n$2.watch(); - })); -}); -var r$2 = class extends f { - _$S_() { - var i, t; - void 0 === this._$Sm && - ((this._$Sj = new Signal.Computed(() => { - var i; - const t = null === (i = this._$SW) || void 0 === i ? void 0 : i.get(); - return (this.setValue(t), t); - })), - (this._$Sm = - null !== (t = null === (i = this._$Sk) || void 0 === i ? void 0 : i.h) && void 0 !== t - ? t - : n$2), - this._$Sm.watch(this._$Sj), - Signal.subtle.untrack(() => { - var i; - return null === (i = this._$Sj) || void 0 === i ? void 0 : i.get(); - })); - } - _$Sp() { - void 0 !== this._$Sm && (this._$Sm.unwatch(this._$SW), (this._$Sm = void 0)); - } - render(i) { - return Signal.subtle.untrack(() => i.get()); - } - update(i, [t]) { - var o, n; - return ( - (null !== (o = this._$Sk) && void 0 !== o) || - (this._$Sk = null === (n = i.options) || void 0 === n ? void 0 : n.host), - t !== this._$SW && void 0 !== this._$SW && this._$Sp(), - (this._$SW = t), - this._$S_(), - Signal.subtle.untrack(() => this._$SW.get()) - ); - } - disconnected() { - this._$Sp(); - } - reconnected() { - this._$S_(); - } -}; -const h$1 = e$10(r$2); - -/** - * @license - * Copyright 2023 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const m = - (o) => - (t, ...m) => - o( - t, - ...m.map((o) => (o instanceof Signal.State || o instanceof Signal.Computed ? h$1(o) : o)), - ), - l$1 = m(b), - r$1 = m(w); - -/** - * @license - * Copyright 2023 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const l = Signal.State, - o$4 = Signal.Computed, - r = (l, o) => new Signal.State(l, o), - i$1 = (l, o) => new Signal.Computed(l, o); - -/** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -function* o$3(o, f) { - if (void 0 !== o) { - let i = 0; - for (const t of o) yield f(t, i++); - } -} - -let pending = false; -let watcher = new Signal.subtle.Watcher(() => { - if (!pending) { - pending = true; - queueMicrotask(() => { - pending = false; - flushPending(); - }); - } -}); -function flushPending() { - for (const signal of watcher.getPending()) { - signal.get(); - } - watcher.watch(); -} -/** - * ⚠️ WARNING: Nothing unwatches ⚠️ - * This will produce a memory leak. - */ -function effect(cb) { - let c = new Signal.Computed(() => cb()); - watcher.watch(c); - c.get(); - return () => { - watcher.unwatch(c); - }; -} - -const themeContext = n$7("A2UITheme"); - -const structuralStyles = r$11(structuralStyles$1); - -var ComponentRegistry = class { - constructor() { - this.registry = new Map(); - } - register(typeName, constructor, tagName) { - if (!/^[a-zA-Z0-9]+$/.test(typeName)) { - throw new Error(`[Registry] Invalid typeName '${typeName}'. Must be alphanumeric.`); - } - this.registry.set(typeName, constructor); - const actualTagName = tagName || `a2ui-custom-${typeName.toLowerCase()}`; - const existingName = customElements.getName(constructor); - if (existingName) { - if (existingName !== actualTagName) { - throw new Error( - `Component ${typeName} is already registered as ${existingName}, but requested as ${actualTagName}.`, - ); - } - return; - } - if (!customElements.get(actualTagName)) { - customElements.define(actualTagName, constructor); - } - } - get(typeName) { - return this.registry.get(typeName); - } -}; -const componentRegistry = new ComponentRegistry(); - -var __runInitializers$19 = - (void 0 && (void 0).__runInitializers) || - function (thisArg, initializers, value) { - var useValue = arguments.length > 2; - for (var i = 0; i < initializers.length; i++) { - value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); - } - return useValue ? value : void 0; - }; -var __esDecorate$19 = - (void 0 && (void 0).__esDecorate) || - function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { - function accept(f) { - if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); - return f; - } - var kind = contextIn.kind, - key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; - var target = !descriptorIn && ctor ? (contextIn["static"] ? ctor : ctor.prototype) : null; - var descriptor = - descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); - var _, - done = false; - for (var i = decorators.length - 1; i >= 0; i--) { - var context = {}; - for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; - for (var p in contextIn.access) context.access[p] = contextIn.access[p]; - context.addInitializer = function (f) { - if (done) throw new TypeError("Cannot add initializers after decoration has completed"); - extraInitializers.push(accept(f || null)); - }; - var result = (0, decorators[i])( - kind === "accessor" - ? { - get: descriptor.get, - set: descriptor.set, - } - : descriptor[key], - context, - ); - if (kind === "accessor") { - if (result === void 0) continue; - if (result === null || typeof result !== "object") throw new TypeError("Object expected"); - if ((_ = accept(result.get))) descriptor.get = _; - if ((_ = accept(result.set))) descriptor.set = _; - if ((_ = accept(result.init))) initializers.unshift(_); - } else if ((_ = accept(result))) { - if (kind === "field") initializers.unshift(_); - else descriptor[key] = _; - } - } - if (target) Object.defineProperty(target, contextIn.name, descriptor); - done = true; - }; -let Root = (() => { - let _classDecorators = [t$1("a2ui-root")]; - let _classDescriptor; - let _classExtraInitializers = []; - let _classThis; - let _classSuper = o$7(i$6); - let _instanceExtraInitializers = []; - let _surfaceId_decorators; - let _surfaceId_initializers = []; - let _surfaceId_extraInitializers = []; - let _component_decorators; - let _component_initializers = []; - let _component_extraInitializers = []; - let _theme_decorators; - let _theme_initializers = []; - let _theme_extraInitializers = []; - let _childComponents_decorators; - let _childComponents_initializers = []; - let _childComponents_extraInitializers = []; - let _processor_decorators; - let _processor_initializers = []; - let _processor_extraInitializers = []; - let _dataContextPath_decorators; - let _dataContextPath_initializers = []; - let _dataContextPath_extraInitializers = []; - let _enableCustomElements_decorators; - let _enableCustomElements_initializers = []; - let _enableCustomElements_extraInitializers = []; - let _set_weight_decorators; - var Root = class extends _classSuper { - static { - _classThis = this; - } - static { - const _metadata = - typeof Symbol === "function" && Symbol.metadata - ? Object.create(_classSuper[Symbol.metadata] ?? null) - : void 0; - _surfaceId_decorators = [n$6()]; - _component_decorators = [n$6()]; - _theme_decorators = [c$1({ context: themeContext })]; - _childComponents_decorators = [n$6({ attribute: false })]; - _processor_decorators = [n$6({ attribute: false })]; - _dataContextPath_decorators = [n$6()]; - _enableCustomElements_decorators = [n$6()]; - _set_weight_decorators = [n$6()]; - __esDecorate$19( - this, - null, - _surfaceId_decorators, - { - kind: "accessor", - name: "surfaceId", - static: false, - private: false, - access: { - has: (obj) => "surfaceId" in obj, - get: (obj) => obj.surfaceId, - set: (obj, value) => { - obj.surfaceId = value; - }, - }, - metadata: _metadata, - }, - _surfaceId_initializers, - _surfaceId_extraInitializers, - ); - __esDecorate$19( - this, - null, - _component_decorators, - { - kind: "accessor", - name: "component", - static: false, - private: false, - access: { - has: (obj) => "component" in obj, - get: (obj) => obj.component, - set: (obj, value) => { - obj.component = value; - }, - }, - metadata: _metadata, - }, - _component_initializers, - _component_extraInitializers, - ); - __esDecorate$19( - this, - null, - _theme_decorators, - { - kind: "accessor", - name: "theme", - static: false, - private: false, - access: { - has: (obj) => "theme" in obj, - get: (obj) => obj.theme, - set: (obj, value) => { - obj.theme = value; - }, - }, - metadata: _metadata, - }, - _theme_initializers, - _theme_extraInitializers, - ); - __esDecorate$19( - this, - null, - _childComponents_decorators, - { - kind: "accessor", - name: "childComponents", - static: false, - private: false, - access: { - has: (obj) => "childComponents" in obj, - get: (obj) => obj.childComponents, - set: (obj, value) => { - obj.childComponents = value; - }, - }, - metadata: _metadata, - }, - _childComponents_initializers, - _childComponents_extraInitializers, - ); - __esDecorate$19( - this, - null, - _processor_decorators, - { - kind: "accessor", - name: "processor", - static: false, - private: false, - access: { - has: (obj) => "processor" in obj, - get: (obj) => obj.processor, - set: (obj, value) => { - obj.processor = value; - }, - }, - metadata: _metadata, - }, - _processor_initializers, - _processor_extraInitializers, - ); - __esDecorate$19( - this, - null, - _dataContextPath_decorators, - { - kind: "accessor", - name: "dataContextPath", - static: false, - private: false, - access: { - has: (obj) => "dataContextPath" in obj, - get: (obj) => obj.dataContextPath, - set: (obj, value) => { - obj.dataContextPath = value; - }, - }, - metadata: _metadata, - }, - _dataContextPath_initializers, - _dataContextPath_extraInitializers, - ); - __esDecorate$19( - this, - null, - _enableCustomElements_decorators, - { - kind: "accessor", - name: "enableCustomElements", - static: false, - private: false, - access: { - has: (obj) => "enableCustomElements" in obj, - get: (obj) => obj.enableCustomElements, - set: (obj, value) => { - obj.enableCustomElements = value; - }, - }, - metadata: _metadata, - }, - _enableCustomElements_initializers, - _enableCustomElements_extraInitializers, - ); - __esDecorate$19( - this, - null, - _set_weight_decorators, - { - kind: "setter", - name: "weight", - static: false, - private: false, - access: { - has: (obj) => "weight" in obj, - set: (obj, value) => { - obj.weight = value; - }, - }, - metadata: _metadata, - }, - null, - _instanceExtraInitializers, - ); - __esDecorate$19( - null, - (_classDescriptor = { value: _classThis }), - _classDecorators, - { - kind: "class", - name: _classThis.name, - metadata: _metadata, - }, - null, - _classExtraInitializers, - ); - Root = _classThis = _classDescriptor.value; - if (_metadata) - Object.defineProperty(_classThis, Symbol.metadata, { - enumerable: true, - configurable: true, - writable: true, - value: _metadata, - }); - } - #surfaceId_accessor_storage = - (__runInitializers$19(this, _instanceExtraInitializers), - __runInitializers$19(this, _surfaceId_initializers, null)); - get surfaceId() { - return this.#surfaceId_accessor_storage; - } - set surfaceId(value) { - this.#surfaceId_accessor_storage = value; - } - #component_accessor_storage = - (__runInitializers$19(this, _surfaceId_extraInitializers), - __runInitializers$19(this, _component_initializers, null)); - get component() { - return this.#component_accessor_storage; - } - set component(value) { - this.#component_accessor_storage = value; - } - #theme_accessor_storage = - (__runInitializers$19(this, _component_extraInitializers), - __runInitializers$19(this, _theme_initializers, void 0)); - get theme() { - return this.#theme_accessor_storage; - } - set theme(value) { - this.#theme_accessor_storage = value; - } - #childComponents_accessor_storage = - (__runInitializers$19(this, _theme_extraInitializers), - __runInitializers$19(this, _childComponents_initializers, null)); - get childComponents() { - return this.#childComponents_accessor_storage; - } - set childComponents(value) { - this.#childComponents_accessor_storage = value; - } - #processor_accessor_storage = - (__runInitializers$19(this, _childComponents_extraInitializers), - __runInitializers$19(this, _processor_initializers, null)); - get processor() { - return this.#processor_accessor_storage; - } - set processor(value) { - this.#processor_accessor_storage = value; - } - #dataContextPath_accessor_storage = - (__runInitializers$19(this, _processor_extraInitializers), - __runInitializers$19(this, _dataContextPath_initializers, "")); - get dataContextPath() { - return this.#dataContextPath_accessor_storage; - } - set dataContextPath(value) { - this.#dataContextPath_accessor_storage = value; - } - #enableCustomElements_accessor_storage = - (__runInitializers$19(this, _dataContextPath_extraInitializers), - __runInitializers$19(this, _enableCustomElements_initializers, false)); - get enableCustomElements() { - return this.#enableCustomElements_accessor_storage; - } - set enableCustomElements(value) { - this.#enableCustomElements_accessor_storage = value; - } - set weight(weight) { - this.#weight = weight; - this.style.setProperty("--weight", `${weight}`); - } - get weight() { - return this.#weight; - } - #weight = (__runInitializers$19(this, _enableCustomElements_extraInitializers), 1); - static { - this.styles = [ - structuralStyles, - i$9` - :host { - display: flex; - flex-direction: column; - gap: 8px; - max-height: 80%; - } - `, - ]; - } - /** - * Holds the cleanup function for our effect. - * We need this to stop the effect when the component is disconnected. - */ - #lightDomEffectDisposer = null; - willUpdate(changedProperties) { - if (changedProperties.has("childComponents")) { - if (this.#lightDomEffectDisposer) { - this.#lightDomEffectDisposer(); - } - this.#lightDomEffectDisposer = effect(() => { - const allChildren = this.childComponents ?? null; - const lightDomTemplate = this.renderComponentTree(allChildren); - D(lightDomTemplate, this, { host: this }); - }); - } - } - /** - * Clean up the effect when the component is removed from the DOM. - */ - disconnectedCallback() { - super.disconnectedCallback(); - if (this.#lightDomEffectDisposer) { - this.#lightDomEffectDisposer(); - } - } - /** - * Turns the SignalMap into a renderable TemplateResult for Lit. - */ - renderComponentTree(components) { - if (!components) { - return A; - } - if (!Array.isArray(components)) { - return A; - } - return b` ${o$3(components, (component) => { - if (this.enableCustomElements) { - const registeredCtor = componentRegistry.get(component.type); - const elCtor = registeredCtor || customElements.get(component.type); - if (elCtor) { - const node = component; - const el = new elCtor(); - el.id = node.id; - if (node.slotName) { - el.slot = node.slotName; - } - el.component = node; - el.weight = node.weight ?? "initial"; - el.processor = this.processor; - el.surfaceId = this.surfaceId; - el.dataContextPath = node.dataContextPath ?? "/"; - for (const [prop, val] of Object.entries(component.properties)) { - el[prop] = val; - } - return b`${el}`; - } - } - switch (component.type) { - case "List": { - const node = component; - const childComponents = node.properties.children; - return b``; - } - case "Card": { - const node = component; - let childComponents = node.properties.children; - if (!childComponents && node.properties.child) { - childComponents = [node.properties.child]; - } - return b``; - } - case "Column": { - const node = component; - return b``; - } - case "Row": { - const node = component; - return b``; - } - case "Image": { - const node = component; - return b``; - } - case "Icon": { - const node = component; - return b``; - } - case "AudioPlayer": { - const node = component; - return b``; - } - case "Button": { - const node = component; - return b``; - } - case "Text": { - const node = component; - return b``; - } - case "CheckBox": { - const node = component; - return b``; - } - case "DateTimeInput": { - const node = component; - return b``; - } - case "Divider": { - const node = component; - return b``; - } - case "MultipleChoice": { - const node = component; - return b``; - } - case "Slider": { - const node = component; - return b``; - } - case "TextField": { - const node = component; - return b``; - } - case "Video": { - const node = component; - return b``; - } - case "Tabs": { - const node = component; - const titles = []; - const childComponents = []; - if (node.properties.tabItems) { - for (const item of node.properties.tabItems) { - titles.push(item.title); - childComponents.push(item.child); - } - } - return b``; - } - case "Modal": { - const node = component; - const childComponents = [node.properties.entryPointChild, node.properties.contentChild]; - node.properties.entryPointChild.slotName = "entry"; - return b``; - } - default: { - return this.renderCustomComponent(component); - } - } - })}`; - } - renderCustomComponent(component) { - if (!this.enableCustomElements) { - return; - } - const node = component; - const registeredCtor = componentRegistry.get(component.type); - const elCtor = registeredCtor || customElements.get(component.type); - if (!elCtor) { - return b`Unknown element ${component.type}`; - } - const el = new elCtor(); - el.id = node.id; - if (node.slotName) { - el.slot = node.slotName; - } - el.component = node; - el.weight = node.weight ?? "initial"; - el.processor = this.processor; - el.surfaceId = this.surfaceId; - el.dataContextPath = node.dataContextPath ?? "/"; - for (const [prop, val] of Object.entries(component.properties)) { - el[prop] = val; - } - return b`${el}`; - } - render() { - return b``; - } - static { - __runInitializers$19(_classThis, _classExtraInitializers); - } - }; - return (Root = _classThis); -})(); - -/** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const e$2 = e$10( - class extends i$5 { - constructor(t) { - if ((super(t), t.type !== t$4.ATTRIBUTE || "class" !== t.name || t.strings?.length > 2)) - throw Error( - "`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.", - ); - } - render(t) { - return ( - " " + - Object.keys(t) - .filter((s) => t[s]) - .join(" ") + - " " - ); - } - update(s, [i]) { - if (void 0 === this.st) { - ((this.st = new Set()), - void 0 !== s.strings && - (this.nt = new Set( - s.strings - .join(" ") - .split(/\s/) - .filter((t) => "" !== t), - ))); - for (const t in i) i[t] && !this.nt?.has(t) && this.st.add(t); - return this.render(i); - } - const r = s.element.classList; - for (const t of this.st) t in i || (r.remove(t), this.st.delete(t)); - for (const t in i) { - const s = !!i[t]; - s === this.st.has(t) || - this.nt?.has(t) || - (s ? (r.add(t), this.st.add(t)) : (r.remove(t), this.st.delete(t))); - } - return E; - } - }, -); - -/** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ const n$1 = "important", - i = " !" + n$1, - o$2 = e$10( - class extends i$5 { - constructor(t) { - if ((super(t), t.type !== t$4.ATTRIBUTE || "style" !== t.name || t.strings?.length > 2)) - throw Error( - "The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.", - ); - } - render(t) { - return Object.keys(t).reduce((e, r) => { - const s = t[r]; - return null == s - ? e - : e + - `${(r = r.includes("-") ? r : r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, "-$&").toLowerCase())}:${s};`; - }, ""); - } - update(e, [r]) { - const { style: s } = e.element; - if (void 0 === this.ft) return ((this.ft = new Set(Object.keys(r))), this.render(r)); - for (const t of this.ft) - null == r[t] && - (this.ft.delete(t), t.includes("-") ? s.removeProperty(t) : (s[t] = null)); - for (const t in r) { - const e = r[t]; - if (null != e) { - this.ft.add(t); - const r = "string" == typeof e && e.endsWith(i); - t.includes("-") || r - ? s.setProperty(t, r ? e.slice(0, -11) : e, r ? n$1 : "") - : (s[t] = e); - } - } - return E; - } - }, - ); - -var __esDecorate$18 = - (void 0 && (void 0).__esDecorate) || - function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { - function accept(f) { - if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); - return f; - } - var kind = contextIn.kind, - key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; - var target = !descriptorIn && ctor ? (contextIn["static"] ? ctor : ctor.prototype) : null; - var descriptor = - descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); - var _, - done = false; - for (var i = decorators.length - 1; i >= 0; i--) { - var context = {}; - for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; - for (var p in contextIn.access) context.access[p] = contextIn.access[p]; - context.addInitializer = function (f) { - if (done) throw new TypeError("Cannot add initializers after decoration has completed"); - extraInitializers.push(accept(f || null)); - }; - var result = (0, decorators[i])( - kind === "accessor" - ? { - get: descriptor.get, - set: descriptor.set, - } - : descriptor[key], - context, - ); - if (kind === "accessor") { - if (result === void 0) continue; - if (result === null || typeof result !== "object") throw new TypeError("Object expected"); - if ((_ = accept(result.get))) descriptor.get = _; - if ((_ = accept(result.set))) descriptor.set = _; - if ((_ = accept(result.init))) initializers.unshift(_); - } else if ((_ = accept(result))) { - if (kind === "field") initializers.unshift(_); - else descriptor[key] = _; - } - } - if (target) Object.defineProperty(target, contextIn.name, descriptor); - done = true; - }; -var __runInitializers$18 = - (void 0 && (void 0).__runInitializers) || - function (thisArg, initializers, value) { - var useValue = arguments.length > 2; - for (var i = 0; i < initializers.length; i++) { - value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); - } - return useValue ? value : void 0; - }; -let Audio = (() => { - let _classDecorators = [t$1("a2ui-audioplayer")]; - let _classDescriptor; - let _classExtraInitializers = []; - let _classThis; - let _classSuper = Root; - let _url_decorators; - let _url_initializers = []; - let _url_extraInitializers = []; - var Audio = class extends _classSuper { - static { - _classThis = this; - } - static { - const _metadata = - typeof Symbol === "function" && Symbol.metadata - ? Object.create(_classSuper[Symbol.metadata] ?? null) - : void 0; - _url_decorators = [n$6()]; - __esDecorate$18( - this, - null, - _url_decorators, - { - kind: "accessor", - name: "url", - static: false, - private: false, - access: { - has: (obj) => "url" in obj, - get: (obj) => obj.url, - set: (obj, value) => { - obj.url = value; - }, - }, - metadata: _metadata, - }, - _url_initializers, - _url_extraInitializers, - ); - __esDecorate$18( - null, - (_classDescriptor = { value: _classThis }), - _classDecorators, - { - kind: "class", - name: _classThis.name, - metadata: _metadata, - }, - null, - _classExtraInitializers, - ); - Audio = _classThis = _classDescriptor.value; - if (_metadata) - Object.defineProperty(_classThis, Symbol.metadata, { - enumerable: true, - configurable: true, - writable: true, - value: _metadata, - }); - } - #url_accessor_storage = __runInitializers$18(this, _url_initializers, null); - get url() { - return this.#url_accessor_storage; - } - set url(value) { - this.#url_accessor_storage = value; - } - static { - this.styles = [ - structuralStyles, - i$9` - * { - box-sizing: border-box; - } - - :host { - display: block; - flex: var(--weight); - min-height: 0; - overflow: auto; - } - - audio { - display: block; - width: 100%; - } - `, - ]; - } - #renderAudio() { - if (!this.url) { - return A; - } - if (this.url && typeof this.url === "object") { - if ("literalString" in this.url) { - return b`