@ixfx/components 0.13.2 → 0.13.4

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 (306) hide show
  1. package/bundle/index.d.ts +1649 -128
  2. package/bundle/index.js +1595 -44437
  3. package/bundle/rolldown-runtime-CEoa-xHZ.js +1 -0
  4. package/dist/ac-text.d.ts +2 -3
  5. package/dist/ac-text.js +0 -2
  6. package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -3
  7. package/dist/ac-token.d.ts +1 -1
  8. package/dist/ac-token.js +1 -3
  9. package/dist/button-B7mgqtxR.js +0 -2
  10. package/dist/{button-CTL45aBl.d.ts → button-BYuf72aR.d.ts} +2 -3
  11. package/dist/button.d.ts +1 -1
  12. package/dist/checkbox.d.ts +1 -2
  13. package/dist/checkbox.js +0 -2
  14. package/dist/checked-select-CglRukbP.d.ts +1 -2
  15. package/dist/checked-select-lDgAQQ7v.js +0 -2
  16. package/dist/colour-picker-BCMU7W7R.js +0 -2
  17. package/dist/colour-picker.d.ts +1 -1
  18. package/dist/crumbs.d.ts +2 -3
  19. package/dist/crumbs.js +1 -3
  20. package/dist/data-controller-DOlmqNKb.js +0 -2
  21. package/dist/data-display.d.ts +1 -2
  22. package/dist/data-display.js +0 -2
  23. package/dist/{data-grid-Ck1Qx2H1.d.ts → data-grid-BtBZt8M1.d.ts} +10 -9
  24. package/dist/data-grid-FHr7wZ_k.js +2108 -0
  25. package/dist/data-grid.d.ts +1 -1
  26. package/dist/data-grid.js +1 -1923
  27. package/dist/data-provider-35TyWclX.js +0 -2
  28. package/dist/data-provider-BAn_-oR1.d.ts +1 -2
  29. package/dist/decorate-VRK8rslU.js +0 -2
  30. package/dist/defaults-B4ePs4LB.js +0 -2
  31. package/dist/detail-list-BfYHNh6B.js +1999 -0
  32. package/dist/{detail-list-C1xzr1z7.d.ts → detail-list-u2rWnAXQ.d.ts} +13 -5
  33. package/dist/detail-list.d.ts +2 -2
  34. package/dist/detail-list.js +1 -1680
  35. package/dist/drag-ghost-DtSDvjri.js +0 -2
  36. package/dist/editable-label-rzXkjf1H.d.ts +1 -2
  37. package/dist/editable-label.js +0 -2
  38. package/dist/fallbacks-DQ_5OsmR.js +0 -2
  39. package/dist/{flat-list-Ohxqsy0g.d.ts → flat-list-DNnTQ65v.d.ts} +3 -4
  40. package/dist/flat-list.d.ts +1 -1
  41. package/dist/flat-list.js +5 -3
  42. package/dist/form-CsXJX15p.js +0 -2
  43. package/dist/form.d.ts +1 -2
  44. package/dist/{grid-list-pefLORIr.d.ts → grid-list-BLnV9oZE.d.ts} +9 -3
  45. package/dist/{grid-list-DjIl910A.js → grid-list-CkU8gHCh.js} +189 -42
  46. package/dist/grid-list.d.ts +1 -1
  47. package/dist/grid-list.js +1 -1
  48. package/dist/{grouped-item-lister-Bhyo-dkH.d.ts → grouped-item-lister-DETte0Dh.d.ts} +2 -3
  49. package/dist/grouped-item-lister.d.ts +1 -1
  50. package/dist/grouped-item-lister.js +0 -2
  51. package/dist/grouping-CUKgmkMm.d.ts +1 -2
  52. package/dist/grouping-RYPnHkrS.js +0 -2
  53. package/dist/handle-DAXs7kbJ.js +0 -2
  54. package/dist/hex-editor-Caq8vNQk.d.ts +1 -2
  55. package/dist/hex-editor-DiYpgIKs.js +0 -2
  56. package/dist/highlight-B-eQrhhb.js +0 -2
  57. package/dist/icon-1gpwtPx8.js +0 -2
  58. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -3
  59. package/dist/icons.d.ts +2 -2
  60. package/dist/icons.js +0 -2
  61. package/dist/{incr-search-D91M4Ozq.js → incr-search-JIhwB49y.js} +26 -6
  62. package/dist/incr-search.d.ts +1 -1
  63. package/dist/incr-search.js +1 -1
  64. package/dist/{index-Dq30pOnn.d.ts → index-B-hzcIP0.d.ts} +3 -4
  65. package/dist/{index-CxZ61DO1.d.ts → index-BYIRgv49.d.ts} +9 -3
  66. package/dist/index-CCC0G1nO.d.ts +324 -0
  67. package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +2 -3
  68. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -3
  69. package/dist/index-DV3iaUBW.d.ts +1 -2
  70. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -3
  71. package/dist/index-o-CWDt11.d.ts +1 -2
  72. package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -3
  73. package/dist/index.d.ts +21 -22
  74. package/dist/index.js +48 -29
  75. package/dist/item-appearance-BjcMyauw.js +0 -2
  76. package/dist/keyboard-B5xD7Fz-.js +0 -2
  77. package/dist/labelled-input-base-BFa4xlYV.js +0 -2
  78. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -3
  79. package/dist/labelled-radial-input.d.ts +3 -4
  80. package/dist/labelled-radial-input.js +0 -2
  81. package/dist/labelled-range-input.d.ts +1 -1
  82. package/dist/labelled-range-input.js +0 -2
  83. package/dist/labelled-slider-input-FdCRi6st.js +0 -2
  84. package/dist/labelled-slider-input.d.ts +1 -1
  85. package/dist/led.d.ts +1 -2
  86. package/dist/led.js +0 -2
  87. package/dist/list-group-header.d.ts +2 -3
  88. package/dist/list-group-header.js +0 -2
  89. package/dist/list-item-animation-BUoEKi5s.js +0 -2
  90. package/dist/list-native-drag-controller-B9xO0XWn.js +0 -2
  91. package/dist/list-native-drag-controller-ChIi3eK5.d.ts +1 -2
  92. package/dist/list-selection-controller-BeE70lbB.js +0 -2
  93. package/dist/list-selection-types-PjKdhF-a.d.ts +1 -2
  94. package/dist/list-viewport-types-BRZsLcvp.d.ts +1 -2
  95. package/dist/menu-CwcXXeLM.js +0 -2
  96. package/dist/menu-item-BDEekBVy.js +0 -2
  97. package/dist/{menu-item-B0zqw2xp.d.ts → menu-item-bF6narIz.d.ts} +2 -3
  98. package/dist/menu.d.ts +2 -2
  99. package/dist/miller.d.ts +2 -3
  100. package/dist/miller.js +146 -102
  101. package/dist/narrowed-text.js +1 -3
  102. package/dist/notification-pill-DyZydXoZ.d.ts +1 -2
  103. package/dist/notifier.js +0 -2
  104. package/dist/pan-text-CoYmt2qd.d.ts +1 -2
  105. package/dist/pan-text-CqtvjPyK.js +0 -2
  106. package/dist/panel.d.ts +2 -3
  107. package/dist/panel.js +0 -2
  108. package/dist/polar-pad.d.ts +1 -2
  109. package/dist/polar-pad.js +0 -2
  110. package/dist/popup-D80sj2QC.js +0 -2
  111. package/dist/prominence-DlFShic3.js +0 -2
  112. package/dist/radial-input-DU6t2hYO.d.ts +1 -2
  113. package/dist/radial-input-KMVltQfe.js +0 -2
  114. package/dist/range-input.d.ts +1 -2
  115. package/dist/range-input.js +0 -2
  116. package/dist/range.d.ts +1 -2
  117. package/dist/range.js +0 -2
  118. package/dist/registry-BEtb8_wB.js +0 -2
  119. package/dist/{scroll-fade-BrNUIYnm.js → scroll-fade-Xx28D7mH.js} +11 -7
  120. package/dist/select-horiz.d.ts +1 -2
  121. package/dist/select-horiz.js +1 -3
  122. package/dist/slider-input-BxURAAmD.d.ts +1 -2
  123. package/dist/slider-input-ByHdotzp.js +0 -2
  124. package/dist/snackbar.d.ts +1 -2
  125. package/dist/snackbar.js +0 -2
  126. package/dist/snap-container.d.ts +1 -2
  127. package/dist/snap-container.js +0 -2
  128. package/dist/{split-layout-CXotkdbx.js → split-layout-Deoxy47d.js} +5 -2
  129. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -3
  130. package/dist/split-layout.d.ts +1 -1
  131. package/dist/split-layout.js +1 -1
  132. package/dist/swipe.d.ts +1 -2
  133. package/dist/swipe.js +0 -2
  134. package/dist/{tab-list-v8mKX7Fu.d.ts → tab-list-CexFFg6O.d.ts} +3 -5
  135. package/dist/tabs.d.ts +1 -1
  136. package/dist/tabs.js +23 -3
  137. package/dist/tickled-controller-D-HZymaZ.js +0 -2
  138. package/dist/tickled-controller-DodxD3eQ.d.ts +1 -2
  139. package/dist/tickled-styles-BrAHEj1q.js +0 -2
  140. package/dist/timeline-BP1Ux2EV.js +0 -2
  141. package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -3
  142. package/dist/titlebar.d.ts +1 -1
  143. package/dist/titlebar.js +0 -2
  144. package/dist/tooltip-BlvBUQxx.d.ts +1 -2
  145. package/dist/tooltip-CJt3WLmN.js +0 -2
  146. package/dist/transitory-label.d.ts +1 -2
  147. package/dist/transitory-label.js +0 -2
  148. package/dist/{tree-DGveys4K.js → tree-DD8OaqsK.js} +1009 -231
  149. package/dist/tree-component-Cj8V3uar.d.ts +1 -2
  150. package/dist/tree.d.ts +4 -267
  151. package/dist/tree.js +1 -1
  152. package/dist/types-DQ7KOUIj.d.ts +1 -2
  153. package/dist/{vertical-list-CqBc-t8w.d.ts → vertical-list-m7GJtXwv.d.ts} +3 -3
  154. package/dist/vertical-list.d.ts +1 -1
  155. package/dist/vertical-list.js +114 -27
  156. package/dist/wheel-nudge-By5s_ioH.d.ts +1 -2
  157. package/dist/wheel-nudge-D5rmht3v.js +0 -2
  158. package/dist/xy-axis-CyMd_Bn1.js +0 -2
  159. package/dist/xy-axis-DQqd2yXJ.d.ts +1 -2
  160. package/dist/xy-pad.d.ts +1 -2
  161. package/dist/xy-pad.js +0 -2
  162. package/docs-user/data-grid.md +74 -4
  163. package/docs-user/detail-list.md +65 -0
  164. package/docs-user/grid-list.md +81 -4
  165. package/docs-user/index.json +2 -2
  166. package/docs-user/miller.md +59 -3
  167. package/docs-user/tree.md +63 -2
  168. package/docs-user/vertical-list.md +9 -1
  169. package/package.json +6 -1
  170. package/bundle/index.d.ts.map +0 -1
  171. package/bundle/index.js.map +0 -1
  172. package/bundle/rolldown-runtime-D7D4PA-g.js +0 -13
  173. package/dist/ac-text.d.ts.map +0 -1
  174. package/dist/ac-text.js.map +0 -1
  175. package/dist/ac-token-TCLAZeVg.d.ts.map +0 -1
  176. package/dist/ac-token.js.map +0 -1
  177. package/dist/button-B7mgqtxR.js.map +0 -1
  178. package/dist/button-CTL45aBl.d.ts.map +0 -1
  179. package/dist/checkbox.d.ts.map +0 -1
  180. package/dist/checkbox.js.map +0 -1
  181. package/dist/checked-select-CglRukbP.d.ts.map +0 -1
  182. package/dist/checked-select-lDgAQQ7v.js.map +0 -1
  183. package/dist/colour-picker-BCMU7W7R.js.map +0 -1
  184. package/dist/crumbs.d.ts.map +0 -1
  185. package/dist/crumbs.js.map +0 -1
  186. package/dist/data-controller-DOlmqNKb.js.map +0 -1
  187. package/dist/data-display.d.ts.map +0 -1
  188. package/dist/data-display.js.map +0 -1
  189. package/dist/data-grid-Ck1Qx2H1.d.ts.map +0 -1
  190. package/dist/data-grid.js.map +0 -1
  191. package/dist/data-provider-35TyWclX.js.map +0 -1
  192. package/dist/data-provider-BAn_-oR1.d.ts.map +0 -1
  193. package/dist/decorate-VRK8rslU.js.map +0 -1
  194. package/dist/defaults-B4ePs4LB.js.map +0 -1
  195. package/dist/detail-list-C1xzr1z7.d.ts.map +0 -1
  196. package/dist/detail-list.js.map +0 -1
  197. package/dist/drag-ghost-DtSDvjri.js.map +0 -1
  198. package/dist/editable-label-rzXkjf1H.d.ts.map +0 -1
  199. package/dist/editable-label.js.map +0 -1
  200. package/dist/fallbacks-DQ_5OsmR.js.map +0 -1
  201. package/dist/flat-list-Ohxqsy0g.d.ts.map +0 -1
  202. package/dist/flat-list.js.map +0 -1
  203. package/dist/form-CsXJX15p.js.map +0 -1
  204. package/dist/form.d.ts.map +0 -1
  205. package/dist/grid-list-DjIl910A.js.map +0 -1
  206. package/dist/grid-list-pefLORIr.d.ts.map +0 -1
  207. package/dist/grouped-item-lister-Bhyo-dkH.d.ts.map +0 -1
  208. package/dist/grouped-item-lister.js.map +0 -1
  209. package/dist/grouping-CUKgmkMm.d.ts.map +0 -1
  210. package/dist/grouping-RYPnHkrS.js.map +0 -1
  211. package/dist/handle-DAXs7kbJ.js.map +0 -1
  212. package/dist/hex-editor-Caq8vNQk.d.ts.map +0 -1
  213. package/dist/hex-editor-DiYpgIKs.js.map +0 -1
  214. package/dist/highlight-B-eQrhhb.js.map +0 -1
  215. package/dist/icon-1gpwtPx8.js.map +0 -1
  216. package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
  217. package/dist/icons.js.map +0 -1
  218. package/dist/incr-search-D91M4Ozq.js.map +0 -1
  219. package/dist/index-BOUaDIW-.d.ts.map +0 -1
  220. package/dist/index-BUB5SICW.d.ts.map +0 -1
  221. package/dist/index-CJ5fshD3.d.ts.map +0 -1
  222. package/dist/index-CxZ61DO1.d.ts.map +0 -1
  223. package/dist/index-DV3iaUBW.d.ts.map +0 -1
  224. package/dist/index-Dq30pOnn.d.ts.map +0 -1
  225. package/dist/index-garxxqgV.d.ts.map +0 -1
  226. package/dist/index-o-CWDt11.d.ts.map +0 -1
  227. package/dist/index.d.ts.map +0 -1
  228. package/dist/index.js.map +0 -1
  229. package/dist/item-appearance-BjcMyauw.js.map +0 -1
  230. package/dist/keyboard-B5xD7Fz-.js.map +0 -1
  231. package/dist/labelled-input-base-BFa4xlYV.js.map +0 -1
  232. package/dist/labelled-input-base-Dp_9KP0G.d.ts.map +0 -1
  233. package/dist/labelled-radial-input.d.ts.map +0 -1
  234. package/dist/labelled-radial-input.js.map +0 -1
  235. package/dist/labelled-range-input.js.map +0 -1
  236. package/dist/labelled-slider-input-FdCRi6st.js.map +0 -1
  237. package/dist/led.d.ts.map +0 -1
  238. package/dist/led.js.map +0 -1
  239. package/dist/list-group-header.d.ts.map +0 -1
  240. package/dist/list-group-header.js.map +0 -1
  241. package/dist/list-item-animation-BUoEKi5s.js.map +0 -1
  242. package/dist/list-native-drag-controller-B9xO0XWn.js.map +0 -1
  243. package/dist/list-native-drag-controller-ChIi3eK5.d.ts.map +0 -1
  244. package/dist/list-selection-controller-BeE70lbB.js.map +0 -1
  245. package/dist/list-selection-types-PjKdhF-a.d.ts.map +0 -1
  246. package/dist/list-viewport-types-BRZsLcvp.d.ts.map +0 -1
  247. package/dist/menu-CwcXXeLM.js.map +0 -1
  248. package/dist/menu-item-B0zqw2xp.d.ts.map +0 -1
  249. package/dist/menu-item-BDEekBVy.js.map +0 -1
  250. package/dist/miller.d.ts.map +0 -1
  251. package/dist/miller.js.map +0 -1
  252. package/dist/narrowed-text.js.map +0 -1
  253. package/dist/notification-pill-DyZydXoZ.d.ts.map +0 -1
  254. package/dist/notifier.js.map +0 -1
  255. package/dist/pan-text-CoYmt2qd.d.ts.map +0 -1
  256. package/dist/pan-text-CqtvjPyK.js.map +0 -1
  257. package/dist/panel.d.ts.map +0 -1
  258. package/dist/panel.js.map +0 -1
  259. package/dist/polar-pad.d.ts.map +0 -1
  260. package/dist/polar-pad.js.map +0 -1
  261. package/dist/popup-D80sj2QC.js.map +0 -1
  262. package/dist/prominence-DlFShic3.js.map +0 -1
  263. package/dist/radial-input-DU6t2hYO.d.ts.map +0 -1
  264. package/dist/radial-input-KMVltQfe.js.map +0 -1
  265. package/dist/range-input.d.ts.map +0 -1
  266. package/dist/range-input.js.map +0 -1
  267. package/dist/range.d.ts.map +0 -1
  268. package/dist/range.js.map +0 -1
  269. package/dist/registry-BEtb8_wB.js.map +0 -1
  270. package/dist/scroll-fade-BrNUIYnm.js.map +0 -1
  271. package/dist/select-horiz.d.ts.map +0 -1
  272. package/dist/select-horiz.js.map +0 -1
  273. package/dist/slider-input-BxURAAmD.d.ts.map +0 -1
  274. package/dist/slider-input-ByHdotzp.js.map +0 -1
  275. package/dist/snackbar.d.ts.map +0 -1
  276. package/dist/snackbar.js.map +0 -1
  277. package/dist/snap-container.d.ts.map +0 -1
  278. package/dist/snap-container.js.map +0 -1
  279. package/dist/split-layout-C5SYbDrq.d.ts.map +0 -1
  280. package/dist/split-layout-CXotkdbx.js.map +0 -1
  281. package/dist/swipe.d.ts.map +0 -1
  282. package/dist/swipe.js.map +0 -1
  283. package/dist/tab-list-v8mKX7Fu.d.ts.map +0 -1
  284. package/dist/tabs.js.map +0 -1
  285. package/dist/tickled-controller-D-HZymaZ.js.map +0 -1
  286. package/dist/tickled-controller-DodxD3eQ.d.ts.map +0 -1
  287. package/dist/tickled-styles-BrAHEj1q.js.map +0 -1
  288. package/dist/timeline-BP1Ux2EV.js.map +0 -1
  289. package/dist/titlebar-B5zSTZnF.d.ts.map +0 -1
  290. package/dist/titlebar.js.map +0 -1
  291. package/dist/tooltip-BlvBUQxx.d.ts.map +0 -1
  292. package/dist/tooltip-CJt3WLmN.js.map +0 -1
  293. package/dist/transitory-label.d.ts.map +0 -1
  294. package/dist/transitory-label.js.map +0 -1
  295. package/dist/tree-DGveys4K.js.map +0 -1
  296. package/dist/tree-component-Cj8V3uar.d.ts.map +0 -1
  297. package/dist/tree.d.ts.map +0 -1
  298. package/dist/types-DQ7KOUIj.d.ts.map +0 -1
  299. package/dist/vertical-list-CqBc-t8w.d.ts.map +0 -1
  300. package/dist/vertical-list.js.map +0 -1
  301. package/dist/wheel-nudge-By5s_ioH.d.ts.map +0 -1
  302. package/dist/wheel-nudge-D5rmht3v.js.map +0 -1
  303. package/dist/xy-axis-CyMd_Bn1.js.map +0 -1
  304. package/dist/xy-axis-DQqd2yXJ.d.ts.map +0 -1
  305. package/dist/xy-pad.d.ts.map +0 -1
  306. package/dist/xy-pad.js.map +0 -1
