@ixfx/components 0.5.18 → 0.5.20

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 (225) hide show
  1. package/bundle/index.d.ts +107 -112
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +736 -361
  4. package/bundle/index.js.map +1 -1
  5. package/bundle/style.css +4 -2
  6. package/dist/ac-text.d.ts +7 -12
  7. package/dist/ac-text.d.ts.map +1 -1
  8. package/dist/ac-text.js +5 -4
  9. package/dist/ac-text.js.map +1 -1
  10. package/dist/{button-CphdEaZd.js → button-pcDaCemT.js} +2 -2
  11. package/dist/{button-CphdEaZd.js.map → button-pcDaCemT.js.map} +1 -1
  12. package/dist/button.d.ts +2 -1
  13. package/dist/button.d.ts.map +1 -1
  14. package/dist/button.js +1 -1
  15. package/dist/checkbox.d.ts +1 -0
  16. package/dist/checkbox.d.ts.map +1 -1
  17. package/dist/checkbox.js +2 -2
  18. package/dist/checkbox.js.map +1 -1
  19. package/dist/{colour-picker-DbypcEp6.js → colour-picker-D43Q96r0.js} +29 -16
  20. package/dist/colour-picker-D43Q96r0.js.map +1 -0
  21. package/dist/colour-picker.d.ts +1 -1
  22. package/dist/colour-picker.js +1 -1
  23. package/dist/{crumb-navigation-DTwJ8468.js → crumb-navigation-Pif-kupA.js} +125 -27
  24. package/dist/crumb-navigation-Pif-kupA.js.map +1 -0
  25. package/dist/crumbs.d.ts +4 -4
  26. package/dist/crumbs.d.ts.map +1 -1
  27. package/dist/crumbs.js +1 -1
  28. package/dist/data-display.d.ts +2 -1
  29. package/dist/data-display.d.ts.map +1 -1
  30. package/dist/data-display.js +23 -25
  31. package/dist/data-display.js.map +1 -1
  32. package/dist/{decorate-VRK8rslU.js → decorate-DdjvVHS-.js} +2 -2
  33. package/dist/{decorate-VRK8rslU.js.map → decorate-DdjvVHS-.js.map} +1 -1
  34. package/dist/{defaults-DcE8RQJc.js → defaults-BkWCPJFL.js} +7 -1
  35. package/dist/{defaults-DcE8RQJc.js.map → defaults-BkWCPJFL.js.map} +1 -1
  36. package/dist/editable-label.d.ts +2 -1
  37. package/dist/editable-label.d.ts.map +1 -1
  38. package/dist/editable-label.js +2 -2
  39. package/dist/editable-label.js.map +1 -1
  40. package/dist/fallbacks-DEE1nCTt.js +406 -0
  41. package/dist/fallbacks-DEE1nCTt.js.map +1 -0
  42. package/dist/{hex-editor-Bk6rxhfg.js → hex-editor-B-UI4OZu.js} +8 -6
  43. package/dist/{hex-editor-Bk6rxhfg.js.map → hex-editor-B-UI4OZu.js.map} +1 -1
  44. package/dist/{hex-editor-Caq8vNQk.d.ts → hex-editor-CMIxtNgT.d.ts} +3 -2
  45. package/dist/hex-editor-CMIxtNgT.d.ts.map +1 -0
  46. package/dist/hex.d.ts +1 -1
  47. package/dist/hex.js +1 -1
  48. package/dist/highlight-B-eQrhhb.js.map +1 -1
  49. package/dist/{icon-BUwP1CZ1.d.ts → icon-Bd5BiU4b.d.ts} +4 -3
  50. package/dist/icon-Bd5BiU4b.d.ts.map +1 -0
  51. package/dist/{icon-DG9Lm3LT.js → icon-CK14NUcE.js} +5 -7
  52. package/dist/{icon-DG9Lm3LT.js.map → icon-CK14NUcE.js.map} +1 -1
  53. package/dist/icons.d.ts +2 -2
  54. package/dist/icons.js +2 -2
  55. package/dist/{incr-search-2pz21xtR.js → incr-search-CeERfijK.js} +6 -9
  56. package/dist/{incr-search-2pz21xtR.js.map → incr-search-CeERfijK.js.map} +1 -1
  57. package/dist/incr-search.d.ts +1 -1
  58. package/dist/incr-search.js +1 -1
  59. package/dist/{index-D9u_Q7-b.d.ts → index-BslNaMLo.d.ts} +3 -3
  60. package/dist/index-BslNaMLo.d.ts.map +1 -0
  61. package/dist/{index-DkhBGHgF.d.ts → index-Cdmrn0SZ.d.ts} +11 -11
  62. package/dist/index-Cdmrn0SZ.d.ts.map +1 -0
  63. package/dist/{index-BUB5SICW.d.ts → index-CkMIKEWp.d.ts} +4 -3
  64. package/dist/index-CkMIKEWp.d.ts.map +1 -0
  65. package/dist/{index-RqMh1i-O.d.ts → index-D87kRcEs.d.ts} +1 -2
  66. package/dist/index-D87kRcEs.d.ts.map +1 -0
  67. package/dist/{index-BKAlRgbq.d.ts → index-DrKRD8_a.d.ts} +7 -4
  68. package/dist/index-DrKRD8_a.d.ts.map +1 -0
  69. package/dist/{index-BeuCXtiO.d.ts → index-tX6fKF8m.d.ts} +3 -3
  70. package/dist/index-tX6fKF8m.d.ts.map +1 -0
  71. package/dist/index.d.ts +48 -53
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +155 -122
  74. package/dist/index.js.map +1 -1
  75. package/dist/interaction-_Y2qO3QI.js +1 -0
  76. package/dist/{labelled-input-base-hoKGwyKT.js → labelled-input-base-9K_w3oLj.js} +2 -2
  77. package/dist/{labelled-input-base-hoKGwyKT.js.map → labelled-input-base-9K_w3oLj.js.map} +1 -1
  78. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-ORb1rGq6.d.ts} +3 -2
  79. package/dist/labelled-input-base-ORb1rGq6.d.ts.map +1 -0
  80. package/dist/labelled-radial-input.d.ts +5 -4
  81. package/dist/labelled-radial-input.d.ts.map +1 -1
  82. package/dist/labelled-radial-input.js +4 -4
  83. package/dist/labelled-radial-input.js.map +1 -1
  84. package/dist/labelled-range-input.d.ts +1 -1
  85. package/dist/labelled-range-input.js +2 -2
  86. package/dist/labelled-range-input.js.map +1 -1
  87. package/dist/led.d.ts +2 -2
  88. package/dist/led.d.ts.map +1 -1
  89. package/dist/led.js +3 -5
  90. package/dist/led.js.map +1 -1
  91. package/dist/{menu-CdwSe_XN.js → menu-BiFarLUA.js} +9 -8
  92. package/dist/{menu-CdwSe_XN.js.map → menu-BiFarLUA.js.map} +1 -1
  93. package/dist/{menu-item-BG5w7fi4.d.ts → menu-item-AtoP6bD4.d.ts} +4 -4
  94. package/dist/menu-item-AtoP6bD4.d.ts.map +1 -0
  95. package/dist/{menu-item-CrmUwIoJ.js → menu-item-yHSPV8nS.js} +10 -9
  96. package/dist/{menu-item-CrmUwIoJ.js.map → menu-item-yHSPV8nS.js.map} +1 -1
  97. package/dist/menu.d.ts +2 -2
  98. package/dist/menu.js +2 -2
  99. package/dist/miller.d.ts +5 -7
  100. package/dist/miller.d.ts.map +1 -1
  101. package/dist/miller.js +26 -24
  102. package/dist/miller.js.map +1 -1
  103. package/dist/narrowed-text.d.ts +2 -1
  104. package/dist/narrowed-text.d.ts.map +1 -1
  105. package/dist/narrowed-text.js +14 -15
  106. package/dist/narrowed-text.js.map +1 -1
  107. package/dist/panel.d.ts +1 -1
  108. package/dist/panel.d.ts.map +1 -1
  109. package/dist/panel.js +3 -3
  110. package/dist/panel.js.map +1 -1
  111. package/dist/plots.d.ts +1 -1
  112. package/dist/plots.js +1 -1
  113. package/dist/polar-pad.d.ts +2 -1
  114. package/dist/polar-pad.d.ts.map +1 -1
  115. package/dist/polar-pad.js +3 -3
  116. package/dist/polar-pad.js.map +1 -1
  117. package/dist/{radial-input-CVxGH-Cp.js → radial-input-C4f-2Bya.js} +15 -25
  118. package/dist/{radial-input-CVxGH-Cp.js.map → radial-input-C4f-2Bya.js.map} +1 -1
  119. package/dist/{radial-input-BhZeyyP-.d.ts → radial-input-Dhu5ZGP5.d.ts} +3 -2
  120. package/dist/radial-input-Dhu5ZGP5.d.ts.map +1 -0
  121. package/dist/radial-input.d.ts +1 -1
  122. package/dist/radial-input.js +1 -1
  123. package/dist/range-input.d.ts +3 -2
  124. package/dist/range-input.d.ts.map +1 -1
  125. package/dist/range-input.js +3 -3
  126. package/dist/range-input.js.map +1 -1
  127. package/dist/range.d.ts +3 -2
  128. package/dist/range.d.ts.map +1 -1
  129. package/dist/range.js +3 -3
  130. package/dist/range.js.map +1 -1
  131. package/dist/selecthorizontal.d.ts +2 -1
  132. package/dist/selecthorizontal.d.ts.map +1 -1
  133. package/dist/selecthorizontal.js +2 -2
  134. package/dist/selecthorizontal.js.map +1 -1
  135. package/dist/{slider-input-TidGhvXt.d.ts → slider-input-BEaztT-g.d.ts} +3 -2
  136. package/dist/slider-input-BEaztT-g.d.ts.map +1 -0
  137. package/dist/{slider-input-CzmSVgm7.js → slider-input-SW7e2Ac2.js} +28 -31
  138. package/dist/{slider-input-CzmSVgm7.js.map → slider-input-SW7e2Ac2.js.map} +1 -1
  139. package/dist/slider-input.d.ts +1 -1
  140. package/dist/slider-input.js +1 -1
  141. package/dist/snap-container.d.ts +2 -1
  142. package/dist/snap-container.d.ts.map +1 -1
  143. package/dist/snap-container.js +5 -6
  144. package/dist/snap-container.js.map +1 -1
  145. package/dist/split-layout.d.ts +9 -2
  146. package/dist/split-layout.d.ts.map +1 -1
  147. package/dist/split-layout.js +88 -20
  148. package/dist/split-layout.js.map +1 -1
  149. package/dist/style.css +4 -2
  150. package/dist/swipe.d.ts +2 -1
  151. package/dist/swipe.d.ts.map +1 -1
  152. package/dist/swipe.js +4 -5
  153. package/dist/swipe.js.map +1 -1
  154. package/dist/{tab-list-CLqlPnX-.d.ts → tab-list-B8v9KntS.d.ts} +12 -5
  155. package/dist/tab-list-B8v9KntS.d.ts.map +1 -0
  156. package/dist/{tab-list-6W5CgXix.js → tab-list-CR0v53KJ.js} +22 -4
  157. package/dist/tab-list-CR0v53KJ.js.map +1 -0
  158. package/dist/tabs.d.ts +1 -1
  159. package/dist/tabs.js +1 -1
  160. package/dist/{tickled-controller-BF2Ea0DE.d.ts → tickled-controller-JDOR9B8V.d.ts} +9 -6
  161. package/dist/tickled-controller-JDOR9B8V.d.ts.map +1 -0
  162. package/dist/{tickled-styles-fNDdqf6l.js → tickled-styles-Bgo_Lpw-.js} +28 -28
  163. package/dist/tickled-styles-Bgo_Lpw-.js.map +1 -0
  164. package/dist/{timeline-B2fgDL4U.js → timeline-CdSI003L.js} +3 -3
  165. package/dist/{timeline-B2fgDL4U.js.map → timeline-CdSI003L.js.map} +1 -1
  166. package/dist/timeline.d.ts +1 -1
  167. package/dist/timeline.js +1 -1
  168. package/dist/{tooltip-BlvBUQxx.d.ts → tooltip-BMTSUPBU.d.ts} +3 -2
  169. package/dist/tooltip-BMTSUPBU.d.ts.map +1 -0
  170. package/dist/{tree-BtiiDX1a.js → tree-CqPhQRHo.js} +11 -10
  171. package/dist/{tree-BtiiDX1a.js.map → tree-CqPhQRHo.js.map} +1 -1
  172. package/dist/{tree-component-DQ9vzdy5.d.ts → tree-component-CDLO1ITF.d.ts} +124 -8
  173. package/dist/tree-component-CDLO1ITF.d.ts.map +1 -0
  174. package/dist/tree.d.ts +4 -9
  175. package/dist/tree.d.ts.map +1 -1
  176. package/dist/tree.js +1 -1
  177. package/dist/types-DSfbtHs3.d.ts +8 -0
  178. package/dist/types-DSfbtHs3.d.ts.map +1 -0
  179. package/dist/{wheel-nudge-DgMTRYlh.d.ts → wheel-nudge-C-ra_1os.d.ts} +2 -1
  180. package/dist/wheel-nudge-C-ra_1os.d.ts.map +1 -0
  181. package/dist/{wheel-nudge-BlSCe_hD.js → wheel-nudge-Dhzi5nHc.js} +2 -2
  182. package/dist/{wheel-nudge-BlSCe_hD.js.map → wheel-nudge-Dhzi5nHc.js.map} +1 -1
  183. package/dist/{xy-axis-CxHC8z5E.js → xy-axis-BpA2eJq6.js} +4 -6
  184. package/dist/{xy-axis-CxHC8z5E.js.map → xy-axis-BpA2eJq6.js.map} +1 -1
  185. package/dist/{xy-axis-5KhVTNoX.d.ts → xy-axis-CtDDQzGZ.d.ts} +6 -8
  186. package/dist/xy-axis-CtDDQzGZ.d.ts.map +1 -0
  187. package/dist/xy-pad.d.ts +2 -1
  188. package/dist/xy-pad.d.ts.map +1 -1
  189. package/dist/xy-pad.js +3 -3
  190. package/dist/xy-pad.js.map +1 -1
  191. package/docs-user/ac-token.md +7 -1
  192. package/docs-user/colour-picker.md +8 -4
  193. package/docs-user/crumbs.md +4 -0
  194. package/docs-user/menu.md +11 -8
  195. package/docs-user/split-layout.md +29 -7
  196. package/package.json +3 -1
  197. package/dist/colour-picker-DbypcEp6.js.map +0 -1
  198. package/dist/crumb-navigation-DTwJ8468.js.map +0 -1
  199. package/dist/fallbacks-DPgPEqo8.js +0 -218
  200. package/dist/fallbacks-DPgPEqo8.js.map +0 -1
  201. package/dist/hex-editor-Caq8vNQk.d.ts.map +0 -1
  202. package/dist/icon-BUwP1CZ1.d.ts.map +0 -1
  203. package/dist/index-BKAlRgbq.d.ts.map +0 -1
  204. package/dist/index-BUB5SICW.d.ts.map +0 -1
  205. package/dist/index-BeuCXtiO.d.ts.map +0 -1
  206. package/dist/index-D9u_Q7-b.d.ts.map +0 -1
  207. package/dist/index-DkhBGHgF.d.ts.map +0 -1
  208. package/dist/index-RqMh1i-O.d.ts.map +0 -1
  209. package/dist/interaction-D6efrBLo.js +0 -1
  210. package/dist/labelled-input-base-Dp_9KP0G.d.ts.map +0 -1
  211. package/dist/menu-item-BG5w7fi4.d.ts.map +0 -1
  212. package/dist/radial-input-BhZeyyP-.d.ts.map +0 -1
  213. package/dist/slider-input-TidGhvXt.d.ts.map +0 -1
  214. package/dist/tab-list-6W5CgXix.js.map +0 -1
  215. package/dist/tab-list-CLqlPnX-.d.ts.map +0 -1
  216. package/dist/tickled-controller-BF2Ea0DE.d.ts.map +0 -1
  217. package/dist/tickled-styles-fNDdqf6l.js.map +0 -1
  218. package/dist/tooltip-BlvBUQxx.d.ts.map +0 -1
  219. package/dist/tree-component-DQ9vzdy5.d.ts.map +0 -1
  220. package/dist/types-DO3gt5vg.d.ts +0 -130
  221. package/dist/types-DO3gt5vg.d.ts.map +0 -1
  222. package/dist/wheel-nudge-DgMTRYlh.d.ts.map +0 -1
  223. package/dist/xy-axis-5KhVTNoX.d.ts.map +0 -1
  224. /package/bundle/{rolldown-runtime-D7D4PA-g.js → chunk-D7D4PA-g.js} +0 -0
  225. /package/dist/{rolldown-runtime-D7D4PA-g.js → chunk-D7D4PA-g.js} +0 -0
