@ixfx/components 0.5.20 → 0.6.1

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 (285) hide show
  1. package/bundle/index.d.ts +586 -261
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +8306 -6624
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +12 -7
  6. package/dist/ac-text.d.ts.map +1 -1
  7. package/dist/ac-text.js +3 -4
  8. package/dist/ac-text.js.map +1 -1
  9. package/dist/ac-token-DVbmHmky.d.ts +107 -0
  10. package/dist/ac-token-DVbmHmky.d.ts.map +1 -0
  11. package/dist/ac-token.d.ts +2 -0
  12. package/dist/ac-token.js +646 -0
  13. package/dist/ac-token.js.map +1 -0
  14. package/dist/{button-pcDaCemT.js → button-Bn0BuLpO.js} +3 -4
  15. package/dist/{button-pcDaCemT.js.map → button-Bn0BuLpO.js.map} +1 -1
  16. package/dist/button.d.ts +2 -3
  17. package/dist/button.d.ts.map +1 -1
  18. package/dist/button.js +1 -1
  19. package/dist/checkbox.d.ts +0 -1
  20. package/dist/checkbox.d.ts.map +1 -1
  21. package/dist/checkbox.js +1 -1
  22. package/dist/checkbox.js.map +1 -1
  23. package/dist/{colour-picker-D43Q96r0.js → colour-picker-0stHB90J.js} +11 -14
  24. package/dist/{colour-picker-D43Q96r0.js.map → colour-picker-0stHB90J.js.map} +1 -1
  25. package/dist/colour-picker.d.ts +1 -1
  26. package/dist/colour-picker.js +1 -1
  27. package/dist/crumbs.d.ts +4 -2
  28. package/dist/crumbs.d.ts.map +1 -1
  29. package/dist/crumbs.js +1152 -1
  30. package/dist/crumbs.js.map +1 -0
  31. package/dist/data-controller-DOlmqNKb.js +171 -0
  32. package/dist/data-controller-DOlmqNKb.js.map +1 -0
  33. package/dist/data-display.d.ts +1 -2
  34. package/dist/data-display.d.ts.map +1 -1
  35. package/dist/data-display.js +24 -22
  36. package/dist/data-display.js.map +1 -1
  37. package/dist/data-grid-BeAkORz2.d.ts +215 -0
  38. package/dist/data-grid-BeAkORz2.d.ts.map +1 -0
  39. package/dist/data-grid.d.ts +2 -0
  40. package/dist/data-grid.js +1225 -0
  41. package/dist/data-grid.js.map +1 -0
  42. package/dist/data-provider-BAn_-oR1.d.ts +61 -0
  43. package/dist/data-provider-BAn_-oR1.d.ts.map +1 -0
  44. package/dist/{decorate-DdjvVHS-.js → decorate-VRK8rslU.js} +2 -2
  45. package/dist/{decorate-DdjvVHS-.js.map → decorate-VRK8rslU.js.map} +1 -1
  46. package/dist/{defaults-BkWCPJFL.js → defaults-BCiDhZbF.js} +20 -3
  47. package/dist/defaults-BCiDhZbF.js.map +1 -0
  48. package/dist/drag-ghost-DtSDvjri.js +85 -0
  49. package/dist/drag-ghost-DtSDvjri.js.map +1 -0
  50. package/dist/editable-label.d.ts +1 -2
  51. package/dist/editable-label.d.ts.map +1 -1
  52. package/dist/editable-label.js +1 -1
  53. package/dist/editable-label.js.map +1 -1
  54. package/dist/{incr-search-CeERfijK.js → element-search-Y8SRfPGM.js} +7 -135
  55. package/dist/element-search-Y8SRfPGM.js.map +1 -0
  56. package/dist/form-CsXJX15p.js +64 -0
  57. package/dist/form-CsXJX15p.js.map +1 -0
  58. package/dist/form.d.ts +15 -0
  59. package/dist/form.d.ts.map +1 -0
  60. package/dist/form.js +2 -0
  61. package/dist/grouped-item-lister-CNLMgdIr.d.ts +121 -0
  62. package/dist/grouped-item-lister-CNLMgdIr.d.ts.map +1 -0
  63. package/dist/grouped-item-lister.d.ts +2 -0
  64. package/dist/grouped-item-lister.js +177 -0
  65. package/dist/grouped-item-lister.js.map +1 -0
  66. package/dist/{hex-editor-B-UI4OZu.js → hex-editor-Bk6rxhfg.js} +6 -8
  67. package/dist/{hex-editor-B-UI4OZu.js.map → hex-editor-Bk6rxhfg.js.map} +1 -1
  68. package/dist/{hex-editor-CMIxtNgT.d.ts → hex-editor-Caq8vNQk.d.ts} +2 -3
  69. package/dist/hex-editor-Caq8vNQk.d.ts.map +1 -0
  70. package/dist/hex.d.ts +1 -1
  71. package/dist/hex.js +1 -1
  72. package/dist/highlight-B-eQrhhb.js.map +1 -1
  73. package/dist/{icon-Bd5BiU4b.d.ts → icon-BUwP1CZ1.d.ts} +3 -4
  74. package/dist/icon-BUwP1CZ1.d.ts.map +1 -0
  75. package/dist/{icon-CK14NUcE.js → icons-Bm2ByQ3s.js} +10 -5
  76. package/dist/icons-Bm2ByQ3s.js.map +1 -0
  77. package/dist/icons.d.ts +2 -2
  78. package/dist/icons.js +2 -8
  79. package/dist/incr-search-vCzuao-2.js +137 -0
  80. package/dist/incr-search-vCzuao-2.js.map +1 -0
  81. package/dist/incr-search.d.ts +1 -1
  82. package/dist/incr-search.js +2 -1
  83. package/dist/{index-DrKRD8_a.d.ts → index-BOUaDIW-.d.ts} +4 -4
  84. package/dist/index-BOUaDIW-.d.ts.map +1 -0
  85. package/dist/{index-CkMIKEWp.d.ts → index-BUB5SICW.d.ts} +3 -4
  86. package/dist/index-BUB5SICW.d.ts.map +1 -0
  87. package/dist/{index-tX6fKF8m.d.ts → index-BeuCXtiO.d.ts} +3 -3
  88. package/dist/index-BeuCXtiO.d.ts.map +1 -0
  89. package/dist/{index-BslNaMLo.d.ts → index-Cu5i8zZY.d.ts} +3 -3
  90. package/dist/index-Cu5i8zZY.d.ts.map +1 -0
  91. package/dist/{index-D87kRcEs.d.ts → index-RqMh1i-O.d.ts} +2 -1
  92. package/dist/index-RqMh1i-O.d.ts.map +1 -0
  93. package/dist/{index-Cdmrn0SZ.d.ts → index-ovq_GTdl.d.ts} +11 -11
  94. package/dist/index-ovq_GTdl.d.ts.map +1 -0
  95. package/dist/index.d.ts +139 -599
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +789 -2845
  98. package/dist/index.js.map +1 -1
  99. package/dist/{labelled-input-base-ORb1rGq6.d.ts → labelled-input-base-Dp_9KP0G.d.ts} +2 -3
  100. package/dist/labelled-input-base-Dp_9KP0G.d.ts.map +1 -0
  101. package/dist/{labelled-input-base-9K_w3oLj.js → labelled-input-base-hoKGwyKT.js} +2 -2
  102. package/dist/{labelled-input-base-9K_w3oLj.js.map → labelled-input-base-hoKGwyKT.js.map} +1 -1
  103. package/dist/labelled-radial-input.d.ts +4 -5
  104. package/dist/labelled-radial-input.d.ts.map +1 -1
  105. package/dist/labelled-radial-input.js +2 -3
  106. package/dist/labelled-radial-input.js.map +1 -1
  107. package/dist/labelled-range-input.d.ts +1 -1
  108. package/dist/labelled-range-input.js +2 -2
  109. package/dist/labelled-range-input.js.map +1 -1
  110. package/dist/led.d.ts +1 -2
  111. package/dist/led.d.ts.map +1 -1
  112. package/dist/led.js +1 -1
  113. package/dist/led.js.map +1 -1
  114. package/dist/menu-DIfU70AA.js +1609 -0
  115. package/dist/menu-DIfU70AA.js.map +1 -0
  116. package/dist/{menu-item-AtoP6bD4.d.ts → menu-item-BG5w7fi4.d.ts} +4 -4
  117. package/dist/menu-item-BG5w7fi4.d.ts.map +1 -0
  118. package/dist/menu.d.ts +2 -2
  119. package/dist/menu.js +1 -2
  120. package/dist/miller.d.ts +7 -5
  121. package/dist/miller.d.ts.map +1 -1
  122. package/dist/miller.js +23 -25
  123. package/dist/miller.js.map +1 -1
  124. package/dist/narrowed-text.d.ts +1 -2
  125. package/dist/narrowed-text.d.ts.map +1 -1
  126. package/dist/narrowed-text.js +14 -13
  127. package/dist/narrowed-text.js.map +1 -1
  128. package/dist/notification-pill-DyZydXoZ.d.ts +68 -0
  129. package/dist/notification-pill-DyZydXoZ.d.ts.map +1 -0
  130. package/dist/notifier.d.ts +2 -0
  131. package/dist/notifier.js +146 -0
  132. package/dist/notifier.js.map +1 -0
  133. package/dist/panel.d.ts +1 -1
  134. package/dist/panel.d.ts.map +1 -1
  135. package/dist/panel.js +1 -2
  136. package/dist/panel.js.map +1 -1
  137. package/dist/plots.d.ts +1 -1
  138. package/dist/plots.js +1 -1
  139. package/dist/polar-pad.d.ts +1 -2
  140. package/dist/polar-pad.d.ts.map +1 -1
  141. package/dist/polar-pad.js +2 -2
  142. package/dist/polar-pad.js.map +1 -1
  143. package/dist/{radial-input-Dhu5ZGP5.d.ts → radial-input-BhZeyyP-.d.ts} +2 -3
  144. package/dist/radial-input-BhZeyyP-.d.ts.map +1 -0
  145. package/dist/{radial-input-C4f-2Bya.js → radial-input-Dk8Wydp5.js} +26 -16
  146. package/dist/radial-input-Dk8Wydp5.js.map +1 -0
  147. package/dist/radial-input.d.ts +1 -1
  148. package/dist/radial-input.js +1 -1
  149. package/dist/range-input.d.ts +2 -3
  150. package/dist/range-input.d.ts.map +1 -1
  151. package/dist/range-input.js +2 -2
  152. package/dist/range-input.js.map +1 -1
  153. package/dist/range.d.ts +2 -3
  154. package/dist/range.d.ts.map +1 -1
  155. package/dist/range.js +2 -2
  156. package/dist/range.js.map +1 -1
  157. package/dist/scroll-fade-CAs1EabA.js +70 -0
  158. package/dist/scroll-fade-CAs1EabA.js.map +1 -0
  159. package/dist/select-horiz.d.ts +50 -0
  160. package/dist/select-horiz.d.ts.map +1 -0
  161. package/dist/select-horiz.js +263 -0
  162. package/dist/select-horiz.js.map +1 -0
  163. package/dist/{slider-input-SW7e2Ac2.js → slider-input-CT4gcF-o.js} +30 -27
  164. package/dist/{slider-input-SW7e2Ac2.js.map → slider-input-CT4gcF-o.js.map} +1 -1
  165. package/dist/{slider-input-BEaztT-g.d.ts → slider-input-TidGhvXt.d.ts} +2 -3
  166. package/dist/slider-input-TidGhvXt.d.ts.map +1 -0
  167. package/dist/slider-input.d.ts +1 -1
  168. package/dist/slider-input.js +1 -1
  169. package/dist/snackbar.d.ts +58 -0
  170. package/dist/snackbar.d.ts.map +1 -0
  171. package/dist/snackbar.js +265 -0
  172. package/dist/snackbar.js.map +1 -0
  173. package/dist/snap-container.d.ts +1 -2
  174. package/dist/snap-container.d.ts.map +1 -1
  175. package/dist/snap-container.js +6 -5
  176. package/dist/snap-container.js.map +1 -1
  177. package/dist/split-layout.d.ts +1 -2
  178. package/dist/split-layout.d.ts.map +1 -1
  179. package/dist/split-layout.js +5 -3
  180. package/dist/split-layout.js.map +1 -1
  181. package/dist/swipe.d.ts +1 -2
  182. package/dist/swipe.d.ts.map +1 -1
  183. package/dist/swipe.js +4 -3
  184. package/dist/swipe.js.map +1 -1
  185. package/dist/{tab-list-B8v9KntS.d.ts → tab-list-Beuh2nom.d.ts} +4 -4
  186. package/dist/tab-list-Beuh2nom.d.ts.map +1 -0
  187. package/dist/tabs.d.ts +1 -1
  188. package/dist/tabs.js +533 -1
  189. package/dist/tabs.js.map +1 -0
  190. package/dist/{tickled-controller-JDOR9B8V.d.ts → tickled-controller-BtevrRLV.d.ts} +1 -2
  191. package/dist/tickled-controller-BtevrRLV.d.ts.map +1 -0
  192. package/dist/{tickled-styles-Bgo_Lpw-.js → tickled-controller-DkAU-0qL.js} +2 -88
  193. package/dist/tickled-controller-DkAU-0qL.js.map +1 -0
  194. package/dist/tickled-styles-BrAHEj1q.js +89 -0
  195. package/dist/tickled-styles-BrAHEj1q.js.map +1 -0
  196. package/dist/{timeline-CdSI003L.js → timeline-B2fgDL4U.js} +3 -3
  197. package/dist/{timeline-CdSI003L.js.map → timeline-B2fgDL4U.js.map} +1 -1
  198. package/dist/timeline.d.ts +1 -1
  199. package/dist/timeline.js +1 -1
  200. package/dist/{tooltip-BMTSUPBU.d.ts → tooltip-BlvBUQxx.d.ts} +2 -3
  201. package/dist/tooltip-BlvBUQxx.d.ts.map +1 -0
  202. package/dist/transitory-label.d.ts +30 -0
  203. package/dist/transitory-label.d.ts.map +1 -0
  204. package/dist/transitory-label.js +249 -0
  205. package/dist/transitory-label.js.map +1 -0
  206. package/dist/{tree-CqPhQRHo.js → tree-BO6BXI2b.js} +9 -10
  207. package/dist/{tree-CqPhQRHo.js.map → tree-BO6BXI2b.js.map} +1 -1
  208. package/dist/{tree-component-CDLO1ITF.d.ts → tree-component-BvV4muxx.d.ts} +8 -124
  209. package/dist/tree-component-BvV4muxx.d.ts.map +1 -0
  210. package/dist/tree.d.ts +9 -4
  211. package/dist/tree.d.ts.map +1 -1
  212. package/dist/tree.js +1 -1
  213. package/dist/types-Bc23SI94.d.ts +72 -0
  214. package/dist/types-Bc23SI94.d.ts.map +1 -0
  215. package/dist/types-DlVNJez_.d.ts +41 -0
  216. package/dist/types-DlVNJez_.d.ts.map +1 -0
  217. package/dist/vertical-list.d.ts +122 -0
  218. package/dist/vertical-list.d.ts.map +1 -0
  219. package/dist/vertical-list.js +737 -0
  220. package/dist/vertical-list.js.map +1 -0
  221. package/dist/{wheel-nudge-Dhzi5nHc.js → wheel-nudge-BlSCe_hD.js} +2 -2
  222. package/dist/{wheel-nudge-Dhzi5nHc.js.map → wheel-nudge-BlSCe_hD.js.map} +1 -1
  223. package/dist/{wheel-nudge-C-ra_1os.d.ts → wheel-nudge-DgMTRYlh.d.ts} +1 -2
  224. package/dist/wheel-nudge-DgMTRYlh.d.ts.map +1 -0
  225. package/dist/{xy-axis-CtDDQzGZ.d.ts → xy-axis-5KhVTNoX.d.ts} +8 -6
  226. package/dist/xy-axis-5KhVTNoX.d.ts.map +1 -0
  227. package/dist/{xy-axis-BpA2eJq6.js → xy-axis-B6yMjckW.js} +8 -112
  228. package/dist/xy-axis-B6yMjckW.js.map +1 -0
  229. package/dist/xy-pad.d.ts +1 -2
  230. package/dist/xy-pad.d.ts.map +1 -1
  231. package/dist/xy-pad.js +2 -2
  232. package/dist/xy-pad.js.map +1 -1
  233. package/docs-user/README.md +4 -2
  234. package/docs-user/data-grid.md +248 -0
  235. package/docs-user/index.json +222 -0
  236. package/docs-user/llms.txt +58 -0
  237. package/docs-user/rating.md +102 -0
  238. package/docs-user/toolbar.md +135 -0
  239. package/llms.txt +58 -0
  240. package/package.json +21 -11
  241. package/dist/crumb-navigation-Pif-kupA.js +0 -1221
  242. package/dist/crumb-navigation-Pif-kupA.js.map +0 -1
  243. package/dist/defaults-BkWCPJFL.js.map +0 -1
  244. package/dist/hex-editor-CMIxtNgT.d.ts.map +0 -1
  245. package/dist/icon-Bd5BiU4b.d.ts.map +0 -1
  246. package/dist/icon-CK14NUcE.js.map +0 -1
  247. package/dist/icons.js.map +0 -1
  248. package/dist/incr-search-CeERfijK.js.map +0 -1
  249. package/dist/index-BslNaMLo.d.ts.map +0 -1
  250. package/dist/index-Cdmrn0SZ.d.ts.map +0 -1
  251. package/dist/index-CkMIKEWp.d.ts.map +0 -1
  252. package/dist/index-D87kRcEs.d.ts.map +0 -1
  253. package/dist/index-DrKRD8_a.d.ts.map +0 -1
  254. package/dist/index-tX6fKF8m.d.ts.map +0 -1
  255. package/dist/interaction-_Y2qO3QI.js +0 -1
  256. package/dist/labelled-input-base-ORb1rGq6.d.ts.map +0 -1
  257. package/dist/menu-BiFarLUA.js +0 -826
  258. package/dist/menu-BiFarLUA.js.map +0 -1
  259. package/dist/menu-item-AtoP6bD4.d.ts.map +0 -1
  260. package/dist/menu-item-yHSPV8nS.js +0 -783
  261. package/dist/menu-item-yHSPV8nS.js.map +0 -1
  262. package/dist/radial-input-C4f-2Bya.js.map +0 -1
  263. package/dist/radial-input-Dhu5ZGP5.d.ts.map +0 -1
  264. package/dist/registry-CkW7q09Q.js +0 -21
  265. package/dist/registry-CkW7q09Q.js.map +0 -1
  266. package/dist/selecthorizontal.d.ts +0 -16
  267. package/dist/selecthorizontal.d.ts.map +0 -1
  268. package/dist/selecthorizontal.js +0 -43
  269. package/dist/selecthorizontal.js.map +0 -1
  270. package/dist/slider-input-BEaztT-g.d.ts.map +0 -1
  271. package/dist/tab-list-B8v9KntS.d.ts.map +0 -1
  272. package/dist/tab-list-CR0v53KJ.js +0 -615
  273. package/dist/tab-list-CR0v53KJ.js.map +0 -1
  274. package/dist/tickled-controller-JDOR9B8V.d.ts.map +0 -1
  275. package/dist/tickled-styles-Bgo_Lpw-.js.map +0 -1
  276. package/dist/tooltip-BMTSUPBU.d.ts.map +0 -1
  277. package/dist/tree-component-CDLO1ITF.d.ts.map +0 -1
  278. package/dist/types-DSfbtHs3.d.ts +0 -8
  279. package/dist/types-DSfbtHs3.d.ts.map +0 -1
  280. package/dist/wheel-nudge-C-ra_1os.d.ts.map +0 -1
  281. package/dist/xy-axis-BpA2eJq6.js.map +0 -1
  282. package/dist/xy-axis-CtDDQzGZ.d.ts.map +0 -1
  283. package/docs-user/selecthorizontal.md +0 -32
  284. /package/bundle/{chunk-D7D4PA-g.js → rolldown-runtime-D7D4PA-g.js} +0 -0
  285. /package/dist/{chunk-D7D4PA-g.js → rolldown-runtime-D7D4PA-g.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"crumb-navigation-Pif-kupA.js","names":["#getTickledItems","#onTickled","#getHostContainer","#onMenuKeyNav","#currentOpenTrigger","#menuOpenedByKeyboard","#canFocusSuggestions","#shiftFocusToNarrowedText","#handleOpenCaretMenu","#activateTickled","#shiftFocusToPath","#isWheelScrolling","#wheelScrollTimeout","#findPath","#scrollTickledIntoView","#pendingNode","#hasChildOptions","#propagateInputModeToMenu","#setSelected","#modelUnsubscribe","#runLayoutUpdate","#onHostClick","#onWheel","#previousSelectionKey","#scrollToValue","#pendingController","#updateTrailingWidth","#scrollSegmentIntoView","#abortPending","#invokeLoadChildren","#onChildClick","#currentLeadingSiblings","#findNodePath","#getSiblingMenuItems","#onLabelClick","#onSegmentMenuCommand","#onUpClick","#onFocus","#onBlur","#onKeyDown","#onMenuTriggerClose","#renderChildOptions","#getChildOptionsWidth","#onNarrowedTextChange","#onNarrowedTextBlur","#onNarrowedTextShiftTab","customElement"],"sources":["../src/styles/scroll-fade.ts","../src/crumbs/crumb-navigation.ts"],"sourcesContent":["import { css, unsafeCSS } from 'lit';\n\nexport type ScrollFadeAxis = `x` | `y`;\n\n/**\n * Zero-JS scroll edge fade.\n *\n * A CSS alpha mask driven by a scroll-linked animation (`scroll-timeline`),\n * rather than a JS scroll/resize listener - so it can never go stale after\n * a resize (widening a scroller so content fully fits clears the fade\n * immediately, with no JS involved), and it fades the whole element\n * including its children, not just a background layer that an opaque\n * item background would hide.\n *\n * Apply the returned `.scroll-fade-x` / `.scroll-fade-y` class to\n * whichever element actually has `overflow` scrolling on that axis.\n *\n * CSS variables:\n * - `--scroll-fade-width` (default `30px`): how far the fade extends from each edge.\n *\n * ```ts\n * import { scrollFadeStyles } from '../styles/scroll-fade.js';\n *\n * static styles = [scrollFadeStyles(`x`), css`...`];\n * ```\n * ```html\n * <div class=\"scroll-fade-x\" style=\"overflow-x: scroll\">...</div>\n * ```\n */\nexport function scrollFadeStyles(axis: ScrollFadeAxis) {\n const className = `scroll-fade-${axis}`;\n const start = `--${className}-start`;\n const end = `--${className}-end`;\n const timeline = `--${className}-timeline`;\n const keyframesName = `${className}-fade`;\n const gradientDirection = axis === `x` ? `to right` : `to bottom`;\n\n return css`\n @property ${unsafeCSS(start)} {\n syntax: '<length>';\n inherits: false;\n initial-value: 0px;\n }\n\n @property ${unsafeCSS(end)} {\n syntax: '<length>';\n inherits: false;\n initial-value: 0px;\n }\n\n @keyframes ${unsafeCSS(keyframesName)} {\n 0% { ${unsafeCSS(start)}: 0px; }\n 10%, 100% { ${unsafeCSS(start)}: var(--scroll-fade-width, 30px); }\n 0%, 90% { ${unsafeCSS(end)}: var(--scroll-fade-width, 30px); }\n 100% { ${unsafeCSS(end)}: 0px; }\n }\n\n .${unsafeCSS(className)} {\n scroll-timeline: ${unsafeCSS(timeline)} ${unsafeCSS(axis)};\n animation: ${unsafeCSS(keyframesName)};\n animation-timeline: ${unsafeCSS(timeline)};\n mask-image: linear-gradient(${unsafeCSS(gradientDirection)},\n transparent,\n black var(${unsafeCSS(start)}, 0px) calc(100% - var(${unsafeCSS(end)}, 0px)),\n transparent\n );\n }\n `;\n}\n","/* eslint-disable ts/no-unsafe-declaration-merging */\nimport type { PropertyValues } from 'lit';\nimport type {\n TreeActivateEvent,\n TreeComponent,\n TreeComponentEventMap,\n TreeExpandEvent,\n TreeItemClickEvent,\n TreeSelectDetail,\n TreeSelectEvent,\n TreeTickleDetail,\n TreeTickleEvent,\n} from '../common/tree-component.js';\nimport type { TreeDataModel } from '../common/tree-data-model.js';\nimport type {\n TreeExclusivity,\n TreeFilterPredicate,\n TreeSelectionFilter,\n} from '../common/types.js';\nimport type { MenuTrigger } from '../menu/menu-trigger.js';\nimport type { LoadChildrenCallback, TreeNode } from '../tree/types.js';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { collectDataResult } from '../common/data-provider.js';\n\nimport { TickledController, tickledItemStyles, tickledStyles } from '../interaction/index.js';\nimport { themeFallbacks } from '../styles/fallbacks.js';\nimport { scrollFadeStyles } from '../styles/scroll-fade.js';\nimport { safeCustomElement as customElement } from '../util/custom-elements.js';\nimport '../menu/menu-trigger.js';\nimport '../menu/menu-container.js';\nimport '../menu/menu-item.js';\n\nimport '../narrowed-text/index.js';\n\n/** @deprecated Use TreeSelectDetail from src/common/tree-component.ts */\nexport type CrumbNavigationChangeDetail = {\n readonly selected: TreeNode;\n readonly previous: TreeNode | undefined;\n};\n\nexport type CrumbNavigationChangeEvent = CustomEvent<CrumbNavigationChangeDetail>;\n\nexport type CrumbNavigationItemClickDetail = { node: TreeNode; depth: number };\nexport type CrumbNavigationItemClickEvent = CustomEvent<CrumbNavigationItemClickDetail>;\n\nexport type CrumbNavigationExpandDetail = { node: TreeNode; depth: number };\nexport type CrumbNavigationExpandEvent = CustomEvent<CrumbNavigationExpandDetail>;\n\n/**\n * Breadcrumb navigation with lazy-loading support.\n *\n * Uses the same `TreeNode` / `TreeItem` data model as `ixfx-tree-list`,\n * so the two components can be swapped with minimal code changes.\n *\n * Events\n * - `navigate`: fired when user clicks a breadcrumb label. detail: `{ node: TreeNode }`\n * - `change`: fired when selected node changes. detail: `{ selected: TreeNode, previous: TreeNode | undefined }`\n * - `expand`: fired when user clicks a caret whose node has no children yet.\n * detail: `{ node: TreeNode, depth: number, signal: AbortSignal }`\n * Populate `node.children` then call `requestUpdate()` on the element.\n *\n * CSS variables\n * --crumb-item-bg: var(--item-bg, transparent); // item background\n * --crumb-item-bg-tickled: var(--item-bg-tickled); // item background on hover\n * --crumb-item-text-tickled: var(--item-text-tickled); // text color on hover\n * --crumb-item-border: var(--item-border); // item border\n * --crumb-item-border-tickled: var(--item-border-tickled); // border color on hover\n * --crumb-item-padding: var(--item-padding, var(--space-xs)); // item padding\n * --crumb-item-border-radius: var(--item-border-radius); // item border radius\n * --crumb-item-gap: var(--item-gap, var(--space-xs)); // gap between items\n * --crumb-separator: var(--surface-muted-text); // separator/caret color\n * --crumb-truncate-min-width: 5ch; // minimum width for truncatable segments\n */\n@customElement(`ixfx-crumb-navigation`)\nexport class CrumbNavigationElement extends LitElement implements TreeComponent {\n @property({ type: Object })\n root: TreeNode | undefined;\n\n @property({ attribute: false })\n model: TreeDataModel | undefined;\n\n @property({ type: Object })\n selectedNode: TreeNode | undefined;\n\n @state()\n private _selectedNodes = new Set<TreeNode>();\n\n get selectedNodes(): ReadonlySet<TreeNode> {\n return this._selectedNodes;\n }\n\n /** Callback to lazily load children for a node. When set, replaces event-based lazy loading. */\n @property({ attribute: false })\n loadChildren: LoadChildrenCallback | undefined;\n\n @property({ attribute: false })\n filterPredicate: TreeFilterPredicate | undefined;\n\n @property({ reflect: true, attribute: `exclusivity` })\n exclusivity: TreeExclusivity = `none`;\n\n @property({ reflect: true, attribute: `selection-filter` })\n selectionFilter: TreeSelectionFilter = `leaf`;\n\n @state()\n private _openIdx = -1;\n\n @state()\n private _isFocused = false;\n\n @state()\n private _menuOpen = false;\n\n @state()\n private _focusOnNarrowedText = false;\n\n @property({ reflect: true, attribute: `input-mode` })\n inputMode: string = ``;\n\n @property({ type: Boolean, reflect: true, attribute: `no-truncate` })\n noTruncate = false;\n\n @property({ type: Boolean, reflect: true, attribute: `show-suggestions` })\n showSuggestions = false;\n\n @property({ type: Boolean, reflect: true, attribute: `leading-caret` })\n leadingCaret = false;\n\n @property({ type: Boolean, reflect: true, attribute: `caret-embedded` })\n caretEmbedded = true;\n\n @property({ type: Boolean, reflect: true, attribute: `hide-root` })\n hideRoot = false;\n\n @property({ type: Boolean, reflect: true, attribute: `pad-ending` })\n padEnding = false;\n\n @property({ type: Boolean, reflect: true, attribute: `with-up` })\n withUp = false;\n\n #pendingNode: TreeNode | undefined;\n #pendingController: AbortController | undefined;\n #modelUnsubscribe: (() => void) | undefined;\n\n #previousSelectionKey = ``;\n #menuOpenedByKeyboard = false;\n #currentOpenTrigger: MenuTrigger | null = null;\n\n private tickled = new TickledController<number>(this, {\n getItems: () => this.#getTickledItems(),\n onTickle: (index) => {\n if (index !== undefined) {\n this.#onTickled(index);\n }\n },\n });\n\n #getTickledItems() {\n const r = this.root;\n const sel = this.selectedNode;\n if (!r || !sel)\n return [];\n\n const pathNodes = this.#findPath(r, sel) ?? [r];\n const items: Array<{ id: number; enabled: boolean }> = [];\n\n if (this.caretEmbedded) {\n pathNodes.forEach((_node, i) => {\n items.push({ id: i, enabled: true });\n });\n if (this.#canFocusSuggestions()) {\n items.push({ id: pathNodes.length, enabled: true });\n }\n } else {\n let segmentId = 0;\n pathNodes.forEach((node, i) => {\n const isLast = i === pathNodes.length - 1;\n const hasChildren = node.item.isLeaf !== true && (node.children === undefined || node.children.length > 0);\n const showLeadingCaret = this.leadingCaret && (i > 0 || this.hideRoot) && hasChildren;\n const showTrailingCaret = (!this.leadingCaret && hasChildren) || (this.leadingCaret && isLast && hasChildren);\n\n if (showLeadingCaret) {\n items.push({ id: segmentId++, enabled: true });\n }\n items.push({ id: segmentId++, enabled: true });\n if (showTrailingCaret) {\n items.push({ id: segmentId++, enabled: true });\n }\n });\n }\n\n return items;\n }\n\n #onTickled(index: number) {\n if (this.tickled.inputMode === `keyboard`) {\n this.#scrollTickledIntoView(index);\n }\n }\n\n #scrollTickledIntoView(index: number): void {\n const r = this.root;\n const sel = this.selectedNode;\n if (!r || !sel)\n return;\n\n const pathNodes = this.#findPath(r, sel) ?? [r];\n let el: HTMLElement | null = null;\n\n if (this.caretEmbedded && this.#canFocusSuggestions() && index === pathNodes.length) {\n el = this.shadowRoot?.querySelector<HTMLElement>(`ixfx-narrowed-text`) ?? null;\n } else {\n el = this.shadowRoot?.querySelectorAll<HTMLElement>(`.crumb-segment`)[index] ?? null;\n }\n\n el?.scrollIntoView({ inline: `nearest`, block: `nearest`, behavior: `smooth` });\n }\n\n #hasChildOptions(): boolean {\n const s = this.selectedNode;\n if (s === undefined)\n return false;\n\n const isPending = this.#pendingNode === s;\n const children = s.children ?? [];\n\n return children.length > 0 || isPending;\n }\n\n /** True when the suggestions (narrowed-text) sub-part is renderable and focusable. */\n #canFocusSuggestions(): boolean {\n return this.showSuggestions && this.#hasChildOptions();\n }\n\n #onFocus = (): void => {\n this._isFocused = true;\n };\n\n #onBlur = (): void => {\n this._isFocused = false;\n };\n\n #getHostContainer(): HTMLElement | null {\n return this.shadowRoot?.querySelector<HTMLElement>(`.host-container`) ?? null;\n }\n\n #onHostClick = (): void => {\n this.#getHostContainer()?.focus();\n };\n\n #handleOpenCaretMenu() {\n const currentTickled = this.tickled.tickledId;\n if (currentTickled === undefined)\n return;\n\n const r = this.root;\n const sel = this.selectedNode;\n if (!r || !sel)\n return;\n\n const pathNodes = this.#findPath(r, sel) ?? [r];\n\n // Virtual \"beyond last\" item (embedded mode only, when suggestions are available)\n if (this.caretEmbedded && this.#canFocusSuggestions() && currentTickled === pathNodes.length) {\n this.#shiftFocusToNarrowedText();\n return;\n }\n\n const segments = this.shadowRoot?.querySelectorAll<HTMLElement>(`.crumb-segment`);\n const trigger = segments?.[currentTickled]?.querySelector<MenuTrigger>(`.caret ixfx-menu-trigger`);\n if (trigger) {\n this.#menuOpenedByKeyboard = true;\n this.#currentOpenTrigger = trigger;\n document.addEventListener(`keydown`, this.#onMenuKeyNav, { capture: true });\n trigger.openMenu();\n this.#propagateInputModeToMenu();\n }\n }\n\n #propagateInputModeToMenu(): void {\n const inputMode = this.tickled.inputMode;\n requestAnimationFrame(() => {\n const container = this.#currentOpenTrigger?.querySelector(`ixfx-menu-container`);\n if (container) {\n container.setAttribute(`data-input-mode`, inputMode);\n }\n });\n }\n\n #onMenuTriggerClose = (): void => {\n document.removeEventListener(`keydown`, this.#onMenuKeyNav, { capture: true });\n this.#currentOpenTrigger = null;\n this.#menuOpenedByKeyboard = false;\n requestAnimationFrame(() => {\n this.#getHostContainer()?.focus();\n });\n };\n\n #onMenuKeyNav = (e: KeyboardEvent): void => {\n // Only handle ArrowLeft/ArrowRight - close menu and navigate to previous/next breadcrumb segment\n // ArrowDown/ArrowUp should pass through to let the menu handle them\n const container = this.#currentOpenTrigger?.querySelector(`ixfx-menu-container`);\n if (!container || !this.#currentOpenTrigger?.isOpen)\n return;\n\n switch (e.key) {\n case `ArrowLeft`:\n case `ArrowRight`: {\n e.preventDefault();\n e.stopPropagation();\n this.#currentOpenTrigger.closeMenu();\n const r = this.root;\n const sel = this.selectedNode;\n if (!r || !sel)\n break;\n const totalItems = this.#getTickledItems().length;\n const currentTickled = this.tickled.tickledId ?? -1;\n if (e.key === `ArrowLeft`) {\n if (currentTickled > 0) {\n this.tickled.handleKeyboardNavigation(`previous`);\n }\n } else {\n if (currentTickled < totalItems - 1) {\n this.tickled.handleKeyboardNavigation(`next`);\n }\n }\n break;\n }\n }\n };\n\n #onKeyDown = (e: KeyboardEvent): void => {\n const r = this.root;\n const sel = this.selectedNode;\n if (!r || !sel)\n return;\n\n const totalItems = this.#getTickledItems().length;\n const currentTickled = this.tickled.tickledId ?? -1;\n\n switch (e.key) {\n case `ArrowRight`: {\n e.preventDefault();\n if (currentTickled < totalItems - 1) {\n this.tickled.handleKeyboardNavigation(`next`);\n } else if (currentTickled === totalItems - 1 && this.#canFocusSuggestions()) {\n this.#shiftFocusToNarrowedText();\n }\n break;\n }\n case `ArrowLeft`: {\n e.preventDefault();\n if (currentTickled > 0) {\n this.tickled.handleKeyboardNavigation(`previous`);\n }\n break;\n }\n case `ArrowDown`:\n case `ArrowUp`: {\n if (this.tickled.tickledId !== undefined) {\n e.preventDefault();\n if (this.#currentOpenTrigger?.isOpen) {\n // Menu is already open - dispatch ArrowDown to the popover element for it to handle\n const container = this.#currentOpenTrigger.querySelector(`ixfx-menu-container`);\n const popover = container?.shadowRoot?.querySelector(`.popover`);\n if (popover) {\n popover.dispatchEvent(new KeyboardEvent(`keydown`, { key: e.key, bubbles: true }));\n }\n } else {\n this.#handleOpenCaretMenu();\n }\n }\n break;\n }\n case `Enter`:\n case ` `: {\n e.preventDefault();\n this.#activateTickled();\n break;\n }\n case `Escape`: {\n e.preventDefault();\n this._menuOpen = false;\n this.tickled.clearTickled();\n this.blur();\n break;\n }\n case `Tab`: {\n if (e.shiftKey) {\n // Let default Shift+Tab move focus backward, out of the component.\n break;\n }\n if (currentTickled === totalItems - 1 && this.#canFocusSuggestions()) {\n e.preventDefault();\n this.#shiftFocusToNarrowedText();\n }\n break;\n }\n }\n };\n\n /** Activates the currently tickled item, as if it had been clicked. */\n #activateTickled() {\n const currentTickled = this.tickled.tickledId;\n if (currentTickled === undefined)\n return;\n\n const r = this.root;\n const sel = this.selectedNode;\n if (!r || !sel)\n return;\n\n const pathNodes = this.#findPath(r, sel) ?? [r];\n\n // Virtual \"beyond last\" item (embedded mode only, when suggestions are available)\n if (this.caretEmbedded && this.#canFocusSuggestions() && currentTickled === pathNodes.length) {\n this.#shiftFocusToNarrowedText();\n return;\n }\n\n const segment = this.shadowRoot?.querySelector<HTMLElement>(`.crumb-segment[data-segment-id=\"${currentTickled}\"]`);\n segment?.click();\n }\n\n #shiftFocusToNarrowedText() {\n const narrowedText = this.shadowRoot?.querySelector(`ixfx-narrowed-text`);\n if (narrowedText) {\n this._menuOpen = false;\n this._focusOnNarrowedText = true;\n narrowedText.focus();\n }\n }\n\n #shiftFocusToPath() {\n this._focusOnNarrowedText = false;\n const hostContainer = this.#getHostContainer();\n if (hostContainer) {\n hostContainer.focus();\n }\n }\n\n #onNarrowedTextBlur = (): void => {\n this._focusOnNarrowedText = false;\n this.#shiftFocusToPath();\n };\n\n #onNarrowedTextShiftTab = (): void => {\n this._focusOnNarrowedText = false;\n this.#shiftFocusToPath();\n };\n\n // --- TreeComponent methods ---\n\n select(node: TreeNode): void {\n this.#setSelected(node);\n }\n\n deselect(_node: TreeNode): void {\n // Crumb navigation is single-selection; deselect navigates to parent or root\n }\n\n clearSelection(): void {\n if (this.root)\n this.#setSelected(this.root);\n }\n\n /** Not implemented on crumb-navigation. */\n selectAll(): void {\n // no-op\n }\n\n /** Not implemented on crumb-navigation. */\n deselectAll(): void {\n // no-op\n }\n\n getNodes(): ReadonlyArray<{ node: TreeNode; depth: number }> {\n if (!this.root)\n return [];\n const result: Array<{ node: TreeNode; depth: number }> = [];\n const visit = (node: TreeNode, depth: number) => {\n result.push({ node, depth });\n if (node.children) {\n for (const child of node.children) visit(child, depth + 1);\n }\n };\n for (const child of this.root.children ?? []) visit(child, 0);\n return result;\n }\n\n // --- Lifecycle ---\n\n override updated(changedProps: PropertyValues): void {\n if (changedProps.has(`model`)) {\n this.#modelUnsubscribe?.();\n this.#modelUnsubscribe = undefined;\n const model = this.model;\n if (model) {\n this.root = model.root;\n this.#modelUnsubscribe = model._subscribe((event) => {\n if (event.type === `root`) {\n this.root = event.root;\n this.requestUpdate();\n }\n });\n }\n }\n this.#runLayoutUpdate(changedProps);\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener(`click`, this.#onHostClick);\n this.addEventListener(`wheel`, this.#onWheel, { passive: false });\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(`click`, this.#onHostClick);\n this.removeEventListener(`wheel`, this.#onWheel);\n this.#modelUnsubscribe?.();\n this.#modelUnsubscribe = undefined;\n document.removeEventListener(`keydown`, this.#onMenuKeyNav, { capture: true });\n this.#currentOpenTrigger = null;\n }\n\n override firstUpdated() {\n const hostContainer = this.#getHostContainer();\n if (hostContainer) {\n hostContainer.scrollLeft = hostContainer.scrollWidth - hostContainer.clientWidth;\n }\n }\n\n #isWheelScrolling = false;\n\n #onWheel = (e: Event) => {\n const wheelEvent = e as WheelEvent;\n if (wheelEvent.deltaX !== 0 || wheelEvent.deltaY !== 0) {\n e.preventDefault();\n if (!this.#isWheelScrolling) {\n this.#isWheelScrolling = true;\n this.tickled.clearTickled();\n }\n const hostContainer = this.#getHostContainer();\n if (hostContainer) {\n hostContainer.scrollLeft += wheelEvent.deltaX + wheelEvent.deltaY;\n }\n clearTimeout(this.#wheelScrollTimeout);\n this.#wheelScrollTimeout = setTimeout(() => {\n this.#isWheelScrolling = false;\n }, 150);\n }\n };\n\n #wheelScrollTimeout: ReturnType<typeof setTimeout> | undefined;\n\n #runLayoutUpdate(_changedProperties: PropertyValues): void {\n if (!this.shadowRoot)\n return;\n\n const hsiElement: HTMLElement | null = this.shadowRoot.querySelector(`.horiz-select-items`);\n if (!hsiElement)\n return;\n\n const ulElement: HTMLElement | null = hsiElement.querySelector(`ul`);\n if (!ulElement)\n return;\n\n const menuTrigger: HTMLElement | null = this.shadowRoot.querySelector(`ixfx-menu-trigger`);\n if (!menuTrigger)\n return;\n\n if (ulElement.getBoundingClientRect().width > hsiElement.getBoundingClientRect().width) {\n menuTrigger.style.display = `inline-flex`;\n } else {\n menuTrigger.style.display = `none`;\n }\n\n for (const li of ulElement.querySelectorAll(`li`)) {\n const key = li.getAttribute(`data-key`) ?? ``;\n if (key === this.#previousSelectionKey) {\n this.#scrollToValue(li);\n break;\n }\n }\n }\n\n #scrollToValue(li: HTMLLIElement) {\n let l = li.offsetLeft;\n\n const ul = li.parentElement;\n if (!ul)\n return;\n l -= ul.offsetLeft;\n\n const horizSelectItems = ul.parentElement;\n if (!horizSelectItems)\n return;\n horizSelectItems.scroll({ left: l, top: 0, behavior: `smooth` });\n\n const horizSelect = horizSelectItems.parentElement;\n if (!horizSelect)\n return;\n horizSelect.style.minWidth = `${li.getBoundingClientRect().width}px`;\n }\n\n #abortPending() {\n if (this.#pendingController) {\n this.#pendingController.abort();\n this.#pendingController = undefined;\n this.#pendingNode = undefined;\n }\n }\n\n #findPath(node: TreeNode, target: TreeNode, acc: TreeNode[] = []): TreeNode[] | undefined {\n const path = [...acc, node];\n if (node === target)\n return path;\n if (!node.children)\n return undefined;\n for (const child of node.children) {\n const result = this.#findPath(child, target, path);\n if (result)\n return result;\n }\n return undefined;\n }\n\n #scrollSegmentIntoView(depth: number) {\n if (!this.shadowRoot)\n return;\n const segments = this.shadowRoot.querySelectorAll(`.crumb-segment`);\n const segment = segments[depth];\n segment?.scrollIntoView({ block: `nearest`, inline: `start` });\n }\n\n #updateTrailingWidth(): void {\n if (!this.padEnding || !this.shadowRoot)\n return;\n const hostContainer = this.shadowRoot.querySelector<HTMLElement>(`.host-container`);\n const trailing = this.shadowRoot.querySelector<HTMLElement>(`.trailing`);\n if (!hostContainer || !trailing)\n return;\n const segments = this.shadowRoot.querySelectorAll(`.crumb-segment`);\n const lastSegment = segments[segments.length - 1];\n if (!lastSegment)\n return;\n const containerWidth = hostContainer.getBoundingClientRect().width;\n const itemWidth = lastSegment.getBoundingClientRect().width;\n if (itemWidth < containerWidth) {\n trailing.style.width = `${containerWidth - itemWidth - 5}px`;\n requestAnimationFrame(() => {\n if (hostContainer.scrollWidth <= hostContainer.clientWidth) {\n hostContainer.style.setProperty(`--scroll-fade-x-start`, `0px`, `important`);\n } else {\n hostContainer.style.removeProperty(`--scroll-fade-x-start`);\n }\n });\n } else {\n trailing.style.width = ``;\n }\n }\n\n #setSelected(node: TreeNode) {\n const previous = this.selectedNode;\n if (previous) {\n this.#previousSelectionKey = previous.item?.key ?? ``;\n } else {\n this.#previousSelectionKey = ``;\n }\n const previousSet: ReadonlySet<TreeNode> = previous ? new Set([previous]) : new Set();\n this.selectedNode = node;\n this._selectedNodes = new Set([node]);\n\n if (this.root) {\n const path = this.#findPath(this.root, node);\n if (path) {\n const depth = this.hideRoot && path.length > 1 ? path.length - 2 : path.length - 1;\n requestAnimationFrame(() => {\n this.#updateTrailingWidth();\n const hostContainer = this.#getHostContainer();\n if (hostContainer) {\n hostContainer.scrollLeft = 0;\n }\n this.#scrollSegmentIntoView(depth);\n });\n }\n }\n\n this.dispatchEvent(new CustomEvent<TreeSelectDetail>(`select`, {\n detail: { selected: new Set([node]), previous: previousSet },\n bubbles: true,\n composed: true,\n }));\n }\n\n #onLabelClick(node: TreeNode, depth: number) {\n this._openIdx = -1;\n this.#setSelected(node);\n this.#scrollSegmentIntoView(depth);\n this.dispatchEvent(new CustomEvent<CrumbNavigationItemClickDetail>(`item-click`, {\n detail: { node, depth },\n bubbles: true,\n composed: true,\n }));\n }\n\n #onCaretClick(node: TreeNode, depth: number, e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n if (this._openIdx === depth) {\n this._openIdx = -1;\n return;\n }\n this._openIdx = depth;\n\n if (node.children === undefined && this.#pendingNode !== node) {\n this.#abortPending();\n this.#pendingNode = node;\n const controller = new AbortController();\n this.#pendingController = controller;\n\n if (this.loadChildren) {\n this.#invokeLoadChildren(node, depth, controller).catch(() => {});\n }\n }\n\n this.requestUpdate();\n }\n\n async #invokeLoadChildren(node: TreeNode, depth: number, controller: AbortController): Promise<void> {\n try {\n const children = [...await collectDataResult(\n this.loadChildren!({ node, depth }, controller.signal),\n controller.signal,\n )];\n if (controller.signal.aborted)\n return;\n node.children = children;\n this.#pendingNode = undefined;\n this.#pendingController = undefined;\n this.dispatchEvent(new CustomEvent<CrumbNavigationExpandDetail>(`expand`, {\n detail: { node, depth },\n bubbles: true,\n composed: true,\n }));\n this.requestUpdate();\n } catch {\n if (controller.signal.aborted)\n return;\n node.children = [];\n this.#pendingNode = undefined;\n this.#pendingController = undefined;\n this.requestUpdate();\n }\n }\n\n #onSegmentMenuCommand(e: CustomEvent, node: TreeNode, depth: number) {\n const key = e.detail.command;\n if (this.leadingCaret) {\n const child = node.children?.find(c => c.item.key === key);\n if (child) {\n this.#onChildClick(child, depth + 1);\n return;\n }\n if (this.#currentLeadingSiblings) {\n const sibling = this.#currentLeadingSiblings.find(c => c.item.key === key);\n if (sibling) {\n this.#onChildClick(sibling, depth);\n }\n this.#currentLeadingSiblings = undefined;\n return;\n }\n }\n const child = node.children?.find(c => c.item.key === key);\n if (child) {\n this.#onChildClick(child, depth + 1);\n }\n }\n\n #currentLeadingSiblings: TreeNode[] | undefined = undefined;\n\n #getSiblingMenuItems(pathNodes: TreeNode[], index: number): unknown {\n if (index === 0) {\n if (!this.hideRoot || !this.root)\n return [];\n const siblings = [...(this.root.children ?? [])].sort((a, b) => (a.item.label ?? ``).localeCompare(b.item.label ?? ``));\n this.#currentLeadingSiblings = siblings;\n return siblings.map(sibling => html`\n <ixfx-menu-item\n label=\"${sibling.item.label}\"\n command=\"${sibling.item.key}\"\n icon-name=\"${sibling.item.icon ?? nothing}\"\n @click=${() => {\n this.#onChildClick(sibling, index);\n }}\n ></ixfx-menu-item>\n `);\n }\n const parent = pathNodes[index - 1];\n const siblings = [...(parent.children ?? [])].sort((a, b) => (a.item.label ?? ``).localeCompare(b.item.label ?? ``));\n this.#currentLeadingSiblings = siblings;\n return siblings.map(sibling => html`\n <ixfx-menu-item\n label=\"${sibling.item.label}\"\n command=\"${sibling.item.key}\"\n icon-name=\"${sibling.item.icon ?? nothing}\"\n @click=${() => {\n this.#onChildClick(sibling, index);\n }}\n ></ixfx-menu-item>\n `);\n }\n\n #onChildClick(node: TreeNode, depth: number) {\n this._openIdx = -1;\n this.#setSelected(node);\n this.dispatchEvent(new CustomEvent<CrumbNavigationItemClickDetail>(`item-click`, {\n detail: { node, depth },\n bubbles: true,\n composed: true,\n }));\n }\n\n #onUpClick(): void {\n const r = this.root;\n const sel = this.selectedNode;\n if (!r || !sel)\n return;\n\n const path = this.#findPath(r, sel);\n if (!path || path.length <= 1)\n return;\n\n const parent = path[path.length - 2];\n this.#setSelected(parent);\n }\n\n /** Navigate to a node by key path. Returns false if any key is not found in already-loaded children. */\n navigateTo(keys: readonly string[]): boolean {\n if (!this.root?.children)\n return false;\n let current: TreeNode | undefined = this.root;\n for (const key of keys) {\n const found: TreeNode | undefined = current?.children?.find(n => n.item.key === key);\n if (!found)\n return false;\n current = found;\n }\n if (current && current !== this.root) {\n this.#setSelected(current);\n }\n return true;\n }\n\n /** Navigate to the first node matching the predicate. Returns false if not found. */\n navigateToNode(predicate: (node: TreeNode) => boolean): boolean {\n if (!this.root)\n return false;\n const keyPath = this.#findNodePath(this.root.children ?? [], predicate);\n if (!keyPath)\n return false;\n return this.navigateTo(keyPath);\n }\n\n #findNodePath(\n nodes: TreeNode[],\n predicate: (node: TreeNode) => boolean,\n prefix: string[] = [],\n ): string[] | undefined {\n for (const node of nodes) {\n const path = [...prefix, node.item.key];\n if (predicate(node))\n return path;\n if (node.children?.length) {\n const result = this.#findNodePath(node.children, predicate, path);\n if (result)\n return result;\n }\n }\n return undefined;\n }\n\n #onMenuCommand(e: CustomEvent) {\n const node = this.selectedNode;\n if (!node?.children)\n return;\n\n const key = e.detail.command;\n const child = node.children.find(c => c.item.key === key);\n if (child) {\n const depth = this.root ? (this.#findPath(this.root, node)?.length ?? 1) : 1;\n this.#onChildClick(child, depth);\n }\n }\n\n render() {\n const r = this.root;\n const sel = this.selectedNode;\n\n if (!r || !sel) {\n return html``;\n }\n\n this.inputMode = this.tickled.inputMode;\n\n let pathNodes = this.#findPath(r, sel) ?? [r];\n if (this.hideRoot && pathNodes.length > 1) {\n pathNodes = pathNodes.slice(1);\n }\n const _hasChildOptions = this.#hasChildOptions();\n\n const isAtRoot = (() => {\n const fullPath = this.#findPath(r, sel) ?? [r];\n return fullPath.length <= 1;\n })();\n\n const parts: Array<ReturnType<typeof html>> = [];\n let segmentId = 0;\n\n pathNodes.forEach((node, i) => {\n const isLast = i === pathNodes.length - 1;\n const isPending = this.#pendingNode === node;\n const isOpen = this._openIdx === i;\n const hasChildren = node.item.isLeaf !== true && (node.children === undefined || node.children.length > 0);\n const isTickled = this.tickled.isTickled(i);\n\n const showLeadingCaret = this.leadingCaret && (i > 0 || this.hideRoot) && hasChildren;\n const showTrailingCaret = (!this.leadingCaret && hasChildren) || (this.leadingCaret && isLast && hasChildren);\n\n const siblingMenuItems = showLeadingCaret ? this.#getSiblingMenuItems(pathNodes, i) : [];\n const childMenuItems = (node.children ?? []).map(c => html`\n <ixfx-menu-item\n label=\"${c.item.label}\"\n command=\"${c.item.key}\"\n icon-name=\"${c.item.icon ?? nothing}\"\n ></ixfx-menu-item>\n `);\n\n if (this.caretEmbedded) {\n const canTruncate = !this.noTruncate && !isLast && !isTickled;\n\n parts.push(html`\n <div class=\"item crumb-segment ${isTickled ? `tickled` : ``} ${canTruncate ? `truncatable` : ``} ${this.leadingCaret ? `leading-caret` : ``} ${isLast ? `last-label` : ``}\" data-segment-id=\"${i}\" data-path-index=\"${i}\"\n @click=${(e: MouseEvent) => {\n if ((e.target as HTMLElement).closest(`.caret`))\n return; this.#onLabelClick(node, i);\n }}\n >\n ${showLeadingCaret\n ? html`\n <span class=\"caret ${isOpen ? `open` : ``} ${isPending ? `pending` : ``}\">\n ${isPending\n ? html`<span class=\"loading-spinner\"></span>`\n : html`\n <ixfx-menu-trigger mode=\"trigger\" label=\"›\" .tabStop=${false} @menu-command=${(e: CustomEvent) => this.#onSegmentMenuCommand(e, node, i)}>\n <ixfx-menu-container slot=\"menu\">\n ${siblingMenuItems}\n </ixfx-menu-container>\n </ixfx-menu-trigger>\n `\n }\n </span>\n `\n : nothing\n }\n <span class=\"label\">${node.item.label}</span>\n ${showTrailingCaret\n ? html`\n <span class=\"caret ${isOpen ? `open` : ``} ${isPending ? `pending` : ``}\">\n ${isPending\n ? html`<span class=\"loading-spinner\"></span>`\n : html`\n <ixfx-menu-trigger mode=\"trigger\" label=\"›\" .tabStop=${false} placement=\"right-start\" @menu-command=${(e: CustomEvent) => this.#onSegmentMenuCommand(e, node, i)}>\n <ixfx-menu-container slot=\"menu\">\n ${childMenuItems}\n </ixfx-menu-container>\n </ixfx-menu-trigger>\n `\n }\n </span>\n `\n : nothing\n }\n </div>\n `);\n } else {\n const leadingCaretTickled = showLeadingCaret ? this.tickled.isTickled(segmentId) : false;\n if (showLeadingCaret) {\n parts.push(html`\n <div class=\"item crumb-segment ${leadingCaretTickled ? `tickled` : ``}\" data-segment-id=\"${segmentId}\" data-path-index=\"${i}\"\n @click=${(e: MouseEvent) => {\n const trigger = (e.target as HTMLElement).closest(`.crumb-segment`)?.querySelector(`ixfx-menu-trigger`);\n if (trigger)\n trigger.openMenu();\n }}\n >\n <span class=\"caret ${isOpen ? `open` : ``} ${isPending ? `pending` : ``}\">\n ${isPending\n ? html`<span class=\"loading-spinner\"></span>`\n : html`\n <ixfx-menu-trigger mode=\"trigger\" label=\"›\" .tabStop=${false} placement=\"right-start\" @menu-command=${(e: CustomEvent) => this.#onSegmentMenuCommand(e, node, i)}>\n <ixfx-menu-container slot=\"menu\">\n ${siblingMenuItems}\n </ixfx-menu-container>\n </ixfx-menu-trigger>\n `\n }\n </span>\n </div>\n `);\n segmentId++;\n }\n const labelTickled = this.tickled.isTickled(segmentId);\n const canTruncate = !this.noTruncate && !isLast && !labelTickled;\n parts.push(html`\n <div class=\"item crumb-segment ${labelTickled ? `tickled` : ``} ${canTruncate ? `truncatable` : ``} ${isLast ? `last-label` : ``}\" data-segment-id=\"${segmentId}\" data-path-index=\"${i}\"\n @click=${(e: MouseEvent) => {\n if ((e.target as HTMLElement).closest(`.caret`))\n return; this.#onLabelClick(node, i);\n }}\n >\n <span class=\"label\">${node.item.label}</span>\n </div>\n `);\n segmentId++;\n if (showTrailingCaret) {\n const trailingCaretTickled = this.tickled.isTickled(segmentId);\n parts.push(html`\n <div class=\"item crumb-segment ${trailingCaretTickled ? `tickled` : ``}\" data-segment-id=\"${segmentId}\" data-path-index=\"${i}\"\n @click=${(e: MouseEvent) => {\n const trigger = (e.target as HTMLElement).closest(`.crumb-segment`)?.querySelector(`ixfx-menu-trigger`);\n if (trigger)\n trigger.openMenu();\n }}\n >\n <span class=\"caret ${isOpen ? `open` : ``} ${isPending ? `pending` : ``}\">\n ${isPending\n ? html`<span class=\"loading-spinner\"></span>`\n : html`\n <ixfx-menu-trigger mode=\"trigger\" label=\"›\" .tabStop=${false} @menu-command=${(e: CustomEvent) => this.#onSegmentMenuCommand(e, node, i)}>\n <ixfx-menu-container slot=\"menu\">\n ${childMenuItems}\n </ixfx-menu-container>\n </ixfx-menu-trigger>\n `\n }\n </span>\n </div>\n `);\n segmentId++;\n }\n }\n });\n\n return html`\n <div class=\"crumb-wrapper\">\n ${this.withUp\n ? html`\n <button\n class=\"up-button\"\n ?disabled=${isAtRoot}\n aria-label=\"Go up one level\"\n @click=${this.#onUpClick}\n >\n <ixfx-icon name=\"folder-up\"></ixfx-icon>\n </button>\n `\n : nothing}\n <div\n class=\"host-container scroll-fade-x\"\n tabindex=\"0\"\n @focus=${this.#onFocus}\n @blur=${this.#onBlur}\n @keydown=${this.#onKeyDown}\n @click=${this.#onHostClick}\n @menu-trigger-close=${this.#onMenuTriggerClose}\n @mouseout=${(e: MouseEvent) => this.tickled.handlePointerLeave(e as PointerEvent)}\n >\n <div class=\"parts\"\n @mouseover=${(e: MouseEvent) => {\n if (this.#isWheelScrolling)\n return;\n const target = e.target;\n if (!(target instanceof HTMLElement))\n return;\n const segment = target.closest(`.crumb-segment`) as HTMLElement | null;\n if (!segment)\n return;\n const segmentId = parseInt(segment.dataset.segmentId ?? ``, 10);\n if (Number.isNaN(segmentId))\n return;\n const pathIndex = parseInt(segment.dataset.pathIndex ?? ``, 10);\n const node = pathNodes[pathIndex];\n if (!node)\n return;\n this.tickled.handlePointerEnter(segmentId);\n this.dispatchEvent(new CustomEvent<TreeTickleDetail>(`tickle`, { detail: { node, depth: pathIndex }, bubbles: true, composed: true }));\n }}\n >${parts}${this.padEnding ? html`<div class=\"trailing\"></div>` : nothing}</div>\n ${this.showSuggestions ? this.#renderChildOptions() : nothing}\n </div>\n </div>\n `;\n }\n\n #renderChildOptions() {\n const s = this.selectedNode;\n if (s === undefined) {\n return nothing;\n }\n\n const isPending = this.#pendingNode === s;\n const children = s.children ?? [];\n\n if (children.length === 0 && !isPending) {\n return nothing;\n }\n\n if (isPending) {\n return html`\n <div class=\"horiz-select\">\n <div class=\"horiz-select-items\">\n <span class=\"loading-spinner\"></span>\n </div>\n </div>\n `;\n }\n\n return html`\n <ixfx-narrowed-text\n class=\"horiz-select\"\n selection-mode=\"single\"\n orientation=\"horizontal\"\n nowrap\n width=${this.#getChildOptionsWidth()}\n @change=${this.#onNarrowedTextChange}\n @narrowed-text-blur=${this.#onNarrowedTextBlur}\n @narrowed-text-shift-tab=${this.#onNarrowedTextShiftTab}\n >\n ${children.map(c => html`\n <span data-value=\"${c.item.key}\" data-label=\"${c.item.label}\"></span>\n `)}\n </ixfx-narrowed-text>\n `;\n }\n\n #onNarrowedTextChange(e: CustomEvent) {\n e.stopPropagation();\n const detail = e.detail as { item: { value: string } };\n const node = this.selectedNode;\n if (!node?.children)\n return;\n\n const child = node.children.find(c => c.item.key === detail.item.value);\n if (child) {\n const depth = this.root ? (this.#findPath(this.root, node)?.length ?? 1) : 1;\n this.#onChildClick(child, depth);\n }\n }\n\n #getChildOptionsWidth(): string {\n return `var(--child-options-width, 50ch)`;\n }\n\n static styles = [themeFallbacks, tickledStyles, tickledItemStyles, scrollFadeStyles(`x`), css`\n :host {\n --crumb-item-bg: var(--item-bg, transparent);\n --crumb-item-bg-tickled: var(--item-bg-tickled);\n --crumb-item-text-tickled: var(--item-text-tickled);\n --crumb-item-border: var(--item-border);\n --crumb-item-border-tickled: var(--item-border-tickled);\n --crumb-item-padding: var(--space-s, 2px);\n --crumb-item-border-radius: var(--item-border-radius);\n --crumb-item-gap: var(--item-gap, var(--space-xs));\n --crumb-separator: var(--surface-muted-text);\n --crumb-truncate-min-width: 10ch;\n display: flex;\n width: 100%;\n }\n\n /* Outline goes on :host, not .host-container: .host-container carries the\n * scroll-fade mask-image, and CSS masks clip everything painted outside\n * the masked box - including an outline, which paints outside the border edge. */\n :host(:focus-within) {\n outline: 2px solid var(--accent);\n outline-offset: 2px;\n }\n\n .crumb-wrapper {\n display: flex;\n align-items: center;\n gap: var(--crumb-item-gap);\n width: 100%;\n }\n\n .up-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--crumb-item-bg);\n border: var(--crumb-item-border);\n border-radius: var(--crumb-item-border-radius);\n padding: var(--crumb-item-padding);\n cursor: pointer;\n color: inherit;\n }\n\n .up-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .up-button:hover:not(:disabled) {\n background: var(--crumb-item-bg-tickled);\n border-color: var(--crumb-item-border-tickled);\n }\n\n .up-button ixfx-icon {\n width: 1em;\n height: 1em;\n pointer-events: none;\n }\n\n /* Edge fade (shows/hides based on scroll position) comes from the\n * shared .scroll-fade-x class - see ../styles/scroll-fade.ts */\n .host-container {\n display: flex;\n flex: 1;\n min-width: 0;\n outline: none;\n overflow: scroll;\n scroll-snap-type: x mandatory;\n scrollbar-width: none;\n overscroll-behavior: none;\n }\n\n .host-container::-webkit-scrollbar {\n display: none;\n }\n\n .parts {\n display: flex;\n gap: var(--space-s);\n }\n\n .trailing {\n flex-shrink: 0;\n }\n\n .crumb-segment {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n background: var(--crumb-item-bg);\n border: var(--crumb-item-border);\n border-radius: var(--crumb-item-border-radius);\n padding:0;\n }\n\n .crumb-segment.leading-caret {\n flex-direction: row;\n }\n\n .crumb-segment.tickled {\n background: var(--crumb-item-bg-tickled);\n border-color: var(--crumb-item-border-tickled);\n color: var(--crumb-item-text-tickled);\n flex-shrink: 0;\n min-width: auto;\n }\n\n .crumb-segment.truncatable {\n flex-shrink: 1;\n min-width: min(var(--crumb-truncate-min-width), auto);\n overflow: hidden;\n }\n\n .crumb-segment.truncatable .label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n }\n\n .label {\n padding: var(--crumb-item-padding);\n cursor: pointer;\n white-space: nowrap;\n color: inherit;\n }\n\n .crumb-segment.last-label .label {\n color: var(--crumb-last-label-color, inherit);\n font-style: var(--crumb-last-label-font-style, inherit);\n font-weight: var(--crumb-last-label-font-weight, inherit);\n text-decoration: var(--crumb-last-label-text-decoration, inherit);\n text-underline-offset: var(--crumb-last-label-text-underline-offset, auto);\n }\n\n .crumb-segment.tickled .label {\n color: var(--crumb-item-text-tickled);\n overflow: visible;\n text-overflow: clip;\n }\n\n .crumb-segment ixfx-menu-trigger {\n --ixfx-button-padding: var(--space-s, 2px);\n }\n\n .caret {\n position: relative;\n cursor: pointer;\n color: var(--crumb-separator);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease-in-out;\n }\n\n .caret.open {\n background: color-mix(in srgb, var(--surface-5) 40%, transparent);\n }\n\n .caret.pending {\n display: inline-flex;\n }\n\n .caret > ixfx-menu-trigger {\n display: inline-flex;\n margin: 0;\n --_trigger-hover-bg: transparent;\n --_trigger-hover-opacity: 0.6;\n }\n\n .caret > ixfx-menu-trigger::part(base) {\n background: none;\n border: none;\n color: inherit;\n cursor: pointer;\n font-size: inherit;\n line-height: 1;\n }\n\n .caret > ixfx-menu-trigger::part(base):hover {\n background: none;\n opacity: 0.6;\n }\n\n .separator {\n margin-left: var(--crumb-item-gap);\n margin-right: var(--crumb-item-gap);\n color: var(--crumb-separator);\n }\n\n .separator-trigger {\n display: inline-flex;\n margin-left: var(--crumb-item-gap);\n margin-right: var(--crumb-item-gap);\n --_trigger-hover-bg: transparent;\n --_trigger-hover-opacity: 0.6;\n }\n\n .separator-trigger::part(base) {\n background: none;\n border: none;\n color: var(--crumb-separator);\n padding: 0;\n cursor: pointer;\n font-size: inherit;\n line-height: 1;\n }\n\n .separator-trigger::part(base):hover {\n background: none;\n opacity: 0.6;\n }\n\n .separator-trigger.tickled::part(base) {\n }\n\n ixfx-menu-trigger {\n display: none;\n }\n\n .horiz-select > ixfx-menu-trigger {\n display: inline-flex;\n }\n\n .horiz-select {\n display: flex;\n min-width: 5ch;\n }\n\n .loading-spinner {\n display: inline-block;\n width: 12px;\n height: 12px;\n border: 2px solid var(--surface-5);\n border-top-color: var(--accent);\n border-radius: 50%;\n animation: crumb-spin 0.7s linear infinite;\n }\n\n @keyframes crumb-spin {\n to { transform: rotate(360deg); }\n }\n\n ::slotted(*), option {\n user-select: none;\n scroll-snap-align: start;\n }\n `];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ixfx-crumb-navigation\": CrumbNavigationElement;\n }\n}\n\nexport interface CrumbNavigationElementEventMap extends TreeComponentEventMap {\n 'item-click': TreeItemClickEvent;\n 'expand': TreeExpandEvent;\n 'select': TreeSelectEvent;\n 'tickle': TreeTickleEvent;\n 'activate': TreeActivateEvent;\n}\n\nexport interface CrumbNavigationElement {\n addEventListener: (<K extends keyof CrumbNavigationElementEventMap>(\n type: K,\n listener: (this: CrumbNavigationElement, event: CrumbNavigationElementEventMap[K]) => void,\n options?: boolean | AddEventListenerOptions,\n ) => void) & ((\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults-BkWCPJFL.js","names":[],"sources":["../src/icons/defaults.ts"],"sourcesContent":["import { registerIcon } from './registry.js';\n\n/**\n * Chevron pointing down. Used for split-button dropdown toggle.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_CHEVRON_DOWN = `<svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"/></svg>`;\n\n/**\n * Caret pointing right. Used for tree-basic expand indicator as a CSS mask.\n * fill=\"black\" is correct for CSS mask-image use (shape only, color comes from background-color).\n */\nexport const ICON_CARET_RIGHT = `<svg viewBox=\"0 0 24 24\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 7l6 5-6 5V7z\"/></svg>`;\n\n/**\n * Checkmark. Useful for menu-check-item or confirmation states.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_CHECK = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"/></svg>`;\n\n/**\n * Close / X icon. Useful for dialogs, notifications, dismissible elements.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_CLOSE = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"/></svg>`;\n\n/**\n * Error / warning icon. Useful for error notifications.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_ERROR = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>`;\n\n/**\n * Info icon. Useful for info notifications.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_INFO = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`;\n\n/**\n * Warning icon. Useful for warning notifications.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_WARNING = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"/></svg>`;\n\n/**\n * Chevron pointing right. Used for split-button switcher toggle.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_CHEVRON_RIGHT = `<svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"/></svg>`;\n\n/**\n * Folder with up arrow. Angled line style for navigating up one level.\n * fill=\"currentColor\" so it inherits CSS color.\n */\nexport const ICON_FOLDER_UP = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 4L4 12h5v8h6v-8h5L12 4z\"/></svg>`;\n\nexport function registerDefaults(): void {\n registerIcon(`chevron-down`, ICON_CHEVRON_DOWN);\n registerIcon(`chevron-right`, ICON_CHEVRON_RIGHT);\n registerIcon(`caret-right`, ICON_CARET_RIGHT);\n registerIcon(`check`, ICON_CHECK);\n registerIcon(`close`, ICON_CLOSE);\n registerIcon(`error`, ICON_ERROR);\n registerIcon(`folder-up`, ICON_FOLDER_UP);\n registerIcon(`info`, ICON_INFO);\n registerIcon(`warning`, ICON_WARNING);\n}\n"],"mappings":";;;;;;AAMA,MAAa,oBAAoB;;;;;AAMjC,MAAa,mBAAmB;;;;;AAMhC,MAAa,aAAa;;;;;AAM1B,MAAa,aAAa;;;;;AAM1B,MAAa,aAAa;;;;;AAM1B,MAAa,YAAY;;;;;AAMzB,MAAa,eAAe;;;;;AAM5B,MAAa,qBAAqB;;;;;AAMlC,MAAa,iBAAiB;AAE9B,SAAgB,mBAAyB;CACvC,aAAa,gBAAgB,iBAAiB;CAC9C,aAAa,iBAAiB,kBAAkB;CAChD,aAAa,eAAe,gBAAgB;CAC5C,aAAa,SAAS,UAAU;CAChC,aAAa,SAAS,UAAU;CAChC,aAAa,SAAS,UAAU;CAChC,aAAa,aAAa,cAAc;CACxC,aAAa,QAAQ,SAAS;CAC9B,aAAa,WAAW,YAAY;AACtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hex-editor-CMIxtNgT.d.ts","names":[],"sources":["../src/hex/types.ts","../src/hex/hex-editor.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-Bd5BiU4b.d.ts","names":[],"sources":["../src/icons/icon.ts"],"mappings":";;;;;AAmBA;;;;;;;;;cACa,eAAA,SAAwB,UAAA;EAAA;EACvB,IAAA;EACgB,IAAA;EAChB,KAAA;EAC0C,UAAA;EACU,MAAA;EAQvD,iBAAA;EAKA,oBAAA;EAAA,UAKU,MAAA,WAAM,OAAA,iBAAA,cAAA;EAAA,UAgBN,OAAA,CAAQ,OAAA,EAAS,GAAA;EAAA,OAWpB,MAAA,gBAAM,SAAA;AAAA;AAAA,QAsChB,MAAA;EAAA,UACI,qBAAA;IACR,WAAA,EAAa,eAAe;EAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-CK14NUcE.js","names":["#onIconChange","customElement"],"sources":["../src/icons/icon.ts"],"sourcesContent":["import type { IconChangedEvent } from './registry.js';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { themeFallbacks } from '../styles/fallbacks.js';\nimport { safeCustomElement as customElement } from '../util/custom-elements.js';\nimport { getIcon, iconBus } from './registry.js';\n\n/**\n * Renders an icon from the icon registry by name.\n *\n * @example\n * ```html\n * <ixfx-icon name=\"chevron-down\"></ixfx-icon>\n * <ixfx-icon name=\"close\" size=\"32\" label=\"Close dialog\"></ixfx-icon>\n * ```\n *\n * Use `registerIcon(name, svgString)` to add or override icons.\n */\n@customElement(`ixfx-icon`)\nexport class IxfxIconElement extends LitElement {\n @property() name = ``;\n @property({ type: Number }) size: number | undefined;\n @property() label = ``;\n @property({ type: Boolean, attribute: `prominence` }) prominence = false;\n @property({ type: String, attribute: `rotate`, reflect: true }) rotate = ``;\n\n #onIconChange = (e: Event): void => {\n if ((e as IconChangedEvent).detail.name === this.name) {\n this.requestUpdate();\n }\n };\n\n override connectedCallback(): void {\n super.connectedCallback();\n iconBus.addEventListener(`ixfx-icon-change`, this.#onIconChange);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n iconBus.removeEventListener(`ixfx-icon-change`, this.#onIconChange);\n }\n\n protected override render() {\n const svg = getIcon(this.name);\n if (!svg)\n return nothing;\n\n const hasLabel = this.label.length > 0;\n\n return html`\n <span\n class=\"icon-wrapper\"\n aria-hidden=${hasLabel ? nothing : `true`}\n aria-label=${hasLabel ? this.label : nothing}\n >${unsafeHTML(svg)}</span>\n `;\n }\n\n protected override updated(changed: Map<string, unknown>): void {\n super.updated(changed);\n if (changed.has(`rotate`)) {\n if (this.rotate?.length > 0) {\n this.style.setProperty(`--rotate`, this.rotate);\n } else {\n this.style.removeProperty(`--rotate`);\n }\n }\n }\n\n static override styles = [themeFallbacks, css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1em;\n height: 1em;\n opacity: var(--opacity, 1);\n }\n\n :host([prominence]) {\n opacity: var(--prominence-idle-opacity, 1);\n }\n\n :host([prominence]:hover) {\n opacity: var(--prominence-tickled-opacity, 1);\n }\n\n :host([prominence][disabled]) {\n opacity: var(--prominence-disabled-opacity, 0.5);\n }\n\n .icon-wrapper {\n display: contents;\n }\n\n :host svg {\n width: 100%;\n height: 100%;\n transition: transform var(--transition, 0.15s ease-out);\n }\n\n :host([rotate]) svg {\n transform: rotate(var(--rotate));\n }\n `];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ixfx-icon': IxfxIconElement;\n }\n}\n"],"mappings":";;;;;;;AAoBO,IAAA,kBAAA,MAAM,wBAAwB,WAAW;;;cAC3B;eAEC;oBAC+C;gBACM;wBAExD,MAAmB;GAClC,IAAK,EAAuB,OAAO,SAAS,KAAK,MAC/C,KAAK,cAAc;EAEvB;;CAJA;CAMA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,QAAQ,iBAAiB,oBAAoB,KAAKA,aAAa;CACjE;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,QAAQ,oBAAoB,oBAAoB,KAAKA,aAAa;CACpE;CAEA,SAA4B;EAC1B,MAAM,MAAM,QAAQ,KAAK,IAAI;EAC7B,IAAI,CAAC,KACH,OAAO;EAET,MAAM,WAAW,KAAK,MAAM,SAAS;EAErC,OAAO,IAAI;;;sBAGO,WAAW,UAAU,OAAO;qBAC7B,WAAW,KAAK,QAAQ,QAAQ;SAC5C,WAAW,GAAG,EAAE;;CAEvB;CAEA,QAA2B,SAAqC;EAC9D,MAAM,QAAQ,OAAO;EACrB,IAAI,QAAQ,IAAI,QAAQ,GACtB,IAAI,KAAK,QAAQ,SAAS,GACxB,KAAK,MAAM,YAAY,YAAY,KAAK,MAAM;OAE9C,KAAK,MAAM,eAAe,UAAU;CAG1C;;gBAEyB,CAAC,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmC5C;;AACH;YArFG,SAAS,CAAA,GAAA,gBAAA,WAAA,QAAA,KAAA,CAAA;YACT,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,gBAAA,WAAA,QAAA,KAAA,CAAA;YACzB,SAAS,CAAA,GAAA,gBAAA,WAAA,SAAA,KAAA,CAAA;YACT,SAAS;CAAE,MAAM;CAAS,WAAW;AAAa,CAAC,CAAA,GAAA,gBAAA,WAAA,cAAA,KAAA,CAAA;YACnD,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAU,SAAS;AAAK,CAAC,CAAA,GAAA,gBAAA,WAAA,UAAA,KAAA,CAAA;8BAN/DC,kBAAc,WAAW,CAAA,GAAA,eAAA"}
package/dist/icons.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"icons.js","names":[],"sources":["../src/icons/index.ts"],"sourcesContent":["import { registerDefaults } from './defaults.js';\n\nexport { ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE } from './defaults.js';\nexport { IxfxIconElement } from './icon.js';\nexport { getIcon, hasIcon, iconBus, registerIcon, svgToDataUri } from './registry.js';\nexport type { IconChangedDetail, IconChangedEvent } from './registry.js';\n\nregisterDefaults();\n"],"mappings":";;;;AAOA,iBAAiB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"incr-search-CeERfijK.js","names":["FzfAny","#el","#opts","#search","#labelMap","#onInput","#onKeydown","#unsub","#onStateChange"],"sources":["../src/incr-search/fuzzy.ts","../src/incr-search/ac-adapter.ts","../src/incr-search/incr-search.ts","../src/incr-search/controller-tree.ts","../src/incr-search/element-search.ts"],"sourcesContent":["import type { FuzzySearch, FuzzySearchOptions, IncrSearchResult } from './types.js';\nimport { Fzf } from 'fzf';\n\nfunction defaultSelector<T>(item: T): string {\n if (typeof item === `string`)\n return item;\n const r = item as Record<string, unknown>;\n if (typeof r.label === `string`)\n return r.label;\n if (typeof r.key === `string`)\n return r.key;\n if (typeof r.value === `string`)\n return r.value;\n return String(item);\n}\n\nexport function createFuzzySearch<T>(\n items: readonly T[],\n options: FuzzySearchOptions<T> = {},\n): FuzzySearch<T> {\n const selector = options.selector ?? defaultSelector<T>;\n // fzf uses a conditional SyncOptionsTuple<T> rest-parameter overload that TypeScript\n // cannot narrow through a spread when T is generic.\n const FzfAny = Fzf as new (list: readonly T[], opts: any) => { find: (q: string) => Array<{ item: T; positions: ReadonlySet<number>; score: number }> };\n const fzf = new FzfAny(items as readonly T[], { selector, ...(options.fzf ?? {}) });\n\n const find = (query: string): ReadonlyArray<IncrSearchResult<T>> => {\n if (!query.trim()) {\n return items.map(item => ({\n item,\n positions: new Set<number>(),\n score: 0,\n }));\n }\n return fzf.find(query).map(r => ({\n item: r.item,\n positions: r.positions,\n score: r.score,\n }));\n };\n\n return { find, items };\n}\n","import type { FuzzySearchOptions } from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\n/**\n * Creates an ixfx-ac-text-compatible `completionProvider` function from a\n * static item list. Uses synchronous fuzzy search wrapped in a Promise so it\n * fits the async provider signature.\n *\n * Each returned item has `positions` populated with matched character indices,\n * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.\n *\n * Empty query returns all items in original order (no positions).\n * A cancelled signal causes the returned promise to reject with an AbortError.\n */\nexport function createAcCompletionProvider<T extends { label: string }>(\n items: readonly T[],\n options: Pick<FuzzySearchOptions<T>, `selector`> = {},\n): (query: string, signal: AbortSignal) => Promise<Array<T & { positions: ReadonlySet<number> }>> {\n const selector = options.selector ?? ((item: T) => item.label);\n const fuzzy = createFuzzySearch(items, { selector });\n\n return (\n query: string,\n signal: AbortSignal,\n ): Promise<Array<T & { positions: ReadonlySet<number> }>> =>\n new Promise((resolve, reject) => {\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n const results = fuzzy.find(query).map(r => ({ ...r.item, positions: r.positions }));\n\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n resolve(results);\n });\n}\n","import type {\n IncrSearch,\n IncrSearchChangeCallback,\n IncrSearchOptions,\n IncrSearchState,\n} from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\nfunction buildState<T>(results: ReturnType<ReturnType<typeof createFuzzySearch<T>>[`find`]>, query: string): IncrSearchState<T> {\n const positionsByItem = new Map<T, ReadonlySet<number>>();\n for (const r of results) {\n positionsByItem.set(r.item, r.positions);\n }\n return Object.freeze({\n query,\n results: Object.freeze([...results]),\n positionsByItem,\n });\n}\n\nexport function createIncrSearch<T>(options: IncrSearchOptions<T> = {}): IncrSearch<T> {\n let items: readonly T[] = options.items ?? [];\n let query = ``;\n let fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n let state: IncrSearchState<T> = buildState(fuzzy.find(query), query);\n let disposed = false;\n\n const observers = new Set<IncrSearchChangeCallback<T>>();\n\n if (options.onChange) {\n observers.add(options.onChange);\n }\n\n const notify = (s: IncrSearchState<T>): void => {\n for (const cb of observers) {\n cb(s);\n }\n };\n\n const run = async (q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> => {\n // Yield to the microtask queue for a consistent async interface\n await Promise.resolve();\n if (signal?.aborted || disposed) {\n return state;\n }\n const results = fuzzy.find(q);\n if (signal?.aborted || disposed) {\n return state;\n }\n state = buildState(results, q);\n notify(state);\n return state;\n };\n\n return {\n get state() {\n return state;\n },\n\n async setItems(newItems: readonly T[], signal?: AbortSignal): Promise<void> {\n items = newItems;\n fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n await run(query, signal);\n },\n\n async setQuery(q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> {\n query = q;\n return run(q, signal);\n },\n\n async clearQuery(): Promise<void> {\n query = ``;\n await run(``, undefined);\n },\n\n onChange(cb: IncrSearchChangeCallback<T>): () => void {\n observers.add(cb);\n cb(state);\n return () => {\n observers.delete(cb);\n };\n },\n\n dispose(): void {\n disposed = true;\n observers.clear();\n items = [];\n },\n };\n}\n","import type { FzfOptions } from 'fzf';\nimport type { TreeSearchHost } from '../common/searchable.js';\nimport type { TreeNode } from '../common/types.js';\nimport type { IncrSearchState } from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\nconst DEFAULT_HIGHLIGHT_KEY = `incr-search-highlight`;\n\nexport type IncrSearchTreeOptions = {\n selector: (item: { node: TreeNode; depth: number }) => string;\n /**\n * CSS selector for the label elements inside the shadow root.\n * Defaults to `.tree-label` (suitable for ixfx-tree-list).\n * Use `.label` for ixfx-miller-list.\n */\n labelSelector?: string;\n highlightKey?: string;\n input?: HTMLInputElement;\n fzf?: Partial<FzfOptions<{ node: TreeNode; depth: number }>>;\n};\n\ntype SearchItem = { node: TreeNode; depth: number };\n\n/**\n * Incremental-search controller for any component implementing `TreeSearchHost`\n * (i.e. `ixfx-tree-list`, `ixfx-miller-list`, `ixfx-crumb-navigation`).\n *\n * Replaces the previous separate `IncrSearchTreeController` / `IncrSearchMillerController`\n * classes — the unified `TreeFilterPredicate` (with depth) means one implementation works\n * for all tree-like components.\n *\n * @example Using with ixfx-tree-list:\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myTreeList, {\n * selector: item => item.node.item.label,\n * });\n * ctrl.connect();\n * ```\n *\n * @example Using with ixfx-miller-list (different label selector):\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myMillerList, {\n * selector: item => item.node.item.label,\n * labelSelector: '.label',\n * });\n * ctrl.connect();\n * ```\n */\nexport class IncrSearchTreeController {\n #el: TreeSearchHost;\n #opts: IncrSearchTreeOptions;\n #search: ReturnType<typeof createIncrSearch<SearchItem>>;\n #unsub: (() => void) | undefined;\n #labelMap = new Map<string, SearchItem>();\n\n constructor(el: TreeSearchHost, opts: IncrSearchTreeOptions) {\n this.#el = el;\n this.#opts = opts;\n this.#search = createIncrSearch<SearchItem>({\n selector: opts.selector,\n fzf: opts.fzf,\n });\n }\n\n connect(): void {\n this.disconnect();\n\n const items = this.#el.getNodes();\n for (const item of items) {\n this.#labelMap.set(this.#opts.selector(item), item);\n }\n void this.#search.setItems(items);\n\n if (this.#opts.input) {\n this.#opts.input.addEventListener(`input`, this.#onInput);\n this.#opts.input.addEventListener(`keydown`, this.#onKeydown);\n }\n\n this.#unsub = this.#search.onChange(state => this.#onStateChange(state));\n }\n\n disconnect(): void {\n if (this.#unsub) {\n this.#unsub();\n this.#unsub = undefined;\n }\n if (this.#opts.input) {\n this.#opts.input.removeEventListener(`input`, this.#onInput);\n this.#opts.input.removeEventListener(`keydown`, this.#onKeydown);\n }\n this.#el.filterPredicate = undefined;\n clearHighlights({ key: this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY });\n this.#labelMap.clear();\n }\n\n async setQuery(query: string): Promise<void> {\n await this.#search.setQuery(query);\n }\n\n async clearQuery(): Promise<void> {\n await this.#search.clearQuery();\n }\n\n #onInput = () => {\n const value = this.#opts.input?.value ?? ``;\n void this.setQuery(value);\n };\n\n #onKeydown = (e: KeyboardEvent) => {\n if (e.key === `Escape` && this.#opts.input) {\n this.#opts.input.value = ``;\n void this.clearQuery();\n }\n };\n\n #onStateChange(state: IncrSearchState<SearchItem>): void {\n const matched = new Set(state.results.map(r => r.item.node.item.key));\n const hasQuery = state.query.trim().length > 0;\n this.#el.filterPredicate = hasQuery && matched.size > 0\n ? (node: TreeNode, _depth: number) => matched.has(node.item.key)\n : undefined;\n\n const key = this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY;\n if (!this.#el.shadowRoot)\n return;\n\n if (!state.query.trim()) {\n clearHighlights({ key });\n return;\n }\n\n const labelSelector = this.#opts.labelSelector ?? `.tree-label`;\n const targets = buildHighlightTargets(\n this.#el.shadowRoot,\n labelSelector,\n state.positionsByItem,\n (labelEl) => {\n const text = labelEl.textContent ?? ``;\n return this.#labelMap.get(text);\n },\n labelEl => labelEl.textContent ?? ``,\n );\n applyHighlights(targets, { key });\n }\n}\n","import type {\n ElementIncrSearchOptions,\n IncrSearchChangeCallback,\n IncrSearchState,\n} from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\ntype ElementItem = { readonly key: string; readonly label: string };\n\nconst defaultGetLabel = (el: Element): string => el.textContent?.trim() ?? ``;\n\nfunction defaultGetKey(el: Element): string {\n return el.getAttribute(`data-key`)\n ?? el.getAttribute(`data-value`)\n ?? el.textContent?.trim()\n ?? ``;\n}\n\nexport type ElementIncrSearch = {\n readonly setQuery: (query: string, signal?: AbortSignal) => Promise<void>;\n readonly clearQuery: () => Promise<void>;\n readonly refresh: () => void;\n readonly onChange: (cb: IncrSearchChangeCallback<ElementItem>) => () => void;\n readonly dispose: () => void;\n};\n\nexport function createElementIncrSearch(opts: ElementIncrSearchOptions): ElementIncrSearch {\n const {\n container,\n itemSelector,\n getLabel = defaultGetLabel,\n getKey = defaultGetKey,\n labelSelector,\n highlightKey,\n } = opts;\n\n // Map from key → element reference for highlight lookup\n let elementByKey = new Map<string, Element>();\n\n const search = createIncrSearch<ElementItem>({\n selector: item => item.label,\n fzf: opts.fzf,\n });\n\n const updateVisibility = (state: IncrSearchState<ElementItem>): void => {\n const matchedKeys = new Set(state.results.map(r => r.item.key));\n const hasQuery = state.query.trim().length > 0;\n\n for (const [key, el] of elementByKey) {\n (el as HTMLElement).hidden = hasQuery ? !matchedKeys.has(key) : false;\n }\n };\n\n const updateHighlights = (state: IncrSearchState<ElementItem>): void => {\n if (!state.query.trim()) {\n clearHighlights({ key: highlightKey });\n return;\n }\n\n const sel = labelSelector ?? itemSelector;\n const targets = buildHighlightTargets(\n container,\n sel,\n state.positionsByItem,\n (el) => {\n const key = getKey(el);\n // Find the ElementItem whose key matches this element's key\n const result = state.results.find(r => r.item.key === key);\n return result?.item;\n },\n el => getLabel(el),\n );\n applyHighlights(targets, { key: highlightKey });\n };\n\n const unsubscribeState = search.onChange((state) => {\n updateVisibility(state);\n updateHighlights(state);\n opts.onChange?.(state);\n });\n\n let refreshPending = false;\n\n const refresh = (): void => {\n if (refreshPending)\n return;\n refreshPending = true;\n void Promise.resolve().then(() => {\n refreshPending = false;\n elementByKey = new Map<string, Element>();\n const els = container.querySelectorAll(itemSelector);\n const items: ElementItem[] = [];\n for (const el of els) {\n const key = getKey(el);\n elementByKey.set(key, el);\n items.push({ key, label: getLabel(el) });\n }\n void search.setItems(items);\n });\n };\n\n const observer = new MutationObserver(() => refresh());\n observer.observe(container, { childList: true, subtree: false });\n\n refresh();\n\n return {\n async setQuery(query, signal) {\n await search.setQuery(query, signal);\n },\n\n async clearQuery() {\n await search.clearQuery();\n },\n\n refresh,\n\n onChange(cb) {\n return search.onChange(cb);\n },\n\n dispose() {\n observer.disconnect();\n unsubscribeState();\n search.dispose();\n clearHighlights({ key: highlightKey });\n },\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BslNaMLo.d.ts","names":[],"sources":["../src/incr-search/types.ts","../src/incr-search/ac-adapter.ts","../src/incr-search/controller-tree.ts","../src/incr-search/element-search.ts","../src/incr-search/fuzzy.ts","../src/incr-search/highlight.ts","../src/incr-search/incr-search.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Cdmrn0SZ.d.ts","names":[],"sources":["../src/menu/menu-bar.ts","../src/menu/menu-check-item.ts","../src/menu/menu-command-controller.ts","../src/menu/menu-sub-trigger.ts","../src/menu/menu-separator.ts","../src/menu/menu-header.ts","../src/menu/menu-from-tree.ts","../src/menu/menu-radio-item.ts","../src/menu/menu-radio-group.ts","../src/menu/index.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CkMIKEWp.d.ts","names":[],"sources":["../src/labelled-range-input/labelled-range-input.ts"],"mappings":";;;;cAuEa,kBAAA,SAA2B,iBAAiB;EAAA,SAC9C,aAAA;EAEmB,WAAA;EACC,OAAA;EACyB,SAAA;EACQ,kBAAA;;EAEjC,UAAA;EAE2B,YAAA;EAAA,UAErC,qBAAA,kBAAqB,cAAA;EA2B/B,MAAA,kBAAM,cAAA;EAAA,OA2BR,MAAA,EAAQ,cAAA;AAAA;AAAA,QA2ET,MAAA;EAAA,UACI,qBAAA;IACR,2BAAA,EAA6B,kBAAkB;EAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-D87kRcEs.d.ts","names":[],"sources":["../src/icons/defaults.ts","../src/icons/registry.ts"],"mappings":";;;;AAMA;cAAa,iBAAA;;;AAAiB;AAM9B;cAAa,gBAAA;;;AAAgB;AAM7B;cAAa,UAAA;;;AAAU;AAMvB;cAAa,UAAA;;;cCtBA,OAAA,EAAO,WAAoB;AAAA,KAE5B,iBAAA;EAAA,SAA+B,IAAI;AAAA;AAAA,KACnC,gBAAA,GAAmB,WAAW,CAAC,iBAAA;AAAA,iBAE3B,YAAA,CAAa,IAAA,UAAc,GAAW;AAAA,iBAKtC,OAAA,CAAQ,IAAY;AAAA,iBAIpB,OAAA,CAAQ,IAAY;ADJpC;AAAA,iBCSgB,YAAA,CAAa,GAAW"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DrKRD8_a.d.ts","names":[],"sources":["../src/colour-picker/types.ts","../src/colour-picker/colour-picker.ts","../src/colour-picker/colour-picker-popup.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-tX6fKF8m.d.ts","names":[],"sources":["../src/timeline/types.ts","../src/timeline/timeline-controller.ts","../src/timeline/timeline-draw.ts","../src/timeline/timeline-track-tabs.ts","../src/timeline/timeline-element.ts","../src/timeline/timeline-interactions.ts","../src/timeline/timeline-styles.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import "./tickled-styles-Bgo_Lpw-.js";
@@ -1 +0,0 @@
1
- {"version":3,"file":"labelled-input-base-ORb1rGq6.d.ts","names":[],"sources":["../src/mixins/labelled-input-base.ts"],"mappings":";;;uBAIsB,iBAAA,SAA0B,UAAA;EAClC,KAAA;EAEgB,GAAA;EACA,GAAA;EACA,KAAA;EACA,IAAA;EACA,SAAA;EAC+B,eAAA;EAEI,kBAAA;EACC,mBAAA;EAEjB,gBAAA;EAAA,UAE5B,OAAA;EAAA,UACA,WAAA;EAAA,UACA,UAAA,IAAc,KAAA;EAAA,QAEzB,cAAA;EAAA,QACA,eAAA;EAAA,kBAEU,aAAA;EAAA,IAEd,SAAA,KAAc,KAAA;EAAA,IAId,SAAA,CAAU,KAAA,IAAS,KAAA;EAAA,cAIT,kBAAA;EAIL,iBAAA;EAMA,oBAAA;EAAA,UAMC,aAAA,CAAc,OAAA,EAAS,mBAAA;EAAA,UAcvB,mBAAA,GAAuB,CAAA,EAAG,WAAA;IAAc,KAAA;EAAA;EAAA,UAWxC,kBAAA,GAAsB,CAAA,EAAG,WAAA;IAAc,KAAA;EAAA;EAAA,UAavC,kBAAA,GAAsB,CAAA,EAAG,WAAA;IAAc,KAAA;EAAA;EAAA,UAYvC,UAAA,CAAW,CAAA;EAAA,UAYX,qBAAA,WAAqB,OAAA,iBAAA,cAAA;EAuBtB,OAAA,CAAQ,iBAAA,EAAmB,GAAA;AAAA"}