package/dist/miller.js CHANGED
@@ -2,7 +2,7 @@ import { t as TickledController } from "./tickled-controller-D-HZymaZ.js";
2
2
  import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrAHEj1q.js";
3
3
  import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
4
4
  import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
5
- import { i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, t as createTreeListSearchAdapter } from "./incr-search-D91M4Ozq.js";
5
+ import { i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, t as createTreeListSearchAdapter } from "./incr-search-JIhwB49y.js";
6
6
  import "./interaction-ZTh4htzr.js";
7
7
  import { t as collectDataResult } from "./data-provider-35TyWclX.js";
8
8
  import { n as appearanceColor, t as appearanceAbsent } from "./item-appearance-BjcMyauw.js";
@@ -52,86 +52,30 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
52
52
  return;
53
53
  }
54
54
  switch (event.key) {
55
- case `ArrowDown`: {
55
+ case `ArrowDown`:
56
56
  event.preventDefault();
57
- const current = this.#getTickledNodeAndDepth();
58
- let targetIndex = 0;
59
- if (current && current.depth === currentDepth) targetIndex = Math.min(current.index + 1, col.length - 1);
60
- const targetNode = col[targetIndex];
61
- if (!targetNode) break;
62
- this.#setTickledNode(targetNode, currentDepth);
63
- if (this.interactionMode === `standard` || this.interactionMode === `vscode`) {
64
- const prevIndex = current?.index ?? 0;
65
- if (event.shiftKey) {
66
- if (!this.#anchor || this.#anchor.depth !== currentDepth) {
67
- const anchorNode = col[prevIndex];
68
- if (anchorNode) this.#anchor = {
69
- key: anchorNode.item.key,
70
- depth: currentDepth,
71
- index: prevIndex,
72
- selectionSnapshot: this.interactionMode === `vscode` ? new Set(this._selectedKeys) : void 0
73
- };
74
- }
75
- if (this.#anchor) {
76
- const from = Math.min(this.#anchor.index, targetIndex);
77
- const to = Math.max(this.#anchor.index, targetIndex);
78
- const rangeKeys = col.slice(from, to + 1).map((n) => n.item.key);
79
- if (this.interactionMode === `vscode`) {
80
- const snap = this.#anchor.selectionSnapshot;
81
- for (const k of rangeKeys) if (snap.has(k)) this._selectedKeys.delete(k);
82
- else this._selectedKeys.add(k);
83
- } else this._selectedKeys = new Set(rangeKeys);
84
- }
85
- } else if (this.interactionMode === `standard`) this.#anchor = {
86
- key: targetNode.item.key,
87
- depth: currentDepth,
88
- index: targetIndex
89
- };
90
- else this.#anchor = void 0;
91
- }
92
- this.requestUpdate();
57
+ this.#moveCursor(col, currentDepth, event, (current) => Math.min(current + 1, col.length - 1));
93
58
  break;
94
- }
95
- case `ArrowUp`: {
59
+ case `ArrowUp`:
96
60
  event.preventDefault();
97
- const current = this.#getTickledNodeAndDepth();
98
- let targetIndex = 0;
99
- if (current && current.depth === currentDepth) targetIndex = Math.max(current.index - 1, 0);
100
- const targetNode = col[targetIndex];
101
- if (!targetNode) break;
102
- this.#setTickledNode(targetNode, currentDepth);
103
- if (this.interactionMode === `standard` || this.interactionMode === `vscode`) {
104
- const prevIndex = current?.index ?? 0;
105
- if (event.shiftKey) {
106
- if (!this.#anchor || this.#anchor.depth !== currentDepth) {
107
- const anchorNode = col[prevIndex];
108
- if (anchorNode) this.#anchor = {
109
- key: anchorNode.item.key,
110
- depth: currentDepth,
111
- index: prevIndex,
112
- selectionSnapshot: this.interactionMode === `vscode` ? new Set(this._selectedKeys) : void 0
113
- };
114
- }
115
- if (this.#anchor) {
116
- const from = Math.min(this.#anchor.index, targetIndex);
117
- const to = Math.max(this.#anchor.index, targetIndex);
118
- const rangeKeys = col.slice(from, to + 1).map((n) => n.item.key);
119
- if (this.interactionMode === `vscode`) {
120
- const snap = this.#anchor.selectionSnapshot;
121
- for (const k of rangeKeys) if (snap.has(k)) this._selectedKeys.delete(k);
122
- else this._selectedKeys.add(k);
123
- } else this._selectedKeys = new Set(rangeKeys);
124
- }
125
- } else if (this.interactionMode === `standard`) this.#anchor = {
126
- key: targetNode.item.key,
127
- depth: currentDepth,
128
- index: targetIndex
129
- };
130
- else this.#anchor = void 0;
131
- }
132
- this.requestUpdate();
61
+ this.#moveCursor(col, currentDepth, event, (current) => Math.max(current - 1, 0));
62
+ break;
63
+ case `Home`:
64
+ event.preventDefault();
65
+ this.#moveCursor(col, currentDepth, event, () => 0, true);
66
+ break;
67
+ case `End`:
68
+ event.preventDefault();
69
+ this.#moveCursor(col, currentDepth, event, () => col.length - 1, true);
70
+ break;
71
+ case `PageUp`:
72
+ event.preventDefault();
73
+ this.#moveCursor(col, currentDepth, event, (current) => Math.max(current - this.#pageSize(currentDepth), 0), true);
74
+ break;
75
+ case `PageDown`:
76
+ event.preventDefault();
77
+ this.#moveCursor(col, currentDepth, event, (current) => Math.min(current + this.#pageSize(currentDepth), col.length - 1), true);
133
78
  break;
134
- }
135
79
  case `ArrowRight`: {
136
80
  event.preventDefault();
137
81
  const tickled = this.#getTickledNodeAndDepth();
@@ -224,14 +168,28 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
224
168
  window.addEventListener(`pointermove`, this.#onResizeMove);
225
169
  window.addEventListener(`pointerup`, this.#onResizeEnd);
226
170
  };
171
+ this.#resizeRaf = null;
172
+ this.#resizePendingWidth = 0;
227
173
  this.#onResizeMove = (event) => {
228
174
  if (this.#resizingDepth < 0) return;
229
- const delta = event.clientX - this.#resizeStartX;
230
- const newWidth = Math.max(32, this.#resizeStartWidth + delta);
231
- this.#columnWidths.set(this.#resizingDepth, newWidth);
232
- this.requestUpdate();
175
+ this.#resizePendingWidth = Math.max(32, this.#resizeStartWidth + (event.clientX - this.#resizeStartX));
176
+ this.#resizeRaf ??= requestAnimationFrame(this.#applyResizeWidth);
177
+ };
178
+ this.#applyResizeWidth = () => {
179
+ this.#resizeRaf = null;
180
+ if (this.#resizingDepth < 0) return;
181
+ (this.shadowRoot?.querySelectorAll(`.column`)[this.#resizingDepth])?.setAttribute(`style`, this.#explicitWidthStyle(this.#resizePendingWidth));
233
182
  };
234
183
  this.#onResizeEnd = () => {
184
+ if (this.#resizeRaf !== null) {
185
+ cancelAnimationFrame(this.#resizeRaf);
186
+ this.#resizeRaf = null;
187
+ }
188
+ if (this.#resizingDepth >= 0 && this.#resizePendingWidth > 0) {
189
+ this.#columnWidths.set(this.#resizingDepth, this.#resizePendingWidth);
190
+ this.requestUpdate();
191
+ }
192
+ this.#resizePendingWidth = 0;
235
193
  this.#resizingDepth = -1;
236
194
  window.removeEventListener(`pointermove`, this.#onResizeMove);
237
195
  window.removeEventListener(`pointerup`, this.#onResizeEnd);
@@ -838,7 +796,7 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
838
796
  this.#handleStandardClick(node, depth, event);
839
797
  break;
840
798
  case `manual`: break;
841
- case `checked`: this.#expandNode(node, depth);
799
+ case `checked`: this.#expandNode(node, depth, true);
842
800
  }
843
801
  }
844
802
  #handleImplicitClick(node, depth) {
@@ -848,7 +806,7 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
848
806
  this._selectedKeys = /* @__PURE__ */ new Set([node.item.key]);
849
807
  this._selectedNodes.clear();
850
808
  this._selectedNodes.add(node);
851
- this.#expandNode(node, depth);
809
+ this.#expandNode(node, depth, true);
852
810
  if (!previous.has(node)) this.#dispatchSelectEvent(previous);
853
811
  }
854
812
  #handleStandardClick(node, depth, event) {
@@ -891,16 +849,22 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
891
849
  } : void 0;
892
850
  this._selectedByDepth.set(depth, node);
893
851
  this.#lastSelectedNode = node;
894
- this.#expandNode(node, depth);
852
+ this.#expandNode(node, depth, true);
895
853
  if (!previous.has(node) || previous.size !== 1) this.#dispatchSelectEvent(previous);
896
854
  }
897
- #expandNode(node, depth) {
855
+ /**
856
+ * Open the column for `node`. `immediate` skips the lazy-load debounce: use
857
+ * it for deliberate clicks, where the user has committed to this node. The
858
+ * debounce is kept for keyboard navigation, which can sweep over many
859
+ * branches in quick succession.
860
+ */
861
+ #expandNode(node, depth, immediate = false) {
898
862
  if (node.item.isLeaf) {
899
863
  this._columns = this._columns.slice(0, depth + 1);
900
864
  this.requestUpdate();
901
865
  return;
902
866
  }
903
- if (node.children === void 0) this.#loadUnloadedChildren(node, depth, true);
867
+ if (node.children === void 0) this.#loadUnloadedChildren(node, depth, true, immediate);
904
868
  else {
905
869
  const newColumns = this._columns.slice(0, depth + 1);
906
870
  newColumns.push(node.children);
@@ -925,10 +889,11 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
925
889
  * own depth: its column for expansions, -1 for a view root (it sits above
926
890
  * column 0, so loaders computing child depth as `depth + 1` stay correct).
927
891
  */
928
- #loadUnloadedChildren(node, parentDepth, fireExpandEvent) {
892
+ #loadUnloadedChildren(node, parentDepth, fireExpandEvent, immediate = false) {
929
893
  const nodeDepth = parentDepth + 1;
930
894
  this._columns = this._columns.slice(0, nodeDepth);
931
895
  this._loadingDepth = nodeDepth;
896
+ this.#pendingController?.abort();
932
897
  this.#pendingNode = node;
933
898
  const controller = new AbortController();
934
899
  this.#pendingController = controller;
@@ -959,15 +924,20 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
959
924
  this.requestUpdate();
960
925
  };
961
926
  if (this.model || this.loadChildren) {
962
- if (this.#expandTimer !== void 0) clearTimeout(this.#expandTimer);
963
- this.#expandTimer = setTimeout(() => {
927
+ if (this.#expandTimer !== void 0) {
928
+ clearTimeout(this.#expandTimer);
929
+ this.#expandTimer = void 0;
930
+ }
931
+ const load = () => {
964
932
  this.#expandTimer = void 0;
965
933
  if (this.#pendingNode !== node) return;
966
934
  (this.model ? this.model.getChildren(node, nodeDepth - 1, controller.signal) : collectDataResult(this.loadChildren({
967
935
  node,
968
936
  depth: nodeDepth - 1
969
937
  }, controller.signal), controller.signal)).then((children) => applyChildren([...children])).catch(handleError);
970
- }, EXPAND_DEBOUNCE_MS);
938
+ };
939
+ if (immediate) load();
940
+ else this.#expandTimer = setTimeout(load, EXPAND_DEBOUNCE_MS);
971
941
  } else {
972
942
  this._loadingDepth = void 0;
973
943
  this.#pendingNode = void 0;
@@ -978,10 +948,12 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
978
948
  }
979
949
  }
980
950
  #onCheckboxClick(node) {
951
+ const previous = new Set(this._selectedNodes);
981
952
  const currentlySelected = this._selectedKeys.has(node.item.key);
982
953
  if (!!node.children?.length ? this.#allDescendantsSelected(node) : currentlySelected) this.#applyCheckedToggle(node, false);
983
954
  else this.#applyCheckedToggle(node, true);
984
955
  this.requestUpdate();
956
+ this.#dispatchSelectEvent(previous);
985
957
  }
986
958
  #allDescendantsSelected(node) {
987
959
  if (!this._selectedKeys.has(node.item.key)) return false;
@@ -1018,7 +990,7 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
1018
990
  index
1019
991
  };
1020
992
  }
1021
- #scrollNavigatedItemIntoView() {
993
+ #scrollNavigatedItemIntoView(behavior = `smooth`) {
1022
994
  requestAnimationFrame(() => {
1023
995
  const tickled = this.#getTickledNodeAndDepth();
1024
996
  if (!tickled) return;
@@ -1026,7 +998,7 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
1026
998
  if (!container) return;
1027
999
  container.querySelectorAll(`.item`)[tickled.index]?.scrollIntoView({
1028
1000
  block: `nearest`,
1029
- behavior: `smooth`
1001
+ behavior
1030
1002
  });
1031
1003
  });
1032
1004
  }
@@ -1041,9 +1013,67 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
1041
1013
  composed: true
1042
1014
  }));