package/dist/index.js CHANGED
@@ -1,48 +1,48 @@
1
1
  import { n as buildHighlightTargets, r as clearHighlights, t as applyHighlights } from "./highlight-B-eQrhhb.js";
2
- import { n as tickledStyles, r as TickledController, t as tickledItemStyles } from "./tickled-styles-fNDdqf6l.js";
3
- import { t as themeFallbacks } from "./fallbacks-DPgPEqo8.js";
2
+ import { n as tickledStyles, r as TickledController, t as tickledItemStyles } from "./tickled-styles-Bgo_Lpw-.js";
3
+ import { t as themeFallbacks } from "./fallbacks-DEE1nCTt.js";
4
4
  import { t as popupSurfaceStyles } from "./popup-D80sj2QC.js";
5
- import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
5
+ import { n as safeCustomElement, t as __decorate } from "./decorate-DdjvVHS-.js";
6
6
  import { a as svgToDataUri, i as registerIcon, n as hasIcon, r as iconBus, t as getIcon } from "./registry-CkW7q09Q.js";
7
- import { t as IxfxIconElement } from "./icon-DG9Lm3LT.js";
7
+ import { t as IxfxIconElement } from "./icon-CK14NUcE.js";
8
8
  import { AcTextElement } from "./ac-text.js";
