@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,783 +0,0 @@
1
- import { n as tickledStyles, r as TickledController, t as tickledItemStyles } from "./tickled-styles-Bgo_Lpw-.js";
2
- import { t as themeFallbacks } from "./fallbacks-DEE1nCTt.js";
3
- import { t as popupSurfaceStyles } from "./popup-D80sj2QC.js";
4
- import { n as safeCustomElement, t as __decorate } from "./decorate-DdjvVHS-.js";
5
- import "./icon-CK14NUcE.js";
6
- import "./interaction-_Y2qO3QI.js";
7
- import { LitElement, css, html } from "lit";
8
- import { property, query, state } from "lit/decorators.js";
9
- //#region src/menu/menu-container.ts
10
- let MenuContainer = class MenuContainer extends LitElement {
11
- constructor(..._args) {
12
- super(..._args);
13
- this.tickled = new TickledController(this, {
14
- getItems: () => {
15
- return this._getMenuItems().map((item, i) => ({
16
- id: i,
17
- enabled: !item.hasAttribute(`disabled`)
18
- }));
19
- },
20
- onTickle: (index) => {
21
- const items = this._getMenuItems();
22
- if (index !== void 0) {
23
- const item = items[index];
24
- item.tabIndex = 0;
25
- item.focus({ preventScroll: true });
26
- }
27
- },
28
- onStateChange: () => {
29
- this._syncTickledClasses();
30
- }
31
- });
32
- this._handleMouseOver = (e) => {
33
- const items = this._getMenuItems();
34
- const path = e.composedPath();
35
- const hoveredIndex = items.findIndex((item) => path.includes(item));
36
- if (hoveredIndex !== -1) {
37
- const item = items[hoveredIndex];
38
- const itemPathIndex = path.indexOf(item);
39
- if (!path.slice(0, itemPathIndex).some((node) => node instanceof Element && node.tagName === `IXFX-MENU-CONTAINER`)) this.tickled.handlePointerEnter(hoveredIndex);
40
- e.stopPropagation();
41
- }
42
- };
43
- this._handleKeydown = (e) => {
44
- const items = this._getMenuItems();
45
- if (items.length === 0) return;
46
- switch (e.key) {
47
- case `ArrowDown`:
48
- e.preventDefault();
49
- e.stopPropagation();
50
- this._focusNext(items, 1);
51
- break;
52
- case `ArrowUp`:
53
- e.preventDefault();
54
- e.stopPropagation();
55
- this._focusNext(items, -1);
56
- break;
57
- case `Home`:
58
- e.preventDefault();
59
- e.stopPropagation();
60
- this._focusItem(items, 0);
61
- break;
62
- case `End`:
63
- e.preventDefault();
64
- e.stopPropagation();
65
- this._focusItem(items, items.length - 1);
66
- break;
67
- case `Enter`:
68
- case ` `:
69
- e.preventDefault();
70
- e.stopPropagation();
71
- this._activateFocusedItem(items);
72
- break;
73
- }
74
- };
75
- }
76
- static {
77
- this.styles = [
78
- popupSurfaceStyles,
79
- themeFallbacks,
80
- tickledStyles,
81
- css`
82
- :host {
83
- display: block;
84
- }
85
-
86
- .popover {
87
- padding: var(--space-xs) 0;
88
- min-width: 160px;
89
- }
90
-
91
- :host {
92
- opacity: 1;
93
- transform: translateY(0) scale(1);
94
- transition: opacity 0.12s ease-out, transform 0.12s ease-out,
95
- display 0.12s allow-discrete, overlay 0.12s allow-discrete;
96
- }
97
-
98
- @starting-style :host {
99
- opacity: 0;
100
- transform: translateY(-4px) scale(0.97);
101
- }
102
-
103
- ::slotted(menu-separator) {
104
- display: block;
105
- margin: var(--space-xs) 0;
106
- }
107
- `
108
- ];
109
- }
110
- _updateIconSections() {
111
- const slot = this.shadowRoot?.querySelector(`slot`);
112
- if (!slot) return;
113
- const assigned = slot.assignedElements({ flatten: true });
114
- const sections = [];
115
- let section = [];
116
- for (const el of assigned) if (el.tagName === `IXFX-MENU-SEPARATOR` || el.tagName === `IXFX-MENU-HEADER`) {
117
- if (section.length > 0) {
118
- sections.push(section);
119
- section = [];
120
- }
121
- } else section.push(el);
122
- if (section.length > 0) sections.push(section);
123
- this._propagateContext();
124
- for (const sec of sections) {
125
- const hasIcon = sec.some((el) => {
126
- if (el.tagName === `IXFX-MENU-RADIO-GROUP`) return [...el.children].some((ri) => ri.hasAttribute(`icon-name`));
127
- return el.hasAttribute(`icon-name`);
128
- });
129
- for (const el of sec) if (el.tagName === `IXFX-MENU-RADIO-GROUP`) for (const ri of el.children) if (hasIcon) ri.setAttribute(`data-icon-section`, ``);
130
- else ri.removeAttribute(`data-icon-section`);
131
- else if (hasIcon) el.setAttribute(`data-icon-section`, ``);
132
- else el.removeAttribute(`data-icon-section`);
133
- }
134
- this.performUpdate();
135
- }
136
- _propagateContext() {
137
- const slot = this.shadowRoot?.querySelector(`slot`);
138
- if (!slot) return;
139
- for (const el of slot.assignedElements({ flatten: true })) {
140
- if (`registry` in el) el.registry = this.registry;
141
- if (`keyboardManager` in el) el.keyboardManager = this.keyboardManager;
142
- }
143
- }
144
- updated(changedProperties) {
145
- if (changedProperties.has(`registry`) || changedProperties.has(`keyboardManager`)) this._propagateContext();
146
- }
147
- /**
148
- * Sync data-input-mode to :host so CSS variables cascade to slotted items
149
- */
150
- willUpdate(changed) {
151
- super.willUpdate(changed);
152
- this.setAttribute(`data-input-mode`, this.tickled.inputMode);
153
- }
154
- render() {
155
- return html`
156
- <div
157
- class="popover popup-surface"
158
- role="menu"
159
- @keydown=${this._handleKeydown}
160
- @mouseover=${this._handleMouseOver}
161
- >
162
- <slot @slotchange=${this._updateIconSections}></slot>
163
- </div>
164
- `;
165
- }
166
- _getMenuItems() {
167
- const slot = this.shadowRoot?.querySelector(`slot`);
168
- if (!slot) return [];
169
- const skipTags = [`IXFX-MENU-SEPARATOR`, `IXFX-MENU-HEADER`];
170
- const result = [];
171
- for (const el of slot.assignedElements({ flatten: true })) {
172
- if (skipTags.includes(el.tagName)) continue;
173
- if (el.hasAttribute(`disabled`)) continue;
174
- const role = el.getAttribute(`role`);
175
- if (role === `none` || role === `presentation`) continue;
176
- if (el.tagName === `IXFX-MENU-RADIO-GROUP`) {
177
- const groupSlot = el.shadowRoot?.querySelector(`slot`);
178
- for (const radioItem of groupSlot?.assignedElements({ flatten: true }) ?? []) if (!radioItem.hasAttribute(`disabled`)) result.push(radioItem);
179
- } else result.push(el);
180
- }
181
- return result;
182
- }
183
- /**
184
- * Sync .tickled class on slotted items to match controller state
185
- * This is called via onStateChange whenever the tickled state changes
186
- */
187
- _syncTickledClasses() {
188
- const items = this._getMenuItems();
189
- items.forEach((item, i) => {
190
- if (this.tickled.isTickled(i)) {
191
- item.classList.add(`tickled`);
192
- item.tabIndex = 0;
193
- const innerItem = item.shadowRoot?.querySelector(`.item`);
194
- if (innerItem) {
195
- innerItem.style.background = `rgba(0, 0, 0, 0.06)`;
196
- innerItem.style.borderColor = `var(--accent)`;
197
- innerItem.style.color = `inherit`;
198
- }
199
- } else {
200
- item.classList.remove(`tickled`);
201
- item.tabIndex = -1;
202
- const innerItem = item.shadowRoot?.querySelector(`.item`);
203
- if (innerItem) {
204
- innerItem.style.background = ``;
205
- innerItem.style.borderColor = ``;
206
- innerItem.style.color = ``;
207
- }
208
- }
209
- });
210
- if (this.tickled.inputMode === `keyboard` && this.tickled.tickledId !== void 0) items[this.tickled.tickledId]?.focus();
211
- }
212
- focusFirst() {
213
- this.tickled.handleKeyboardNavigation(`first`);
214
- }
215
- _focusNext(items, direction) {
216
- if (items.length === 0) return;
217
- this.tickled.handleKeyboardNavigation(direction > 0 ? `next` : `previous`);
218
- }
219
- _focusItem(items, index) {
220
- if (items.length === 0) return;
221
- const clampedIndex = Math.max(0, Math.min(index, items.length - 1));
222
- this.tickled.handleKeyboardNavigation(clampedIndex);
223
- }
224
- _activateFocusedItem(items) {
225
- const tickledIndex = this.tickled.tickledId;
226
- if (tickledIndex === void 0) return;
227
- const item = items[tickledIndex];
228
- if (!item) return;
229
- const tagName = item.tagName;
230
- if (tagName === `IXFX-MENU-SUB-TRIGGER`) return;
231
- if (tagName === `IXFX-MENU-CHECK-ITEM`) {
232
- const checkItem = item;
233
- checkItem.checked = !checkItem.checked;
234
- checkItem.dispatchEvent(new CustomEvent(`command`, {
235
- detail: {
236
- command: checkItem.command,
237
- checked: checkItem.checked
238
- },
239
- bubbles: true,
240
- composed: true
241
- }));
242
- return;
243
- }
244
- if (tagName === `IXFX-MENU-RADIO-ITEM`) {
245
- item.dispatchEvent(new CustomEvent(`radio-select`, {
246
- detail: { value: item.value },
247
- bubbles: true,
248
- composed: true
249
- }));
250
- return;
251
- }
252
- if (tagName === `IXFX-MENU-ITEM`) {
253
- const command = item.command;
254
- if (command) item.dispatchEvent(new CustomEvent(`command`, {
255
- detail: { command },
256
- bubbles: true,
257
- composed: true
258
- }));
259
- return;
260
- }
261
- item.click();
262
- }
263
- };
264
- __decorate([property({
265
- type: String,
266
- attribute: `anchor`
267
- })], MenuContainer.prototype, "anchor", void 0);
268
- __decorate([property({ attribute: false })], MenuContainer.prototype, "registry", void 0);
269
- __decorate([property({ attribute: false })], MenuContainer.prototype, "keyboardManager", void 0);
270
- __decorate([query(`.popover`)], MenuContainer.prototype, "_popover", void 0);
271
- MenuContainer = __decorate([safeCustomElement(`ixfx-menu-container`)], MenuContainer);
272
- //#endregion
273
- //#region src/menu/menu-trigger.ts
274
- var _MenuTrigger;
275
- let MenuTrigger = class MenuTrigger extends LitElement {
276
- static {
277
- _MenuTrigger = this;
278
- }
279
- constructor(..._args) {
280
- super(..._args);
281
- this.mode = `trigger`;
282
- this.label = `⋮`;
283
- this.placement = `bottom-start`;
284
- this.tabStop = true;
285
- this._isOpen = false;
286
- this._hasMenu = false;
287
- this._hasTriggerSlot = false;
288
- this._anchorName = `--mt-${_MenuTrigger._count++}`;
289
- this._clickListener = this._handleClickOutside.bind(this);
290
- this._handlePopoverToggle = (e) => {
291
- if (e.newState === `closed`) {
292
- this._isOpen = false;
293
- document.removeEventListener(`click`, this._clickListener);
294
- this.dispatchEvent(new CustomEvent(`menu-trigger-close`, {
295
- bubbles: true,
296
- composed: true
297
- }));
298
- }
299
- };
300
- this._handleKeydown = (e) => {
301
- if (!this._isOpen) return;
302
- if (e.key === `Escape`) {
303
- e.preventDefault();
304
- e.stopPropagation();
305
- this._closeMenu();
306
- this._triggerBtn?.focus();
307
- } else if (e.key === `Tab`) {
308
- this._closeMenu();
309
- this._triggerBtn?.focus();
310
- }
311
- };
312
- }
313
- static {
314
- this._count = 0;
315
- }
316
- connectedCallback() {
317
- super.connectedCallback();
318
- document.addEventListener(`keydown`, this._handleKeydown);
319
- this.addEventListener(`command`, this._handleCommand);
320
- this.addEventListener(`radio-change`, this._handleRadioChange);
321
- }
322
- disconnectedCallback() {
323
- super.disconnectedCallback();
324
- document.removeEventListener(`keydown`, this._handleKeydown);
325
- this.removeEventListener(`command`, this._handleCommand);
326
- this.removeEventListener(`radio-change`, this._handleRadioChange);
327
- document.removeEventListener(`click`, this._clickListener);
328
- }
329
- firstUpdated() {
330
- this.style.setProperty(`--anchor-name`, this._anchorName);
331
- this._popup.addEventListener(`toggle`, this._handlePopoverToggle);
332
- this.updateComplete.then(() => {
333
- const slot = this.shadowRoot?.querySelector(`slot[name="menu"]`);
334
- if (slot) {
335
- if (slot.assignedElements({ flatten: true }).length > 0) {
336
- this._hasMenu = true;
337
- this._propagateContext();
338
- }
339
- }
340
- this._updatePosition();
341
- });
342
- }
343
- updated(changedProperties) {
344
- if (changedProperties.has(`registry`) || changedProperties.has(`keyboardManager`)) this._propagateContext();
345
- }
346
- _updatePosition() {
347
- const pos = {
348
- "bottom-start": {
349
- top: `anchor(bottom)`,
350
- left: `anchor(left)`
351
- },
352
- "bottom-end": {
353
- top: `anchor(bottom)`,
354
- left: `anchor(right)`
355
- },
356
- "right-start": {
357
- top: `anchor(top)`,
358
- left: `anchor(right)`
359
- }
360
- }[this.placement];
361
- this._popup.style.top = pos.top;
362
- this._popup.style.left = pos.left;
363
- this._popup.style.positionAnchor = this._anchorName;
364
- }
365
- _propagateContext() {
366
- const items = (this.shadowRoot?.querySelector(`slot[name="menu"]`))?.assignedElements({ flatten: true }) ?? [];
367
- for (const el of items) {
368
- if (`registry` in el) el.registry = this.registry;
369
- if (`keyboardManager` in el) el.keyboardManager = this.keyboardManager;
370
- }
371
- }
372
- _handleSlotChange(e) {
373
- const assigned = e.target.assignedElements({ flatten: true });
374
- this._hasMenu = assigned.length > 0;
375
- this._propagateContext();
376
- }
377
- _handleTriggerSlotChange(e) {
378
- const slot = e.target;
379
- this._hasTriggerSlot = slot.assignedElements({ flatten: true }).length > 0;
380
- }
381
- get isOpen() {
382
- return this._isOpen;
383
- }
384
- openMenu() {
385
- this._openMenu();
386
- }
387
- closeMenu() {
388
- this._closeMenu();
389
- }
390
- focusTrigger() {
391
- this._triggerBtn?.focus();
392
- }
393
- _openMenu() {
394
- if (this._isOpen || !this._popup?.popover) return;
395
- try {
396
- this._popup.showPopover({ source: this });
397
- this._isOpen = true;
398
- document.addEventListener(`click`, this._clickListener);
399
- this.dispatchEvent(new CustomEvent(`menu-trigger-open`, {
400
- bubbles: true,
401
- composed: true
402
- }));
403
- requestAnimationFrame(() => {
404
- this._getMenuContainer()?.focusFirst();
405
- });
406
- } catch (err) {
407
- console.warn(`showPopover failed:`, err);
408
- }
409
- }
410
- _closeMenu() {
411
- if (!this._isOpen) return;
412
- if (this._popup?.popover) try {
413
- this._popup.hidePopover();
414
- } catch {}
415
- this._isOpen = false;
416
- document.removeEventListener(`click`, this._clickListener);
417
- }
418
- _handleTriggerClick(e) {
419
- e.stopPropagation();
420
- if (this._isOpen) {
421
- this._closeMenu();
422
- this._triggerBtn?.focus();
423
- } else this._openMenu();
424
- }
425
- _handleClickOutside(e) {
426
- if (!this.contains(e.target)) {
427
- if (this._popup?.popover && this._popup.hasAttribute(`open`)) try {
428
- this._popup.hidePopover();
429
- } catch {}
430
- }
431
- }
432
- _getMenuContainer() {
433
- return ((this.shadowRoot?.querySelector(`slot[name="menu"]`))?.assignedElements({ flatten: true }) ?? []).find((el) => el.tagName === `IXFX-MENU-CONTAINER`) ?? null;
434
- }
435
- _handleCommand(e) {
436
- if (this._popup?.popover) try {
437
- this._popup.hidePopover();
438
- } catch {}
439
- this.dispatchEvent(new CustomEvent(`menu-command`, {
440
- detail: e.detail,
441
- bubbles: true,
442
- composed: true
443
- }));
444
- }
445
- _handleRadioChange(e) {
446
- if (this._popup?.popover) try {
447
- this._popup.hidePopover();
448
- } catch {}
449
- this.dispatchEvent(new CustomEvent(`menu-command`, {
450
- detail: {
451
- command: e.detail.name,
452
- value: e.detail.value
453
- },
454
- bubbles: true,
455
- composed: true
456
- }));
457
- }
458
- _handleContextMenu(e) {
459
- if (this.mode !== `context`) return;
460
- e.preventDefault();
461
- this._popup.style.top = `${e.clientY}px`;
462
- this._popup.style.left = `${e.clientX}px`;
463
- this._popup.style.position = `fixed`;
464
- this._popup.style.positionAnchor = `none`;
465
- if (this._popup?.popover) try {
466
- this._popup.showPopover();
467
- } catch {}
468
- }
469
- static {
470
- this.styles = [
471
- themeFallbacks,
472
- popupSurfaceStyles,
473
- css`
474
- :host {
475
- display: inline-block;
476
- position: relative;
477
- --ixfx-button-padding: var(--ixfx-button-padding, var(--space-s) var(--space-m));
478
- }
479
-
480
- .trigger-area {
481
- anchor-name: var(--anchor-name);
482
- display: inline-flex;
483
- align-items: stretch;
484
- }
485
-
486
- .trigger-btn {
487
- background: none;
488
- border: none;
489
- color: var(--surface-3-text);
490
- cursor: pointer;
491
- padding: var(--ixfx-button-padding);
492
- font-family: var(--font-family, inherit);
493
- font-size: var(--text-m);
494
- font-weight: 600;
495
- border-radius: var(--radius-s);
496
- opacity: 0.6;
497
- transition: opacity var(--transition), background var(--transition);
498
- }
499
-
500
- .trigger-btn:hover {
501
- background: var(--_trigger-hover-bg, var(--surface-4));
502
- color: var(--surface-3-text);
503
- opacity: var(--_trigger-hover-opacity, 1);
504
- }
505
-
506
- .trigger-btn:focus-visible {
507
- background: var(--surface-4);
508
- color: var(--surface-3-text);
509
- outline: none;
510
- opacity: 1;
511
- }
512
-
513
- .popup {
514
- position: fixed;
515
- position-anchor: var(--anchor-name);
516
- inset: auto;
517
- margin: 0;
518
- padding: 0;
519
- border: none;
520
- background: transparent;
521
- z-index: 100;
522
- position-try-fallbacks: flip-inline, flip-block, flip-block flip-inline;
523
- }
524
-
525
- .popup[popover] {
526
- opacity: 1;
527
- transform: translateY(0) scale(1);
528
- transition: opacity 0.12s ease-out, transform 0.12s ease-out,
529
- display 0.12s allow-discrete, overlay 0.12s allow-discrete;
530
- }
531
-
532
- @starting-style .popup {
533
- opacity: 0;
534
- transform: translateY(-4px) scale(0.97);
535
- }
536
- `
537
- ];
538
- }
539
- render() {
540
- const showButton = this.mode !== `dropdown` && this._hasMenu && !this._hasTriggerSlot;
541
- return html`
542
- <div
543
- class="trigger-area"
544
- @click=${this._handleTriggerClick}
545
- @contextmenu=${this._handleContextMenu}
546
- >
547
- ${showButton ? html`<button class="trigger-btn" part="base" tabindex=${this.tabStop ? `0` : `-1`}>${this.label}</button>` : null}
548
- <slot name="trigger" @slotchange=${this._handleTriggerSlotChange}></slot>
549
- </div>
550
- <div
551
- class="popup popup-surface"
552
- popover="auto"
553
- @click=${(e) => e.stopPropagation()}
554
- >
555
- <slot name="menu" @slotchange=${this._handleSlotChange}></slot>
556
- </div>
557
- `;
558
- }
559
- };
560
- __decorate([property({ type: String })], MenuTrigger.prototype, "mode", void 0);
561
- __decorate([property({ type: String })], MenuTrigger.prototype, "label", void 0);
562
- __decorate([property({ attribute: false })], MenuTrigger.prototype, "registry", void 0);
563
- __decorate([property({ attribute: false })], MenuTrigger.prototype, "keyboardManager", void 0);
564
- __decorate([property({ type: String })], MenuTrigger.prototype, "placement", void 0);
565
- __decorate([property({
566
- type: Boolean,
567
- attribute: `tab-stop`
568
- })], MenuTrigger.prototype, "tabStop", void 0);
569
- __decorate([state()], MenuTrigger.prototype, "_isOpen", void 0);
570
- __decorate([state()], MenuTrigger.prototype, "_hasMenu", void 0);
571
- __decorate([state()], MenuTrigger.prototype, "_hasTriggerSlot", void 0);
572
- __decorate([query(`.trigger-btn`)], MenuTrigger.prototype, "_triggerBtn", void 0);
573
- __decorate([query(`.popup`)], MenuTrigger.prototype, "_popup", void 0);
574
- MenuTrigger = _MenuTrigger = __decorate([safeCustomElement(`ixfx-menu-trigger`)], MenuTrigger);
575
- //#endregion
576
- //#region src/menu/menu-item.ts
577
- let MenuItem = class MenuItem extends LitElement {
578
- constructor(..._args) {
579
- super(..._args);
580
- this.command = ``;
581
- this.commandArgs = ``;
582
- this.label = ``;
583
- this.disabled = false;
584
- this.iconName = ``;
585
- this._hasChildren = false;
586
- this._hoverTimeout = null;
587
- }
588
- disconnectedCallback() {
589
- super.disconnectedCallback();
590
- if (this._hoverTimeout) clearTimeout(this._hoverTimeout);
591
- }
592
- _handleSlotChange() {
593
- const assigned = this._slot?.assignedElements() ?? [];
594
- this._hasChildren = assigned.length > 0;
595
- }
596
- _handleMouseEnter() {
597
- if (this.disabled || !this._hasChildren || !this.submenuPopover) return;
598
- if (this._hoverTimeout) clearTimeout(this._hoverTimeout);
599
- this._hoverTimeout = window.setTimeout(() => {
600
- this._showSubmenu();
601
- }, 150);
602
- }
603
- _handleMouseLeave() {
604
- if (this._hoverTimeout) {
605
- clearTimeout(this._hoverTimeout);
606
- this._hoverTimeout = null;
607
- }
608
- this._hideSubmenu();
609
- }
610
- _showSubmenu() {
611
- if (!this.submenuPopover?.popover) return;
612
- try {
613
- this.submenuPopover.showPopover();
614
- } catch (err) {
615
- console.warn(`showPopover failed:`, err);
616
- }
617
- }
618
- _hideSubmenu() {
619
- if (!this.submenuPopover?.popover) return;
620
- try {
621
- this.submenuPopover.hidePopover();
622
- } catch (err) {
623
- console.warn(`hidePopover failed:`, err);
624
- }
625
- }
626
- handleClick() {
627
- if (this.disabled) return;
628
- this.dispatchEvent(new CustomEvent(`command`, {
629
- detail: {
630
- command: this.command,
631
- args: this.commandArgs
632
- },
633
- bubbles: true,
634
- composed: true
635
- }));
636
- }
637
- _resolvedLabel() {
638
- if (this.label) return this.label;
639
- if (this.registry && this.command) return this.registry.get(this.command)?.label ?? ``;
640
- return ``;
641
- }
642
- _resolvedIcon() {
643
- if (this.iconName) return this.iconName;
644
- if (this.registry && this.command) return this.registry.get(this.command)?.icon ?? null;
645
- return null;
646
- }
647
- willUpdate(changedProperties) {
648
- super.willUpdate(changedProperties);
649
- const resolvedIcon = this._resolvedIcon();
650
- if (resolvedIcon && !this.iconName) this.setAttribute(`data-icon-section`, ``);
651
- else if (!resolvedIcon && !this.iconName) this.removeAttribute(`data-icon-section`);
652
- }
653
- updated(changedProperties) {
654
- super.updated(changedProperties);
655
- }
656
- _getShortcut() {
657
- if (!this.keyboardManager || !this.command) return null;
658
- const binding = (this.keyboardManager.getBindings?.() ?? []).find((b) => b.commandId === this.command);
659
- if (!binding) return null;
660
- const mods = Array.from(binding.modifiers ?? [], (m) => ({
661
- ctrl: `⌃`,
662
- shift: `⇧`,
663
- alt: `⌥`,
664
- meta: `⌘`
665
- })[m] ?? m);
666
- const key = binding.key?.length === 1 ? binding.key.toUpperCase() : binding.key;
667
- return [...mods, key].join(``);
668
- }
669
- static {
670
- this.styles = [
671
- themeFallbacks,
672
- tickledItemStyles,
673
- css`
674
- :host {
675
- display: block;
676
- }
677
-
678
- .item {
679
- display: flex !important;
680
- align-items: center;
681
- padding: 6px var(--space-m);
682
- font-size: var(--text-m);
683
- background: var(--item-bg, transparent);
684
- border: var(--item-border, 1px solid transparent);
685
- color: var(--item-text, inherit);
686
- }
687
-
688
- :host(.tickled) .item {
689
- background: var(--item-bg-tickled);
690
- border: var(--item-border-tickled);
691
- color: var(--item-text-tickled);
692
- }
693
-
694
- :host(:focus) {
695
- outline: none;
696
- }
697
-
698
- .item.disabled {
699
- opacity: var(--disabled-opacity);
700
- cursor: default;
701
- }
702
-
703
- .item.disabled:hover {
704
- background: transparent;
705
- }
706
-
707
- .icon-slot {
708
- width: 0;
709
- overflow: hidden;
710
- flex-shrink: 0;
711
- display: inline-flex;
712
- align-items: center;
713
- justify-content: center;
714
- }
715
-
716
- :host([icon-name]) .icon-slot,
717
- :host([data-icon-section]) .icon-slot {
718
- width: 1em;
719
- height: 1em;
720
- margin-right: var(--space-s);
721
- }
722
-
723
- .label {
724
- flex: 1;
725
- }
726
-
727
- .shortcut {
728
- margin-left: auto;
729
- color: var(--surface-muted-text);
730
- font-size: var(--text-s);
731
- }
732
-
733
- .arrow {
734
- color: var(--surface-muted-text);
735
- margin-left: var(--space-m);
736
- }
737
- `
738
- ];
739
- }
740
- render() {
741
- const shortcut = this._getShortcut();
742
- const resolvedIcon = this._resolvedIcon();
743
- return html`
744
- <div
745
- class="item ${this.disabled ? `disabled` : ``}"
746
- @click=${this.handleClick}
747
- @mouseenter=${this._handleMouseEnter}
748
- @mouseleave=${this._handleMouseLeave}
749
- tabindex="${this.disabled ? -1 : 0}"
750
- role="menuitem"
751
- aria-haspopup="${this._hasChildren ? `true` : `false`}"
752
- aria-expanded="${this.submenuPopover?.matches(`:popover-open`) ?? false}"
753
- >
754
- <span class="icon-slot">${resolvedIcon ? html`<ixfx-icon name="${resolvedIcon}"></ixfx-icon>` : null}</span>
755
- <span class="label"><slot></slot>${this._resolvedLabel()}</span>
756
- ${shortcut ? html`<span class="shortcut">${shortcut}</span>` : null}
757
- ${this._hasChildren ? html`<span class="arrow"><ixfx-icon name="chevron-right"></ixfx-icon></span>` : null}
758
- </div>
759
- <slot @slotchange=${this._handleSlotChange}></slot>
760
- `;
761
- }
762
- };
763
- __decorate([property({ type: String })], MenuItem.prototype, "command", void 0);
764
- __decorate([property({
765
- type: String,
766
- attribute: `command-args`
767
- })], MenuItem.prototype, "commandArgs", void 0);
768
- __decorate([property({ type: String })], MenuItem.prototype, "label", void 0);
769
- __decorate([property({ type: Boolean })], MenuItem.prototype, "disabled", void 0);
770
- __decorate([property({
771
- type: String,
772
- attribute: `icon-name`
773
- })], MenuItem.prototype, "iconName", void 0);
774
- __decorate([property({ attribute: false })], MenuItem.prototype, "registry", void 0);
775
- __decorate([property({ attribute: false })], MenuItem.prototype, "keyboardManager", void 0);
776
- __decorate([property({ attribute: false })], MenuItem.prototype, "submenuPopover", void 0);
777
- __decorate([state()], MenuItem.prototype, "_hasChildren", void 0);
778
- __decorate([query(`slot`)], MenuItem.prototype, "_slot", void 0);
779
- MenuItem = __decorate([safeCustomElement(`ixfx-menu-item`)], MenuItem);
780
- //#endregion
781
- export { MenuTrigger as n, MenuContainer as r, MenuItem as t };
782
-
783
- //# sourceMappingURL=menu-item-yHSPV8nS.js.map