1043
1015
  }
1016
+ /**
1017
+ * Number of items a PageUp/PageDown moves: how many rows fit in the column's
1018
+ * visible area, less one so the previous page's last row stays in view.
1019
+ */
1020
+ #pageSize(depth) {
1021
+ const content = this.shadowRoot?.querySelectorAll(`.column`)[depth]?.querySelector(`.column-content`);
1022
+ const item = content?.querySelector(`.item`);
1023
+ if (!content || !item || item.offsetHeight === 0) return 10;
1024
+ return Math.max(1, Math.floor(content.clientHeight / item.offsetHeight) - 1);
1025
+ }
1026
+ /**
1027
+ * Move the cursor within column `col` to the index returned by `target`
1028
+ * (given the current cursor index, or -1 when the cursor isn't in this
1029
+ * column, which behaves as "before the first item"). Handles Shift range
1030
+ * extension and anchor seating for `standard` / `vscode` modes.
1031
+ * `scroll` brings the new item into view (for jumps larger than one row).
1032
+ */
1033
+ #moveCursor(col, currentDepth, event, target, scroll = false) {
1034
+ const current = this.#getTickledNodeAndDepth();
1035
+ const targetIndex = target(current !== void 0 && current.depth === currentDepth ? current.index : -1);
1036
+ const targetNode = col[targetIndex];
1037
+ if (!targetNode) return;
1038
+ this.#setTickledNode(targetNode, currentDepth);
1039
+ if (this.interactionMode === `standard` || this.interactionMode === `vscode`) {
1040
+ const prevIndex = current?.index ?? 0;
1041
+ if (event.shiftKey) {
1042
+ if (!this.#anchor || this.#anchor.depth !== currentDepth) {
1043
+ const anchorNode = col[prevIndex];
1044
+ if (anchorNode) this.#anchor = {
1045
+ key: anchorNode.item.key,
1046
+ depth: currentDepth,
1047
+ index: prevIndex,
1048
+ selectionSnapshot: this.interactionMode === `vscode` ? new Set(this._selectedKeys) : void 0
1049
+ };
1050
+ }
1051
+ if (this.#anchor) {
1052
+ const from = Math.min(this.#anchor.index, targetIndex);
1053
+ const to = Math.max(this.#anchor.index, targetIndex);
1054
+ const rangeKeys = col.slice(from, to + 1).map((n) => n.item.key);
1055
+ if (this.interactionMode === `vscode`) {
1056
+ const snap = this.#anchor.selectionSnapshot;
1057
+ for (const k of rangeKeys) if (snap.has(k)) this._selectedKeys.delete(k);
1058
+ else this._selectedKeys.add(k);
1059
+ } else this._selectedKeys = new Set(rangeKeys);
1060
+ }
1061
+ } else if (this.interactionMode === `standard`) this.#anchor = {
1062
+ key: targetNode.item.key,
1063
+ depth: currentDepth,
1064
+ index: targetIndex
1065
+ };
1066
+ else this.#anchor = void 0;
1067
+ }
1068
+ this.requestUpdate();
1069
+ if (scroll) this.#scrollNavigatedItemIntoView(`auto`);
1070
+ }
1044
1071
  #onKeyDown;