9
- import { a as createFuzzySearch, i as createAcCompletionProvider, n as IncrSearchTreeController, r as createIncrSearch, t as createElementIncrSearch } from "./incr-search-2pz21xtR.js";
10
- import { i as ICON_CLOSE, n as ICON_CHECK, r as ICON_CHEVRON_DOWN, t as ICON_CARET_RIGHT } from "./defaults-DcE8RQJc.js";
9
+ import { a as createFuzzySearch, i as createAcCompletionProvider, n as IncrSearchTreeController, r as createIncrSearch, t as createElementIncrSearch } from "./incr-search-CeERfijK.js";
10
+ import { i as ICON_CLOSE, n as ICON_CHECK, r as ICON_CHEVRON_DOWN, t as ICON_CARET_RIGHT } from "./defaults-BkWCPJFL.js";
11
11
  import "./icons.js";
12
12
  import { t as prominenceStyles } from "./prominence-DlFShic3.js";
13
- import { n as buttonStyles, t as ButtonElement } from "./button-CphdEaZd.js";
14
- import "./interaction-D6efrBLo.js";
15
- import "./menu-item-CrmUwIoJ.js";
13
+ import { n as buttonStyles, t as ButtonElement } from "./button-pcDaCemT.js";
14
+ import "./interaction-_Y2qO3QI.js";
15
+ import "./menu-item-yHSPV8nS.js";
16
16
  import { Checkbox } from "./checkbox.js";
