@ixfx/components 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/bundle/index.d.ts +155 -29
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +1116 -310
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +2 -3
  6. package/dist/ac-text.d.ts.map +1 -1
  7. package/dist/ac-text.js +4 -4
  8. package/dist/ac-text.js.map +1 -1
  9. package/dist/{button-DgKUzE5o.js → button-B9ztaKyl.js} +4 -4
  10. package/dist/button-B9ztaKyl.js.map +1 -0
  11. package/dist/button.d.ts +3 -4
  12. package/dist/button.d.ts.map +1 -1
  13. package/dist/button.js +1 -1
  14. package/dist/checkbox.d.ts +1 -2
  15. package/dist/checkbox.d.ts.map +1 -1
  16. package/dist/checkbox.js +3 -3
  17. package/dist/checkbox.js.map +1 -1
  18. package/dist/colour-C3MQIjFJ-BJV-QC-3.js.map +1 -1
  19. package/dist/{colour-picker-Bw-AZoWx.js → colour-picker-BNqDz4wK.js} +5 -5
  20. package/dist/colour-picker-BNqDz4wK.js.map +1 -0
  21. package/dist/colour-picker.d.ts +2 -2
  22. package/dist/colour-picker.js +1 -1
  23. package/dist/crumbs.d.ts +2 -3
  24. package/dist/crumbs.d.ts.map +1 -1
  25. package/dist/crumbs.js +4 -4
  26. package/dist/crumbs.js.map +1 -1
  27. package/dist/data-display.d.ts +1 -2
  28. package/dist/data-display.d.ts.map +1 -1
  29. package/dist/data-display.js +2 -3
  30. package/dist/data-display.js.map +1 -1
  31. package/dist/decorate-O4m1U4l3.js +25 -0
  32. package/dist/decorate-O4m1U4l3.js.map +1 -0
  33. package/dist/defaults-FEZaGiYZ.js.map +1 -1
  34. package/dist/dist-By5URG0Y.js.map +1 -1
  35. package/dist/dist-D7kJgnSE.js.map +1 -1
  36. package/dist/editable-label.d.ts.map +1 -1
  37. package/dist/editable-label.js +3 -3
  38. package/dist/editable-label.js.map +1 -1
  39. package/dist/{hex-editor-Gib1Grg2.d.ts → hex-editor-2_s0Ua5t.d.ts} +3 -4
  40. package/dist/hex-editor-2_s0Ua5t.d.ts.map +1 -0
  41. package/dist/{hex-editor-Wd6ZtZA2.js → hex-editor-gH3mteMr.js} +4 -4
  42. package/dist/hex-editor-gH3mteMr.js.map +1 -0
  43. package/dist/hex.d.ts +1 -1
  44. package/dist/hex.js +1 -1
  45. package/dist/highlight-CAjwQ4GE.js.map +1 -1
  46. package/dist/{icon-BR5aTIiP.js → icon-CYACf6o8.js} +4 -4
  47. package/dist/icon-CYACf6o8.js.map +1 -0
  48. package/dist/{icon-DQKdfR7U.d.ts → icon-CeTDJhC7.d.ts} +3 -4
  49. package/dist/icon-CeTDJhC7.d.ts.map +1 -0
  50. package/dist/icons.d.ts +2 -2
  51. package/dist/icons.js +1 -1
  52. package/dist/icons.js.map +1 -1
  53. package/dist/{incr-search-BjCNClnC.js → incr-search-BZawvrfl.js} +109 -109
  54. package/dist/incr-search-BZawvrfl.js.map +1 -0
  55. package/dist/incr-search.d.ts +2 -2
  56. package/dist/incr-search.js +1 -1
  57. package/dist/index-B1hNR7Z9.d.ts.map +1 -1
  58. package/dist/{index-CpbBI3n7.d.ts → index-CnL9krsH.d.ts} +3 -4
  59. package/dist/index-CnL9krsH.d.ts.map +1 -0
  60. package/dist/{index-CPVcTTXo.d.ts → index-CwGkb9s1.d.ts} +6 -7
  61. package/dist/index-CwGkb9s1.d.ts.map +1 -0
  62. package/dist/{index-C5dK8RZa.d.ts → index-DrQjA8Gs.d.ts} +3 -4
  63. package/dist/index-DrQjA8Gs.d.ts.map +1 -0
  64. package/dist/{index-C9iBN908.d.ts → index-V2cJorlA.d.ts} +29 -29
  65. package/dist/index-V2cJorlA.d.ts.map +1 -0
  66. package/dist/{index-CQxanqXF.d.ts → index-kY5gxbkI.d.ts} +16 -17
  67. package/dist/index-kY5gxbkI.d.ts.map +1 -0
  68. package/dist/index.d.ts +144 -26
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +813 -23
  71. package/dist/index.js.map +1 -1
  72. package/dist/keyboard-De_vOHLg.js.map +1 -1
  73. package/dist/{labelled-input-base-DS6-6C0r.js → labelled-input-base-BvgH7ldm.js} +2 -2
  74. package/dist/{labelled-input-base-DS6-6C0r.js.map → labelled-input-base-BvgH7ldm.js.map} +1 -1
  75. package/dist/{labelled-input-base-DnRh4reU.d.ts → labelled-input-base-D-Y7agky.d.ts} +2 -3
  76. package/dist/labelled-input-base-D-Y7agky.d.ts.map +1 -0
  77. package/dist/labelled-radial-input.d.ts +4 -5
  78. package/dist/labelled-radial-input.d.ts.map +1 -1
  79. package/dist/labelled-radial-input.js +5 -5
  80. package/dist/labelled-radial-input.js.map +1 -1
  81. package/dist/labelled-range-input.d.ts +1 -1
  82. package/dist/labelled-range-input.js +4 -4
  83. package/dist/labelled-range-input.js.map +1 -1
  84. package/dist/led.d.ts +2 -3
  85. package/dist/led.d.ts.map +1 -1
  86. package/dist/led.js +3 -3
  87. package/dist/led.js.map +1 -1
  88. package/dist/{menu-BV6UFx_z.js → menu-C3eANB5M.js} +12 -12
  89. package/dist/menu-C3eANB5M.js.map +1 -0
  90. package/dist/{menu-item-DEzL_Yjk.js → menu-item-6IU5weHi.js} +7 -7
  91. package/dist/menu-item-6IU5weHi.js.map +1 -0
  92. package/dist/{menu-item-Cikacp4F.d.ts → menu-item-ClQF2DKN.d.ts} +7 -8
  93. package/dist/menu-item-ClQF2DKN.d.ts.map +1 -0
  94. package/dist/menu.d.ts +3 -3
  95. package/dist/menu.js +2 -2
  96. package/dist/miller.d.ts +2 -3
  97. package/dist/miller.d.ts.map +1 -1
  98. package/dist/miller.js +4 -4
  99. package/dist/miller.js.map +1 -1
  100. package/dist/narrowed-text.d.ts +2 -3
  101. package/dist/narrowed-text.d.ts.map +1 -1
  102. package/dist/narrowed-text.js +4 -4
  103. package/dist/narrowed-text.js.map +1 -1
  104. package/dist/panel.d.ts +2 -3
  105. package/dist/panel.d.ts.map +1 -1
  106. package/dist/panel.js +4 -4
  107. package/dist/panel.js.map +1 -1
  108. package/dist/plots.d.ts +1 -1
  109. package/dist/plots.js +1 -1
  110. package/dist/polar-pad.d.ts +1 -2
  111. package/dist/polar-pad.d.ts.map +1 -1
  112. package/dist/polar-pad.js +3 -3
  113. package/dist/polar-pad.js.map +1 -1
  114. package/dist/{radial-input-CNJ8asY2.js → radial-input-Dbc6fgCK.js} +4 -4
  115. package/dist/radial-input-Dbc6fgCK.js.map +1 -0
  116. package/dist/{radial-input-xSTd4kEz.d.ts → radial-input-LUSBEycd.d.ts} +2 -3
  117. package/dist/radial-input-LUSBEycd.d.ts.map +1 -0
  118. package/dist/radial-input.d.ts +1 -1
  119. package/dist/radial-input.js +1 -1
  120. package/dist/range-input.d.ts +2 -3
  121. package/dist/range-input.d.ts.map +1 -1
  122. package/dist/range-input.js +3 -3
  123. package/dist/range-input.js.map +1 -1
  124. package/dist/range.d.ts +2 -3
  125. package/dist/range.d.ts.map +1 -1
  126. package/dist/range.js +3 -3
  127. package/dist/range.js.map +1 -1
  128. package/dist/registry-CZEB1YI9.js.map +1 -1
  129. package/dist/selecthorizontal.d.ts +2 -3
  130. package/dist/selecthorizontal.d.ts.map +1 -1
  131. package/dist/selecthorizontal.js +3 -3
  132. package/dist/selecthorizontal.js.map +1 -1
  133. package/dist/snap-container.d.ts +1 -2
  134. package/dist/snap-container.d.ts.map +1 -1
  135. package/dist/snap-container.js +3 -3
  136. package/dist/snap-container.js.map +1 -1
  137. package/dist/split-layout.d.ts +2 -3
  138. package/dist/split-layout.d.ts.map +1 -1
  139. package/dist/split-layout.js +3 -3
  140. package/dist/split-layout.js.map +1 -1
  141. package/dist/swipe.d.ts.map +1 -1
  142. package/dist/swipe.js +3 -3
  143. package/dist/swipe.js.map +1 -1
  144. package/dist/{tab-list-CFF7uSYH.d.ts → tab-list-BnqISNvO.d.ts} +5 -6
  145. package/dist/tab-list-BnqISNvO.d.ts.map +1 -0
  146. package/dist/tabs.d.ts +1 -1
  147. package/dist/tabs.js +3 -3
  148. package/dist/tabs.js.map +1 -1
  149. package/dist/tickled-controller-Cq1Va0rR.d.ts.map +1 -1
  150. package/dist/tickled-styles-Bg3QbcrD.js.map +1 -1
  151. package/dist/{timeline-DBWJsSjd.js → timeline-B62Sz6J_.js} +5 -5
  152. package/dist/timeline-B62Sz6J_.js.map +1 -0
  153. package/dist/timeline.d.ts +2 -2
  154. package/dist/timeline.js +1 -1
  155. package/dist/{tooltip-kfUBWYVB.d.ts → tooltip-CwGfb4lp.d.ts} +2 -3
  156. package/dist/tooltip-CwGfb4lp.d.ts.map +1 -0
  157. package/dist/tree-component-CQpoPo4s.d.ts.map +1 -1
  158. package/dist/tree-data-model-DGvRVOFY.js.map +1 -1
  159. package/dist/tree.d.ts +3 -4
  160. package/dist/tree.d.ts.map +1 -1
  161. package/dist/tree.js +4 -4
  162. package/dist/tree.js.map +1 -1
  163. package/dist/types-BKaqnpwx.d.ts.map +1 -1
  164. package/dist/{xy-axis-BANbgrI5.js → xy-axis-C7fNxDwY.js} +5 -5
  165. package/dist/xy-axis-C7fNxDwY.js.map +1 -0
  166. package/dist/{xy-axis-CIFok7MF.d.ts → xy-axis-D9uwpGTT.d.ts} +5 -6
  167. package/dist/xy-axis-D9uwpGTT.d.ts.map +1 -0
  168. package/dist/xy-pad.d.ts +1 -2
  169. package/dist/xy-pad.d.ts.map +1 -1
  170. package/dist/xy-pad.js +3 -3
  171. package/dist/xy-pad.js.map +1 -1
  172. package/package.json +15 -11
  173. package/dist/button-DgKUzE5o.js.map +0 -1
  174. package/dist/colour-picker-Bw-AZoWx.js.map +0 -1
  175. package/dist/decorate-BZbkqIhA.js +0 -9
  176. package/dist/hex-editor-Gib1Grg2.d.ts.map +0 -1
  177. package/dist/hex-editor-Wd6ZtZA2.js.map +0 -1
  178. package/dist/icon-BR5aTIiP.js.map +0 -1
  179. package/dist/icon-DQKdfR7U.d.ts.map +0 -1
  180. package/dist/incr-search-BjCNClnC.js.map +0 -1
  181. package/dist/index-C5dK8RZa.d.ts.map +0 -1
  182. package/dist/index-C9iBN908.d.ts.map +0 -1
  183. package/dist/index-CPVcTTXo.d.ts.map +0 -1
  184. package/dist/index-CQxanqXF.d.ts.map +0 -1
  185. package/dist/index-CpbBI3n7.d.ts.map +0 -1
  186. package/dist/labelled-input-base-DnRh4reU.d.ts.map +0 -1
  187. package/dist/menu-BV6UFx_z.js.map +0 -1
  188. package/dist/menu-item-Cikacp4F.d.ts.map +0 -1
  189. package/dist/menu-item-DEzL_Yjk.js.map +0 -1
  190. package/dist/radial-input-CNJ8asY2.js.map +0 -1
  191. package/dist/radial-input-xSTd4kEz.d.ts.map +0 -1
  192. package/dist/tab-list-CFF7uSYH.d.ts.map +0 -1
  193. package/dist/timeline-DBWJsSjd.js.map +0 -1
  194. package/dist/tooltip-kfUBWYVB.d.ts.map +0 -1
  195. package/dist/xy-axis-BANbgrI5.js.map +0 -1
  196. package/dist/xy-axis-CIFok7MF.d.ts.map +0 -1
package/bundle/index.js CHANGED
@@ -7,7 +7,7 @@ import "@clinth/vcanvas";
7
7
  * Copyright 2019 Google LLC
8
8
  * SPDX-License-Identifier: BSD-3-Clause
9
9
  */