1045
1072
  #onResizeStart;
1073
+ #resizeRaf;
1074
+ #resizePendingWidth;
1046
1075
  #onResizeMove;
1076
+ #applyResizeWidth;
1047
1077
  #onResizeEnd;
1048
1078
  #getColumnHeader(depth) {
1049
1079
  if (depth === 0) return this.#displayRoot?.item.label ?? ``;
@@ -1057,9 +1087,12 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
1057
1087
  }
1058
1088
  return ``;
1059
1089
  }
1090
+ #explicitWidthStyle(width) {
1091
+ return `width:${width}px;flex-grow:0;flex-shrink:0;flex-basis:auto;max-width:none`;
1092
+ }
1060
1093
  #columnStyle(depth, isLast) {
1061
1094
  const w = this.#columnWidths.get(depth);
1062
- if (w !== void 0) return `width:${w}px;flex-grow:0;flex-shrink:0;flex-basis:auto;max-width:none`;
1095
+ if (w !== void 0) return this.#explicitWidthStyle(w);
1063
1096
  if (this.stretchLastColumn && isLast) return `width:max-content;flex-grow:1;flex-shrink:0;flex-basis:auto;min-width:0`;
1064
1097
  return `width:max-content;flex-grow:0;flex-shrink:0;flex-basis:auto`;