17
- import { n as ColourPicker, t as ColourPickerPopup } from "./colour-picker-DbypcEp6.js";
17
+ import { n as ColourPicker, t as ColourPickerPopup } from "./colour-picker-D43Q96r0.js";
18
18
  import { LabelledRangeInput } from "./labelled-range-input.js";
19
19
  import { t as collectDataResult } from "./data-provider-35TyWclX.js";
20
- import { i as TreeDataModel, n as TreeListElement, r as TreeBaseElement, t as TreeController } from "./tree-BtiiDX1a.js";
21
- import { n as scrollFadeStyles, t as CrumbNavigationElement } from "./crumb-navigation-DTwJ8468.js";
20
+ import { i as TreeDataModel, n as TreeListElement, r as TreeBaseElement, t as TreeController } from "./tree-CqPhQRHo.js";
21
+ import { n as scrollFadeStyles, t as CrumbNavigationElement } from "./crumb-navigation-Pif-kupA.js";
22
22
  import { NarrowedTextElement } from "./narrowed-text.js";
23
23
  import { DataDisplayComponent } from "./data-display.js";
24
24
  import { EditableLabel } from "./editable-label.js";
25
25
  import { t as resolveAxisStep } from "./keyboard-B5xD7Fz-.js";
26
- import { t as WheelNudgeMixin } from "./wheel-nudge-BlSCe_hD.js";
26
+ import { t as WheelNudgeMixin } from "./wheel-nudge-Dhzi5nHc.js";
27
27
  import { PanelElement } from "./panel.js";
28
- import { t as IxfxHexEditorElement } from "./hex-editor-Bk6rxhfg.js";
29
- import { t as RadialInputElement } from "./radial-input-CVxGH-Cp.js";
28
+ import { t as IxfxHexEditorElement } from "./hex-editor-B-UI4OZu.js";
29
+ import { t as RadialInputElement } from "./radial-input-C4f-2Bya.js";
30
30
  import { LabelledRadialInput } from "./labelled-radial-input.js";
31
31
  import { LedElement } from "./led.js";
32
- import { t as menu_exports } from "./menu-CdwSe_XN.js";
32
+ import { t as menu_exports } from "./menu-BiFarLUA.js";
33
33
  import { MillerBaseElement, MillerListElement, MillerTreeController } from "./miller.js";
34
- import { a as TooltipElement, c as computeColour, i as PlotMultiAxis, l as parseColourScaleAttr, n as PlotSingleAxis, o as PlotDataSeries, r as PlotHistogram, s as applyAgeModification, t as PlotXyAxis, u as readBaseColour } from "./xy-axis-CxHC8z5E.js";
34
+ import { a as TooltipElement, c as computeColour, i as PlotMultiAxis, l as parseColourScaleAttr, n as PlotSingleAxis, o as PlotDataSeries, r as PlotHistogram, s as applyAgeModification, t as PlotXyAxis, u as readBaseColour } from "./xy-axis-BpA2eJq6.js";
35
35
  import { PolarPad } from "./polar-pad.js";
36
36
  import { t as tooltipValueStyles } from "./tooltip-CJt3WLmN.js";
37
37
  import { RangeInput } from "./range-input.js";
38
38
  import { RangeElement } from "./range.js";
39
39
  import { SelectHorizontalElement } from "./selecthorizontal.js";
40
- import { t as SliderInputElement } from "./slider-input-CzmSVgm7.js";
40
+ import { t as SliderInputElement } from "./slider-input-SW7e2Ac2.js";
41
41
  import { SnapContainer } from "./snap-container.js";
42
42
  import { SplitLayoutElement } from "./split-layout.js";
43
43
  import { SwipeElement } from "./swipe.js";