10
- const t$6 = globalThis, e$8 = t$6.ShadowRoot && (void 0 === t$6.ShadyCSS || t$6.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$3 = Symbol(), o$7 = /* @__PURE__ */ new WeakMap();
10
+ const t$5 = globalThis, e$8 = t$5.ShadowRoot && (void 0 === t$5.ShadyCSS || t$5.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$3 = Symbol(), o$7 = /* @__PURE__ */ new WeakMap();
11
11
  var n$5 = class {
12
12
  constructor(t, e, o) {
13
13
  if (this._$cssResult$ = !0, o !== s$3) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
@@ -26,7 +26,7 @@ var n$5 = class {
26
26
  return this.cssText;
27
27
  }
28
28
  };
29
- const r$5 = (t) => new n$5("string" == typeof t ? t : t + "", void 0, s$3), i$6 = (t, ...e) => {
29
+ const r$5 = (t) => new n$5("string" == typeof t ? t : t + "", void 0, s$3), i$7 = (t, ...e) => {
30
30
  return new n$5(1 === t.length ? t[0] : e.reduce((e, s, o) => e + ((t) => {
31
31
  if (!0 === t._$cssResult$) return t.cssText;
32
32
  if ("number" == typeof t) return t;
@@ -35,7 +35,7 @@ const r$5 = (t) => new n$5("string" == typeof t ? t : t + "", void 0, s$3), i$6
35
35
  }, S$1 = (s, o) => {
36
36
  if (e$8) s.adoptedStyleSheets = o.map((t) => t instanceof CSSStyleSheet ? t : t.styleSheet);
37
37
  else for (const e of o) {
38
- const o = document.createElement("style"), n = t$6.litNonce;
38
+ const o = document.createElement("style"), n = t$5.litNonce;
39
39
  void 0 !== n && o.setAttribute("nonce", n), o.textContent = e.cssText, s.appendChild(o);
40
40
  }
41
41
  }, c$4 = e$8 ? (t) => t : (t) => t instanceof CSSStyleSheet ? ((t) => {
@@ -49,7 +49,7 @@ const r$5 = (t) => new n$5("string" == typeof t ? t : t + "", void 0, s$3), i$6
49
49
  * @license
50
50
  * Copyright 2017 Google LLC
51
51
  * SPDX-License-Identifier: BSD-3-Clause
52
- */ const { is: i$5, defineProperty: e$7, getOwnPropertyDescriptor: h$2, getOwnPropertyNames: r$4, getOwnPropertySymbols: o$6, getPrototypeOf: n$4 } = Object, a$1 = globalThis, c$3 = a$1.trustedTypes, l$2 = c$3 ? c$3.emptyScript : "", p$2 = a$1.reactiveElementPolyfillSupport, d$2 = (t, s) => t, u$3 = {
52
+ */ const { is: i$6, defineProperty: e$7, getOwnPropertyDescriptor: h$2, getOwnPropertyNames: r$4, getOwnPropertySymbols: o$6, getPrototypeOf: n$4 } = Object, a$1 = globalThis, c$3 = a$1.trustedTypes, l$2 = c$3 ? c$3.emptyScript : "", p$2 = a$1.reactiveElementPolyfillSupport, d$2 = (t, s) => t, u$3 = {
53
53
  toAttribute(t, s) {
54
54
  switch (s) {
55
55
  case Boolean:
@@ -78,7 +78,7 @@ const r$5 = (t) => new n$5("string" == typeof t ? t : t + "", void 0, s$3), i$6
78
78
  }
79
79
  return i;
80
80
  }
81
- }, f$2 = (t, s) => !i$5(t, s), b$1 = {
81
+ }, f$2 = (t, s) => !i$6(t, s), b$1 = {
82
82
  attribute: !0,
83
83
  type: String,
84
84
  converter: u$3,
@@ -274,18 +274,17 @@ var y$1 = class extends HTMLElement {
274
274
  };
275
275
  y$1.elementStyles = [], y$1.shadowRootOptions = { mode: "open" }, y$1[d$2("elementProperties")] = /* @__PURE__ */ new Map(), y$1[d$2("finalized")] = /* @__PURE__ */ new Map(), p$2?.({ ReactiveElement: y$1 }), (a$1.reactiveElementVersions ??= []).push("2.1.2");
276
276
  //#endregion
277
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/lit-html.js
277
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js
278
278
  /**
279
279
  * @license
280
280
  * Copyright 2017 Google LLC
281
281
  * SPDX-License-Identifier: BSD-3-Clause
282
282
  */
283
- const t$5 = globalThis, i$4 = (t) => t, s$2 = t$5.trustedTypes, e$6 = s$2 ? s$2.createPolicy("lit-html", { createHTML: (t) => t }) : void 0, h$1 = "$lit$", o$5 = `lit$${Math.random().toFixed(9).slice(2)}$`, n$3 = "?" + o$5, r$3 = `<${n$3}>`, l$1 = document, c$2 = () => l$1.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$1 = "[ \n\f\r]", v$1 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _ = /-->/g, m$1 = />/g, p$1 = RegExp(`>|${f$1}(?:([^\\s"'>=/]+)(${f$1}*=${f$1}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), g = /'/g, $ = /"/g, y = /^(?:script|style|textarea|title)$/i, x = (t) => (i, ...s) => ({
283
+ const t$4 = globalThis, i$5 = (t) => t, s$2 = t$4.trustedTypes, e$6 = s$2 ? s$2.createPolicy("lit-html", { createHTML: (t) => t }) : void 0, h$1 = "$lit$", o$5 = `lit$${Math.random().toFixed(9).slice(2)}$`, n$3 = "?" + o$5, r$3 = `<${n$3}>`, l$1 = document, c$2 = () => l$1.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$1 = "[ \n\f\r]", v$1 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _ = /-->/g, m$1 = />/g, p$1 = RegExp(`>|${f$1}(?:([^\\s"'>=/]+)(${f$1}*=${f$1}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), g = /'/g, $ = /"/g, y = /^(?:script|style|textarea|title)$/i, x = (t) => (i, ...s) => ({
284
284
  _$litType$: t,
285
285
  strings: i,
286
286
  values: s
287
287
  }), b = x(1), w = x(2);
288
- x(3);
289
288
  const E = Symbol.for("lit-noChange"), A = Symbol.for("lit-nothing"), C = /* @__PURE__ */ new WeakMap(), P = l$1.createTreeWalker(l$1, 129);
290
289
  function V(t, i) {
291
290
  if (!u$2(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
@@ -443,8 +442,8 @@ var k = class k {
443
442
  }
444
443
  _$AR(t = this._$AA.nextSibling, s) {
445
444
  for (this._$AP?.(!1, !0, s); t !== this._$AB;) {
446
- const s = i$4(t).nextSibling;
447
- i$4(t).remove(), t = s;
445
+ const s = i$5(t).nextSibling;
446
+ i$5(t).remove(), t = s;
448
447
  }
449
448
  }
450
449
  setConnected(t) {
@@ -531,8 +530,8 @@ const j$1 = {
531
530
  U: z,
532
531
  B: I,
533
532
  F: Z
534
- }, B = t$5.litHtmlPolyfillSupport;
535
- B?.(S, k), (t$5.litHtmlVersions ??= []).push("3.3.2");
533
+ }, B = t$4.litHtmlPolyfillSupport;
534
+ B?.(S, k), (t$4.litHtmlVersions ??= []).push("3.3.3");
536
535
  const D = (t, i, s) => {
537
536
  const e = s?.renderBefore ?? i;
538
537
  let h = e._$litPart$;
@@ -549,7 +548,7 @@ const D = (t, i, s) => {
549
548
  * Copyright 2017 Google LLC
550
549
  * SPDX-License-Identifier: BSD-3-Clause
551
550
  */ const s$1 = globalThis;
552
- var i$3 = class extends y$1 {
551
+ var i$4 = class extends y$1 {
553
552
  constructor() {
554
553
  super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
555
554
  }
@@ -571,23 +570,11 @@ var i$3 = class extends y$1 {
571
570
  return E;
572
571
  }
573
572
  };
574
- i$3._$litElement$ = !0, i$3["finalized"] = !0, s$1.litElementHydrateSupport?.({ LitElement: i$3 });
573
+ i$4._$litElement$ = !0, i$4["finalized"] = !0, s$1.litElementHydrateSupport?.({ LitElement: i$4 });
575
574
  const o$4 = s$1.litElementPolyfillSupport;
576
- o$4?.({ LitElement: i$3 });
575
+ o$4?.({ LitElement: i$4 });
577
576
  (s$1.litElementVersions ??= []).push("4.2.2");
578
577
  //#endregion
579
- //#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js
580
- /**
581
- * @license
582
- * Copyright 2017 Google LLC
583
- * SPDX-License-Identifier: BSD-3-Clause
584
- */
585
- const t$4 = (t) => (e, o) => {
586
- void 0 !== o ? o.addInitializer(() => {
587
- customElements.define(t, e);
588
- }) : customElements.define(t, e);
589
- };
590
- //#endregion
591
578
  //#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js
592
579
  /**
593
580
  * @license
@@ -1018,7 +1005,7 @@ var TickledController = class TickledController {
1018
1005
  * }
1019
1006
  * ```
1020
1007
  */
1021
- const tickledStyles = i$6`
1008
+ const tickledStyles = i$7`
1022
1009
  /**
1023
1010
  * No suppression needed - tickled styling is always active.
1024
1011
  */
@@ -1030,7 +1017,7 @@ const tickledStyles = i$6`
1030
1017
  * Components should import this in addition to `tickledStyles` and can override
1031
1018
  * CSS variables to customize appearance.
1032
1019
  */
1033
- const tickledItemStyles = i$6`
1020
+ const tickledItemStyles = i$7`
1034
1021
  :host {
1035
1022
  --item-bg: transparent;
1036
1023
  --item-bg-tickled: rgba(0, 0, 0, 0.06);
@@ -1080,7 +1067,7 @@ const tickledItemStyles = i$6`
1080
1067
  }
1081
1068
  `;
1082
1069
  //#endregion
1083
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directive.js
1070
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js
1084
1071
  /**
1085
1072
  * @license
1086
1073
  * Copyright 2017 Google LLC
@@ -1097,7 +1084,7 @@ const t$2 = {
1097
1084
  _$litDirective$: t,
1098
1085
  values: e
1099
1086
  });
1100
- var i$2 = class {
1087
+ var i$3 = class {
1101
1088
  constructor(t) {}
1102
1089
  get _$AU() {
1103
1090
  return this._$AM._$AU;
@@ -1113,12 +1100,12 @@ var i$2 = class {
1113
1100
  }
1114
1101
  };
1115
1102
  //#endregion
1116
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directives/style-map.js
1103
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js
1117
1104
  /**
1118
1105
  * @license
1119
1106
  * Copyright 2018 Google LLC
1120
1107
  * SPDX-License-Identifier: BSD-3-Clause
1121
- */ const n$1 = "important", i$1 = " !" + n$1, o$1 = e$3(class extends i$2 {
1108
+ */ const n$1 = "important", i$2 = " !" + n$1, o$1 = e$3(class extends i$3 {
1122
1109
  constructor(t) {
1123
1110
  if (super(t), t.type !== t$2.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.");
1124
1111
  }
@@ -1136,7 +1123,7 @@ var i$2 = class {
1136
1123
  const e = r[t];
1137
1124
  if (null != e) {
1138
1125
  this.ft.add(t);
1139
- const r = "string" == typeof e && e.endsWith(i$1);
1126
+ const r = "string" == typeof e && e.endsWith(i$2);
1140
1127
  t.includes("-") || r ? s.setProperty(t, r ? e.slice(0, -11) : e, r ? n$1 : "") : s[t] = e;
1141
1128
  }
1142
1129
  }
@@ -1144,12 +1131,12 @@ var i$2 = class {
1144
1131
  }
1145
1132
  });
1146
1133
  //#endregion
1147
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directives/unsafe-html.js
1134
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/unsafe-html.js
1148
1135
  /**
1149
1136
  * @license
1150
1137
  * Copyright 2017 Google LLC
1151
1138
  * SPDX-License-Identifier: BSD-3-Clause
1152
- */ var e$2 = class extends i$2 {
1139
+ */ var e$2 = class extends i$3 {
1153
1140
  constructor(i) {
1154
1141
  if (super(i), this.it = A, i.type !== t$2.CHILD) throw Error(this.constructor.directiveName + "() can only be used in child bindings");
1155
1142
  }
@@ -1188,7 +1175,21 @@ function svgToDataUri(svg) {
1188
1175
  return `url("data:image/svg+xml,${encodeURIComponent(svg)}")`;
1189
1176
  }
1190
1177
  //#endregion
1191
- //#region \0@oxc-project+runtime@0.127.0/helpers/decorate.js
1178
+ //#region src/util/custom-elements.ts
1179
+ const getRegistry = () => {
1180
+ if (typeof customElements === `undefined`) return void 0;
1181
+ return customElements;
1182
+ };
1183
+ const safeDefine = (name, ctor) => {
1184
+ const registry = getRegistry();
1185
+ if (!registry) return;
1186
+ if (registry.get(name) === void 0) registry.define(name, ctor);
1187
+ };
1188
+ const safeCustomElement = (name) => (ctor) => {
1189
+ safeDefine(name, ctor);
1190
+ };
1191
+ //#endregion
1192
+ //#region \0@oxc-project+runtime@0.130.0/helpers/decorate.js
1192
1193
  function __decorate(decorators, target, key, desc) {
1193
1194
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1194
1195
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1197,7 +1198,7 @@ function __decorate(decorators, target, key, desc) {
1197
1198
  }
1198
1199
  //#endregion
1199
1200
  //#region src/icons/icon.ts
1200
- let IxfxIconElement = class IxfxIconElement extends i$3 {
1201
+ let IxfxIconElement = class IxfxIconElement extends i$4 {
1201
1202
  constructor(..._args) {
1202
1203
  super(..._args);
1203
1204
  this.name = ``;
@@ -1235,7 +1236,7 @@ let IxfxIconElement = class IxfxIconElement extends i$3 {
1235
1236
  else this.style.removeProperty(`--rotate`);
1236
1237
  }
1237
1238
  static {
1238
- this.styles = i$6`
1239
+ this.styles = i$7`
1239
1240
  :host {
1240
1241
  display: inline-flex;
1241
1242
  align-items: center;
@@ -1285,7 +1286,7 @@ __decorate([n$2({
1285
1286
  attribute: "rotate",
1286
1287
  reflect: true
1287
1288
  })], IxfxIconElement.prototype, "rotate", void 0);
1288
- IxfxIconElement = __decorate([t$4(`ixfx-icon`)], IxfxIconElement);
1289
+ IxfxIconElement = __decorate([safeCustomElement(`ixfx-icon`)], IxfxIconElement);
1289
1290
  //#endregion
1290
1291
  //#region src/ac-text/ac-text.ts
1291
1292
  const HIGHLIGHT_KEY$1 = `ac-text-highlight`;
@@ -1302,7 +1303,7 @@ function makeLruCache(maxSize) {
1302
1303
  clear: () => map.clear()
1303
1304
  };
1304
1305
  }
1305
- let AcTextElement = class AcTextElement extends i$3 {
1306
+ let AcTextElement = class AcTextElement extends i$4 {
1306
1307
  #cache;
1307
1308
  #debounceTimer;
1308
1309
  #abortController;
@@ -1600,7 +1601,7 @@ let AcTextElement = class AcTextElement extends i$3 {
1600
1601
  `;
1601
1602
  }
1602
1603
  static {
1603
- this.styles = [tickledStyles, i$6`
1604
+ this.styles = [tickledStyles, i$7`
1604
1605
  :host {
1605
1606
  display: block;
1606
1607
  position: relative;
@@ -1760,7 +1761,7 @@ __decorate([r$1()], AcTextElement.prototype, "_query", void 0);
1760
1761
  __decorate([r$1()], AcTextElement.prototype, "_results", void 0);
1761
1762
  __decorate([r$1()], AcTextElement.prototype, "_isOpen", void 0);
1762
1763
  __decorate([r$1()], AcTextElement.prototype, "_isLoading", void 0);
1763
- AcTextElement = __decorate([t$4(`ixfx-ac-text`)], AcTextElement);
1764
+ AcTextElement = __decorate([safeCustomElement(`ixfx-ac-text`)], AcTextElement);
1764
1765
  //#endregion
1765
1766
  //#region src/icons/defaults.ts
1766
1767
  /**
@@ -1856,7 +1857,7 @@ registerDefaults();
1856
1857
  * - Transition uses `--transition` from the theme (default `0.15s ease-out`).
1857
1858
  * - When disabled, `pointer-events: none` is set and cannot be overridden per-instance.
1858
1859
  */
1859
- const prominenceStyles = i$6`
1860
+ const prominenceStyles = i$7`
1860
1861
  :host {
1861
1862
  --prominence-idle-opacity: 0.6;
1862
1863
  --prominence-idle-saturate: 0.4;
@@ -1894,7 +1895,7 @@ const prominenceStyles = i$6`
1894
1895
  `;
1895
1896
  //#endregion
1896
1897
  //#region src/button/button-styles.ts
1897
- const buttonStyles = i$6`
1898
+ const buttonStyles = i$7`
1898
1899
  :host {
1899
1900
  display: inline-flex;
1900
1901
  max-width: 100%;
@@ -1969,7 +1970,7 @@ const buttonStyles = i$6`
1969
1970
  `;
1970
1971
  //#endregion
1971
1972
  //#region src/button/button.ts
1972
- let ButtonElement = class ButtonElement extends i$3 {
1973
+ let ButtonElement = class ButtonElement extends i$4 {
1973
1974
  constructor(..._args) {
1974
1975
  super(..._args);
1975
1976
  this.disabled = false;
@@ -2002,10 +2003,10 @@ __decorate([n$2({
2002
2003
  attribute: `hide-label`,
2003
2004
  reflect: true
2004
2005
  })], ButtonElement.prototype, "hideLabel", void 0);
2005
- ButtonElement = __decorate([t$4(`ixfx-button`)], ButtonElement);
2006
+ ButtonElement = __decorate([safeCustomElement(`ixfx-button`)], ButtonElement);
2006
2007
  //#endregion
2007
2008
  //#region src/button/radio-group.ts
2008
- let RadioGroup = class RadioGroup extends i$3 {
2009
+ let RadioGroup = class RadioGroup extends i$4 {
2009
2010
  constructor(..._args) {
2010
2011
  super(..._args);
2011
2012
  this.value = ``;
@@ -2153,7 +2154,7 @@ let RadioGroup = class RadioGroup extends i$3 {
2153
2154
  `;
2154
2155
  }
2155
2156
  static {
2156
- this.styles = [prominenceStyles, i$6`
2157
+ this.styles = [prominenceStyles, i$7`
2157
2158
  :host {
2158
2159
  display: inline-flex;
2159
2160
  min-width: min-content;
@@ -2330,7 +2331,7 @@ __decorate([n$2({
2330
2331
  __decorate([r$1()], RadioGroup.prototype, "_computedItems", void 0);
2331
2332
  __decorate([r$1()], RadioGroup.prototype, "_icons", void 0);
2332
2333
  __decorate([e$4(`slot`)], RadioGroup.prototype, "_slot", void 0);
2333
- RadioGroup = __decorate([t$4(`ixfx-radio-group`)], RadioGroup);
2334
+ RadioGroup = __decorate([safeCustomElement(`ixfx-radio-group`)], RadioGroup);
2334
2335
  //#endregion
2335
2336
  //#region src/styles/popup.ts
2336
2337
  /**
@@ -2342,7 +2343,7 @@ RadioGroup = __decorate([t$4(`ixfx-radio-group`)], RadioGroup);
2342
2343
  * Intentionally omitted (remain per-component): positioning, padding,
2343
2344
  * dimensions, z-index, and open/close animations.
2344
2345
  */
2345
- const popupSurfaceStyles = i$6`
2346
+ const popupSurfaceStyles = i$7`
2346
2347
  .popup-surface {
2347
2348
  background: var(--surface-5);
2348
2349
  border: 1px solid var(--surface-6);
@@ -2353,7 +2354,7 @@ const popupSurfaceStyles = i$6`
2353
2354
  `;
2354
2355
  //#endregion
2355
2356
  //#region src/menu/menu-container.ts
2356
- let MenuContainer = class MenuContainer extends i$3 {
2357
+ let MenuContainer = class MenuContainer extends i$4 {
2357
2358
  constructor(..._args) {
2358
2359
  super(..._args);
2359
2360
  this.tickled = new TickledController(this, {
@@ -2423,7 +2424,7 @@ let MenuContainer = class MenuContainer extends i$3 {
2423
2424
  this.styles = [
2424
2425
  popupSurfaceStyles,
2425
2426
  tickledStyles,
2426
- i$6`
2427
+ i$7`
2427
2428
  :host {
2428
2429
  display: block;
2429
2430
  }
@@ -2613,11 +2614,11 @@ __decorate([n$2({
2613
2614
  __decorate([n$2({ attribute: false })], MenuContainer.prototype, "registry", void 0);
2614
2615
  __decorate([n$2({ attribute: false })], MenuContainer.prototype, "keyboardManager", void 0);
2615
2616
  __decorate([e$4(`.popover`)], MenuContainer.prototype, "_popover", void 0);
2616
- MenuContainer = __decorate([t$4(`ixfx-menu-container`)], MenuContainer);
2617
+ MenuContainer = __decorate([safeCustomElement(`ixfx-menu-container`)], MenuContainer);
2617
2618
  //#endregion
2618
2619
  //#region src/menu/menu-trigger.ts
2619
2620
  var _MenuTrigger;
2620
- let MenuTrigger = class MenuTrigger extends i$3 {
2621
+ let MenuTrigger = class MenuTrigger extends i$4 {
2621
2622
  static {
2622
2623
  _MenuTrigger = this;
2623
2624
  }
@@ -2811,7 +2812,7 @@ let MenuTrigger = class MenuTrigger extends i$3 {
2811
2812
  } catch {}
2812
2813
  }
2813
2814
  static {
2814
- this.styles = [popupSurfaceStyles, i$6`
2815
+ this.styles = [popupSurfaceStyles, i$7`
2815
2816
  :host {
2816
2817
  display: inline-block;
2817
2818
  position: relative;
@@ -2905,10 +2906,10 @@ __decorate([r$1()], MenuTrigger.prototype, "_hasMenu", void 0);
2905
2906
  __decorate([r$1()], MenuTrigger.prototype, "_hasTriggerSlot", void 0);
2906
2907
  __decorate([e$4(`.trigger-btn`)], MenuTrigger.prototype, "_triggerBtn", void 0);
2907
2908
  __decorate([e$4(`.popup`)], MenuTrigger.prototype, "_popup", void 0);
2908
- MenuTrigger = _MenuTrigger = __decorate([t$4(`ixfx-menu-trigger`)], MenuTrigger);
2909
+ MenuTrigger = _MenuTrigger = __decorate([safeCustomElement(`ixfx-menu-trigger`)], MenuTrigger);
2909
2910
  //#endregion
2910
2911
  //#region src/menu/menu-item.ts
2911
- let MenuItem = class MenuItem extends i$3 {
2912
+ let MenuItem = class MenuItem extends i$4 {
2912
2913
  constructor(..._args) {
2913
2914
  super(..._args);
2914
2915
  this.command = ``;
@@ -3001,7 +3002,7 @@ let MenuItem = class MenuItem extends i$3 {
3001
3002
  return [...mods, key].join(``);
3002
3003
  }
3003
3004
  static {
3004
- this.styles = [tickledItemStyles, i$6`
3005
+ this.styles = [tickledItemStyles, i$7`
3005
3006
  :host {
3006
3007
  display: block;
3007
3008
  }
@@ -3106,7 +3107,7 @@ __decorate([n$2({ attribute: false })], MenuItem.prototype, "keyboardManager", v
3106
3107
  __decorate([n$2({ attribute: false })], MenuItem.prototype, "submenuPopover", void 0);
3107
3108
  __decorate([r$1()], MenuItem.prototype, "_hasChildren", void 0);
3108
3109
  __decorate([e$4(`slot`)], MenuItem.prototype, "_slot", void 0);
3109
- MenuItem = __decorate([t$4(`ixfx-menu-item`)], MenuItem);
3110
+ MenuItem = __decorate([safeCustomElement(`ixfx-menu-item`)], MenuItem);
3110
3111
  //#endregion
3111
3112
  //#region src/button/split-button.ts
3112
3113
  let SplitButton = class SplitButton extends ButtonElement {
@@ -3360,7 +3361,7 @@ let SplitButton = class SplitButton extends ButtonElement {
3360
3361
  this.styles = [
3361
3362
  prominenceStyles,
3362
3363
  buttonStyles,
3363
- i$6`
3364
+ i$7`
3364
3365
  :host {
3365
3366
  display: inline-flex;
3366
3367
  max-width: 100%;
@@ -3495,7 +3496,7 @@ __decorate([r$1()], SplitButton.prototype, "_switcherItems", void 0);
3495
3496
  __decorate([r$1()], SplitButton.prototype, "_dynamicItems", void 0);
3496
3497
  __decorate([r$1()], SplitButton.prototype, "_loadingItems", void 0);
3497
3498
  __decorate([r$1()], SplitButton.prototype, "_menuHasItems", void 0);
3498
- SplitButton = __decorate([t$4(`ixfx-split-button`)], SplitButton);
3499
+ SplitButton = __decorate([safeCustomElement(`ixfx-split-button`)], SplitButton);
3499
3500
  //#endregion
3500
3501
  //#region src/checkbox.ts
3501
3502
  /**
@@ -3533,7 +3534,7 @@ SplitButton = __decorate([t$4(`ixfx-split-button`)], SplitButton);
3533
3534
  * --label-opacity-unchecked – label opacity when unchecked (default: uses --label-opacity)
3534
3535
  * --transition-duration – animation duration (default: 0.2s)
3535
3536
  */
3536
- let Checkbox = class Checkbox extends i$3 {
3537
+ let Checkbox = class Checkbox extends i$4 {
3537
3538
  constructor(..._args) {
3538
3539
  super(..._args);
3539
3540
  this.checked = false;
@@ -3553,7 +3554,7 @@ let Checkbox = class Checkbox extends i$3 {
3553
3554
  };
3554
3555
  }
3555
3556
  static {
3556
- this.styles = i$6`
3557
+ this.styles = i$7`
3557
3558
  :host {
3558
3559
  /* Box */
3559
3560
  --box-size: 18px;
@@ -3740,7 +3741,7 @@ __decorate([n$2({ type: Boolean })], Checkbox.prototype, "indeterminate", void 0
3740
3741
  __decorate([n$2({ type: String })], Checkbox.prototype, "label", void 0);
3741
3742
  __decorate([n$2({ type: String })], Checkbox.prototype, "name", void 0);
3742
3743
  __decorate([n$2({ type: String })], Checkbox.prototype, "value", void 0);
3743
- Checkbox = __decorate([t$4(`ixfx-checkbox`)], Checkbox);
3744
+ Checkbox = __decorate([safeCustomElement(`ixfx-checkbox`)], Checkbox);
3744
3745
  //#endregion
3745
3746
  //#region node_modules/.pnpm/@ixfx+visual@0.56.12/node_modules/@ixfx/visual/dist/chunk-pbuEa-1d.js
3746
3747
  var __defProp$5 = Object.defineProperty;
@@ -17866,7 +17867,7 @@ function applyValue(el, value) {
17866
17867
  }
17867
17868
  //#endregion
17868
17869
  //#region src/mixins/labelled-input-base.ts
17869
- var LabelledInputBase = class extends i$3 {
17870
+ var LabelledInputBase = class extends i$4 {
17870
17871
  constructor(..._args) {
17871
17872
  super(..._args);
17872
17873
  this.label = ``;
@@ -18042,7 +18043,7 @@ let LabelledRangeInput = class LabelledRangeInput extends LabelledInputBase {
18042
18043
  `;
18043
18044
  }
18044
18045
  static {
18045
- this.styles = i$6`
18046
+ this.styles = i$7`
18046
18047
  :host {
18047
18048
  display: block;
18048
18049
  container-type: size;
@@ -18131,10 +18132,10 @@ __decorate([n$2({
18131
18132
  type: Number,
18132
18133
  attribute: `switch-height`
18133
18134
  })], LabelledRangeInput.prototype, "switchHeight", void 0);
18134
- LabelledRangeInput = __decorate([t$4(`ixfx-labelled-range-input`)], LabelledRangeInput);
18135
+ LabelledRangeInput = __decorate([safeCustomElement(`ixfx-labelled-range-input`)], LabelledRangeInput);
18135
18136
  //#endregion
18136
18137
  //#region src/colour-picker/colour-picker.ts
18137
- let ColourPicker = class ColourPicker extends i$3 {
18138
+ let ColourPicker = class ColourPicker extends i$4 {
18138
18139
  constructor(..._args) {
18139
18140
  super(..._args);
18140
18141
  this.l = .7;
@@ -18450,7 +18451,7 @@ let ColourPicker = class ColourPicker extends i$3 {
18450
18451
  }));
18451
18452
  }
18452
18453
  static {
18453
- this.styles = i$6`
18454
+ this.styles = i$7`
18454
18455
  /*
18455
18456
  * Default intrinsic size — not determined by label text.
18456
18457
  * Override via CSS: ixfx-colour-picker { width: 100%; height: 200px; }
@@ -18650,7 +18651,7 @@ __decorate([e$4(`#slider-c`)], ColourPicker.prototype, "_sliderC", void 0);
18650
18651
  __decorate([e$4(`#slider-h`)], ColourPicker.prototype, "_sliderH", void 0);
18651
18652
  __decorate([e$4(`#slider-a`)], ColourPicker.prototype, "_sliderA", void 0);
18652
18653
  __decorate([e$4(`.preview`)], ColourPicker.prototype, "_previewEl", void 0);
18653
- ColourPicker = __decorate([t$4(`ixfx-colour-picker`)], ColourPicker);
18654
+ ColourPicker = __decorate([safeCustomElement(`ixfx-colour-picker`)], ColourPicker);
18654
18655
  //#endregion
18655
18656
  //#region src/colour-picker/colour-picker-popup.ts
18656
18657
  let _instanceCounter = 0;
@@ -18682,7 +18683,7 @@ function swatchBackground(l, c, h, a) {
18682
18683
  `;
18683
18684
  return oklchToCss(l, c, h);
18684
18685
  }
18685
- let ColourPickerPopup = class ColourPickerPopup extends i$3 {
18686
+ let ColourPickerPopup = class ColourPickerPopup extends i$4 {
18686
18687
  constructor() {
18687
18688
  super();
18688
18689
  this.mode = `fluid`;
@@ -18886,7 +18887,7 @@ let ColourPickerPopup = class ColourPickerPopup extends i$3 {
18886
18887
  `;
18887
18888
  }
18888
18889
  static {
18889
- this.styles = [popupSurfaceStyles, i$6`
18890
+ this.styles = [popupSurfaceStyles, i$7`
18890
18891
  :host {
18891
18892
  display: inline-block;
18892
18893
  }
@@ -19022,7 +19023,7 @@ __decorate([r$1()], ColourPickerPopup.prototype, "_isOpen", void 0);
19022
19023
  __decorate([r$1()], ColourPickerPopup.prototype, "_everOpened", void 0);
19023
19024
  __decorate([e$4(`.popup`)], ColourPickerPopup.prototype, "_popupEl", void 0);
19024
19025
  __decorate([e$4(`ixfx-colour-picker`)], ColourPickerPopup.prototype, "_pickerEl", void 0);
19025
- ColourPickerPopup = __decorate([t$4(`ixfx-colour-picker-popup`)], ColourPickerPopup);
19026
+ ColourPickerPopup = __decorate([safeCustomElement(`ixfx-colour-picker-popup`)], ColourPickerPopup);
19026
19027
  //#endregion
19027
19028
  //#region src/common/tree-data-model.ts
19028
19029
  function findNode(root, key) {
@@ -19243,6 +19244,37 @@ function createFuzzySearch(items, options = {}) {
19243
19244
  };
19244
19245
  }
19245
19246
  //#endregion
19247
+ //#region src/incr-search/ac-adapter.ts
19248
+ /**
19249
+ * Creates an ixfx-ac-text-compatible `completionProvider` function from a
19250
+ * static item list. Uses synchronous fuzzy search wrapped in a Promise so it
19251
+ * fits the async provider signature.
19252
+ *
19253
+ * Each returned item has `positions` populated with matched character indices,
19254
+ * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.
19255
+ *
19256
+ * Empty query returns all items in original order (no positions).
19257
+ * A cancelled signal causes the returned promise to reject with an AbortError.
19258
+ */
19259
+ function createAcCompletionProvider(items, options = {}) {
19260
+ const fuzzy = createFuzzySearch(items, { selector: options.selector ?? ((item) => item.label) });
19261
+ return (query, signal) => new Promise((resolve, reject) => {
19262
+ if (signal.aborted) {
19263
+ reject(new DOMException(`Aborted`, `AbortError`));
19264
+ return;
19265
+ }
19266
+ const results = fuzzy.find(query).map((r) => ({
19267
+ ...r.item,
19268
+ positions: r.positions
19269
+ }));
19270
+ if (signal.aborted) {
19271
+ reject(new DOMException(`Aborted`, `AbortError`));
19272
+ return;
19273
+ }
19274
+ resolve(results);
19275
+ });
19276
+ }
19277
+ //#endregion
19246
19278
  //#region src/incr-search/incr-search.ts
19247
19279
  const buildState = (results, query) => {
19248
19280
  const positionsByItem = /* @__PURE__ */ new Map();
@@ -19311,113 +19343,6 @@ function createIncrSearch(options = {}) {
19311
19343
  };
19312
19344
  }
19313
19345
  //#endregion
19314
- //#region src/incr-search/element-search.ts
19315
- const defaultGetLabel = (el) => el.textContent?.trim() ?? ``;
19316
- const defaultGetKey = (el) => el.getAttribute(`data-key`) ?? el.getAttribute(`data-value`) ?? el.textContent?.trim() ?? ``;
19317
- function createElementIncrSearch(opts) {
19318
- const { container, itemSelector, getLabel = defaultGetLabel, getKey = defaultGetKey, labelSelector, highlightKey } = opts;
19319
- let elementByKey = /* @__PURE__ */ new Map();
19320
- const search = createIncrSearch({
19321
- selector: (item) => item.label,
19322
- fzf: opts.fzf
19323
- });
19324
- const updateVisibility = (state) => {
19325
- const matchedKeys = new Set(state.results.map((r) => r.item.key));
19326
- const hasQuery = state.query.trim().length > 0;
19327
- for (const [key, el] of elementByKey) el.hidden = hasQuery ? !matchedKeys.has(key) : false;
19328
- };
19329
- const updateHighlights = (state) => {
19330
- if (!state.query.trim()) {
19331
- clearHighlights({ key: highlightKey });
19332
- return;
19333
- }
19334
- applyHighlights(buildHighlightTargets(container, labelSelector ?? itemSelector, state.positionsByItem, (el) => {
19335
- const key = getKey(el);
19336
- return state.results.find((r) => r.item.key === key)?.item;
19337
- }, (el) => getLabel(el)), { key: highlightKey });
19338
- };
19339
- const unsubscribeState = search.onChange((state) => {
19340
- updateVisibility(state);
19341
- updateHighlights(state);
19342
- opts.onChange?.(state);
19343
- });
19344
- let refreshPending = false;
19345
- const refresh = () => {
19346
- if (refreshPending) return;
19347
- refreshPending = true;
19348
- Promise.resolve().then(() => {
19349
- refreshPending = false;
19350
- elementByKey = /* @__PURE__ */ new Map();
19351
- const els = container.querySelectorAll(itemSelector);
19352
- const items = [];
19353
- for (const el of els) {
19354
- const key = getKey(el);
19355
- elementByKey.set(key, el);
19356
- items.push({
19357
- key,
19358
- label: getLabel(el)
19359
- });
19360
- }
19361
- search.setItems(items);
19362
- });
19363
- };
19364
- const observer = new MutationObserver(() => refresh());
19365
- observer.observe(container, {
19366
- childList: true,
19367
- subtree: false
19368
- });
19369
- refresh();
19370
- return {
19371
- async setQuery(query, signal) {
19372
- await search.setQuery(query, signal);
19373
- },
19374
- async clearQuery() {
19375
- await search.clearQuery();
19376
- },
19377
- refresh,
19378
- onChange(cb) {
19379
- return search.onChange(cb);
19380
- },
19381
- dispose() {
19382
- observer.disconnect();
19383
- unsubscribeState();
19384
- search.dispose();
19385
- clearHighlights({ key: highlightKey });
19386
- }
19387
- };
19388
- }
19389
- //#endregion
19390
- //#region src/incr-search/ac-adapter.ts
19391
- /**
19392
- * Creates an ixfx-ac-text-compatible `completionProvider` function from a
19393
- * static item list. Uses synchronous fuzzy search wrapped in a Promise so it
19394
- * fits the async provider signature.
19395
- *
19396
- * Each returned item has `positions` populated with matched character indices,
19397
- * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.
19398
- *
19399
- * Empty query returns all items in original order (no positions).
19400
- * A cancelled signal causes the returned promise to reject with an AbortError.
19401
- */
19402
- function createAcCompletionProvider(items, options = {}) {
19403
- const fuzzy = createFuzzySearch(items, { selector: options.selector ?? ((item) => item.label) });
19404
- return (query, signal) => new Promise((resolve, reject) => {
19405
- if (signal.aborted) {
19406
- reject(new DOMException(`Aborted`, `AbortError`));
19407
- return;
19408
- }
19409
- const results = fuzzy.find(query).map((r) => ({
19410
- ...r.item,
19411
- positions: r.positions
19412
- }));
19413
- if (signal.aborted) {
19414
- reject(new DOMException(`Aborted`, `AbortError`));
19415
- return;
19416
- }
19417
- resolve(results);
19418
- });
19419
- }
19420
- //#endregion
19421
19346
  //#region src/incr-search/controller-tree.ts
19422
19347
  const DEFAULT_HIGHLIGHT_KEY = `incr-search-highlight`;
19423
19348
  /**
@@ -19517,9 +19442,85 @@ var IncrSearchTreeController = class {
19517
19442
  }
19518
19443
  };
19519
19444
  //#endregion
19445
+ //#region src/incr-search/element-search.ts
19446
+ const defaultGetLabel = (el) => el.textContent?.trim() ?? ``;
19447
+ const defaultGetKey = (el) => el.getAttribute(`data-key`) ?? el.getAttribute(`data-value`) ?? el.textContent?.trim() ?? ``;
19448
+ function createElementIncrSearch(opts) {
19449
+ const { container, itemSelector, getLabel = defaultGetLabel, getKey = defaultGetKey, labelSelector, highlightKey } = opts;
19450
+ let elementByKey = /* @__PURE__ */ new Map();
19451
+ const search = createIncrSearch({
19452
+ selector: (item) => item.label,
19453
+ fzf: opts.fzf
19454
+ });
19455
+ const updateVisibility = (state) => {
19456
+ const matchedKeys = new Set(state.results.map((r) => r.item.key));
19457
+ const hasQuery = state.query.trim().length > 0;
19458
+ for (const [key, el] of elementByKey) el.hidden = hasQuery ? !matchedKeys.has(key) : false;
19459
+ };
19460
+ const updateHighlights = (state) => {
19461
+ if (!state.query.trim()) {
19462
+ clearHighlights({ key: highlightKey });
19463
+ return;
19464
+ }
19465
+ applyHighlights(buildHighlightTargets(container, labelSelector ?? itemSelector, state.positionsByItem, (el) => {
19466
+ const key = getKey(el);
19467
+ return state.results.find((r) => r.item.key === key)?.item;
19468
+ }, (el) => getLabel(el)), { key: highlightKey });
19469
+ };
19470
+ const unsubscribeState = search.onChange((state) => {
19471
+ updateVisibility(state);
19472
+ updateHighlights(state);
19473
+ opts.onChange?.(state);
19474
+ });
19475
+ let refreshPending = false;
19476
+ const refresh = () => {
19477
+ if (refreshPending) return;
19478
+ refreshPending = true;
19479
+ Promise.resolve().then(() => {
19480
+ refreshPending = false;
19481
+ elementByKey = /* @__PURE__ */ new Map();
19482
+ const els = container.querySelectorAll(itemSelector);
19483
+ const items = [];
19484
+ for (const el of els) {
19485
+ const key = getKey(el);
19486
+ elementByKey.set(key, el);
19487
+ items.push({
19488
+ key,
19489
+ label: getLabel(el)
19490
+ });
19491
+ }
19492
+ search.setItems(items);
19493
+ });
19494
+ };
19495
+ const observer = new MutationObserver(() => refresh());
19496
+ observer.observe(container, {
19497
+ childList: true,
19498
+ subtree: false
19499
+ });
19500
+ refresh();
19501
+ return {
19502
+ async setQuery(query, signal) {
19503
+ await search.setQuery(query, signal);
19504
+ },
19505
+ async clearQuery() {
19506
+ await search.clearQuery();
19507
+ },
19508
+ refresh,
19509
+ onChange(cb) {
19510
+ return search.onChange(cb);
19511
+ },
19512
+ dispose() {
19513
+ observer.disconnect();
19514
+ unsubscribeState();
19515
+ search.dispose();
19516
+ clearHighlights({ key: highlightKey });
19517
+ }
19518
+ };
19519
+ }
19520
+ //#endregion
19520
19521
  //#region src/narrowed-text/narrowed-text.ts
19521
19522
  const HIGHLIGHT_KEY = `narrowed-text-highlight`;
19522
- let NarrowedTextElement = class NarrowedTextElement extends i$3 {
19523
+ let NarrowedTextElement = class NarrowedTextElement extends i$4 {
19523
19524
  constructor(..._args) {
19524
19525
  super(..._args);
19525
19526
  this.selectionMode = `single`;
@@ -19896,7 +19897,7 @@ let NarrowedTextElement = class NarrowedTextElement extends i$3 {
19896
19897
  this.styles = [
19897
19898
  tickledStyles,
19898
19899
  tickledItemStyles,
19899
- i$6`
19900
+ i$7`
19900
19901
  :host {
19901
19902
  display: inline-block;
19902
19903
  position: relative;
@@ -20076,10 +20077,10 @@ __decorate([r$1()], NarrowedTextElement.prototype, "_computedItems", void 0);
20076
20077
  __decorate([r$1()], NarrowedTextElement.prototype, "_filteredItems", void 0);
20077
20078
  __decorate([r$1()], NarrowedTextElement.prototype, "_isFocused", void 0);
20078
20079
  __decorate([e$4(`slot`)], NarrowedTextElement.prototype, "_slot", void 0);
20079
- NarrowedTextElement = __decorate([t$4(`ixfx-narrowed-text`)], NarrowedTextElement);
20080
+ NarrowedTextElement = __decorate([safeCustomElement(`ixfx-narrowed-text`)], NarrowedTextElement);
20080
20081
  //#endregion
20081
20082
  //#region src/crumbs/crumb-navigation.ts
20082
- let CrumbNavigationElement = class CrumbNavigationElement extends i$3 {
20083
+ let CrumbNavigationElement = class CrumbNavigationElement extends i$4 {
20083
20084
  constructor(..._args) {
20084
20085
  super(..._args);
20085
20086
  this._selectedNodes = /* @__PURE__ */ new Set();
@@ -20678,7 +20679,7 @@ let CrumbNavigationElement = class CrumbNavigationElement extends i$3 {
20678
20679
  this.styles = [
20679
20680
  tickledStyles,
20680
20681
  tickledItemStyles,
20681
- i$6`
20682
+ i$7`
20682
20683
  :host {
20683
20684
  --text-highlight: var(--accent);
20684
20685
  --separator: var(--surface-muted-text);
@@ -20855,7 +20856,7 @@ __decorate([n$2({
20855
20856
  reflect: true,
20856
20857
  attribute: "input-mode"
20857
20858
  })], CrumbNavigationElement.prototype, "inputMode", void 0);
20858
- CrumbNavigationElement = __decorate([t$4(`ixfx-crumb-navigation`)], CrumbNavigationElement);
20859
+ CrumbNavigationElement = __decorate([safeCustomElement(`ixfx-crumb-navigation`)], CrumbNavigationElement);
20859
20860
  //#endregion
20860
20861
  //#region src/crumbs/crumb-path-controller.ts
20861
20862
  var CrumbPathController = class {
@@ -20922,7 +20923,7 @@ var CrumbPathController = class {
20922
20923
  //#endregion
20923
20924
  //#region src/crumbs/crumb-path.ts
20924
20925
  const INVALID_ANCHOR_CHARS_RE = /[^\w-]/g;
20925
- let CrumbPathElement = class CrumbPathElement extends i$3 {
20926
+ let CrumbPathElement = class CrumbPathElement extends i$4 {
20926
20927
  constructor(..._args) {
20927
20928
  super(..._args);
20928
20929
  this.path = ``;
@@ -21011,7 +21012,7 @@ let CrumbPathElement = class CrumbPathElement extends i$3 {
21011
21012
  updated(changedProperties) {
21012
21013
  if (this._editing) {
21013
21014
  const el = this.shadowRoot?.querySelector(`ixfx-ac-text`);
21014
- if (el instanceof i$3) {
21015
+ if (el instanceof i$4) {
21015
21016
  const editValue = this.path;
21016
21017
  if (this._editStartIndex !== null) {
21017
21018
  const segmentLabel = this.#getSegments()[this._editStartIndex];
@@ -21350,7 +21351,7 @@ let CrumbPathElement = class CrumbPathElement extends i$3 {
21350
21351
  `;
21351
21352
  }
21352
21353
  static {
21353
- this.styles = [popupSurfaceStyles, i$6`
21354
+ this.styles = [popupSurfaceStyles, i$7`
21354
21355
  :host {
21355
21356
  --text-highlight: var(--accent);
21356
21357
  --separator: var(--surface-muted-text);
@@ -21540,16 +21541,16 @@ __decorate([r$1()], CrumbPathElement.prototype, "_dropdownActiveIndex", void 0);
21540
21541
  __decorate([r$1()], CrumbPathElement.prototype, "_editingCancelled", void 0);
21541
21542
  __decorate([r$1()], CrumbPathElement.prototype, "_editStartIndex", void 0);
21542
21543
  __decorate([r$1()], CrumbPathElement.prototype, "_openCumPath", void 0);
21543
- CrumbPathElement = __decorate([t$4(`ixfx-crumb-path`)], CrumbPathElement);
21544
+ CrumbPathElement = __decorate([safeCustomElement(`ixfx-crumb-path`)], CrumbPathElement);
21544
21545
  //#endregion
21545
21546
  //#region src/data-display.ts
21546
21547
  var _DataDisplayComponent;
21547
- let DataDisplayComponent = class DataDisplayComponent extends i$3 {
21548
+ let DataDisplayComponent = class DataDisplayComponent extends i$4 {
21548
21549
  static {
21549
21550
  _DataDisplayComponent = this;
21550
21551
  }
21551
21552
  static {
21552
- this.styles = i$6`
21553
+ this.styles = i$7`
21553
21554
  :host {
21554
21555
  display: block;
21555
21556
  }
@@ -21633,10 +21634,10 @@ let DataDisplayComponent = class DataDisplayComponent extends i$3 {
21633
21634
  this.previousValue = value;
21634
21635
  }
21635
21636
  };
21636
- DataDisplayComponent = _DataDisplayComponent = __decorate([t$4(`ixfx-data-display`)], DataDisplayComponent);
21637
+ DataDisplayComponent = _DataDisplayComponent = __decorate([safeCustomElement(`ixfx-data-display`)], DataDisplayComponent);
21637
21638
  //#endregion
21638
21639
  //#region src/editable-label/editable-label.ts
21639
- let EditableLabel = class EditableLabel extends i$3 {
21640
+ let EditableLabel = class EditableLabel extends i$4 {
21640
21641
  constructor(..._args) {
21641
21642
  super(..._args);
21642
21643
  this.mode = `label`;
@@ -21796,7 +21797,7 @@ let EditableLabel = class EditableLabel extends i$3 {
21796
21797
  }
21797
21798
  }
21798
21799
  static {
21799
- this.styles = [i$6`
21800
+ this.styles = [i$7`
21800
21801
  :host {
21801
21802
  display: inline-flex;
21802
21803
  align-items: center;
@@ -21906,7 +21907,7 @@ __decorate([n$2({
21906
21907
  __decorate([n$2({ attribute: false })], EditableLabel.prototype, "validator", void 0);
21907
21908
  __decorate([n$2({ attribute: false })], EditableLabel.prototype, "formatter", void 0);
21908
21909
  __decorate([r$1()], EditableLabel.prototype, "_editing", void 0);
21909
- EditableLabel = __decorate([t$4(`ixfx-editable-label`)], EditableLabel);
21910
+ EditableLabel = __decorate([safeCustomElement(`ixfx-editable-label`)], EditableLabel);
21910
21911
  //#endregion
21911
21912
  //#region src/keyboard.ts
21912
21913
  /**
@@ -22326,7 +22327,7 @@ let EditableNumber = class EditableNumber extends EditableLabel {
22326
22327
  this.styles = [
22327
22328
  prominenceStyles,
22328
22329
  ...EditableLabel.styles,
22329
- i$6`
22330
+ i$7`
22330
22331
  :host {
22331
22332
  font-size: var(--text-s,11px);
22332
22333
  --value: 0;
@@ -22501,14 +22502,14 @@ __decorate([n$2({
22501
22502
  attribute: `no-drag`
22502
22503
  })], EditableNumber.prototype, "noDrag", void 0);
22503
22504
  __decorate([n$2({ type: Number })], EditableNumber.prototype, "precision", void 0);
22504
- EditableNumber = __decorate([t$4(`ixfx-editable-number`)], EditableNumber);
22505
+ EditableNumber = __decorate([safeCustomElement(`ixfx-editable-number`)], EditableNumber);
22505
22506
  //#endregion
22506
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directive-helpers.js
22507
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive-helpers.js
22507
22508
  /**
22508
22509
  * @license
22509
22510
  * Copyright 2020 Google LLC
22510
22511
  * SPDX-License-Identifier: BSD-3-Clause
22511
- */ const { I: t$1 } = j$1, i = (o) => o, s = () => document.createComment(""), v = (o, n, e) => {
22512
+ */ const { I: t$1 } = j$1, i$1 = (o) => o, s = () => document.createComment(""), v = (o, n, e) => {
22512
22513
  const l = o._$AA.parentNode, d = void 0 === n ? o._$AB : n._$AA;
22513
22514
  if (void 0 === e) e = new t$1(l.insertBefore(s(), d), l.insertBefore(s(), d), o, o.options);
22514
22515
  else {
@@ -22520,8 +22521,8 @@ EditableNumber = __decorate([t$4(`ixfx-editable-number`)], EditableNumber);
22520
22521
  if (t !== d || c) {
22521
22522
  let o = e._$AA;
22522
22523
  for (; o !== t;) {
22523
- const t = i(o).nextSibling;
22524
- i(l).insertBefore(o, d), o = t;
22524
+ const t = i$1(o).nextSibling;
22525
+ i$1(l).insertBefore(o, d), o = t;
22525
22526
  }
22526
22527
  }
22527
22528
  }
@@ -22530,7 +22531,7 @@ EditableNumber = __decorate([t$4(`ixfx-editable-number`)], EditableNumber);
22530
22531
  o._$AR(), o._$AA.remove();
22531
22532
  };
22532
22533
  //#endregion
22533
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directives/repeat.js
22534
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/repeat.js
22534
22535
  /**
22535
22536
  * @license
22536
22537
  * Copyright 2017 Google LLC
@@ -22540,7 +22541,7 @@ const u = (e, s, t) => {
22540
22541
  const r = /* @__PURE__ */ new Map();
22541
22542
  for (let l = s; l <= t; l++) r.set(e[l], l);
22542
22543
  return r;
22543
- }, c = e$3(class extends i$2 {
22544
+ }, c = e$3(class extends i$3 {
22544
22545
  constructor(e) {
22545
22546
  if (super(e), e.type !== t$2.CHILD) throw Error("repeat() can only be used in text expressions");
22546
22547
  }
@@ -22882,7 +22883,7 @@ const selectionFromPointerRange = (start, end, mode, columns) => {
22882
22883
  };
22883
22884
  //#endregion
22884
22885
  //#region src/hex/hex-editor.ts
22885
- let IxfxHexEditorElement = class IxfxHexEditorElement extends i$3 {
22886
+ let IxfxHexEditorElement = class IxfxHexEditorElement extends i$4 {
22886
22887
  constructor(..._args) {
22887
22888
  super(..._args);
22888
22889
  this.columns = 4;
@@ -23041,7 +23042,7 @@ let IxfxHexEditorElement = class IxfxHexEditorElement extends i$3 {
23041
23042
  };
23042
23043
  }
23043
23044
  static {
23044
- this.styles = i$6`
23045
+ this.styles = i$7`
23045
23046
  :host {
23046
23047
  --hex-row-height: 24px;
23047
23048
  --hex-offset-width: 8ch;
@@ -23726,7 +23727,7 @@ __decorate([r$1()], IxfxHexEditorElement.prototype, "_editState", void 0);
23726
23727
  __decorate([r$1()], IxfxHexEditorElement.prototype, "_containerH", void 0);
23727
23728
  __decorate([r$1()], IxfxHexEditorElement.prototype, "_shadeMap", void 0);
23728
23729
  __decorate([r$1()], IxfxHexEditorElement.prototype, "_focusSide", void 0);
23729
- IxfxHexEditorElement = __decorate([t$4(`ixfx-hex-editor`)], IxfxHexEditorElement);
23730
+ IxfxHexEditorElement = __decorate([safeCustomElement(`ixfx-hex-editor`)], IxfxHexEditorElement);
23730
23731
  //#endregion
23731
23732
  //#region src/radial-input/svg-utils.ts
23732
23733
  const PI2 = Math.PI * 2;
@@ -24016,7 +24017,7 @@ const CENTER = {
24016
24017
  x: 50,
24017
24018
  y: 50
24018
24019
  };
24019
- let RadialInputElement = class RadialInputElement extends i$3 {
24020
+ let RadialInputElement = class RadialInputElement extends i$4 {
24020
24021
  #_radius;
24021
24022
  get radius() {
24022
24023
  return this.#_radius;
@@ -24427,7 +24428,7 @@ let RadialInputElement = class RadialInputElement extends i$3 {
24427
24428
  if (svg) svg.setAttribute(`viewBox`, `0 0 100 ${viewBoxHeight}`);
24428
24429
  }
24429
24430
  static {
24430
- this.styles = [prominenceStyles, i$6`
24431
+ this.styles = [prominenceStyles, i$7`
24431
24432
  :host {
24432
24433
  display: inline-block;
24433
24434
  width: 100px;
@@ -24567,7 +24568,7 @@ __decorate([n$2({
24567
24568
  type: Boolean,
24568
24569
  reflect: true
24569
24570
  })], RadialInputElement.prototype, "disabled", void 0);
24570
- RadialInputElement = __decorate([t$4(`ixfx-radial-input`)], RadialInputElement);
24571
+ RadialInputElement = __decorate([safeCustomElement(`ixfx-radial-input`)], RadialInputElement);
24571
24572
  //#endregion
24572
24573
  //#region src/labelled-radial-input/labelled-radial-input.ts
24573
24574
  let LabelledRadialInput = class LabelledRadialInput extends LabelledInputBase {
@@ -24655,7 +24656,7 @@ let LabelledRadialInput = class LabelledRadialInput extends LabelledInputBase {
24655
24656
  return numValue.toFixed(2);
24656
24657
  }
24657
24658
  static {
24658
- this.styles = i$6`
24659
+ this.styles = i$7`
24659
24660
  :host {
24660
24661
  display: block;
24661
24662
  min-height: var(--min-height, 60px);
@@ -24747,10 +24748,10 @@ __decorate([n$2({
24747
24748
  attribute: `aspect-ratio-threshold`
24748
24749
  })], LabelledRadialInput.prototype, "aspectRatioThreshold", void 0);
24749
24750
  __decorate([r$1()], LabelledRadialInput.prototype, "_isWide", void 0);
24750
- LabelledRadialInput = __decorate([t$4(`ixfx-labelled-radial-input`)], LabelledRadialInput);
24751
+ LabelledRadialInput = __decorate([safeCustomElement(`ixfx-labelled-radial-input`)], LabelledRadialInput);
24751
24752
  //#endregion
24752
24753
  //#region src/led.ts
24753
- let LedElement = class LedElement extends i$3 {
24754
+ let LedElement = class LedElement extends i$4 {
24754
24755
  constructor(..._args) {
24755
24756
  super(..._args);
24756
24757
  this.value = 0;
@@ -24796,7 +24797,7 @@ let LedElement = class LedElement extends i$3 {
24796
24797
  return b`<div part="circle"></div>`;
24797
24798
  }
24798
24799
  static {
24799
- this.styles = i$6`
24800
+ this.styles = i$7`
24800
24801
  :host {
24801
24802
  --_size: var(--size, 1ex);
24802
24803
  display: inline-block;
@@ -24833,10 +24834,10 @@ __decorate([n$2({
24833
24834
  type: Number,
24834
24835
  attribute: `rate`
24835
24836
  })], LedElement.prototype, "rate", void 0);
24836
- LedElement = __decorate([t$4(`ixfx-led`)], LedElement);
24837
+ LedElement = __decorate([safeCustomElement(`ixfx-led`)], LedElement);
24837
24838
  //#endregion
24838
24839
  //#region src/menu/menu-bar.ts
24839
- let MenuBar = class MenuBar extends i$3 {
24840
+ let MenuBar = class MenuBar extends i$4 {
24840
24841
  constructor(..._args) {
24841
24842
  super(..._args);
24842
24843
  this._openTrigger = null;
@@ -24899,7 +24900,7 @@ let MenuBar = class MenuBar extends i$3 {
24899
24900
  return [...this.children].filter((el) => el.tagName === `IXFX-MENU-TRIGGER`);
24900
24901
  }
24901
24902
  static {
24902
- this.styles = i$6`
24903
+ this.styles = i$7`
24903
24904
  :host {
24904
24905
  display: flex;
24905
24906
  align-items: center;
@@ -24916,10 +24917,10 @@ let MenuBar = class MenuBar extends i$3 {
24916
24917
  return b`<slot role="menubar"></slot>`;
24917
24918
  }
24918
24919
  };
24919
- MenuBar = __decorate([t$4(`ixfx-menu-bar`)], MenuBar);
24920
+ MenuBar = __decorate([safeCustomElement(`ixfx-menu-bar`)], MenuBar);
24920
24921
  //#endregion
24921
24922
  //#region src/menu/menu-check-item.ts
24922
- let MenuCheckItem = class MenuCheckItem extends i$3 {
24923
+ let MenuCheckItem = class MenuCheckItem extends i$4 {
24923
24924
  constructor(..._args) {
24924
24925
  super(..._args);
24925
24926
  this.command = ``;
@@ -24975,7 +24976,7 @@ let MenuCheckItem = class MenuCheckItem extends i$3 {
24975
24976
  return [...mods, key].join(``);
24976
24977
  }
24977
24978
  static {
24978
- this.styles = [tickledItemStyles, i$6`
24979
+ this.styles = [tickledItemStyles, i$7`
24979
24980
  :host {
24980
24981
  display: block;
24981
24982
  }
@@ -25066,7 +25067,7 @@ __decorate([n$2({
25066
25067
  })], MenuCheckItem.prototype, "iconName", void 0);
25067
25068
  __decorate([n$2({ attribute: false })], MenuCheckItem.prototype, "registry", void 0);
25068
25069
  __decorate([n$2({ attribute: false })], MenuCheckItem.prototype, "keyboardManager", void 0);
25069
- MenuCheckItem = __decorate([t$4(`ixfx-menu-check-item`)], MenuCheckItem);
25070
+ MenuCheckItem = __decorate([safeCustomElement(`ixfx-menu-check-item`)], MenuCheckItem);
25070
25071
  //#endregion
25071
25072
  //#region src/menu/menu-command-controller.ts
25072
25073
  var MenuCommandController = class {
@@ -25091,13 +25092,13 @@ var MenuCommandController = class {
25091
25092
  };
25092
25093
  //#endregion
25093
25094
  //#region src/menu/menu-header.ts
25094
- let MenuHeader = class MenuHeader extends i$3 {
25095
+ let MenuHeader = class MenuHeader extends i$4 {
25095
25096
  constructor(..._args) {
25096
25097
  super(..._args);
25097
25098
  this.label = ``;
25098
25099
  }
25099
25100
  static {
25100
- this.styles = i$6`
25101
+ this.styles = i$7`
25101
25102
  :host {
25102
25103
  display: block;
25103
25104
  padding: 6px var(--space-m) var(--space-xs);
@@ -25114,11 +25115,11 @@ let MenuHeader = class MenuHeader extends i$3 {
25114
25115
  }
25115
25116
  };
25116
25117
  __decorate([n$2({ type: String })], MenuHeader.prototype, "label", void 0);
25117
- MenuHeader = __decorate([t$4(`ixfx-menu-header`)], MenuHeader);
25118
+ MenuHeader = __decorate([safeCustomElement(`ixfx-menu-header`)], MenuHeader);
25118
25119
  //#endregion
25119
25120
  //#region src/menu/menu-sub-trigger.ts
25120
25121
  var _MenuSubTrigger;
25121
- let MenuSubTrigger = class MenuSubTrigger extends i$3 {
25122
+ let MenuSubTrigger = class MenuSubTrigger extends i$4 {
25122
25123
  static {
25123
25124
  _MenuSubTrigger = this;
25124
25125
  }
@@ -25261,7 +25262,7 @@ let MenuSubTrigger = class MenuSubTrigger extends i$3 {
25261
25262
  }
25262
25263
  }
25263
25264
  static {
25264
- this.styles = [tickledItemStyles, i$6`
25265
+ this.styles = [tickledItemStyles, i$7`
25265
25266
  :host {
25266
25267
  display: block;
25267
25268
  }
@@ -25371,12 +25372,12 @@ __decorate([r$1()], MenuSubTrigger.prototype, "_hasSubmenu", void 0);
25371
25372
  __decorate([e$4(`slot[name="submenu"]`)], MenuSubTrigger.prototype, "_slot", void 0);
25372
25373
  __decorate([e$4(`.submenu-popover`)], MenuSubTrigger.prototype, "_submenuPopover", void 0);
25373
25374
  __decorate([e$4(`.item`)], MenuSubTrigger.prototype, "_itemEl", void 0);
25374
- MenuSubTrigger = _MenuSubTrigger = __decorate([t$4(`ixfx-menu-sub-trigger`)], MenuSubTrigger);
25375
+ MenuSubTrigger = _MenuSubTrigger = __decorate([safeCustomElement(`ixfx-menu-sub-trigger`)], MenuSubTrigger);
25375
25376
  //#endregion
25376
25377
  //#region src/menu/menu-separator.ts
25377
- let MenuSeparator = class MenuSeparator extends i$3 {
25378
+ let MenuSeparator = class MenuSeparator extends i$4 {
25378
25379
  static {
25379
- this.styles = i$6`
25380
+ this.styles = i$7`
25380
25381
  :host {
25381
25382
  display: block;
25382
25383
  margin: var(--space-xs) 0;
@@ -25392,7 +25393,7 @@ let MenuSeparator = class MenuSeparator extends i$3 {
25392
25393
  return b`<div class="separator"></div>`;
25393
25394
  }
25394
25395
  };
25395
- MenuSeparator = __decorate([t$4(`ixfx-menu-separator`)], MenuSeparator);
25396
+ MenuSeparator = __decorate([safeCustomElement(`ixfx-menu-separator`)], MenuSeparator);
25396
25397
  //#endregion
25397
25398
  //#region src/menu/menu-from-tree.ts
25398
25399
  function isLeaf(node) {
@@ -25471,7 +25472,7 @@ function menuFromTreeToElements(nodes, options = {}) {
25471
25472
  }
25472
25473
  //#endregion
25473
25474
  //#region src/menu/menu-radio-item.ts
25474
- let MenuRadioItem = class MenuRadioItem extends i$3 {
25475
+ let MenuRadioItem = class MenuRadioItem extends i$4 {
25475
25476
  constructor(..._args) {
25476
25477
  super(..._args);
25477
25478
  this.value = ``;
@@ -25489,7 +25490,7 @@ let MenuRadioItem = class MenuRadioItem extends i$3 {
25489
25490
  }));
25490
25491
  }
25491
25492
  static {
25492
- this.styles = [tickledItemStyles, i$6`
25493
+ this.styles = [tickledItemStyles, i$7`
25493
25494
  :host {
25494
25495
  display: block;
25495
25496
  }
@@ -25566,10 +25567,10 @@ __decorate([n$2({
25566
25567
  type: String,
25567
25568
  attribute: `icon-name`
25568
25569
  })], MenuRadioItem.prototype, "iconName", void 0);
25569
- MenuRadioItem = __decorate([t$4(`ixfx-menu-radio-item`)], MenuRadioItem);
25570
+ MenuRadioItem = __decorate([safeCustomElement(`ixfx-menu-radio-item`)], MenuRadioItem);
25570
25571
  //#endregion
25571
25572
  //#region src/menu/menu-radio-group.ts
25572
- let MenuRadioGroup = class MenuRadioGroup extends i$3 {
25573
+ let MenuRadioGroup = class MenuRadioGroup extends i$4 {
25573
25574
  constructor(..._args) {
25574
25575
  super(..._args);
25575
25576
  this.name = ``;
@@ -25599,7 +25600,7 @@ let MenuRadioGroup = class MenuRadioGroup extends i$3 {
25599
25600
  if (changedProperties.has(`value`)) this.updateSlottedValues();
25600
25601
  }
25601
25602
  static {
25602
- this.styles = i$6`
25603
+ this.styles = i$7`
25603
25604
  :host {
25604
25605
  display: block;
25605
25606
  }
@@ -25618,7 +25619,7 @@ let MenuRadioGroup = class MenuRadioGroup extends i$3 {
25618
25619
  __decorate([n$2({ type: String })], MenuRadioGroup.prototype, "name", void 0);
25619
25620
  __decorate([n$2({ type: String })], MenuRadioGroup.prototype, "value", void 0);
25620
25621
  __decorate([r$1()], MenuRadioGroup.prototype, "slottedElements", void 0);
25621
- MenuRadioGroup = __decorate([t$4(`ixfx-menu-radio-group`)], MenuRadioGroup);
25622
+ MenuRadioGroup = __decorate([safeCustomElement(`ixfx-menu-radio-group`)], MenuRadioGroup);
25622
25623
  //#endregion
25623
25624
  //#region src/menu/index.ts
25624
25625
  var menu_exports = /* @__PURE__ */ __exportAll$5({
@@ -25639,7 +25640,7 @@ var menu_exports = /* @__PURE__ */ __exportAll$5({
25639
25640
  //#endregion
25640
25641
  //#region src/miller/miller-base.ts
25641
25642
  const EXPAND_DEBOUNCE_MS = 150;
25642
- let MillerBaseElement = class MillerBaseElement extends i$3 {
25643
+ let MillerBaseElement = class MillerBaseElement extends i$4 {
25643
25644
  constructor(..._args) {
25644
25645
  super(..._args);
25645
25646
  this.headers = false;
@@ -26555,7 +26556,7 @@ let MillerBaseElement = class MillerBaseElement extends i$3 {
26555
26556
  this.tickled.handlePointerLeave(new PointerEvent("pointerleave"));
26556
26557
  }
26557
26558
  static {
26558
- this.styles = [tickledStyles, i$6`
26559
+ this.styles = [tickledStyles, i$7`
26559
26560
  :host {
26560
26561
  --column-bg: var(--surface-3);
26561
26562
  --column-header-bg: var(--surface-2);
@@ -26685,7 +26686,7 @@ __decorate([n$2({ attribute: false })], MillerBaseElement.prototype, "filterPred
26685
26686
  __decorate([r$1()], MillerBaseElement.prototype, "_columns", void 0);
26686
26687
  __decorate([r$1()], MillerBaseElement.prototype, "_loadingDepth", void 0);
26687
26688
  __decorate([r$1()], MillerBaseElement.prototype, "_selectedNodes", void 0);
26688
- MillerBaseElement = __decorate([t$4(`ixfx-miller-base`)], MillerBaseElement);
26689
+ MillerBaseElement = __decorate([safeCustomElement(`ixfx-miller-base`)], MillerBaseElement);
26689
26690
  //#endregion
26690
26691
  //#region src/miller/miller-list.ts
26691
26692
  /**
@@ -26765,7 +26766,7 @@ let MillerListElement = class MillerListElement extends MillerBaseElement {
26765
26766
  this.styles = [
26766
26767
  ...MillerBaseElement.styles,
26767
26768
  tickledItemStyles,
26768
- i$6`
26769
+ i$7`
26769
26770
  .item-list {
26770
26771
  list-style: none;
26771
26772
  margin: 0;
@@ -26846,7 +26847,7 @@ let MillerListElement = class MillerListElement extends MillerBaseElement {
26846
26847
  ];
26847
26848
  }
26848
26849
  };
26849
- MillerListElement = __decorate([t$4(`ixfx-miller-list`)], MillerListElement);
26850
+ MillerListElement = __decorate([safeCustomElement(`ixfx-miller-list`)], MillerListElement);
26850
26851
  //#endregion
26851
26852
  //#region src/miller/miller-tree-controller.ts
26852
26853
  /**
@@ -26973,7 +26974,7 @@ var MillerTreeController = class {
26973
26974
  };
26974
26975
  //#endregion
26975
26976
  //#region src/panel/panel-group.ts
26976
- let PanelGroupElement = class PanelGroupElement extends i$3 {
26977
+ let PanelGroupElement = class PanelGroupElement extends i$4 {
26977
26978
  constructor(..._args) {
26978
26979
  super(..._args);
26979
26980
  this.orientation = `horizontal`;
@@ -27015,7 +27016,7 @@ let PanelGroupElement = class PanelGroupElement extends i$3 {
27015
27016
  `;
27016
27017
  }
27017
27018
  static {
27018
- this.styles = i$6`
27019
+ this.styles = i$7`
27019
27020
  :host {
27020
27021
  display: flex;
27021
27022
  flex-direction: column;
@@ -27058,10 +27059,10 @@ __decorate([n$2({
27058
27059
  })], PanelGroupElement.prototype, "allowMultiple", void 0);
27059
27060
  __decorate([n$2()], PanelGroupElement.prototype, "gap", void 0);
27060
27061
  __decorate([o$2({ slot: `` })], PanelGroupElement.prototype, "_panels", void 0);
27061
- PanelGroupElement = __decorate([t$4(`ixfx-panel-group`)], PanelGroupElement);
27062
+ PanelGroupElement = __decorate([safeCustomElement(`ixfx-panel-group`)], PanelGroupElement);
27062
27063
  //#endregion
27063
27064
  //#region src/panel/panel.ts
27064
- let PanelElement = class PanelElement extends i$3 {
27065
+ let PanelElement = class PanelElement extends i$4 {
27065
27066
  constructor(..._args) {
27066
27067
  super(..._args);
27067
27068
  this.collapsed = false;
@@ -27144,7 +27145,7 @@ let PanelElement = class PanelElement extends i$3 {
27144
27145
  `;
27145
27146
  }
27146
27147
  static {
27147
- this.styles = i$6`
27148
+ this.styles = i$7`
27148
27149
  :host {
27149
27150
  display: flex;
27150
27151
  flex-direction: column;
@@ -27459,7 +27460,7 @@ __decorate([n$2({
27459
27460
  reflect: true
27460
27461
  })], PanelElement.prototype, "variant", void 0);
27461
27462
  __decorate([r$1()], PanelElement.prototype, "_isVertical", void 0);
27462
- PanelElement = __decorate([t$4(`ixfx-panel`)], PanelElement);
27463
+ PanelElement = __decorate([safeCustomElement(`ixfx-panel`)], PanelElement);
27463
27464
  //#endregion
27464
27465
  //#region node_modules/.pnpm/@ixfx+modulation@0.56.12/node_modules/@ixfx/modulation/dist/chunk-pbuEa-1d.js
27465
27466
  var __defProp = Object.defineProperty;
@@ -28233,7 +28234,7 @@ function renderHistMiddle(points, crs, barW, mid, ageStyle) {
28233
28234
  />`;
28234
28235
  });
28235
28236
  }
28236
- let PlotSingleAxis = class PlotSingleAxis extends i$3 {
28237
+ let PlotSingleAxis = class PlotSingleAxis extends i$4 {
28237
28238
  constructor(..._args) {
28238
28239
  super(..._args);
28239
28240
  this.drawStyle = `line-sharp`;
@@ -28458,7 +28459,7 @@ let PlotSingleAxis = class PlotSingleAxis extends i$3 {
28458
28459
  `;
28459
28460
  }
28460
28461
  static {
28461
- this.styles = i$6`
28462
+ this.styles = i$7`
28462
28463
  :host {
28463
28464
  display: inline-block;
28464
28465
  width: 100%;
@@ -28510,10 +28511,10 @@ __decorate([n$2({ attribute: `color-easing` })], PlotSingleAxis.prototype, "colo
28510
28511
  __decorate([n$2({ attribute: `color-scale` })], PlotSingleAxis.prototype, "colorScale", void 0);
28511
28512
  __decorate([r$1()], PlotSingleAxis.prototype, "_width", void 0);
28512
28513
  __decorate([r$1()], PlotSingleAxis.prototype, "_height", void 0);
28513
- PlotSingleAxis = __decorate([t$4(`ixfx-plot-single-axis`)], PlotSingleAxis);
28514
+ PlotSingleAxis = __decorate([safeCustomElement(`ixfx-plot-single-axis`)], PlotSingleAxis);
28514
28515
  //#endregion
28515
28516
  //#region src/plots/xy-axis.ts
28516
- let PlotXyAxis = class PlotXyAxis extends i$3 {
28517
+ let PlotXyAxis = class PlotXyAxis extends i$4 {
28517
28518
  constructor(..._args) {
28518
28519
  super(..._args);
28519
28520
  this.drawStyle = `circles`;
@@ -28734,7 +28735,7 @@ let PlotXyAxis = class PlotXyAxis extends i$3 {
28734
28735
  `;
28735
28736
  }
28736
28737
  static {
28737
- this.styles = i$6`
28738
+ this.styles = i$7`
28738
28739
  :host {
28739
28740
  display: block;
28740
28741
  width: 100%;
@@ -28780,7 +28781,7 @@ __decorate([n$2({ attribute: `color-easing` })], PlotXyAxis.prototype, "colorEas
28780
28781
  __decorate([n$2({ attribute: `color-scale` })], PlotXyAxis.prototype, "colorScale", void 0);
28781
28782
  __decorate([r$1()], PlotXyAxis.prototype, "_width", void 0);
28782
28783
  __decorate([r$1()], PlotXyAxis.prototype, "_height", void 0);
28783
- PlotXyAxis = __decorate([t$4(`ixfx-plot-xy-axis`)], PlotXyAxis);
28784
+ PlotXyAxis = __decorate([safeCustomElement(`ixfx-plot-xy-axis`)], PlotXyAxis);
28784
28785
  //#endregion
28785
28786
  //#region src/polar-pad/polar-pad.ts
28786
28787
  /**
@@ -28914,7 +28915,7 @@ function quantiseRadius(radius, stops) {
28914
28915
  const step = 1 / stops;
28915
28916
  return Math.round(radius / step) * step;
28916
28917
  }
28917
- let PolarPad = class PolarPad extends i$3 {
28918
+ let PolarPad = class PolarPad extends i$4 {
28918
28919
  constructor(..._args) {
28919
28920
  super(..._args);
28920
28921
  this.angle = 0;
@@ -29022,7 +29023,7 @@ let PolarPad = class PolarPad extends i$3 {
29022
29023
  this._uid = Math.random().toString(36).slice(2, 8);
29023
29024
  }
29024
29025
  static {
29025
- this.styles = i$6`
29026
+ this.styles = i$7`
29026
29027
  :host {
29027
29028
  display: block;
29028
29029
  width: 200px;
@@ -29311,10 +29312,10 @@ __decorate([n$2({
29311
29312
  type: Number,
29312
29313
  attribute: `stops-radius`
29313
29314
  })], PolarPad.prototype, "stopsRadius", void 0);
29314
- PolarPad = __decorate([t$4(`ixfx-polar-pad`)], PolarPad);
29315
+ PolarPad = __decorate([safeCustomElement(`ixfx-polar-pad`)], PolarPad);
29315
29316
  //#endregion
29316
29317
  //#region src/styles/tooltip.ts
29317
- const tooltipValueStyles = i$6`
29318
+ const tooltipValueStyles = i$7`
29318
29319
 
29319
29320
  output.tooltip {
29320
29321
  user-select: none;
@@ -29417,7 +29418,7 @@ const tooltipValueStyles = i$6`
29417
29418
  function normalize(value, min, max) {
29418
29419
  return max === min ? 0 : (value - min) / (max - min);
29419
29420
  }
29420
- let RangeInput = class RangeInput extends i$3 {
29421
+ let RangeInput = class RangeInput extends i$4 {
29421
29422
  constructor(..._args) {
29422
29423
  super(..._args);
29423
29424
  this.min = 0;
@@ -29560,7 +29561,7 @@ let RangeInput = class RangeInput extends i$3 {
29560
29561
  `;
29561
29562
  }
29562
29563
  static {
29563
- this.styles = [tooltipValueStyles, i$6`
29564
+ this.styles = [tooltipValueStyles, i$7`
29564
29565
  :host {
29565
29566
  display: block;
29566
29567
  container-type: size;
@@ -29863,7 +29864,7 @@ __decorate([n$2({
29863
29864
  __decorate([n$2({ attribute: false })], RangeInput.prototype, "labelFormatter", void 0);
29864
29865
  __decorate([e$4(`input`)], RangeInput.prototype, "_inputEl", void 0);
29865
29866
  __decorate([e$4(`ixfx-tooltip`)], RangeInput.prototype, "_tooltipEl", void 0);
29866
- RangeInput = __decorate([t$4(`ixfx-range-input`)], RangeInput);
29867
+ RangeInput = __decorate([safeCustomElement(`ixfx-range-input`)], RangeInput);
29867
29868
  //#endregion
29868
29869
  //#region src/util/drag.ts
29869
29870
  function getCoordinates(event) {
@@ -29900,7 +29901,7 @@ function near(target, range) {
29900
29901
  }
29901
29902
  //#endregion
29902
29903
  //#region src/range/range-multi.ts
29903
- let RangeMultiElement = class RangeMultiElement extends i$3 {
29904
+ let RangeMultiElement = class RangeMultiElement extends i$4 {
29904
29905
  constructor(..._args) {
29905
29906
  super(..._args);
29906
29907
  this.tooltip = true;
@@ -30206,7 +30207,7 @@ let RangeMultiElement = class RangeMultiElement extends i$3 {
30206
30207
  this.styles = [
30207
30208
  tooltipValueStyles,
30208
30209
  prominenceStyles,
30209
- i$6`
30210
+ i$7`
30210
30211
  :host {
30211
30212
  display: grid;
30212
30213
  --value-label-color: unset;
@@ -30376,10 +30377,10 @@ __decorate([n$2({ type: Number })], RangeMultiElement.prototype, "max", null);
30376
30377
  __decorate([n$2({ type: Number })], RangeMultiElement.prototype, "min", null);
30377
30378
  __decorate([t$3({ capture: true })], RangeMultiElement.prototype, "_onInput", null);
30378
30379
  __decorate([t$3({ capture: true })], RangeMultiElement.prototype, "_onPointerDown", null);
30379
- RangeMultiElement = __decorate([t$4(`ixfx-range-multi`)], RangeMultiElement);
30380
+ RangeMultiElement = __decorate([safeCustomElement(`ixfx-range-multi`)], RangeMultiElement);
30380
30381
  //#endregion
30381
30382
  //#region src/range/range.ts
30382
- let RangeElement = class RangeElement extends i$3 {
30383
+ let RangeElement = class RangeElement extends i$4 {
30383
30384
  constructor(..._args) {
30384
30385
  super(..._args);
30385
30386
  this.tooltip = true;
@@ -30424,7 +30425,7 @@ let RangeElement = class RangeElement extends i$3 {
30424
30425
  this.styles = [
30425
30426
  prominenceStyles,
30426
30427
  tooltipValueStyles,
30427
- i$6`
30428
+ i$7`
30428
30429
  :host {
30429
30430
  display: inline-block;
30430
30431
  --value-label-color: unset;
@@ -30504,10 +30505,10 @@ __decorate([n$2({ type: Number })], RangeElement.prototype, "min", void 0);
30504
30505
  __decorate([n$2({ type: Number })], RangeElement.prototype, "max", void 0);
30505
30506
  __decorate([n$2({ type: Number })], RangeElement.prototype, "value", null);
30506
30507
  __decorate([n$2({ type: Number })], RangeElement.prototype, "step", void 0);
30507
- RangeElement = __decorate([t$4(`ixfx-range`)], RangeElement);
30508
+ RangeElement = __decorate([safeCustomElement(`ixfx-range`)], RangeElement);
30508
30509
  //#endregion
30509
30510
  //#region src/selecthorizontal.ts
30510
- let SelectHorizontalElement = class SelectHorizontalElement extends i$3 {
30511
+ let SelectHorizontalElement = class SelectHorizontalElement extends i$4 {
30511
30512
  constructor(..._args) {
30512
30513
  super(..._args);
30513
30514
  this.editMode = false;
@@ -30521,7 +30522,7 @@ let SelectHorizontalElement = class SelectHorizontalElement extends i$3 {
30521
30522
  `;
30522
30523
  }
30523
30524
  static {
30524
- this.styles = i$6`
30525
+ this.styles = i$7`
30525
30526
  :host {
30526
30527
  display: flex;
30527
30528
  overflow: scroll;
@@ -30540,10 +30541,10 @@ let SelectHorizontalElement = class SelectHorizontalElement extends i$3 {
30540
30541
  }
30541
30542
  };
30542
30543
  __decorate([n$2({ type: Boolean })], SelectHorizontalElement.prototype, "editMode", void 0);
30543
- SelectHorizontalElement = __decorate([t$4(`ixfx-selecthorizontal-element`)], SelectHorizontalElement);
30544
+ SelectHorizontalElement = __decorate([safeCustomElement(`ixfx-selecthorizontal-element`)], SelectHorizontalElement);
30544
30545
  //#endregion
30545
30546
  //#region src/snap-container/snap-container.ts
30546
- let SnapContainer = class SnapContainer extends i$3 {
30547
+ let SnapContainer = class SnapContainer extends i$4 {
30547
30548
  constructor(..._args) {
30548
30549
  super(..._args);
30549
30550
  this.orientation = `horizontal`;
@@ -30659,7 +30660,7 @@ let SnapContainer = class SnapContainer extends i$3 {
30659
30660
  };
30660
30661
  }
30661
30662
  static {
30662
- this.styles = i$6`
30663
+ this.styles = i$7`
30663
30664
  :host {
30664
30665
  display: block;
30665
30666
  position: relative;
@@ -30831,10 +30832,10 @@ __decorate([n$2({
30831
30832
  })], SnapContainer.prototype, "clickSnap", void 0);
30832
30833
  __decorate([n$2({ type: Number })], SnapContainer.prototype, "snap", void 0);
30833
30834
  __decorate([r$1()], SnapContainer.prototype, "_dragging", void 0);
30834
- SnapContainer = __decorate([t$4(`ixfx-snap-container`)], SnapContainer);
30835
+ SnapContainer = __decorate([safeCustomElement(`ixfx-snap-container`)], SnapContainer);
30835
30836
  //#endregion
30836
30837
  //#region src/split-layout/split-layout.ts
30837
- let SplitLayoutElement = class SplitLayoutElement extends i$3 {
30838
+ let SplitLayoutElement = class SplitLayoutElement extends i$4 {
30838
30839
  constructor(..._args) {
30839
30840
  super(..._args);
30840
30841
  this.layout = `vertical`;
@@ -31265,7 +31266,7 @@ let SplitLayoutElement = class SplitLayoutElement extends i$3 {
31265
31266
  </div>`;
31266
31267
  }
31267
31268
  static {
31268
- this.styles = i$6`
31269
+ this.styles = i$7`
31269
31270
  :host {
31270
31271
  --handle-size: 2px;
31271
31272
  --handle-colour: var(--surface-5);
@@ -31369,10 +31370,10 @@ __decorate([n$2({ type: String })], SplitLayoutElement.prototype, "maxSizeA", vo
31369
31370
  __decorate([n$2({ type: String })], SplitLayoutElement.prototype, "minSizeB", void 0);
31370
31371
  __decorate([n$2({ type: String })], SplitLayoutElement.prototype, "maxSizeB", void 0);
31371
31372
  __decorate([r$1()], SplitLayoutElement.prototype, "_hasCorner", void 0);
31372
- SplitLayoutElement = __decorate([t$4(`ixfx-split-layout`)], SplitLayoutElement);
31373
+ SplitLayoutElement = __decorate([safeCustomElement(`ixfx-split-layout`)], SplitLayoutElement);
31373
31374
  //#endregion
31374
31375
  //#region src/swipe/swipe.ts
31375
- let SwipeElement = class SwipeElement extends i$3 {
31376
+ let SwipeElement = class SwipeElement extends i$4 {
31376
31377
  constructor(..._args) {
31377
31378
  super(..._args);
31378
31379
  this.barSpacing = 20;
@@ -31520,7 +31521,7 @@ let SwipeElement = class SwipeElement extends i$3 {
31520
31521
  })}`;
31521
31522
  }
31522
31523
  static {
31523
- this.styles = [prominenceStyles, i$6`
31524
+ this.styles = [prominenceStyles, i$7`
31524
31525
  :host {
31525
31526
  display: block;
31526
31527
  user-select: none;
@@ -31566,10 +31567,10 @@ __decorate([n$2({ type: Number })], SwipeElement.prototype, "barSpacing", void 0
31566
31567
  __decorate([n$2({ type: Number })], SwipeElement.prototype, "barWidth", void 0);
31567
31568
  __decorate([n$2({ type: Number })], SwipeElement.prototype, "debounceMs", void 0);
31568
31569
  __decorate([n$2({ type: Number })], SwipeElement.prototype, "retractDurationMs", void 0);
31569
- SwipeElement = __decorate([t$4(`ixfx-swipe`)], SwipeElement);
31570
+ SwipeElement = __decorate([safeCustomElement(`ixfx-swipe`)], SwipeElement);
31570
31571
  //#endregion
31571
31572
  //#region src/tabs/tab-list-item.ts
31572
- let TabListItemElement = class TabListItemElement extends i$3 {
31573
+ let TabListItemElement = class TabListItemElement extends i$4 {
31573
31574
  constructor(..._args) {
31574
31575
  super(..._args);
31575
31576
  this.closeable = false;
@@ -31642,7 +31643,7 @@ let TabListItemElement = class TabListItemElement extends i$3 {
31642
31643
  this.remove();
31643
31644
  }
31644
31645
  static {
31645
- this.styles = [prominenceStyles, i$6`
31646
+ this.styles = [prominenceStyles, i$7`
31646
31647
  :host {
31647
31648
  --selected-colour: var(--accent);
31648
31649
  --selected-border-width: 1px;
@@ -31728,10 +31729,10 @@ __decorate([n$2({
31728
31729
  })], TabListItemElement.prototype, "commandActive", void 0);
31729
31730
  __decorate([n$2({ attribute: false })], TabListItemElement.prototype, "registry", void 0);
31730
31731
  __decorate([r$1()], TabListItemElement.prototype, "_compact", void 0);
31731
- TabListItemElement = __decorate([t$4(`ixfx-tab-list-item`)], TabListItemElement);
31732
+ TabListItemElement = __decorate([safeCustomElement(`ixfx-tab-list-item`)], TabListItemElement);
31732
31733
  //#endregion
31733
31734
  //#region src/tabs/tab-list.ts
31734
- let TabListElement = class TabListElement extends i$3 {
31735
+ let TabListElement = class TabListElement extends i$4 {
31735
31736
  constructor(..._args) {
31736
31737
  super(..._args);
31737
31738
  this.orientation = `horizontal`;
@@ -31851,7 +31852,7 @@ let TabListElement = class TabListElement extends i$3 {
31851
31852
  }
31852
31853
  #onSlotClick;
31853
31854
  static {
31854
- this.styles = i$6`
31855
+ this.styles = i$7`
31855
31856
  :host {
31856
31857
  display: inline-block;
31857
31858
  --activated-colour: var(--accent);
@@ -31925,15 +31926,15 @@ let TabListElement = class TabListElement extends i$3 {
31925
31926
  __decorate([n$2({ type: String })], TabListElement.prototype, "orientation", void 0);
31926
31927
  __decorate([n$2({ type: Boolean })], TabListElement.prototype, "flip", void 0);
31927
31928
  __decorate([n$2({ type: Boolean })], TabListElement.prototype, "scrollable", void 0);
31928
- TabListElement = __decorate([t$4(`ixfx-tab-list`)], TabListElement);
31929
+ TabListElement = __decorate([safeCustomElement(`ixfx-tab-list`)], TabListElement);
31929
31930
  //#endregion
31930
31931
  //#region src/tabs/tab-panel.ts
31931
- let TabPanelElement = class TabPanelElement extends i$3 {
31932
+ let TabPanelElement = class TabPanelElement extends i$4 {
31932
31933
  render() {
31933
31934
  return b`<slot></slot>`;
31934
31935
  }
31935
31936
  static {
31936
- this.styles = i$6`
31937
+ this.styles = i$7`
31937
31938
  :host {
31938
31939
  display:none;
31939
31940
  height:100%;
@@ -31947,10 +31948,10 @@ let TabPanelElement = class TabPanelElement extends i$3 {
31947
31948
  `;
31948
31949
  }
31949
31950
  };
31950
- TabPanelElement = __decorate([t$4(`ixfx-tab-panel`)], TabPanelElement);
31951
+ TabPanelElement = __decorate([safeCustomElement(`ixfx-tab-panel`)], TabPanelElement);
31951
31952
  //#endregion
31952
31953
  //#region src/tabs/tab-panels.ts
31953
- let TabPanelsElement = class TabPanelsElement extends i$3 {
31954
+ let TabPanelsElement = class TabPanelsElement extends i$4 {
31954
31955
  render() {
31955
31956
  return b`<slot></slot>`;
31956
31957
  }
@@ -31993,7 +31994,7 @@ let TabPanelsElement = class TabPanelsElement extends i$3 {
31993
31994
  return found;
31994
31995
  }
31995
31996
  static {
31996
- this.styles = i$6`
31997
+ this.styles = i$7`
31997
31998
  :host {
31998
31999
  display: block;
31999
32000
  }
@@ -32002,7 +32003,7 @@ let TabPanelsElement = class TabPanelsElement extends i$3 {
32002
32003
  }
32003
32004
  };
32004
32005
  __decorate([o$2()], TabPanelsElement.prototype, "_listItems", void 0);
32005
- TabPanelsElement = __decorate([t$4(`ixfx-tab-panels`)], TabPanelsElement);
32006
+ TabPanelsElement = __decorate([safeCustomElement(`ixfx-tab-panels`)], TabPanelsElement);
32006
32007
  //#endregion
32007
32008
  //#region src/timeline/timeline-draw.ts
32008
32009
  const NICE_STEPS = [
@@ -32622,7 +32623,7 @@ const fireSelectionChange = (host) => {
32622
32623
  };
32623
32624
  //#endregion
32624
32625
  //#region src/timeline/timeline-styles.ts
32625
- const timelineStyles = i$6`
32626
+ const timelineStyles = i$7`
32626
32627
  :host {
32627
32628
  /* Layout */
32628
32629
  --timeline-axis-height: 24px;
@@ -32779,7 +32780,7 @@ const timelineStyles = i$6`
32779
32780
  const MIN_TRACK_HEIGHT = 24;
32780
32781
  /** How close to the bottom edge the pointer must be (px) to trigger resize */
32781
32782
  const EDGE_ZONE_PX = 6;
32782
- let TimelineTrackTabElement = class TimelineTrackTabElement extends i$3 {
32783
+ let TimelineTrackTabElement = class TimelineTrackTabElement extends i$4 {
32783
32784
  constructor(..._args) {
32784
32785
  super(..._args);
32785
32786
  this.label = ``;
@@ -32824,7 +32825,7 @@ let TimelineTrackTabElement = class TimelineTrackTabElement extends i$3 {
32824
32825
  };
32825
32826
  }
32826
32827
  static {
32827
- this.styles = i$6`
32828
+ this.styles = i$7`
32828
32829
  :host {
32829
32830
  display: flex;
32830
32831
  align-items: center;
@@ -32943,14 +32944,14 @@ __decorate([n$2({
32943
32944
  type: Boolean,
32944
32945
  reflect: true
32945
32946
  })], TimelineTrackTabElement.prototype, "resizable", void 0);
32946
- TimelineTrackTabElement = __decorate([t$4(`ixfx-timeline-track-tab`)], TimelineTrackTabElement);
32947
+ TimelineTrackTabElement = __decorate([safeCustomElement(`ixfx-timeline-track-tab`)], TimelineTrackTabElement);
32947
32948
  //#endregion
32948
32949
  //#region src/timeline/timeline-element.ts
32949
32950
  /** Reasonable maximum ppu to prevent infinite zoom-in */
32950
32951
  const MAX_PPU = 1e4;
32951
32952
  /** Minimum rendered track height (~1.5em) at max zoom-out */
32952
32953
  const MIN_TRACK_RENDER_HEIGHT = 24;
32953
- let IxfxTimelineElement = class IxfxTimelineElement extends i$3 {
32954
+ let IxfxTimelineElement = class IxfxTimelineElement extends i$4 {
32954
32955
  constructor(..._args) {
32955
32956
  super(..._args);
32956
32957
  this.tracks = [];
@@ -33679,7 +33680,7 @@ __decorate([r$1()], IxfxTimelineElement.prototype, "_trackHeightOverrides", void
33679
33680
  __decorate([r$1()], IxfxTimelineElement.prototype, "_trackLayout", void 0);
33680
33681
  __decorate([r$1()], IxfxTimelineElement.prototype, "_internalEvents", void 0);
33681
33682
  __decorate([r$1()], IxfxTimelineElement.prototype, "_internalTracks", void 0);
33682
- IxfxTimelineElement = __decorate([t$4(`ixfx-timeline`)], IxfxTimelineElement);
33683
+ IxfxTimelineElement = __decorate([safeCustomElement(`ixfx-timeline`)], IxfxTimelineElement);
33683
33684
  //#endregion
33684
33685
  //#region src/timeline/timeline-controller.ts
33685
33686
  /**
@@ -33745,8 +33746,267 @@ var TimelineController = class {
33745
33746
  }
33746
33747
  };
33747
33748
  //#endregion
33749
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/keyed.js
33750
+ /**
33751
+ * @license
33752
+ * Copyright 2021 Google LLC
33753
+ * SPDX-License-Identifier: BSD-3-Clause
33754
+ */ const i = e$3(class extends i$3 {
33755
+ constructor() {
33756
+ super(...arguments), this.key = A;
33757
+ }
33758
+ render(r, t) {
33759
+ return this.key = r, t;
33760
+ }
33761
+ update(r, [t, e]) {
33762
+ return t !== this.key && (p(r), this.key = t), e;
33763
+ }
33764
+ });
33765
+ //#endregion
33766
+ //#region src/transitory-label/transitory-label.ts
33767
+ let TransitoryLabelElement = class TransitoryLabelElement extends i$4 {
33768
+ constructor(..._args) {
33769
+ super(..._args);
33770
+ this.text = ``;
33771
+ this.effect = `fade`;
33772
+ this.duration = 300;
33773
+ this.easing = `ease`;
33774
+ this._currentText = ``;
33775
+ this._outgoingText = ``;
33776
+ this._transitionId = 0;
33777
+ this._queue = [];
33778
+ this.#onOutgoingEnd = () => {
33779
+ this._onTransitionEnd();
33780
+ };
33781
+ this.#onLastCharOut = () => {
33782
+ this._onTransitionEnd();
33783
+ };
33784
+ }
33785
+ setText(msg, effect) {
33786
+ this._pendingEffect = effect;
33787
+ this.text = msg;
33788
+ }
33789
+ updated(changed) {
33790
+ if (changed.has(`text`) && this.text !== this._currentText) {
33791
+ const effect = this._pendingEffect ?? this.effect;
33792
+ this._pendingEffect = void 0;
33793
+ if (this._activeEffect !== void 0) this._queue.push({
33794
+ text: this.text,
33795
+ effect
33796
+ });
33797
+ else this._startTransition(this.text, effect);
33798
+ }
33799
+ }
33800
+ _startTransition(newText, effect) {
33801
+ const prevText = this._currentText;
33802
+ this._currentText = newText;
33803
+ this._outgoingText = prevText;
33804
+ if (prevText !== ``) {
33805
+ this._transitionId++;
33806
+ this._activeEffect = effect;
33807
+ }
33808
+ }
33809
+ _onTransitionEnd() {
33810
+ this._outgoingText = ``;
33811
+ this._activeEffect = void 0;
33812
+ if (this._queue.length > 0) {
33813
+ const next = this._queue.shift();
33814
+ this._startTransition(next.text, next.effect);
33815
+ }
33816
+ }
33817
+ #onOutgoingEnd;
33818
+ #onLastCharOut;
33819
+ #renderCharSwap() {
33820
+ const charDuration = Math.round(this.duration * .3);
33821
+ const charStagger = Math.round(this.duration * .1);
33822
+ const currentChars = this._currentText.split(``);
33823
+ const outgoingChars = this._outgoingText.split(``);
33824
+ const lastIdx = outgoingChars.length - 1;
33825
+ const charStyle = (i) => `animation-duration:${charDuration}ms;animation-delay:${i * charStagger}ms;animation-timing-function:${this.easing}`;
33826
+ return b`
33827
+ ${i(`cc${this._transitionId}`, b`
33828
+ <span class="layer current char-swap">
33829
+ ${currentChars.map((ch, i) => b`<span class="char in" style=${charStyle(i)}>${ch}</span>`)}
33830
+ </span>
33831
+ `)}
33832
+ ${this._outgoingText ? i(this._transitionId, b`
33833
+ <span class="layer outgoing char-swap">
33834
+ ${outgoingChars.map((ch, i) => b`<span
33835
+ class="char out"
33836
+ style=${charStyle(i)}
33837
+ @animationend=${i === lastIdx ? this.#onLastCharOut : void 0}
33838
+ >${ch}</span>`)}
33839
+ </span>
33840
+ `) : A}
33841
+ `;
33842
+ }
33843
+ render() {
33844
+ if (this._activeEffect === `character-swap`) return b`<span class="container">${this.#renderCharSwap()}</span>`;
33845
+ const effect = this._activeEffect ?? ``;
33846
+ const durStyle = this._activeEffect ? `animation-duration:${this.duration}ms;animation-timing-function:${this.easing}` : ``;
33847
+ return b`
33848
+ <span class="container">
33849
+ ${this._outgoingText ? i(this._transitionId, b`
33850
+ <span class="layer outgoing ${effect}" style=${durStyle} @animationend=${this.#onOutgoingEnd}>
33851
+ ${this._outgoingText}
33852
+ </span>
33853
+ `) : A}
33854
+ ${i(`c${this._transitionId}`, b`
33855
+ <span class="layer current ${effect}" style=${durStyle}>
33856
+ ${this._currentText}
33857
+ </span>
33858
+ `)}
33859
+ </span>
33860
+ `;
33861
+ }
33862
+ static {
33863
+ this.styles = i$7`
33864
+ :host {
33865
+ display: inline-block;
33866
+ --transitory-label-easing: ease;
33867
+ }
33868
+
33869
+ .container {
33870
+ display: inline-grid;
33871
+ overflow: hidden;
33872
+ }
33873
+
33874
+ .layer {
33875
+ grid-area: 1 / 1;
33876
+ white-space: nowrap;
33877
+ }
33878
+
33879
+ .layer.outgoing {
33880
+ pointer-events: none;
33881
+ }
33882
+
33883
+ /* slide-right */
33884
+ .layer.current.slide-right {
33885
+ transform: translateX(-100%);
33886
+ animation: tl-slide-in-left var(--transitory-label-easing) forwards;
33887
+ }
33888
+ .layer.outgoing.slide-right {
33889
+ animation: tl-slide-out-right var(--transitory-label-easing) forwards;
33890
+ }
33891
+
33892
+ @keyframes tl-slide-in-left {
33893
+ from { transform: translateX(-100%); }
33894
+ to { transform: translateX(0); }
33895
+ }
33896
+ @keyframes tl-slide-out-right {
33897
+ from { transform: translateX(0); }
33898
+ to { transform: translateX(100%); }
33899
+ }
33900
+
33901
+ /* slide-left */
33902
+ .layer.current.slide-left {
33903
+ transform: translateX(100%);
33904
+ animation: tl-slide-in-right var(--transitory-label-easing) forwards;
33905
+ }
33906
+ .layer.outgoing.slide-left {
33907
+ animation: tl-slide-out-left var(--transitory-label-easing) forwards;
33908
+ }
33909
+
33910
+ @keyframes tl-slide-in-right {
33911
+ from { transform: translateX(100%); }
33912
+ to { transform: translateX(0); }
33913
+ }
33914
+ @keyframes tl-slide-out-left {
33915
+ from { transform: translateX(0); }
33916
+ to { transform: translateX(-100%); }
33917
+ }
33918
+
33919
+ /* slide-up */
33920
+ .layer.current.slide-up {
33921
+ transform: translateY(100%);
33922
+ animation: tl-slide-in-bottom var(--transitory-label-easing) forwards;
33923
+ }
33924
+ .layer.outgoing.slide-up {
33925
+ animation: tl-slide-out-top var(--transitory-label-easing) forwards;
33926
+ }
33927
+
33928
+ @keyframes tl-slide-in-bottom {
33929
+ from { transform: translateY(100%); }
33930
+ to { transform: translateY(0); }
33931
+ }
33932
+ @keyframes tl-slide-out-top {
33933
+ from { transform: translateY(0); }
33934
+ to { transform: translateY(-100%); }
33935
+ }
33936
+
33937
+ /* slide-down */
33938
+ .layer.current.slide-down {
33939
+ transform: translateY(-100%);
33940
+ animation: tl-slide-in-top var(--transitory-label-easing) forwards;
33941
+ }
33942
+ .layer.outgoing.slide-down {
33943
+ animation: tl-slide-out-bottom var(--transitory-label-easing) forwards;
33944
+ }
33945
+
33946
+ @keyframes tl-slide-in-top {
33947
+ from { transform: translateY(-100%); }
33948
+ to { transform: translateY(0); }
33949
+ }
33950
+ @keyframes tl-slide-out-bottom {
33951
+ from { transform: translateY(0); }
33952
+ to { transform: translateY(100%); }
33953
+ }
33954
+
33955
+ /* fade */
33956
+ .layer.current.fade {
33957
+ opacity: 0;
33958
+ animation: tl-fade-in var(--transitory-label-easing) forwards;
33959
+ }
33960
+ .layer.outgoing.fade {
33961
+ animation: tl-fade-out var(--transitory-label-easing) forwards;
33962
+ }
33963
+
33964
+ @keyframes tl-fade-in {
33965
+ from { opacity: 0; }
33966
+ to { opacity: 1; }
33967
+ }
33968
+ @keyframes tl-fade-out {
33969
+ from { opacity: 1; }
33970
+ to { opacity: 0; }
33971
+ }
33972
+
33973
+ /* character-swap */
33974
+ .char {
33975
+ display: inline-block;
33976
+ }
33977
+
33978
+ .char.in {
33979
+ opacity: 0;
33980
+ animation: tl-char-in var(--transitory-label-easing) forwards;
33981
+ }
33982
+
33983
+ .char.out {
33984
+ animation: tl-char-out var(--transitory-label-easing) forwards;
33985
+ }
33986
+
33987
+ @keyframes tl-char-in {
33988
+ from { opacity: 0; transform: translateY(-0.3em) scale(0.8); }
33989
+ to { opacity: 1; transform: translateY(0) scale(1); }
33990
+ }
33991
+ @keyframes tl-char-out {
33992
+ from { opacity: 1; transform: translateY(0) scale(1); }
33993
+ to { opacity: 0; transform: translateY(0.3em) scale(0.8); }
33994
+ }
33995
+ `;
33996
+ }
33997
+ };
33998
+ __decorate([n$2({ type: String })], TransitoryLabelElement.prototype, "text", void 0);
33999
+ __decorate([n$2({ type: String })], TransitoryLabelElement.prototype, "effect", void 0);
34000
+ __decorate([n$2({ type: Number })], TransitoryLabelElement.prototype, "duration", void 0);
34001
+ __decorate([n$2({ type: String })], TransitoryLabelElement.prototype, "easing", void 0);
34002
+ __decorate([r$1()], TransitoryLabelElement.prototype, "_currentText", void 0);
34003
+ __decorate([r$1()], TransitoryLabelElement.prototype, "_outgoingText", void 0);
34004
+ __decorate([r$1()], TransitoryLabelElement.prototype, "_activeEffect", void 0);
34005
+ __decorate([r$1()], TransitoryLabelElement.prototype, "_transitionId", void 0);
34006
+ TransitoryLabelElement = __decorate([safeCustomElement(`ixfx-transitory-label`)], TransitoryLabelElement);
34007
+ //#endregion
33748
34008
  //#region src/tree/tree-base.ts
33749
- let TreeBaseElement = class TreeBaseElement extends i$3 {
34009
+ let TreeBaseElement = class TreeBaseElement extends i$4 {
33750
34010
  constructor(..._args) {
33751
34011
  super(..._args);
33752
34012
  this.exclusivity = `none`;
@@ -34511,7 +34771,7 @@ let TreeBaseElement = class TreeBaseElement extends i$3 {
34511
34771
  this.styles = [
34512
34772
  tickledStyles,
34513
34773
  tickledItemStyles,
34514
- i$6`
34774
+ i$7`
34515
34775
  :host {
34516
34776
  --tree-bg: var(--surface-3);
34517
34777
  --tree-text: var(--surface-3-text);
@@ -34639,7 +34899,7 @@ __decorate([n$2({
34639
34899
  })], TreeBaseElement.prototype, "disableKeyboardNavigation", void 0);
34640
34900
  __decorate([r$1()], TreeBaseElement.prototype, "_expandedKeys", void 0);
34641
34901
  __decorate([r$1()], TreeBaseElement.prototype, "_focusedDepth", void 0);
34642
- TreeBaseElement = __decorate([t$4(`ixfx-tree-base`)], TreeBaseElement);
34902
+ TreeBaseElement = __decorate([safeCustomElement(`ixfx-tree-base`)], TreeBaseElement);
34643
34903
  //#endregion
34644
34904
  //#region src/tree/tree-controller.ts
34645
34905
  var TreeController = class {
@@ -34808,7 +35068,7 @@ let TreeListElement = class TreeListElement extends TreeBaseElement {
34808
35068
  `;
34809
35069
  }
34810
35070
  static {
34811
- this.styles = [...TreeBaseElement.styles, i$6`
35071
+ this.styles = [...TreeBaseElement.styles, i$7`
34812
35072
  .tree-caret {
34813
35073
  display: inline-flex;
34814
35074
  align-items: center;
@@ -34878,7 +35138,7 @@ let TreeListElement = class TreeListElement extends TreeBaseElement {
34878
35138
  `];
34879
35139
  }
34880
35140
  };
34881
- TreeListElement = __decorate([t$4(`ixfx-tree-list`)], TreeListElement);
35141
+ TreeListElement = __decorate([safeCustomElement(`ixfx-tree-list`)], TreeListElement);
34882
35142
  //#endregion
34883
35143
  //#region src/util/checkbox.ts
34884
35144
  function isCheckboxLike(el) {
@@ -34932,12 +35192,12 @@ function monitorIndeterminate(targetElOrQuery, watchedElsOrQueries) {
34932
35192
  };
34933
35193
  }
34934
35194
  //#endregion
34935
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directives/class-map.js
35195
+ //#region node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/class-map.js
34936
35196
  /**
34937
35197
  * @license
34938
35198
  * Copyright 2018 Google LLC
34939
35199
  * SPDX-License-Identifier: BSD-3-Clause
34940
- */ const e = e$3(class extends i$2 {
35200
+ */ const e = e$3(class extends i$3 {
34941
35201
  constructor(t) {
34942
35202
  if (super(t), t.type !== t$2.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.");
34943
35203
  }
@@ -34970,7 +35230,7 @@ function isNumeric(str) {
34970
35230
  //#endregion
34971
35231
  //#region src/util/tooltip.ts
34972
35232
  var _TooltipElement;
34973
- let TooltipElement = class TooltipElement extends i$3 {
35233
+ let TooltipElement = class TooltipElement extends i$4 {
34974
35234
  static {
34975
35235
  _TooltipElement = this;
34976
35236
  }
@@ -35033,7 +35293,553 @@ __decorate([n$2({ type: String })], TooltipElement.prototype, "orientation", voi
35033
35293
  __decorate([n$2({ type: String })], TooltipElement.prototype, "anchor", void 0);
35034
35294
  __decorate([n$2()], TooltipElement.prototype, "value", void 0);
35035
35295
  __decorate([n$2({ type: String })], TooltipElement.prototype, "icon", void 0);
35036
- TooltipElement = _TooltipElement = __decorate([t$4(`ixfx-tooltip`)], TooltipElement);
35296
+ TooltipElement = _TooltipElement = __decorate([safeCustomElement(`ixfx-tooltip`)], TooltipElement);
35297
+ //#endregion
35298
+ //#region src/vertical-list/vertical-list.ts
35299
+ const ITEM_SELECTOR = `li, [data-list-item]`;
35300
+ const isMultiMode = (mode) => mode === `checked` || mode === `vscode` || mode === `standard`;
35301
+ let VerticalListElement = class VerticalListElement extends i$4 {
35302
+ constructor(..._args) {
35303
+ super(..._args);
35304
+ this.selectionMode = `single`;
35305
+ this.interactionMode = `standard`;
35306
+ this._selectedItems = /* @__PURE__ */ new Set();
35307
+ this._searchVisible = false;
35308
+ this._searchQuery = ``;
35309
+ this.tickled = new TickledController(this, {
35310
+ getItems: () => this._getVisibleItems().map((el) => ({
35311
+ id: el,
35312
+ enabled: true
35313
+ })),
35314
+ onTickle: (id) => {
35315
+ if (id !== void 0) this._dispatch(`list-tickle`, { item: id });
35316
+ },
35317
+ onStateChange: () => this._syncItemStates()
35318
+ });
35319
+ this._onPointerOver = (e) => {
35320
+ const item = this._findListItem(e.composedPath());
35321
+ if (item) this.tickled.handlePointerEnter(item);
35322
+ };
35323
+ this._onPointerLeave = (e) => {
35324
+ this.tickled.handlePointerLeave(e);
35325
+ };
35326
+ this._onKeyDown = (e) => {
35327
+ if ((e.ctrlKey || e.metaKey) && e.key === `f`) {
35328
+ e.preventDefault();
35329
+ this._openSearch();
35330
+ return;
35331
+ }
35332
+ if ((e.ctrlKey || e.metaKey) && e.key === `a`) {
35333
+ if ((this.selectionMode === `multiple` || isMultiMode(this.interactionMode)) && this.selectionMode !== `none`) {
35334
+ e.preventDefault();
35335
+ this._selectAll();
35336
+ }
35337
+ return;
35338
+ }
35339
+ if (this._searchVisible) return;
35340
+ switch (e.key) {
35341
+ case `ArrowDown`:
35342
+ e.preventDefault();
35343
+ this.tickled.handleKeyboardNavigation(`next`);
35344
+ if (e.shiftKey && this.interactionMode === `vscode`) {
35345
+ const cur = this.tickled.tickledId;
35346
+ if (cur) this._rangeSelectTo(cur);
35347
+ }
35348
+ break;
35349
+ case `ArrowUp`:
35350
+ e.preventDefault();
35351
+ this.tickled.handleKeyboardNavigation(`previous`);
35352
+ if (e.shiftKey && this.interactionMode === `vscode`) {
35353
+ const cur = this.tickled.tickledId;
35354
+ if (cur) this._rangeSelectTo(cur);
35355
+ }
35356
+ break;
35357
+ case `Enter`: {
35358
+ const id = this.tickled.tickledId;
35359
+ if (id) {
35360
+ e.preventDefault();
35361
+ this._dispatch(`list-item-click`, { item: id });
35362
+ this._activateItem(id);
35363
+ }
35364
+ break;
35365
+ }
35366
+ case ` `: {
35367
+ const id = this.tickled.tickledId;
35368
+ if (id) {
35369
+ e.preventDefault();
35370
+ this._handleSpaceKey(id);
35371
+ }
35372
+ break;
35373
+ }
35374
+ case `Escape`:
35375
+ this._clearSelection();
35376
+ break;
35377
+ }
35378
+ };
35379
+ this._onClick = (e) => {
35380
+ const item = this._findListItem(e.composedPath());
35381
+ if (!item) return;
35382
+ this._dispatch(`list-item-click`, { item });
35383
+ this._handleClickSelection(item, e);
35384
+ };
35385
+ this._onDblClick = (e) => {
35386
+ const item = this._findListItem(e.composedPath());
35387
+ if (item) this._activateItem(item);
35388
+ };
35389
+ this._onSearchInput = (e) => {
35390
+ const input = e.target;
35391
+ this._searchQuery = input.value;
35392
+ this.#search?.setQuery(this._searchQuery);
35393
+ };
35394
+ this._onSearchKeydown = (e) => {
35395
+ if (e.key === `Escape`) {
35396
+ e.stopPropagation();
35397
+ this._closeSearch();
35398
+ } else if (e.key === `ArrowDown`) {
35399
+ e.preventDefault();
35400
+ this.tickled.handleKeyboardNavigation(`next`);
35401
+ } else if (e.key === `ArrowUp`) {
35402
+ e.preventDefault();
35403
+ this.tickled.handleKeyboardNavigation(`previous`);
35404
+ } else if (e.key === `Enter`) {
35405
+ e.preventDefault();
35406
+ e.stopPropagation();
35407
+ const id = this.tickled.tickledId ?? this._getVisibleItems()[0];
35408
+ if (id) {
35409
+ this._dispatch(`list-item-click`, { item: id });
35410
+ this._activateItem(id);
35411
+ this._closeSearch();
35412
+ }
35413
+ }
35414
+ };
35415
+ }
35416
+ #search;
35417
+ #selectionAnchor;
35418
+ connectedCallback() {
35419
+ super.connectedCallback();
35420
+ if (!this.hasAttribute(`tabindex`)) this.tabIndex = 0;
35421
+ this.addEventListener(`pointerover`, this._onPointerOver);
35422
+ this.addEventListener(`pointerleave`, this._onPointerLeave);
35423
+ this.addEventListener(`keydown`, this._onKeyDown);
35424
+ this.addEventListener(`click`, this._onClick);
35425
+ this.addEventListener(`dblclick`, this._onDblClick);
35426
+ }
35427
+ disconnectedCallback() {
35428
+ super.disconnectedCallback();
35429
+ this.removeEventListener(`pointerover`, this._onPointerOver);
35430
+ this.removeEventListener(`pointerleave`, this._onPointerLeave);
35431
+ this.removeEventListener(`keydown`, this._onKeyDown);
35432
+ this.removeEventListener(`click`, this._onClick);
35433
+ this.removeEventListener(`dblclick`, this._onDblClick);
35434
+ this.#search?.dispose();
35435
+ this.#search = void 0;
35436
+ }
35437
+ firstUpdated() {
35438
+ this.#search = createElementIncrSearch({
35439
+ container: this,
35440
+ itemSelector: ITEM_SELECTOR,
35441
+ getLabel: (el) => el.getAttribute(`data-search-label`) ?? el.textContent?.trim() ?? ``,
35442
+ getKey: (el) => el.getAttribute(`data-key`) ?? el.getAttribute(`data-search-label`) ?? el.textContent?.trim() ?? ``,
35443
+ highlightKey: `vertical-list-search`
35444
+ });
35445
+ }
35446
+ updated(changed) {
35447
+ super.updated(changed);
35448
+ if (changed.has(`interactionMode`)) {
35449
+ this.#selectionAnchor = void 0;
35450
+ this._clearSelection();
35451
+ }
35452
+ }
35453
+ addItem(item) {
35454
+ if (typeof item === `string`) {
35455
+ const li = document.createElement(`li`);
35456
+ li.textContent = item;
35457
+ this.appendChild(li);
35458
+ } else this.appendChild(item);
35459
+ if (this.interactionMode === `checked`) this._syncCheckboxes();
35460
+ }
35461
+ removeItem(item) {
35462
+ item.remove();
35463
+ }
35464
+ clearItems() {
35465
+ this.replaceChildren();
35466
+ this.#selectionAnchor = void 0;
35467
+ this._selectedItems = /* @__PURE__ */ new Set();
35468
+ this._syncItemStates();
35469
+ }
35470
+ select(item) {
35471
+ this._replaceSelection(item);
35472
+ }
35473
+ deselect(item) {
35474
+ if (!this._selectedItems.has(item)) return;
35475
+ const previous = this._selectedItems;
35476
+ const next = new Set(this._selectedItems);
35477
+ next.delete(item);
35478
+ this._selectedItems = next;
35479
+ this._syncItemStates();
35480
+ this._dispatch(`list-select`, {
35481
+ selected: next,
35482
+ previous
35483
+ });
35484
+ }
35485
+ clearSelection() {
35486
+ this._clearSelection();
35487
+ }
35488
+ selectAll() {
35489
+ if ((this.selectionMode === `multiple` || isMultiMode(this.interactionMode)) && this.selectionMode !== `none`) this._selectAll();
35490
+ }
35491
+ _replaceSelection(item) {
35492
+ if (this.selectionMode === `none`) return;
35493
+ const previous = this._selectedItems;
35494
+ const next = new Set([item]);
35495
+ this._selectedItems = next;
35496
+ this.#selectionAnchor = item;
35497
+ this._syncItemStates();
35498
+ this._dispatch(`list-select`, {
35499
+ selected: next,
35500
+ previous
35501
+ });
35502
+ }
35503
+ _toggleItem(item) {
35504
+ const effectiveMultiple = this.selectionMode === `multiple` || isMultiMode(this.interactionMode);
35505
+ if (this.selectionMode === `none` && this.interactionMode !== `checked`) return;
35506
+ const previous = this._selectedItems;
35507
+ const next = new Set(this._selectedItems);
35508
+ if (next.has(item)) next.delete(item);
35509
+ else {
35510
+ if (!effectiveMultiple) next.clear();
35511
+ next.add(item);
35512
+ }
35513
+ this._selectedItems = next;
35514
+ this._syncItemStates();
35515
+ this._dispatch(`list-select`, {
35516
+ selected: next,
35517
+ previous
35518
+ });
35519
+ }
35520
+ _rangeSelectTo(item) {
35521
+ if (this.selectionMode === `none`) return;
35522
+ if (!this.#selectionAnchor) {
35523
+ this._replaceSelection(item);
35524
+ return;
35525
+ }
35526
+ const visible = this._getVisibleItems();
35527
+ const anchorIdx = visible.indexOf(this.#selectionAnchor);
35528
+ const targetIdx = visible.indexOf(item);
35529
+ if (anchorIdx === -1 || targetIdx === -1) {
35530
+ this._replaceSelection(item);
35531
+ return;
35532
+ }
35533
+ const start = Math.min(anchorIdx, targetIdx);
35534
+ const end = Math.max(anchorIdx, targetIdx);
35535
+ const previous = this._selectedItems;
35536
+ const next = new Set(visible.slice(start, end + 1));
35537
+ this._selectedItems = next;
35538
+ this._syncItemStates();
35539
+ this._dispatch(`list-select`, {
35540
+ selected: next,
35541
+ previous
35542
+ });
35543
+ }
35544
+ _clearSelection() {
35545
+ if (this._selectedItems.size === 0) return;
35546
+ const previous = this._selectedItems;
35547
+ this._selectedItems = /* @__PURE__ */ new Set();
35548
+ this._syncItemStates();
35549
+ this._dispatch(`list-select`, {
35550
+ selected: /* @__PURE__ */ new Set(),
35551
+ previous
35552
+ });
35553
+ }
35554
+ _selectAll() {
35555
+ const visible = this._getVisibleItems();
35556
+ if (visible.length === 0) return;
35557
+ const previous = this._selectedItems;
35558
+ const next = new Set(visible);
35559
+ this._selectedItems = next;
35560
+ this._syncItemStates();
35561
+ this._dispatch(`list-select`, {
35562
+ selected: next,
35563
+ previous
35564
+ });
35565
+ }
35566
+ _handleClickSelection(item, e) {
35567
+ const mode = this.interactionMode;
35568
+ if (mode === `manual`) return;
35569
+ if (this.selectionMode === `none` && mode !== `checked`) return;
35570
+ switch (mode) {
35571
+ case `implicit`:
35572
+ this._replaceSelection(item);
35573
+ break;
35574
+ case `standard`:
35575
+ case `vscode`:
35576
+ if (e.ctrlKey || e.metaKey) {
35577
+ if (this.selectionMode === `multiple` || mode === `vscode`) this._toggleItem(item);
35578
+ } else if (e.shiftKey && (this.selectionMode === `multiple` || mode === `vscode`)) this._rangeSelectTo(item);
35579
+ else this._replaceSelection(item);
35580
+ break;
35581
+ case `checked`: break;
35582
+ }
35583
+ }
35584
+ _handleSpaceKey(item) {
35585
+ const mode = this.interactionMode;
35586
+ if (mode === `manual`) return;
35587
+ if (mode === `implicit`) this._replaceSelection(item);
35588
+ else this._toggleItem(item);
35589
+ }
35590
+ _getVisibleItems() {
35591
+ return Array.from(this.querySelectorAll(ITEM_SELECTOR)).filter((el) => {
35592
+ if (el.hidden) return false;
35593
+ if (this.filterPredicate && !this.filterPredicate(el)) return false;
35594
+ return true;
35595
+ });
35596
+ }
35597
+ _syncItemStates() {
35598
+ for (const el of this.querySelectorAll(ITEM_SELECTOR)) {
35599
+ el.toggleAttribute(`data-tickled`, this.tickled.isTickled(el));
35600
+ el.toggleAttribute(`data-selected`, this._selectedItems.has(el));
35601
+ if (this.interactionMode === `checked`) el.toggleAttribute(`data-checked`, this._selectedItems.has(el));
35602
+ else el.removeAttribute(`data-checked`);
35603
+ }
35604
+ this.dataset[`inputMode`] = this.tickled.inputMode;
35605
+ this._syncCheckboxes();
35606
+ }
35607
+ _syncCheckboxes() {
35608
+ const inCheckedMode = this.interactionMode === `checked`;
35609
+ for (const el of this.querySelectorAll(`li`)) {
35610
+ let cb = el.querySelector(`input.ixfx-list-checkbox`);
35611
+ if (inCheckedMode) {
35612
+ if (!cb) {
35613
+ cb = document.createElement(`input`);
35614
+ cb.type = `checkbox`;
35615
+ cb.className = `ixfx-list-checkbox`;
35616
+ cb.style.cssText = `flex-shrink:0;margin:0 6px 0 0;cursor:pointer;accent-color:var(--accent,#60a5fa);pointer-events:auto`;
35617
+ cb.tabIndex = -1;
35618
+ cb.addEventListener(`click`, (e) => {
35619
+ e.stopPropagation();
35620
+ this._toggleItem(el);
35621
+ });
35622
+ el.prepend(cb);
35623
+ }
35624
+ cb.checked = this._selectedItems.has(el);
35625
+ } else if (cb) cb.remove();
35626
+ }
35627
+ }
35628
+ _findListItem(path) {
35629
+ for (const target of path) {
35630
+ if (!(target instanceof Element)) continue;
35631
+ if (target === this) break;
35632
+ if (target.parentElement === this && target.matches(ITEM_SELECTOR)) return target;
35633
+ }
35634
+ }
35635
+ _dispatch(name, detail) {
35636
+ this.dispatchEvent(new CustomEvent(name, {
35637
+ detail,
35638
+ bubbles: true,
35639
+ composed: true
35640
+ }));
35641
+ }
35642
+ _openSearch() {
35643
+ this._searchVisible = true;
35644
+ this.updateComplete.then(() => this._searchInputEl?.focus());
35645
+ }
35646
+ _closeSearch() {
35647
+ this._searchVisible = false;
35648
+ this._searchQuery = ``;
35649
+ this.#search?.clearQuery();
35650
+ this.focus();
35651
+ }
35652
+ _activateItem(item) {
35653
+ if (this.interactionMode !== `manual`) this._replaceSelection(item);
35654
+ this._dispatch(`list-activate`, { item });
35655
+ }
35656
+ static {
35657
+ this.styles = i$7`
35658
+ :host {
35659
+ display: block;
35660
+ position: relative;
35661
+ background: var(--list-bg, var(--surface-3));
35662
+ color: var(--list-text, var(--surface-3-text));
35663
+ border-radius: var(--list-radius, var(--radius-s));
35664
+ border: 1px solid var(--list-border, var(--border));
35665
+ width: 100%;
35666
+ height: 100%;
35667
+ overflow: hidden;
35668
+ box-sizing: border-box;
35669
+ outline: none;
35670
+ }
35671
+
35672
+ :host(:focus-visible) {
35673
+ outline: 2px solid var(--accent);
35674
+ outline-offset: 2px;
35675
+ }
35676
+
35677
+ .container {
35678
+ position: relative;
35679
+ width: 100%;
35680
+ height: 100%;
35681
+ }
35682
+
35683
+ ul {
35684
+ list-style: none;
35685
+ margin: 0;
35686
+ padding: 0;
35687
+ width: 100%;
35688
+ height: 100%;
35689
+ overflow-y: auto;
35690
+ box-sizing: border-box;
35691
+ }
35692
+
35693
+ ::slotted([hidden]) {
35694
+ display: none !important;
35695
+ }
35696
+
35697
+ ::slotted(li) {
35698
+ display: flex;
35699
+ align-items: center;
35700
+ padding: var(--list-item-padding, 4px var(--space-m, 8px));
35701
+ min-height: var(--list-item-height, 28px);
35702
+ cursor: pointer;
35703
+ user-select: none;
35704
+ transition: background var(--transition, 0.1s ease-out),
35705
+ outline-color var(--transition, 0.1s ease-out);
35706
+ box-sizing: border-box;
35707
+ outline: 1px solid transparent;
35708
+ }
35709
+
35710
+ /* Custom shadow-DOM components handle their own internal layout/padding */
35711
+ ::slotted([data-list-item]) {
35712
+ display: block;
35713
+ cursor: pointer;
35714
+ user-select: none;
35715
+ transition: background var(--transition, 0.1s ease-out),
35716
+ outline-color var(--transition, 0.1s ease-out);
35717
+ outline: 1px solid transparent;
35718
+ }
35719
+
35720
+ ::slotted([data-tickled]) {
35721
+ background: var(--item-bg-tickled, rgba(0, 0, 0, 0.06));
35722
+ outline: 1px solid var(--accent, #60a5fa);
35723
+ }
35724
+
35725
+ ::slotted([data-selected]) {
35726
+ background: var(--item-bg-selected, rgba(25, 118, 210, 1));
35727
+ color: var(--item-text-selected, #fff);
35728
+ outline: 1px solid transparent;
35729
+ }
35730
+
35731
+ ::slotted([data-selected][data-tickled]) {
35732
+ background: var(--item-bg-selected-tickled, rgba(21, 101, 192, 1));
35733
+ outline: 2px dashed var(--surface-3, #1e1e1e);
35734
+ outline-offset: -2px;
35735
+ }
35736
+
35737
+ /* checked mode: checkbox (injected into li) communicates selection — suppress bg highlight */
35738
+ :host([interaction-mode="checked"]) ::slotted([data-selected]) {
35739
+ background: transparent;
35740
+ color: inherit;
35741
+ outline: 1px solid transparent;
35742
+ }
35743
+
35744
+ :host([interaction-mode="checked"]) ::slotted([data-selected][data-tickled]) {
35745
+ background: var(--item-bg-tickled, rgba(0, 0, 0, 0.06));
35746
+ color: inherit;
35747
+ outline: 1px solid var(--accent, #60a5fa);
35748
+ }
35749
+
35750
+ /* checked mode: left-border indicator for custom shadow-DOM items (no checkbox injection possible) */
35751
+ :host([interaction-mode="checked"]) ::slotted([data-list-item]) {
35752
+ border-left: 3px solid transparent;
35753
+ transition: background var(--transition, 0.1s ease-out),
35754
+ border-color var(--transition, 0.1s ease-out);
35755
+ }
35756
+
35757
+ :host([interaction-mode="checked"]) ::slotted([data-list-item][data-checked]) {
35758
+ border-left: 3px solid var(--accent, #60a5fa);
35759
+ }
35760
+
35761
+ .search-overlay {
35762
+ position: absolute;
35763
+ top: 8px;
35764
+ right: 8px;
35765
+ z-index: 10;
35766
+ display: flex;
35767
+ align-items: center;
35768
+ gap: 4px;
35769
+ background: var(--surface-4, #2a2a2a);
35770
+ border: 1px solid var(--border, #444);
35771
+ border-radius: var(--radius-m, 4px);
35772
+ padding: 4px 6px;
35773
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
35774
+ }
35775
+
35776
+ .search-overlay[hidden] {
35777
+ display: none;
35778
+ }
35779
+
35780
+ .search-input {
35781
+ background: transparent;
35782
+ border: none;
35783
+ outline: none;
35784
+ color: inherit;
35785
+ font-size: var(--text-m, 0.875em);
35786
+ min-width: 140px;
35787
+ }
35788
+
35789
+ .search-close {
35790
+ background: transparent;
35791
+ border: none;
35792
+ color: var(--surface-muted-text, #888);
35793
+ cursor: pointer;
35794
+ font-size: 1.1em;
35795
+ line-height: 1;
35796
+ padding: 0 2px;
35797
+ }
35798
+
35799
+ .search-close:hover {
35800
+ color: inherit;
35801
+ }
35802
+ `;
35803
+ }
35804
+ render() {
35805
+ return b`
35806
+ <div class="container">
35807
+ <ul part="list">
35808
+ <slot></slot>
35809
+ </ul>
35810
+ <div
35811
+ class="search-overlay"
35812
+ part="search-overlay"
35813
+ ?hidden=${!this._searchVisible}
35814
+ >
35815
+ <input
35816
+ type="text"
35817
+ class="search-input"
35818
+ placeholder="Search…"
35819
+ .value=${this._searchQuery}
35820
+ @input=${this._onSearchInput}
35821
+ @keydown=${this._onSearchKeydown}
35822
+ />
35823
+ <button class="search-close" @click=${this._closeSearch} title="Close search (Esc)">×</button>
35824
+ </div>
35825
+ </div>
35826
+ `;
35827
+ }
35828
+ };
35829
+ __decorate([n$2({
35830
+ type: String,
35831
+ attribute: `selection-mode`
35832
+ })], VerticalListElement.prototype, "selectionMode", void 0);
35833
+ __decorate([n$2({
35834
+ type: String,
35835
+ attribute: `interaction-mode`
35836
+ })], VerticalListElement.prototype, "interactionMode", void 0);
35837
+ __decorate([n$2({ attribute: false })], VerticalListElement.prototype, "filterPredicate", void 0);
35838
+ __decorate([r$1()], VerticalListElement.prototype, "_selectedItems", void 0);
35839
+ __decorate([r$1()], VerticalListElement.prototype, "_searchVisible", void 0);
35840
+ __decorate([r$1()], VerticalListElement.prototype, "_searchQuery", void 0);
35841
+ __decorate([e$4(`.search-input`)], VerticalListElement.prototype, "_searchInputEl", void 0);
35842
+ VerticalListElement = __decorate([safeCustomElement(`ixfx-vertical-list`)], VerticalListElement);
35037
35843
  //#endregion
35038
35844
  //#region src/xy-pad.ts
35039
35845
  /**
@@ -35089,7 +35895,7 @@ function quantise(value, min, max, stops) {
35089
35895
  const step = (max - min) / stops;
35090
35896
  return Math.round((value - min) / step) * step + min;
35091
35897
  }
35092
- let XyPad = class XyPad extends i$3 {
35898
+ let XyPad = class XyPad extends i$4 {
35093
35899
  constructor(..._args) {
35094
35900
  super(..._args);
35095
35901
  this.xMin = 1;
@@ -35208,7 +36014,7 @@ let XyPad = class XyPad extends i$3 {
35208
36014
  };
35209
36015
  }
35210
36016
  static {
35211
- this.styles = [prominenceStyles, i$6`
36017
+ this.styles = [prominenceStyles, i$7`
35212
36018
  :host {
35213
36019
  display: block;
35214
36020
  width: 200px;
@@ -35460,13 +36266,13 @@ __decorate([n$2({
35460
36266
  type: Number,
35461
36267
  attribute: `stops-y`
35462
36268
  })], XyPad.prototype, "stopsY", void 0);
35463
- XyPad = __decorate([t$4(`ixfx-xy-pad`)], XyPad);
36269
+ XyPad = __decorate([safeCustomElement(`ixfx-xy-pad`)], XyPad);
35464
36270
  //#endregion
35465
36271
  //#region src/index.ts
35466
36272
  function init() {
35467
36273
  console.log(`Init`);
35468
36274
  }
35469
36275
  //#endregion
35470
- export { AcTextElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataDisplayComponent, EditableLabel, EditableNumber, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LedElement, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, NarrowedTextElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, SelectHorizontalElement, SnapContainer, SplitButton, SplitLayoutElement, SwipeElement, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TimelineController, TimelineTrackTabElement, TooltipElement, TreeBaseElement, TreeController, TreeDataModel, TreeListElement, XyPad, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
36276
+ export { AcTextElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataDisplayComponent, EditableLabel, EditableNumber, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LedElement, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, NarrowedTextElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, SelectHorizontalElement, SnapContainer, SplitButton, SplitLayoutElement, SwipeElement, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TimelineController, TimelineTrackTabElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeListElement, VerticalListElement, XyPad, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
35471
36277
 
35472
36278
  //# sourceMappingURL=index.js.map