1065
1098
  }
@@ -1309,8 +1342,24 @@ __decorate([state()], MillerBaseElement.prototype, "_selectedNodes", void 0);
1309
1342
  MillerBaseElement = __decorate([safeCustomElement(`ixfx-miller-base`)], MillerBaseElement);
1310
1343
  //#endregion
1311
1344
  //#region src/miller/miller-list.ts
1345
+ const HAS_CHECKED = 1;
1346
+ const HAS_UNCHECKED = 2;
1312
1347
  /**
1313
- * Recursively compute the checkbox state for a node based on `selectedKeys`.
1348
+ * Walk the loaded subtree under `node`, returning which kinds of leaf were
1349
+ * seen (`HAS_CHECKED` | `HAS_UNCHECKED`). Stops as soon as both have been
1350
+ * seen, since the result can no longer change.
1351
+ */
1352
+ function scanCheckState(node, selectedKeys) {
1353
+ if (node.item.isLeaf || !node.children?.length) return selectedKeys.has(node.item.key) ? HAS_CHECKED : HAS_UNCHECKED;
1354
+ let seen = 0;
1355
+ for (const child of node.children) {
1356
+ seen |= scanCheckState(child, selectedKeys);
1357
+ if (seen === 3) break;
1358
+ }
1359
+ return seen;
1360
+ }
1361
+ /**
1362
+ * Compute the checkbox state for a node based on `selectedKeys`.
1314
1363
  *
1315
1364
  * - Unloaded branch (`children === undefined`): treated as a leaf — we can only
1316
1365
  * report on what is known.
@@ -1319,12 +1368,9 @@ MillerBaseElement = __decorate([safeCustomElement(`ixfx-miller-base`)], MillerBa
1319
1368
  * indeterminate otherwise.
1320
1369
  */