44
- import { t as TabListElement } from "./tab-list-6W5CgXix.js";
45
- import { a as resolveCssVars, i as attachTimelineInteractions, n as TimelineTrackTabElement, o as resolveGrid, r as timelineStyles, s as TimelineController, t as IxfxTimelineElement } from "./timeline-B2fgDL4U.js";
44
+ import { t as TabListElement } from "./tab-list-CR0v53KJ.js";
45
+ import { a as resolveCssVars, i as attachTimelineInteractions, n as TimelineTrackTabElement, o as resolveGrid, r as timelineStyles, s as TimelineController, t as IxfxTimelineElement } from "./timeline-CdSI003L.js";
46
46
  import { XyPad } from "./xy-pad.js";
47
47
  import { LitElement, css, html, nothing, render } from "lit";
48
48
  import { eventOptions, property, query, queryAssignedElements, state } from "lit/decorators.js";
@@ -364,6 +364,15 @@ let AcTokenElement = class AcTokenElement extends LitElement {
364
364
  this._tokens = [...value];
365
365
  this.#emitChange();
366
366
  }
367
+ /**
368
+ * Set the token list programmatically. Unlike the `tokens` property setter,
369
+ * this does not dispatch `ac-token-change` — use it for initialisation or any
370
+ * other programmatic update that should not re-enter a parent's own
371
+ * `ac-token-change` handler.
372
+ */
373
+ setTokens(value) {
374
+ this._tokens = [...value];
375
+ }
367
376
  /** All committed token labels joined with commas. */
368
377
  get value() {
369
378
  return this._tokens.map((t) => t.label).join(`, `);
@@ -384,7 +393,8 @@ let AcTokenElement = class AcTokenElement extends LitElement {
384
393
  if (changedProps.has(`completionProvider`)) this.#buildStaticProvider();
385
394
  if (this.#data.items !== this.#lastSuggestions) {
386
395
  this.#lastSuggestions = this.#data.items;
387
- this._tickled.clearTickled();
396
+ if (this.#data.items.length > 0) this._tickled.setTickled(0);
397
+ else this._tickled.clearTickled();
388
398
  }
389
399
  }
390
400
  #buildStaticProvider() {
@@ -454,6 +464,7 @@ let AcTokenElement = class AcTokenElement extends LitElement {
454
464
  e.preventDefault();
455
465
  this.#closePopup();
456
466
  this._selectedTokenIndex = void 0;
467
+ break;
457
468
  }
458
469
  }
459
470
  #onPaste;
@@ -571,10 +582,9 @@ let AcTokenElement = class AcTokenElement extends LitElement {
571
582
  });
572
583
  }
573
584
  #renderChip(item, index) {
574
- const isSelected = this._selectedTokenIndex === index;
575
585
  return html`
576
586
  <span
577
- class="token-chip ${isSelected ? `selected` : ``}"
587
+ class="token-chip ${this._selectedTokenIndex === index ? `selected` : ``}"
578
588
  title=${item.subLabel ?? nothing}
579
589
  @pointerdown=${(e) => this.#onChipPointerDown(e, index)}
580
590
  >
@@ -1079,6 +1089,11 @@ let RadioGroup = class RadioGroup extends LitElement {
1079
1089
  .radio-item:hover:not([disabled]) {
1080
1090
  opacity: 0.9;
1081
1091
  background: color-mix(in oklch, var(--surface-4) 80%, transparent);
1092
+ border-color: var(--accent, #666);
1093
+ box-shadow:
1094
+ inset 1px 1px 1px 1px color-mix(in oklch, var(--surface-5) 70%, transparent),
1095
+ inset -1px -1px 1px 1px color-mix(in oklch, var(--surface-2) 60%, transparent),
1096
+ 2px 2px 1px 0px color-mix(in oklch, var(--surface-2) 90%, transparent);
1082
1097
  }
1083
1098
 
1084
1099
  .radio-item.selected {
@@ -1702,6 +1717,7 @@ let CrumbPathElement = class CrumbPathElement extends LitElement {
1702
1717
  case `Escape`:
1703
1718
  e.preventDefault();
1704
1719
  this.#closeDropdown();
1720
+ break;
1705
1721
  }
1706
1722
  };
1707
1723
  this.#onHostKeyDown = (e) => {
@@ -2040,11 +2056,9 @@ let CrumbPathElement = class CrumbPathElement extends LitElement {
2040
2056
  #onHostKeyDown;
2041
2057
  render() {
2042
2058
  const segments = this.#getSegments();
2043
- if (this._editing) {
2044
- const editValue = this.path;
2045
- return html`
2059
+ if (this._editing) return html`
2046
2060
  <ixfx-ac-text
2047
- .value=${editValue}
2061
+ .value=${this.path}
2048
2062
  .tabSuffix=${this.separator}
2049
2063
  .completionProvider=${this.#makeCompletionProvider()}
2050
2064
  @change=${this.#onAcChange}
@@ -2052,7 +2066,6 @@ let CrumbPathElement = class CrumbPathElement extends LitElement {
2052
2066
  @keydown=${this.#onAcKeyDown}
2053
2067
  ></ixfx-ac-text>
2054
2068
  `;
2055
- }
2056
2069
  const rootSegments = this.#getRootSegments();
2057
2070
  const leadingCaret = this.siblingLookup && rootSegments.length === 0 ? html`
2058
2071
  <div class="caret ${this._openIdx === -1 ? `open` : ``} ${this._confirmedLeafIndices.has(``) ? `disabled` : ``}"
@@ -2534,15 +2547,14 @@ let EditableNumber = class EditableNumber extends WheelNudgeMixin(EditableLabel)
2534
2547
  this.style.setProperty(`--value`, String(normalized));
2535
2548
  let valueStart = 0;
2536
2549
  let valueEnd = normalized;
2537
- if (this.linearStyle === `bipolar`) {
2538
- if (normalized <= .5) {
2539
- valueStart = normalized;
2540
- valueEnd = .5;
2541
- } else {
2542
- valueStart = .5;
2543
- valueEnd = normalized;
2544
- }
2545
- } else if (this.linearStyle === `unipolar`) {
2550
+ if (this.linearStyle === `bipolar`) if (normalized <= .5) {
2551
+ valueStart = normalized;
2552
+ valueEnd = .5;
2553
+ } else {
2554
+ valueStart = .5;
2555
+ valueEnd = normalized;
2556
+ }
2557
+ else if (this.linearStyle === `unipolar`) {
2546
2558
  valueStart = .5 - normalized * .5;
2547
2559
  valueEnd = .5 + normalized * .5;
2548
2560
  }
@@ -2605,6 +2617,7 @@ let EditableNumber = class EditableNumber extends WheelNudgeMixin(EditableLabel)
2605
2617
  case `End`:
2606
2618
  delta = (this.max ?? 0) - this._parseValue();
2607
2619
  handled = true;
2620
+ break;
2608
2621
  }
2609
2622
  if (handled) {
2610
2623
  e.preventDefault();
@@ -2953,15 +2966,13 @@ function collectFormValues(root) {
2953
2966
  root.querySelectorAll(`[name]`).forEach((el) => {
2954
2967
  const name = el.getAttribute(`name`);
2955
2968
  if (!name) return;
2956
- if (el instanceof HTMLInputElement) {
2957
- if (el.type === `radio`) {
2958
- if (el.checked) values[name] = el.value;
2959
- } else if (el.type === `checkbox`) values[name] = el.checked;
2960
- else values[name] = el.value;
2961
- } else if (el instanceof HTMLSelectElement) {
2962
- if (el.multiple) values[name] = Array.from(el.selectedOptions).map((opt) => opt.value);
2963
- else values[name] = el.value;
2964
- } else if (el instanceof HTMLTextAreaElement) values[name] = el.value;
2969
+ if (el instanceof HTMLInputElement) if (el.type === `radio`) {
2970
+ if (el.checked) values[name] = el.value;
2971
+ } else if (el.type === `checkbox`) values[name] = el.checked;
2972
+ else values[name] = el.value;
2973
+ else if (el instanceof HTMLSelectElement) if (el.multiple) values[name] = Array.from(el.selectedOptions).map((opt) => opt.value);
2974
+ else values[name] = el.value;
2975
+ else if (el instanceof HTMLTextAreaElement) values[name] = el.value;
2965
2976
  else if (`value` in el) values[name] = el.value;
2966
2977
  });
2967
2978
  return values;
@@ -3415,7 +3426,9 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3415
3426
  }
3416
3427
  break;
3417
3428
  }
3418
- case `Escape`: this._clearSelection();
3429
+ case `Escape`:
3430
+ this._clearSelection();
3431
+ break;
3419
3432
  }
3420
3433
  };
3421
3434
  this._onClick = (e) => {
@@ -3603,7 +3616,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3603
3616
  if (this.selectionMode === `none`) return;
3604
3617
  if (!this._isCheckable(item)) return;
3605
3618
  const previous = this._selectedItems;
3606
- const next = /* @__PURE__ */ new Set([item]);
3619
+ const next = new Set([item]);
3607
3620
  this._selectedItems = next;
3608
3621
  this.#selectionAnchor = item;
3609
3622
  this._syncItemStates();
@@ -3693,7 +3706,9 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3693
3706
  else this._replaceSelection(item);
3694
3707
  break;
3695
3708
  case `checked`: break;
3696
- case `sticky`: this._toggleItem(item);
3709
+ case `sticky`:
3710
+ this._toggleItem(item);
3711
+ break;
3697
3712
  }
3698
3713
  }
3699
3714
  _handleSpaceKey(item) {
@@ -3780,10 +3795,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3780
3795
  if (wantsCustom) {
3781
3796
  cb.setAttribute(`aria-checked`, String(checked));
3782
3797
  cb.toggleAttribute(`data-checked`, checked);
3783
- if (this.checkboxRenderer) {
3784
- const renderer = typeof this.checkboxRenderer === `function` ? this.checkboxRenderer : this.checkboxRenderer.renderer;
3785
- render(renderer(checked), cb);
3786
- }
3798
+ if (this.checkboxRenderer) render((typeof this.checkboxRenderer === `function` ? this.checkboxRenderer : this.checkboxRenderer.renderer)(checked), cb);
3787
3799
  } else {
3788
3800
  const input = cb.querySelector(`input.ixfx-list-checkbox`);
3789
3801
  if (input) input.checked = checked;
@@ -4861,13 +4873,11 @@ let RangeMultiElement = class RangeMultiElement extends LitElement {
4861
4873
  }
4862
4874
  a = newA;
4863
4875
  b = newB;
4864
- } else if (which === `a`) {
4865
- if (v > this.b && this.crossover === `stop`) t.valueAsNumber = this.#scaleTo100(this.a);
4866
- else a = v;
4867
- } else if (which === `b`) {
4868
- if (v < a && this.crossover === `stop`) t.valueAsNumber = this.#scaleTo100(this.b);
4869
- else b = v;
4870
- } else throw new Error(`Expected 'a' or 'b', got: '${t.id}'`);
4876
+ } else if (which === `a`) if (v > this.b && this.crossover === `stop`) t.valueAsNumber = this.#scaleTo100(this.a);
4877
+ else a = v;
4878
+ else if (which === `b`) if (v < a && this.crossover === `stop`) t.valueAsNumber = this.#scaleTo100(this.b);
4879
+ else b = v;
4880
+ else throw new Error(`Expected 'a' or 'b', got: '${t.id}'`);
4871
4881
  this.setPoles(a, b);
4872
4882
  }
4873
4883
  setPoles(a, b) {
@@ -4926,65 +4936,63 @@ let RangeMultiElement = class RangeMultiElement extends LitElement {
4926
4936
  const currentPos = isVertical ? current.offset.y : current.offset.x;
4927
4937
  const amt = (isVertical ? startPos - currentPos : currentPos - startPos) / valuePerPix;
4928
4938
  polesChanged = true;
4929
- if (draggingWhich === `a`) {
4930
- if (resizeMode === `bipolar`) {
4931
- const calcA = startA + amt;
4932
- const calcB = startB - amt;
4933
- if (calcA < min || calcB > max || calcA > max || calcB < min) return;
4934
- setPoles(calcA, calcB);
4935
- } else if (resizeMode === `bipolar-flex`) {
4936
- let calcA = startA + amt;
4937
- let calcB = startB;
4938
- if (startB <= min) calcB = min;
4939
- else if (startB >= max) calcB = max;
4940
- else {
4941
- calcA = startA + amt;
4942
- calcB = startB - amt;
4943
- }
4944
- if (calcA < min) calcA = min;
4945
- if (calcA > max) calcA = max;
4946
- if (calcB < min) calcB = min;
4947
- if (calcB > max) calcB = max;
4948
- if (calcA > calcB) return;
4949
- setPoles(calcA, calcB);
4950
- } else {
4951
- let constrainedAmt = amt;
4952
- if (startA + amt < min) constrainedAmt = min - startA;
4953
- if (startB + constrainedAmt > max) constrainedAmt = max - startB;
4954
- const finalA = startA + constrainedAmt;
4955
- const finalB = startB + constrainedAmt;
4956
- if (finalA >= min && finalB <= max) setPoles(finalA, finalB);
4939
+ if (draggingWhich === `a`) if (resizeMode === `bipolar`) {
4940
+ const calcA = startA + amt;
4941
+ const calcB = startB - amt;
4942
+ if (calcA < min || calcB > max || calcA > max || calcB < min) return;
4943
+ setPoles(calcA, calcB);
4944
+ } else if (resizeMode === `bipolar-flex`) {
4945
+ let calcA = startA + amt;
4946
+ let calcB = startB;
4947
+ if (startB <= min) calcB = min;
4948
+ else if (startB >= max) calcB = max;
4949
+ else {
4950
+ calcA = startA + amt;
4951
+ calcB = startB - amt;
4957
4952
  }
4958
- } else if (draggingWhich === `b`) {
4959
- if (resizeMode === `bipolar`) {
4960
- const calcA = startA - amt;
4961
- const calcB = startB + amt;
4962
- if (calcA < min || calcB > max || calcA > max || calcB < min) return;
4963
- setPoles(calcA, calcB);
4964
- } else if (resizeMode === `bipolar-flex`) {
4965
- let calcA = startA;
4966
- let calcB = startB + amt;
4967
- if (startA <= min) calcA = min;
4968
- else if (startA >= max) calcA = max;
4969
- else {
4970
- calcA = startA - amt;
4971
- calcB = startB + amt;
4972
- }
4973
- if (calcA < min) calcA = min;
4974
- if (calcA > max) calcA = max;
4975
- if (calcB < min) calcB = min;
4976
- if (calcB > max) calcB = max;
4977
- if (calcA > calcB) return;
4978
- setPoles(calcA, calcB);
4979
- } else {
4980
- let constrainedAmt = amt;
4981
- if (startA + amt < min) constrainedAmt = min - startA;
4982
- if (startB + constrainedAmt > max) constrainedAmt = max - startB;
4983
- const finalA = startA + constrainedAmt;
4984
- const finalB = startB + constrainedAmt;
4985
- if (finalA >= min && finalB <= max) setPoles(finalA, finalB);
4953
+ if (calcA < min) calcA = min;
4954
+ if (calcA > max) calcA = max;
4955
+ if (calcB < min) calcB = min;
4956
+ if (calcB > max) calcB = max;
4957
+ if (calcA > calcB) return;
4958
+ setPoles(calcA, calcB);
4959
+ } else {
4960
+ let constrainedAmt = amt;
4961
+ if (startA + amt < min) constrainedAmt = min - startA;
4962
+ if (startB + constrainedAmt > max) constrainedAmt = max - startB;
4963
+ const finalA = startA + constrainedAmt;
4964
+ const finalB = startB + constrainedAmt;
4965
+ if (finalA >= min && finalB <= max) setPoles(finalA, finalB);
4966
+ }
4967
+ else if (draggingWhich === `b`) if (resizeMode === `bipolar`) {
4968
+ const calcA = startA - amt;
4969
+ const calcB = startB + amt;
4970
+ if (calcA < min || calcB > max || calcA > max || calcB < min) return;
4971
+ setPoles(calcA, calcB);
4972
+ } else if (resizeMode === `bipolar-flex`) {
4973
+ let calcA = startA;
4974
+ let calcB = startB + amt;
4975
+ if (startA <= min) calcA = min;
4976
+ else if (startA >= max) calcA = max;
4977
+ else {
4978
+ calcA = startA - amt;
4979
+ calcB = startB + amt;
4986
4980
  }
4987
- } else if (resizeMode === `bipolar`) {
4981
+ if (calcA < min) calcA = min;
4982
+ if (calcA > max) calcA = max;
4983
+ if (calcB < min) calcB = min;
4984
+ if (calcB > max) calcB = max;
4985
+ if (calcA > calcB) return;
4986
+ setPoles(calcA, calcB);
4987
+ } else {
4988
+ let constrainedAmt = amt;
4989
+ if (startA + amt < min) constrainedAmt = min - startA;
4990
+ if (startB + constrainedAmt > max) constrainedAmt = max - startB;
4991
+ const finalA = startA + constrainedAmt;
4992
+ const finalB = startB + constrainedAmt;
4993
+ if (finalA >= min && finalB <= max) setPoles(finalA, finalB);
4994
+ }
4995
+ else if (resizeMode === `bipolar`) {
4988
4996
  const calcA = startA + amt;
4989
4997
  const calcB = startB + amt;
4990
4998
  if (calcA < min || calcB > max) return;
@@ -5396,13 +5404,13 @@ let SelectHorizElement = class SelectHorizElement extends WheelNudgeMixin(LitEle
5396
5404
 
5397
5405
  ::slotted(.tickled) {
5398
5406
  background: var(--item-bg-tickled);
5399
- border-color: var(--item-border-tickled);
5407
+ border: var(--item-border-tickled);
5400
5408
  color: var(--item-text-tickled);
5401
5409
  }
5402
5410
 
5403
5411
  ::slotted([selected]) {
5404
5412
  background: var(--item-bg-selected);
5405
- border-color: var(--item-border-selected);
5413
+ border: var(--item-border-selected);
5406
5414
  color: var(--item-text-selected);
5407
5415
  }
5408
5416
 
@@ -5747,11 +5755,16 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5747
5755
  constructor(..._args) {
5748
5756
  super(..._args);
5749
5757
  this.closeable = false;
5758
+ this.hideLabels = false;
5750
5759
  this.iconName = void 0;
5751
5760
  this.description = void 0;
5752
5761
  this.commandActive = void 0;
5753
5762
  this.registry = void 0;
5754
5763
  this._compact = false;
5764
+ this._hasToolbarContent = false;
5765
+ this._onToolbarSlotChange = () => {
5766
+ this._updateToolbarContent();
5767
+ };
5755
5768
  }
5756
5769
  connectedCallback() {
5757
5770
  super.connectedCallback();
@@ -5759,6 +5772,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5759
5772
  this._compact = entry.contentRect.width < 64;
5760
5773
  });
5761
5774
  this._resizeObserver.observe(this);
5775
+ (this.shadowRoot?.querySelector(`slot[name="toolbar"]`))?.addEventListener(`slotchange`, this._onToolbarSlotChange);
5762
5776
  }
5763
5777
  disconnectedCallback() {
5764
5778
  super.disconnectedCallback();
@@ -5766,6 +5780,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5766
5780
  this._resizeObserver = void 0;
5767
5781
  this._commandCleanup?.();
5768
5782
  this._commandCleanup = void 0;
5783
+ (this.shadowRoot?.querySelector(`slot[name="toolbar"]`))?.removeEventListener(`slotchange`, this._onToolbarSlotChange);
5769
5784
  }
5770
5785
  updated(changed) {
5771
5786
  super.updated(changed);
@@ -5788,12 +5803,21 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5788
5803
  if (id === this.commandActive) this.click();
5789
5804
  });
5790
5805
  }
5806
+ _updateToolbarContent() {
5807
+ const slot = this.shadowRoot?.querySelector(`slot[name="toolbar"]`);
5808
+ this._hasToolbarContent = (slot?.assignedElements().length ?? 0) > 0;
5809
+ }
5810
+ firstUpdated() {
5811
+ this._updateToolbarContent();
5812
+ }
5791
5813
  render() {
5792
- const showLabel = !this._compact || !this.iconName;
5814
+ const showLabel = !this.hideLabels || !this.iconName;
5815
+ const hasActions = this.closeable || this._hasToolbarContent;
5793
5816
  return html`