1321
1370
  function computeCheckboxState(node, selectedKeys) {
1322
- if (node.item.isLeaf || !node.children?.length) return selectedKeys.has(node.item.key) ? `checked` : `unchecked`;
1323
- const childStates = node.children.map((c) => computeCheckboxState(c, selectedKeys));
1324
- const allChecked = childStates.every((s) => s === `checked`);
1325
- const allUnchecked = childStates.every((s) => s === `unchecked`);
1326
- if (allChecked) return `checked`;
1327
- if (allUnchecked) return `unchecked`;
1371
+ const seen = scanCheckState(node, selectedKeys);
1372
+ if (seen === HAS_CHECKED) return `checked`;
1373
+ if (seen === HAS_UNCHECKED) return `unchecked`;
1328
1374
  return `indeterminate`;
1329
1375
  }
1330
1376
  let MillerListElement = class MillerListElement extends MillerBaseElement {
@@ -1624,5 +1670,3 @@ var MillerTreeController = class {
1624
1670
  };
1625
1671
  //#endregion
1626
1672
  export { MillerBaseElement, MillerListElement, MillerTreeController };
1627
-
1628
- //# sourceMappingURL=miller.js.map
@@ -3,7 +3,7 @@ import { t as TickledController } from "./tickled-controller-D-HZymaZ.js";
3
3
  import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrAHEj1q.js";
4
4
  import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
5
5
  import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
6
- import { p as createIncrSearch } from "./incr-search-D91M4Ozq.js";
6
+ import { p as createIncrSearch } from "./incr-search-JIhwB49y.js";
7
7
  import "./interaction-ZTh4htzr.js";
8
8
  import { LitElement, css, html, nothing } from "lit";
9
9
  import { property, query, state } from "lit/decorators.js";
@@ -618,5 +618,3 @@ __decorate([query(`slot`)], NarrowedTextElement.prototype, "_slot", void 0);
618
618
  NarrowedTextElement = __decorate([safeCustomElement(`ixfx-narrowed-text`)], NarrowedTextElement);
619
619
  //#endregion
620
620
  export { NarrowedTextElement };
621
-
622
- //# sourceMappingURL=narrowed-text.js.map
@@ -64,5 +64,4 @@ interface NotificationPillElement {
64
64
  addEventListener: (<K extends keyof NotificationPillElementEventMap>(type: K, listener: (this: NotificationPillElement, event: NotificationPillElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
65
65
  }
66
66
  //#endregion
67
- export { Notification as a, NotificationRendererHooks as c, PillTapEvent as i, NotificationType as l, NotificationPillElementEventMap as n, NotificationContent as o, PillTapDetail as r, NotificationRenderer as s, NotificationPillElement as t, NotifierOptions as u };
68
- //# sourceMappingURL=notification-pill-DyZydXoZ.d.ts.map
67
+ export { Notification as a, NotificationRendererHooks as c, PillTapEvent as i, NotificationType as l, NotificationPillElementEventMap as n, NotificationContent as o, PillTapDetail as r, NotificationRenderer as s, NotificationPillElement as t, NotifierOptions as u };
package/dist/notifier.js CHANGED
@@ -143,5 +143,3 @@ __decorate([property({
143
143
  NotificationPillElement = __decorate([safeCustomElement(`ixfx-notification-pill`)], NotificationPillElement);
144
144
  //#endregion
145
145
  export { NotificationPillElement };
146
-
147
- //# sourceMappingURL=notifier.js.map
@@ -63,5 +63,4 @@ declare global {
63
63
  }
64
64
  }
65
65
  //#endregion
66
- export { PanTextMode as n, PanTextElement as t };
67
- //# sourceMappingURL=pan-text-CoYmt2qd.d.ts.map
66
+ export { PanTextMode as n, PanTextElement as t };
@@ -231,5 +231,3 @@ __decorate([query(`.text`)], PanTextElement.prototype, "_textEl", void 0);
231
231
  PanTextElement = __decorate([safeCustomElement(`ixfx-pan-text`)], PanTextElement);
232
232
  //#endregion
233
233
  export { PanTextElement as t };
234
-
235
- //# sourceMappingURL=pan-text-CqtvjPyK.js.map
package/dist/panel.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as TitlebarToggleDetail, c as TitlebarVariant, i as TitlebarOrientation, o as TitlebarToggleEvent, s as TitlebarToggleInteraction, t as TitlebarCloseEvent } from "./titlebar-B5zSTZnF.js";
1
+ import { a as TitlebarToggleDetail, c as TitlebarVariant, i as TitlebarOrientation, o as TitlebarToggleEvent, s as TitlebarToggleInteraction, t as TitlebarCloseEvent } from "./titlebar-Tqu-VvMU.js";
2
2
  import { LitElement } from "lit";
3
3
  //#region src/panel/panel.d.ts
4
4
  /** Backwards-compatible aliases: canonical types now live in `../titlebar/titlebar.js`. */
@@ -40,5 +40,4 @@ interface PanelElement {
40
40
  addEventListener: (<K extends keyof PanelElementEventMap>(type: K, listener: (this: PanelElement, event: PanelElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
41
41
  }
42
42
  //#endregion
43
- export { PanelCloseEvent, PanelElement, PanelElementEventMap, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant };
44
- //# sourceMappingURL=panel.d.ts.map
43
+ export { PanelCloseEvent, PanelElement, PanelElementEventMap, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant };
package/dist/panel.js CHANGED
@@ -217,5 +217,3 @@ __decorate([property({
217
217
  PanelElement = __decorate([safeCustomElement(`ixfx-panel`)], PanelElement);
218
218
  //#endregion
219
219
  export { PanelElement };
220
-
221
- //# sourceMappingURL=panel.js.map
@@ -74,5 +74,4 @@ declare global {
74
74
  }
75
75
  }
76
76
  //#endregion
77
- export { PolarPad, PolarPadInputDetail, PolarPadInputEvent };
78
- //# sourceMappingURL=polar-pad.d.ts.map
77
+ export { PolarPad, PolarPadInputDetail, PolarPadInputEvent };
package/dist/polar-pad.js CHANGED
@@ -592,5 +592,3 @@ __decorate([property({
592
592
  PolarPad = __decorate([safeCustomElement(`ixfx-polar-pad`)], PolarPad);
593
593
  //#endregion
594
594
  export { PolarPad };
595
-
596
- //# sourceMappingURL=polar-pad.js.map
@@ -22,5 +22,3 @@ const popupSurfaceStyles = css`
22
22
  `;
23
23
  //#endregion
24
24
  export { popupSurfaceStyles as t };
25
-
26
- //# sourceMappingURL=popup-D80sj2QC.js.map
@@ -100,5 +100,3 @@ css`
100
100
  `;
101
101
  //#endregion
102
102
  export { prominenceStyles as t };
103
-
104
- //# sourceMappingURL=prominence-DlFShic3.js.map
@@ -67,5 +67,4 @@ declare global {
67
67
  }
68
68
  }
69
69
  //#endregion
70
- export { RadialInputChangeDetail as a, RadialInputInputEvent as c, MarkerStyle as i, ValueMode as l, LaneData as n, RadialInputChangeEvent as o, LaneType as r, RadialInputInputDetail as s, RadialInputElement as t };
71
- //# sourceMappingURL=radial-input-DU6t2hYO.d.ts.map
70
+ export { RadialInputChangeDetail as a, RadialInputInputEvent as c, MarkerStyle as i, ValueMode as l, LaneData as n, RadialInputChangeEvent as o, LaneType as r, RadialInputInputDetail as s, RadialInputElement as t };
@@ -872,5 +872,3 @@ __decorate([property({
872
872
  RadialInputElement = __decorate([safeCustomElement(`ixfx-radial-input`)], RadialInputElement);
873
873
  //#endregion
874
874
  export { RadialInputElement as t };
875
-
876
- //# sourceMappingURL=radial-input-KMVltQfe.js.map
@@ -49,5 +49,4 @@ declare global {
49
49
  }
50
50
  }
51
51
  //#endregion
52
- export { RangeInput };
53
- //# sourceMappingURL=range-input.d.ts.map
52
+ export { RangeInput };
@@ -487,5 +487,3 @@ __decorate([query(`ixfx-tooltip`)], RangeInput.prototype, "_tooltipEl", void 0);
487
487
  RangeInput = __decorate([safeCustomElement(`ixfx-range-input`)], RangeInput);
488
488
  //#endregion
489
489
  export { RangeInput };
490
-
491
- //# sourceMappingURL=range-input.js.map
package/dist/range.d.ts CHANGED
@@ -34,5 +34,4 @@ declare global {
34
34
  }
35
35
  }
36
36
  //#endregion
37
- export { RangeElement };
38
- //# sourceMappingURL=range.d.ts.map
37
+ export { RangeElement };
package/dist/range.js CHANGED
@@ -155,5 +155,3 @@ __decorate([property({ type: Number })], RangeElement.prototype, "step", void 0)
155
155
  RangeElement = __decorate([safeCustomElement(`ixfx-range`)], RangeElement);
156
156
  //#endregion
157
157
  export { RangeElement };
158
-
159
- //# sourceMappingURL=range.js.map
@@ -42,5 +42,3 @@ function svgToDataUri(svg) {
42
42
  }
43
43
  //#endregion
44
44
  export { iconBus as a, setIconFont as c, hasIcon as i, svgToDataUri as l, getIconEntry as n, registerFontIcon as o, getIconFont as r, registerIcon as s, getIcon as t };
45
-
46
- //# sourceMappingURL=registry-BEtb8_wB.js.map
@@ -17,8 +17,7 @@ import { css, unsafeCSS } from "lit";
17
17
  * `mask-image`, so putting both on the same element makes the second
18
18
  * overwrite the first. An element that scrolls on both axes at once (e.g.
19
19
  * a grid viewport with `overflow: auto`) should use the vertical fade on
20
- * the viewport itself and handle the horizontal axis separately (e.g. a
21
- * synced header strip with its own `scroll-fade-x`).
20
+ * the viewport itself and handle the horizontal axis separately.
22
21
  *
23
22
  * CSS variables:
24
23
  * - `--scroll-fade-width` (default `30px`): how far the fade extends from each edge.
@@ -28,6 +27,10 @@ import { css, unsafeCSS } from "lit";
28
27
  * want something like `0.7`–`0.8` so the edge row stays partly readable.
29
28
  * Deliberately *not* `@property`-registered, so it inherits normally and a
30
29
  * consumer override on the host reaches the shadow-DOM scroller.
30
+ * - `--scroll-fade-inset-start` / `--scroll-fade-inset-end` (default `0px`):
31
+ * move the fade edges inwards, leaving the inset strip unmasked. Use when
32
+ * something pinned overlays the scroller's edge (e.g. a sticky header row).
33
+ * These inherit, so reset them on nested faded elements.
31
34
  *
32
35
  * ```ts
33
36
  * import { scrollFadeStyles } from '../styles/scroll-fade.js';
@@ -70,14 +73,15 @@ function scrollFadeStyles(axis) {
70
73
  animation: ${unsafeCSS(keyframesName)};
71
74
  animation-timeline: ${unsafeCSS(timeline)};
72
75
  mask-image: linear-gradient(${unsafeCSS(gradientDirection)},
73
- rgb(0 0 0 / calc(1 - var(--scroll-fade-strength, 1))),
74
- black var(${unsafeCSS(start)}, 0px) calc(100% - var(${unsafeCSS(end)}, 0px)),
75
- rgb(0 0 0 / calc(1 - var(--scroll-fade-strength, 1)))
76
+ black var(--scroll-fade-inset-start, 0px),
77
+ rgb(0 0 0 / calc(1 - var(--scroll-fade-strength, 1))) var(--scroll-fade-inset-start, 0px),
78
+ black calc(var(--scroll-fade-inset-start, 0px) + var(${unsafeCSS(start)}, 0px))
79
+ calc(100% - var(--scroll-fade-inset-end, 0px) - var(${unsafeCSS(end)}, 0px)),
80
+ rgb(0 0 0 / calc(1 - var(--scroll-fade-strength, 1))) calc(100% - var(--scroll-fade-inset-end, 0px)),
81
+ black calc(100% - var(--scroll-fade-inset-end, 0px))
76
82
  );
77
83
  }
78
84
  `;
79
85
  }
80
86
  //#endregion
81
87
  export { scrollFadeStyles as t };
82
-
83
- //# sourceMappingURL=scroll-fade-BrNUIYnm.js.map
@@ -46,5 +46,4 @@ declare class SelectHorizElement extends SelectHorizElement_base {
46
46
  private _emitChange;
47
47
  }
48
48
  //#endregion
49
- export { SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap };
50
- //# sourceMappingURL=select-horiz.d.ts.map
49
+ export { SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap };
@@ -3,7 +3,7 @@ import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrA
3
3
  import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
4
4
  import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
5
5
  import "./interaction-ZTh4htzr.js";
6
- import { t as scrollFadeStyles } from "./scroll-fade-BrNUIYnm.js";
6
+ import { t as scrollFadeStyles } from "./scroll-fade-Xx28D7mH.js";
7
7
  import { t as WheelNudgeMixin } from "./wheel-nudge-D5rmht3v.js";
8
8
  import { LitElement, css, html } from "lit";
9
9
  import { property, state } from "lit/decorators.js";
@@ -260,5 +260,3 @@ __decorate([property({ type: String })], SelectHorizElement.prototype, "selected
260
260
  SelectHorizElement = __decorate([safeCustomElement(`ixfx-select-horiz`)], SelectHorizElement);
261
261
  //#endregion
262
262
  export { SelectHorizElement };
263
-
264
- //# sourceMappingURL=select-horiz.js.map
@@ -169,5 +169,4 @@ interface SliderInputElement {
169
169
  addEventListener: (<K extends keyof SliderInputElementEventMap>(type: K, listener: (this: SliderInputElement, event: SliderInputElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
170
170
  }
171
171
  //#endregion
172
- export { SliderValueMode as _, SliderInputChangeDetail as a, SliderInputInputDetail as c, SliderLaneType as d, SliderMarkerStyle as f, SliderValueDrag as g, SliderValueCFollow as h, SliderHandleKey as i, SliderInputInputEvent as l, SliderSingleStyle as m, SliderChangedField as n, SliderInputChangeEvent as o, SliderOrientation as p, SliderCrossover as r, SliderInputElementEventMap as s, SliderInputElement as t, SliderLaneData as u };
173
- //# sourceMappingURL=slider-input-BxURAAmD.d.ts.map
172
+ export { SliderValueMode as _, SliderInputChangeDetail as a, SliderInputInputDetail as c, SliderLaneType as d, SliderMarkerStyle as f, SliderValueDrag as g, SliderValueCFollow as h, SliderHandleKey as i, SliderInputInputEvent as l, SliderSingleStyle as m, SliderChangedField as n, SliderInputChangeEvent as o, SliderOrientation as p, SliderCrossover as r, SliderInputElementEventMap as s, SliderInputElement as t, SliderLaneData as u };
@@ -1970,5 +1970,3 @@ __decorate([property({
1970
1970
  SliderInputElement = __decorate([safeCustomElement(`ixfx-slider-input`)], SliderInputElement);
1971
1971
  //#endregion
1972
1972
  export { SliderInputElement as t };
1973
-
1974
- //# sourceMappingURL=slider-input-ByHdotzp.js.map
@@ -54,5 +54,4 @@ declare global {
54
54
  }
55
55
  }
56
56
  //#endregion
57
- export { SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement };
58
- //# sourceMappingURL=snackbar.d.ts.map
57
+ export { SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement };
package/dist/snackbar.js CHANGED
@@ -261,5 +261,3 @@ __decorate([state()], SnackbarElement.prototype, "_isOpen", void 0);
261
261
  SnackbarElement = __decorate([safeCustomElement(`ixfx-snackbar`)], SnackbarElement);
262
262
  //#endregion
263
263
  export { SnackbarElement };
264
-
265
- //# sourceMappingURL=snackbar.js.map
@@ -44,5 +44,4 @@ declare global {
44
44
  }
45
45
  }
46
46
  //#endregion
47
- export { ClickSnapMode, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic };
48
- //# sourceMappingURL=snap-container.d.ts.map
47
+ export { ClickSnapMode, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic };
@@ -294,5 +294,3 @@ __decorate([state()], SnapContainer.prototype, "_dragging", void 0);
294
294
  SnapContainer = __decorate([safeCustomElement(`ixfx-snap-container`)], SnapContainer);
295
295
  //#endregion
296
296
  export { SnapContainer };
297
-
298
- //# sourceMappingURL=snap-container.js.map