5794
5817
  <div>
5795
5818
  ${this.iconName ? html`<ixfx-icon name="${this.iconName}"></ixfx-icon>` : nothing}
5796
5819
  ${showLabel ? html`<span class="label"><slot></slot></span>` : nothing}
5820
+ ${hasActions ? html`
5797
5821
  <div class="actions">
5798
5822
  <div class="toolbar"><slot name="toolbar"></slot></div>
5799
5823
  ${this.closeable ? html`
@@ -5807,6 +5831,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5807
5831
  </button>
5808
5832
  ` : nothing}
5809
5833
  </div>
5834
+ ` : nothing}
5810
5835
  </div>
5811
5836
  `;
5812
5837
  }
@@ -5833,17 +5858,19 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5833
5858
  min-width: 0;
5834
5859
  user-select: none;
5835
5860
  box-sizing: border-box;
5861
+ height:fit-content;
5836
5862
  }
5837
5863
 
5838
5864
  :host > div {
5839
5865
  display: flex;
5840
5866
  align-items: center;
5841
- gap: var(--space-s, 4px);
5842
- padding: var(--tab-padding) calc(2 * var(--tab-padding));
5867
+ padding: var(--tab-padding) calc(2 * var(--tab-padding-horizontal, var(--tab-padding)));
5843
5868
  min-width: 0;
5844
5869
  width: 100%;
5845
5870
  font-weight: 500;
5846
5871
  border: var(--selected-tab-border-width) solid transparent;
5872
+ gap: var(--space-s);
5873
+
5847
5874
  }
5848
5875
 
5849
5876
  :host([selected]) > div {
@@ -5854,6 +5881,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5854
5881
  border-right-color: var(--indicator-color-right, transparent);
5855
5882
  background: var(--selected-background);
5856
5883
  font-weight: var(--selected-tab-weight);
5884
+ border-radius:var(--radius-m);
5857
5885
  }
5858
5886
 
5859
5887
  .label {
@@ -5928,6 +5956,10 @@ let TabListItemElement = class TabListItemElement extends LitElement {
5928
5956
  }
5929
5957
  };
5930
5958
  __decorate([property({ type: Boolean })], TabListItemElement.prototype, "closeable", void 0);
5959
+ __decorate([property({
5960
+ type: Boolean,
5961
+ attribute: `hide-labels`
5962
+ })], TabListItemElement.prototype, "hideLabels", void 0);
5931
5963
  __decorate([property({
5932
5964
  type: String,
5933
5965
  attribute: `icon-name`
@@ -5939,6 +5971,7 @@ __decorate([property({
5939
5971
  })], TabListItemElement.prototype, "commandActive", void 0);
5940
5972
  __decorate([property({ attribute: false })], TabListItemElement.prototype, "registry", void 0);
5941
5973
  __decorate([state()], TabListItemElement.prototype, "_compact", void 0);
5974
+ __decorate([state()], TabListItemElement.prototype, "_hasToolbarContent", void 0);
5942
5975
  TabListItemElement = __decorate([safeCustomElement(`ixfx-tab-list-item`)], TabListItemElement);
5943
5976
  //#endregion
5944
5977
  //#region src/tabs/tab-panel.ts