aeico-components 0.1.7 → 0.1.8

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 (349) hide show
  1. package/dist/alert.cjs +637 -4
  2. package/dist/alert.cjs.map +7 -1
  3. package/dist/alert.js +575 -3
  4. package/dist/alert.js.map +7 -1
  5. package/dist/badge.cjs +573 -4
  6. package/dist/badge.cjs.map +7 -1
  7. package/dist/badge.js +510 -3
  8. package/dist/badge.js.map +7 -1
  9. package/dist/breadcrumb.cjs +709 -5
  10. package/dist/breadcrumb.cjs.map +7 -1
  11. package/dist/breadcrumb.js +644 -4
  12. package/dist/breadcrumb.js.map +7 -1
  13. package/dist/button-group.cjs +546 -4
  14. package/dist/button-group.cjs.map +7 -1
  15. package/dist/button-group.js +489 -3
  16. package/dist/button-group.js.map +7 -1
  17. package/dist/button.cjs +834 -4
  18. package/dist/button.cjs.map +7 -1
  19. package/dist/button.js +771 -3
  20. package/dist/button.js.map +7 -1
  21. package/dist/card.cjs +574 -4
  22. package/dist/card.cjs.map +7 -1
  23. package/dist/card.js +516 -3
  24. package/dist/card.js.map +7 -1
  25. package/dist/checkbox.cjs +867 -4
  26. package/dist/checkbox.cjs.map +7 -1
  27. package/dist/checkbox.js +794 -3
  28. package/dist/checkbox.js.map +7 -1
  29. package/dist/copy-button.cjs +1046 -4
  30. package/dist/copy-button.cjs.map +7 -1
  31. package/dist/copy-button.js +969 -3
  32. package/dist/copy-button.js.map +7 -1
  33. package/dist/detail-group.cjs +531 -4
  34. package/dist/detail-group.cjs.map +7 -1
  35. package/dist/detail-group.js +474 -3
  36. package/dist/detail-group.js.map +7 -1
  37. package/dist/detail.cjs +627 -4
  38. package/dist/detail.cjs.map +7 -1
  39. package/dist/detail.js +569 -3
  40. package/dist/detail.js.map +7 -1
  41. package/dist/dialog.cjs +738 -4
  42. package/dist/dialog.cjs.map +7 -1
  43. package/dist/dialog.js +665 -3
  44. package/dist/dialog.js.map +7 -1
  45. package/dist/divider.cjs +558 -4
  46. package/dist/divider.cjs.map +7 -1
  47. package/dist/divider.js +502 -3
  48. package/dist/divider.js.map +7 -1
  49. package/dist/drawer.cjs +818 -4
  50. package/dist/drawer.cjs.map +7 -1
  51. package/dist/drawer.js +749 -3
  52. package/dist/drawer.js.map +7 -1
  53. package/dist/dropdown.cjs +1396 -5
  54. package/dist/dropdown.cjs.map +7 -1
  55. package/dist/dropdown.js +1316 -4
  56. package/dist/dropdown.js.map +7 -1
  57. package/dist/icon-button.cjs +999 -4
  58. package/dist/icon-button.cjs.map +7 -1
  59. package/dist/icon-button.js +930 -3
  60. package/dist/icon-button.js.map +7 -1
  61. package/dist/icon.cjs +613 -4
  62. package/dist/icon.cjs.map +7 -1
  63. package/dist/icon.js +547 -3
  64. package/dist/icon.js.map +7 -1
  65. package/dist/index.cjs +6532 -74
  66. package/dist/index.cjs.map +7 -1
  67. package/dist/index.js +6183 -73
  68. package/dist/index.js.map +7 -1
  69. package/dist/menu.cjs +841 -4
  70. package/dist/menu.cjs.map +7 -1
  71. package/dist/menu.js +785 -3
  72. package/dist/menu.js.map +7 -1
  73. package/dist/navbar.cjs +622 -4
  74. package/dist/navbar.cjs.map +7 -1
  75. package/dist/navbar.js +564 -3
  76. package/dist/navbar.js.map +7 -1
  77. package/dist/number-input.cjs +885 -4
  78. package/dist/number-input.cjs.map +7 -1
  79. package/dist/number-input.js +817 -3
  80. package/dist/number-input.js.map +7 -1
  81. package/dist/pagination.cjs +1099 -4
  82. package/dist/pagination.cjs.map +7 -1
  83. package/dist/pagination.js +1029 -3
  84. package/dist/pagination.js.map +7 -1
  85. package/dist/progress-bar.cjs +581 -4
  86. package/dist/progress-bar.cjs.map +7 -1
  87. package/dist/progress-bar.js +525 -3
  88. package/dist/progress-bar.js.map +7 -1
  89. package/dist/radio-group.cjs +973 -5
  90. package/dist/radio-group.cjs.map +7 -1
  91. package/dist/radio-group.js +899 -4
  92. package/dist/radio-group.js.map +7 -1
  93. package/dist/select.cjs +1242 -45
  94. package/dist/select.cjs.map +7 -1
  95. package/dist/select.js +1159 -44
  96. package/dist/select.js.map +7 -1
  97. package/dist/slider.cjs +1420 -4
  98. package/dist/slider.cjs.map +7 -1
  99. package/dist/slider.js +1351 -3
  100. package/dist/slider.js.map +7 -1
  101. package/dist/spinner.cjs +587 -4
  102. package/dist/spinner.cjs.map +7 -1
  103. package/dist/spinner.js +528 -3
  104. package/dist/spinner.js.map +7 -1
  105. package/dist/styles/layout.cjs +1 -0
  106. package/dist/styles/layout.js +1 -0
  107. package/dist/styles/radius.cjs +1 -0
  108. package/dist/styles/radius.js +1 -0
  109. package/dist/styles/variables.cjs +1 -0
  110. package/dist/styles/variables.js +1 -0
  111. package/dist/switch.cjs +1092 -4
  112. package/dist/switch.cjs.map +7 -1
  113. package/dist/switch.js +1013 -3
  114. package/dist/switch.js.map +7 -1
  115. package/dist/tabs.cjs +660 -6
  116. package/dist/tabs.cjs.map +7 -1
  117. package/dist/tabs.js +591 -5
  118. package/dist/tabs.js.map +7 -1
  119. package/dist/tag.cjs +591 -3
  120. package/dist/tag.cjs.map +7 -1
  121. package/dist/tag.js +532 -2
  122. package/dist/tag.js.map +7 -1
  123. package/dist/text-input.cjs +829 -4
  124. package/dist/text-input.cjs.map +7 -1
  125. package/dist/text-input.js +761 -3
  126. package/dist/text-input.js.map +7 -1
  127. package/dist/textarea.cjs +914 -3
  128. package/dist/textarea.cjs.map +7 -1
  129. package/dist/textarea.js +854 -2
  130. package/dist/textarea.js.map +7 -1
  131. package/dist/tooltip.cjs +764 -4
  132. package/dist/tooltip.cjs.map +7 -1
  133. package/dist/tooltip.js +711 -3
  134. package/dist/tooltip.js.map +7 -1
  135. package/dist/tree.cjs +1059 -4
  136. package/dist/tree.cjs.map +7 -1
  137. package/dist/tree.js +985 -3
  138. package/dist/tree.js.map +7 -1
  139. package/dist/types/dialog/dialog.d.ts +1 -0
  140. package/dist/types/drawer/drawer.d.ts +2 -0
  141. package/dist/types/icon/defines.d.ts +2 -0
  142. package/dist/types/menu/defines.d.ts +1 -0
  143. package/dist/types/menu/menu-item.d.ts +1 -0
  144. package/dist/types/menu/menu.d.ts +1 -0
  145. package/dist/types/styles/layout.d.ts +2 -0
  146. package/dist/types/styles/radius.d.ts +2 -0
  147. package/dist/types/styles/variables.d.ts +2 -0
  148. package/package.json +31 -7
  149. package/src/alert/alert.ts +3 -3
  150. package/src/badge/badge.ts +4 -4
  151. package/src/breadcrumb/breadcrumb-item.ts +2 -2
  152. package/src/breadcrumb/breadcrumb.ts +3 -3
  153. package/src/button/button.ts +4 -4
  154. package/src/button-group/button-group.ts +8 -9
  155. package/src/card/card.ts +3 -3
  156. package/src/checkbox/checkbox.ts +6 -6
  157. package/src/copy-button/copy-button.ts +4 -4
  158. package/src/detail/detail.ts +3 -3
  159. package/src/detail-group/detail-group.ts +2 -2
  160. package/src/dialog/dialog.ts +15 -14
  161. package/src/divider/divider.ts +3 -3
  162. package/src/drawer/drawer.ts +28 -11
  163. package/src/dropdown/dropdown-item.ts +2 -2
  164. package/src/dropdown/dropdown.ts +2 -2
  165. package/src/icon/defines.ts +2 -0
  166. package/src/icon/icon.ts +4 -4
  167. package/src/menu/defines.ts +1 -0
  168. package/src/menu/menu-item.ts +14 -4
  169. package/src/menu/menu.ts +5 -2
  170. package/src/navbar/navbar.ts +3 -3
  171. package/src/number-input/number-input.ts +5 -5
  172. package/src/pagination/pagination.ts +3 -3
  173. package/src/progress-bar/progress-bar.ts +3 -3
  174. package/src/radio-group/radio-group.ts +12 -8
  175. package/src/select/select-option.ts +2 -2
  176. package/src/select/select.ts +5 -5
  177. package/src/slider/slider.ts +6 -6
  178. package/src/spinner/spinner.ts +4 -4
  179. package/src/styles/components/button-group.css +2 -0
  180. package/src/styles/components/card.css +42 -18
  181. package/src/styles/components/checkbox.css +16 -5
  182. package/src/styles/components/dialog.css +1 -1
  183. package/src/styles/components/drawer.css +50 -9
  184. package/src/styles/components/field-label.css +1 -1
  185. package/src/styles/components/menu-item.css +6 -0
  186. package/src/styles/components/navbar.css +7 -28
  187. package/src/styles/components/radio-group.css +19 -0
  188. package/src/styles/components/slider.css +30 -5
  189. package/src/styles/components/switch.css +16 -2
  190. package/src/styles/layout.css +5 -2
  191. package/src/styles/radius.css +15 -0
  192. package/src/switch/switch.ts +6 -6
  193. package/src/tabs/tab-panel.ts +1 -1
  194. package/src/tabs/tab.ts +1 -1
  195. package/src/tabs/tabs.ts +2 -2
  196. package/src/tag/tag.ts +4 -4
  197. package/src/text-input/text-input.ts +5 -5
  198. package/src/textarea/textarea.ts +5 -5
  199. package/src/tooltip/tooltip.ts +2 -2
  200. package/src/tree/tree-item.ts +2 -2
  201. package/src/tree/tree.ts +2 -2
  202. package/dist/chunks/action-button.cjs +0 -296
  203. package/dist/chunks/action-button.cjs.map +0 -1
  204. package/dist/chunks/action-button.js +0 -297
  205. package/dist/chunks/action-button.js.map +0 -1
  206. package/dist/chunks/aeico-component.cjs +0 -17
  207. package/dist/chunks/aeico-component.cjs.map +0 -1
  208. package/dist/chunks/aeico-component.js +0 -18
  209. package/dist/chunks/aeico-component.js.map +0 -1
  210. package/dist/chunks/alert.cjs +0 -164
  211. package/dist/chunks/alert.cjs.map +0 -1
  212. package/dist/chunks/alert.js +0 -165
  213. package/dist/chunks/alert.js.map +0 -1
  214. package/dist/chunks/badge.cjs +0 -85
  215. package/dist/chunks/badge.cjs.map +0 -1
  216. package/dist/chunks/badge.js +0 -86
  217. package/dist/chunks/badge.js.map +0 -1
  218. package/dist/chunks/breadcrumb-item.cjs +0 -261
  219. package/dist/chunks/breadcrumb-item.cjs.map +0 -1
  220. package/dist/chunks/breadcrumb-item.js +0 -262
  221. package/dist/chunks/breadcrumb-item.js.map +0 -1
  222. package/dist/chunks/button-group.cjs +0 -79
  223. package/dist/chunks/button-group.cjs.map +0 -1
  224. package/dist/chunks/button-group.js +0 -80
  225. package/dist/chunks/button-group.js.map +0 -1
  226. package/dist/chunks/button.cjs +0 -337
  227. package/dist/chunks/button.cjs.map +0 -1
  228. package/dist/chunks/button.js +0 -338
  229. package/dist/chunks/button.js.map +0 -1
  230. package/dist/chunks/card.cjs +0 -93
  231. package/dist/chunks/card.cjs.map +0 -1
  232. package/dist/chunks/card.js +0 -94
  233. package/dist/chunks/card.js.map +0 -1
  234. package/dist/chunks/checkbox.cjs +0 -86
  235. package/dist/chunks/checkbox.cjs.map +0 -1
  236. package/dist/chunks/checkbox.js +0 -87
  237. package/dist/chunks/checkbox.js.map +0 -1
  238. package/dist/chunks/color.cjs +0 -4
  239. package/dist/chunks/color.cjs.map +0 -1
  240. package/dist/chunks/color.js +0 -5
  241. package/dist/chunks/color.js.map +0 -1
  242. package/dist/chunks/copy-button.cjs +0 -171
  243. package/dist/chunks/copy-button.cjs.map +0 -1
  244. package/dist/chunks/copy-button.js +0 -172
  245. package/dist/chunks/copy-button.js.map +0 -1
  246. package/dist/chunks/detail-group.cjs +0 -65
  247. package/dist/chunks/detail-group.cjs.map +0 -1
  248. package/dist/chunks/detail-group.js +0 -66
  249. package/dist/chunks/detail-group.js.map +0 -1
  250. package/dist/chunks/detail.cjs +0 -146
  251. package/dist/chunks/detail.cjs.map +0 -1
  252. package/dist/chunks/detail.js +0 -147
  253. package/dist/chunks/detail.js.map +0 -1
  254. package/dist/chunks/dialog.cjs +0 -117
  255. package/dist/chunks/dialog.cjs.map +0 -1
  256. package/dist/chunks/dialog.js +0 -118
  257. package/dist/chunks/dialog.js.map +0 -1
  258. package/dist/chunks/divider.cjs +0 -80
  259. package/dist/chunks/divider.cjs.map +0 -1
  260. package/dist/chunks/divider.js +0 -81
  261. package/dist/chunks/divider.js.map +0 -1
  262. package/dist/chunks/drawer.cjs +0 -180
  263. package/dist/chunks/drawer.cjs.map +0 -1
  264. package/dist/chunks/drawer.js +0 -181
  265. package/dist/chunks/drawer.js.map +0 -1
  266. package/dist/chunks/dropdown-button.cjs +0 -533
  267. package/dist/chunks/dropdown-button.cjs.map +0 -1
  268. package/dist/chunks/dropdown-button.js +0 -534
  269. package/dist/chunks/dropdown-button.js.map +0 -1
  270. package/dist/chunks/icon-button.cjs +0 -35
  271. package/dist/chunks/icon-button.cjs.map +0 -1
  272. package/dist/chunks/icon-button.js +0 -36
  273. package/dist/chunks/icon-button.js.map +0 -1
  274. package/dist/chunks/icon.cjs +0 -124
  275. package/dist/chunks/icon.cjs.map +0 -1
  276. package/dist/chunks/icon.js +0 -125
  277. package/dist/chunks/icon.js.map +0 -1
  278. package/dist/chunks/menu.cjs +0 -396
  279. package/dist/chunks/menu.cjs.map +0 -1
  280. package/dist/chunks/menu.js +0 -397
  281. package/dist/chunks/menu.js.map +0 -1
  282. package/dist/chunks/navbar.cjs +0 -142
  283. package/dist/chunks/navbar.cjs.map +0 -1
  284. package/dist/chunks/navbar.js +0 -143
  285. package/dist/chunks/navbar.js.map +0 -1
  286. package/dist/chunks/number-input.cjs +0 -110
  287. package/dist/chunks/number-input.cjs.map +0 -1
  288. package/dist/chunks/number-input.js +0 -111
  289. package/dist/chunks/number-input.js.map +0 -1
  290. package/dist/chunks/pagination.cjs +0 -475
  291. package/dist/chunks/pagination.cjs.map +0 -1
  292. package/dist/chunks/pagination.js +0 -476
  293. package/dist/chunks/pagination.js.map +0 -1
  294. package/dist/chunks/progress-bar.cjs +0 -101
  295. package/dist/chunks/progress-bar.cjs.map +0 -1
  296. package/dist/chunks/progress-bar.js +0 -102
  297. package/dist/chunks/progress-bar.js.map +0 -1
  298. package/dist/chunks/radio.cjs +0 -185
  299. package/dist/chunks/radio.cjs.map +0 -1
  300. package/dist/chunks/radio.js +0 -186
  301. package/dist/chunks/radio.js.map +0 -1
  302. package/dist/chunks/select.cjs +0 -381
  303. package/dist/chunks/select.cjs.map +0 -1
  304. package/dist/chunks/select.js +0 -382
  305. package/dist/chunks/select.js.map +0 -1
  306. package/dist/chunks/size.cjs +0 -4
  307. package/dist/chunks/size.cjs.map +0 -1
  308. package/dist/chunks/size.js +0 -5
  309. package/dist/chunks/size.js.map +0 -1
  310. package/dist/chunks/slider.cjs +0 -608
  311. package/dist/chunks/slider.cjs.map +0 -1
  312. package/dist/chunks/slider.js +0 -609
  313. package/dist/chunks/slider.js.map +0 -1
  314. package/dist/chunks/spinner.cjs +0 -102
  315. package/dist/chunks/spinner.cjs.map +0 -1
  316. package/dist/chunks/spinner.js +0 -103
  317. package/dist/chunks/spinner.js.map +0 -1
  318. package/dist/chunks/switch.cjs +0 -167
  319. package/dist/chunks/switch.cjs.map +0 -1
  320. package/dist/chunks/switch.js +0 -168
  321. package/dist/chunks/switch.js.map +0 -1
  322. package/dist/chunks/tab-panel.cjs +0 -174
  323. package/dist/chunks/tab-panel.cjs.map +0 -1
  324. package/dist/chunks/tab-panel.js +0 -175
  325. package/dist/chunks/tab-panel.js.map +0 -1
  326. package/dist/chunks/tag.cjs +0 -108
  327. package/dist/chunks/tag.cjs.map +0 -1
  328. package/dist/chunks/tag.js +0 -109
  329. package/dist/chunks/tag.js.map +0 -1
  330. package/dist/chunks/text-input.cjs +0 -54
  331. package/dist/chunks/text-input.cjs.map +0 -1
  332. package/dist/chunks/text-input.js +0 -55
  333. package/dist/chunks/text-input.js.map +0 -1
  334. package/dist/chunks/textarea.cjs +0 -137
  335. package/dist/chunks/textarea.cjs.map +0 -1
  336. package/dist/chunks/textarea.js +0 -138
  337. package/dist/chunks/textarea.js.map +0 -1
  338. package/dist/chunks/tooltip.cjs +0 -292
  339. package/dist/chunks/tooltip.cjs.map +0 -1
  340. package/dist/chunks/tooltip.js +0 -293
  341. package/dist/chunks/tooltip.js.map +0 -1
  342. package/dist/chunks/tree.cjs +0 -468
  343. package/dist/chunks/tree.cjs.map +0 -1
  344. package/dist/chunks/tree.js +0 -469
  345. package/dist/chunks/tree.js.map +0 -1
  346. package/dist/chunks/variables.cjs +0 -396
  347. package/dist/chunks/variables.cjs.map +0 -1
  348. package/dist/chunks/variables.js +0 -397
  349. package/dist/chunks/variables.js.map +0 -1
@@ -1,396 +0,0 @@
1
- "use strict";
2
- const aeicoComponent = require("./aeico-component.cjs");
3
- const aeico = require("aeico");
4
- const variables = require("./variables.cjs");
5
- const style$1 = ":host {\n display: block;\n}\n\n.menu-list {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n gap: 0;\n}\n\n.menu-list--horizontal {\n flex-direction: row;\n align-items: stretch;\n}\n";
6
- const style = ':host {\n display: block;\n position: relative;\n\n --menu-item-height: 2.5rem;\n --menu-item-padding-x: 0.875rem;\n --menu-item-font-size: 0.9375rem;\n --menu-item-color: inherit;\n --menu-item-color-disabled: var(--ae-color-text-disabled);\n --menu-item-bg: transparent;\n --menu-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.05));\n --menu-item-active-color: var(--ae-color-primary, var(--ae-blue-500));\n --menu-item-active-border-color: var(--ae-color-primary, var(--ae-blue-500));\n\n --submenu-z-index: 1001;\n --submenu-bg: var(--ae-surface-overlay, #fff);\n --submenu-border: 1px solid var(--ae-border-default);\n --submenu-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n --submenu-min-width: 10rem;\n --submenu-padding: 0.25rem 0;\n}\n\n.item {\n display: inline-flex;\n align-items: center;\n gap: 0.4rem;\n width: 100%;\n height: var(--menu-item-height);\n padding: 0 var(--menu-item-padding-x);\n font-size: var(--menu-item-font-size);\n font-family: inherit;\n color: var(--menu-item-color);\n background: var(--menu-item-bg);\n border: none;\n border-bottom: 2px solid transparent;\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n box-sizing: border-box;\n outline: none;\n transition: background 0.1s, color 0.1s, border-color 0.1s;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.item--leaf-in-panel {\n height: auto;\n padding: 0.5rem var(--menu-item-padding-x);\n border-bottom: none;\n}\n\n.item:hover:not(:disabled) {\n background: var(--menu-item-bg-hover);\n}\n\n.item:focus-visible {\n background: var(--menu-item-bg-hover);\n outline: 2px solid var(--menu-item-active-color);\n outline-offset: -2px;\n}\n\n:host([disabled]) .item,\n.item:disabled {\n color: var(--menu-item-color-disabled);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n:host([selected]) .item {\n color: var(--menu-item-active-color);\n border-bottom-color: var(--menu-item-active-border-color);\n}\n\n.item-arrow {\n display: inline-block;\n width: 0;\n height: 0;\n flex-shrink: 0;\n}\n\n.item-arrow--right {\n border-top: 0.3em solid transparent;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.item-arrow--bottom {\n border-left: 0.3em solid transparent;\n border-right: 0.3em solid transparent;\n border-top: 0.3em solid;\n}\n\n.item--open .item-arrow--right {\n transform: rotate(90deg);\n}\n\nslot[name="expand"],\nslot[name="collapse"] {\n display: inline-flex;\n align-items: center;\n margin-inline-start: auto;\n flex-shrink: 0;\n}\n\nslot[name="collapse"] {\n display: none;\n}\n\n.item--open slot[name="expand"] {\n display: none;\n}\n\n.item--open slot[name="collapse"] {\n display: inline-flex;\n align-items: center;\n}\n\nslot[name="collapse"] .item-arrow--right {\n transform: rotate(90deg);\n}\n\n:host([icon-placement="start"]) slot[name="expand"],\n:host([icon-placement="start"]) slot[name="collapse"] {\n order: -1;\n margin-inline-start: 0;\n}\n\n.submenu-panel {\n display: none;\n position: absolute;\n z-index: var(--submenu-z-index);\n background: var(--submenu-bg);\n border: var(--submenu-border);\n border-radius: var(--ae-border-radius, var(--ae-radius-md));\n box-shadow: var(--submenu-shadow);\n min-width: var(--submenu-min-width);\n padding: var(--submenu-padding);\n box-sizing: border-box;\n max-width: calc(100vw - 16px);\n}\n\n.submenu-panel.open {\n display: block;\n}\n\n.submenu-panel.placement-bottom {\n top: 100%;\n left: 0;\n margin-top: 2px;\n}\n\n.submenu-panel.placement-right {\n top: 0;\n left: 100%;\n margin-left: 2px;\n}\n\n.submenu-inline {\n display: none;\n padding-left: 1rem;\n}\n\n.submenu-inline.open {\n display: block;\n}\n';
7
- var __create$1 = Object.create;
8
- var __defProp$1 = Object.defineProperty;
9
- var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
10
- var __knownSymbol$1 = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
11
- var __typeError$1 = (msg) => {
12
- throw TypeError(msg);
13
- };
14
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
- var __decoratorStart$1 = (base) => [, , , __create$1((base == null ? void 0 : base[__knownSymbol$1("metadata")]) ?? null)];
16
- var __decoratorStrings$1 = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
17
- var __expectFn$1 = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError$1("Function expected") : fn;
18
- var __decoratorContext$1 = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings$1[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError$1("Already initialized") : fns.push(__expectFn$1(fn || null)) });
19
- var __decoratorMetadata$1 = (array, target) => __defNormalProp$1(target, __knownSymbol$1("metadata"), array[3]);
20
- var __runInitializers$1 = (array, flags, self, value) => {
21
- for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
22
- return value;
23
- };
24
- var __decorateElement$1 = (array, flags, name, decorators, target, extra) => {
25
- var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
26
- var j = array.length + 1, key = __decoratorStrings$1[k + 5];
27
- var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
28
- var desc = (target = target.prototype, __getOwnPropDesc$1({ get [name]() {
29
- return __privateGet$1(this, extra);
30
- }, set [name](x) {
31
- return __privateSet$1(this, extra, x);
32
- } }, name));
33
- for (var i = decorators.length - 1; i >= 0; i--) {
34
- ctx = __decoratorContext$1(k, name, done = {}, array[3], extraInitializers);
35
- {
36
- ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
37
- access.get = (x) => x[name];
38
- access.set = (x, y) => x[name] = y;
39
- }
40
- it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
41
- if (it === void 0) __expectFn$1(it) && (desc[key] = it);
42
- else if (typeof it !== "object" || it === null) __typeError$1("Object expected");
43
- else __expectFn$1(fn = it.get) && (desc.get = fn), __expectFn$1(fn = it.set) && (desc.set = fn), __expectFn$1(fn = it.init) && initializers.unshift(fn);
44
- }
45
- return desc && __defProp$1(target, name, desc), target;
46
- };
47
- var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
48
- var __accessCheck$1 = (obj, member, msg) => member.has(obj) || __typeError$1("Cannot " + msg);
49
- var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "read from private field"), member.get(obj));
50
- var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
51
- var __privateSet$1 = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), member.set(obj, value), value);
52
- var _iconPlacement_dec, _open_dec, _selected_dec, _href_dec, _disabled_dec, _label_dec, _key_dec, _a$1, _init$1, _key, _label, _disabled, _href, _selected, _open, _iconPlacement;
53
- class MenuItem extends (_a$1 = aeicoComponent.AeicoComponent, _key_dec = [aeico.prop({ type: String })], _label_dec = [aeico.prop({ type: String })], _disabled_dec = [aeico.prop({ type: Boolean })], _href_dec = [aeico.prop({ type: String })], _selected_dec = [aeico.prop({ type: Boolean })], _open_dec = [aeico.prop({ type: Boolean })], _iconPlacement_dec = [aeico.prop({ type: String })], _a$1) {
54
- constructor() {
55
- super(...arguments);
56
- __privateAdd$1(this, _key, __runInitializers$1(_init$1, 8, this)), __runInitializers$1(_init$1, 11, this);
57
- __privateAdd$1(this, _label, __runInitializers$1(_init$1, 12, this)), __runInitializers$1(_init$1, 15, this);
58
- __privateAdd$1(this, _disabled, __runInitializers$1(_init$1, 16, this, false)), __runInitializers$1(_init$1, 19, this);
59
- __privateAdd$1(this, _href, __runInitializers$1(_init$1, 20, this)), __runInitializers$1(_init$1, 23, this);
60
- __privateAdd$1(this, _selected, __runInitializers$1(_init$1, 24, this, false)), __runInitializers$1(_init$1, 27, this);
61
- __privateAdd$1(this, _open, __runInitializers$1(_init$1, 28, this, false)), __runInitializers$1(_init$1, 31, this);
62
- __privateAdd$1(this, _iconPlacement, __runInitializers$1(_init$1, 32, this, "end")), __runInitializers$1(_init$1, 35, this);
63
- __publicField$1(this, "_outsideClickHandler", null);
64
- __publicField$1(this, "_closeTimer", null);
65
- __publicField$1(this, "_handleMouseEnter", () => {
66
- if (!this._isHoverTrigger()) return;
67
- if (this._closeTimer !== null) {
68
- clearTimeout(this._closeTimer);
69
- this._closeTimer = null;
70
- }
71
- this.open = true;
72
- });
73
- __publicField$1(this, "_handleMouseLeave", () => {
74
- if (!this._isHoverTrigger()) return;
75
- this._closeTimer = setTimeout(() => {
76
- this.open = false;
77
- this._closeTimer = null;
78
- }, 150);
79
- });
80
- __publicField$1(this, "_handleParentClick", () => {
81
- if (this.disabled) return;
82
- const mode = this._mode;
83
- const trigger = this._trigger;
84
- if (mode === "flyout" && trigger === "hover") {
85
- this.open = !this.open;
86
- return;
87
- }
88
- this.open = !this.open;
89
- });
90
- __publicField$1(this, "_handleLeafClick", (e) => {
91
- var _a2;
92
- if (this.disabled) {
93
- e.preventDefault();
94
- return;
95
- }
96
- const path = this._buildKeyPath();
97
- const label = ((_a2 = this.textContent) == null ? void 0 : _a2.trim()) ?? "";
98
- this.dispatchEvent(
99
- new CustomEvent("_menu-item-select", {
100
- bubbles: true,
101
- composed: true,
102
- detail: { key: this.key ?? "", label, keyPath: path }
103
- })
104
- );
105
- });
106
- __publicField$1(this, "_handleChildSelect", () => {
107
- if (this._mode === "flyout") {
108
- this.open = false;
109
- }
110
- });
111
- __publicField$1(this, "_handleKeydown", (e) => {
112
- if (e.key === "Escape" && this.open) {
113
- e.stopPropagation();
114
- this.open = false;
115
- }
116
- });
117
- }
118
- connectedCallback() {
119
- var _a2;
120
- super.connectedCallback();
121
- const depth = ((_a2 = this.parentElement) == null ? void 0 : _a2.closest("ae-menu-item")) ? 1 : 0;
122
- this.dataset.depth = String(depth);
123
- this.listen("mouseenter", this._handleMouseEnter);
124
- this.listen("mouseleave", this._handleMouseLeave);
125
- this._outsideClickHandler = (e) => {
126
- if (!this.open) return;
127
- if (this._mode === "inline") return;
128
- if (!e.composedPath().includes(this)) this.open = false;
129
- };
130
- document.addEventListener("click", this._outsideClickHandler);
131
- this.listen("_menu-item-select", this._handleChildSelect);
132
- }
133
- disconnectedCallback() {
134
- super.disconnectedCallback();
135
- if (this._outsideClickHandler) {
136
- document.removeEventListener("click", this._outsideClickHandler);
137
- this._outsideClickHandler = null;
138
- }
139
- if (this._closeTimer !== null) {
140
- clearTimeout(this._closeTimer);
141
- this._closeTimer = null;
142
- }
143
- }
144
- get _parentMenu() {
145
- return this.closest("ae-menu");
146
- }
147
- get _mode() {
148
- var _a2;
149
- return ((_a2 = this._parentMenu) == null ? void 0 : _a2.mode) ?? "flyout";
150
- }
151
- get _orientation() {
152
- var _a2;
153
- return ((_a2 = this._parentMenu) == null ? void 0 : _a2.orientation) ?? "horizontal";
154
- }
155
- get _trigger() {
156
- var _a2;
157
- return ((_a2 = this._parentMenu) == null ? void 0 : _a2.trigger) ?? "click";
158
- }
159
- get _isParent() {
160
- return this.label != null && this.label !== "";
161
- }
162
- /** Compute flyout panel placement based on depth and parent orientation. */
163
- get _panelPlacement() {
164
- var _a2;
165
- const isNested = !!((_a2 = this.parentElement) == null ? void 0 : _a2.closest("ae-menu-item"));
166
- if (!isNested && this._orientation === "horizontal") return "bottom";
167
- return "right";
168
- }
169
- _isHoverTrigger() {
170
- return this._isParent && this._mode === "flyout" && this._trigger === "hover";
171
- }
172
- _buildKeyPath() {
173
- const path = [];
174
- if (this.key) path.unshift(this.key);
175
- let el = this.parentElement;
176
- while (el) {
177
- const tag = el.tagName.toLowerCase();
178
- if (tag === "ae-menu-item") {
179
- const k = el.key;
180
- if (k) path.unshift(k);
181
- } else if (tag === "ae-menu") {
182
- break;
183
- }
184
- el = el.parentElement;
185
- }
186
- return path;
187
- }
188
- render() {
189
- var _a2;
190
- const mode = this._mode;
191
- const panelPlacement = this._panelPlacement;
192
- const isParent = this._isParent;
193
- const isInline = mode === "inline";
194
- const arrowDir = !isInline && panelPlacement === "bottom" ? "bottom" : "right";
195
- const isNested = !!((_a2 = this.parentElement) == null ? void 0 : _a2.closest("ae-menu-item"));
196
- return aeico.html(({ div, button, a, span, slot }) => {
197
- if (isParent) {
198
- div({ className: "item-wrapper" }, () => {
199
- button(
200
- {
201
- type: "button",
202
- className: { item: true, "item--parent": true, "item--open": this.open },
203
- disabled: this.disabled,
204
- "aria-haspopup": "menu",
205
- "aria-expanded": String(this.open),
206
- "@click": this._handleParentClick,
207
- "@keydown": this._handleKeydown
208
- },
209
- () => {
210
- span({ text: this.label });
211
- slot({ name: "expand" }, () => {
212
- span({ className: `item-arrow item-arrow--${arrowDir}`, "aria-hidden": "true" });
213
- });
214
- slot({ name: "collapse" }, () => {
215
- span({ className: `item-arrow item-arrow--${arrowDir}`, "aria-hidden": "true" });
216
- });
217
- }
218
- );
219
- if (isInline) {
220
- div(
221
- {
222
- className: { "submenu-inline": true, open: this.open },
223
- role: "menu"
224
- },
225
- () => {
226
- slot();
227
- }
228
- );
229
- } else {
230
- div(
231
- {
232
- className: {
233
- "submenu-panel": true,
234
- [`placement-${panelPlacement}`]: true,
235
- open: this.open
236
- },
237
- role: "menu"
238
- },
239
- () => {
240
- slot();
241
- }
242
- );
243
- }
244
- });
245
- } else {
246
- const sharedProps = {
247
- className: { item: true, "item--leaf-in-panel": isNested },
248
- role: "menuitem",
249
- "@click": this._handleLeafClick,
250
- "@keydown": this._handleKeydown
251
- };
252
- if (this.href) {
253
- a(
254
- {
255
- ...sharedProps,
256
- href: this.disabled ? void 0 : this.href,
257
- "aria-disabled": this.disabled ? "true" : void 0
258
- },
259
- () => {
260
- slot();
261
- }
262
- );
263
- } else {
264
- button(
265
- {
266
- ...sharedProps,
267
- type: "button",
268
- disabled: this.disabled
269
- },
270
- () => {
271
- slot();
272
- }
273
- );
274
- }
275
- }
276
- });
277
- }
278
- }
279
- _init$1 = __decoratorStart$1(_a$1);
280
- _key = /* @__PURE__ */ new WeakMap();
281
- _label = /* @__PURE__ */ new WeakMap();
282
- _disabled = /* @__PURE__ */ new WeakMap();
283
- _href = /* @__PURE__ */ new WeakMap();
284
- _selected = /* @__PURE__ */ new WeakMap();
285
- _open = /* @__PURE__ */ new WeakMap();
286
- _iconPlacement = /* @__PURE__ */ new WeakMap();
287
- __decorateElement$1(_init$1, 4, "key", _key_dec, MenuItem, _key);
288
- __decorateElement$1(_init$1, 4, "label", _label_dec, MenuItem, _label);
289
- __decorateElement$1(_init$1, 4, "disabled", _disabled_dec, MenuItem, _disabled);
290
- __decorateElement$1(_init$1, 4, "href", _href_dec, MenuItem, _href);
291
- __decorateElement$1(_init$1, 4, "selected", _selected_dec, MenuItem, _selected);
292
- __decorateElement$1(_init$1, 4, "open", _open_dec, MenuItem, _open);
293
- __decorateElement$1(_init$1, 4, "iconPlacement", _iconPlacement_dec, MenuItem, _iconPlacement);
294
- __decoratorMetadata$1(_init$1, MenuItem);
295
- __publicField$1(MenuItem, "tagName", "menu-item");
296
- __publicField$1(MenuItem, "styles", [variables.variables, style]);
297
- MenuItem.register();
298
- var __create = Object.create;
299
- var __defProp = Object.defineProperty;
300
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
301
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
302
- var __typeError = (msg) => {
303
- throw TypeError(msg);
304
- };
305
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
306
- var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
307
- var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
308
- var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
309
- var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
310
- var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
311
- var __runInitializers = (array, flags, self, value) => {
312
- for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
313
- return value;
314
- };
315
- var __decorateElement = (array, flags, name, decorators, target, extra) => {
316
- var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
317
- var j = array.length + 1, key = __decoratorStrings[k + 5];
318
- var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
319
- var desc = (target = target.prototype, __getOwnPropDesc({ get [name]() {
320
- return __privateGet(this, extra);
321
- }, set [name](x) {
322
- return __privateSet(this, extra, x);
323
- } }, name));
324
- for (var i = decorators.length - 1; i >= 0; i--) {
325
- ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
326
- {
327
- ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
328
- access.get = (x) => x[name];
329
- access.set = (x, y) => x[name] = y;
330
- }
331
- it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
332
- if (it === void 0) __expectFn(it) && (desc[key] = it);
333
- else if (typeof it !== "object" || it === null) __typeError("Object expected");
334
- else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
335
- }
336
- return desc && __defProp(target, name, desc), target;
337
- };
338
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
339
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
340
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
341
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
342
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
343
- var _selectedKey_dec, _trigger_dec, _orientation_dec, _mode_dec, _a, _init, _mode, _orientation, _trigger, _selectedKey;
344
- class Menu extends (_a = aeicoComponent.AeicoComponent, _mode_dec = [aeico.prop({ type: String })], _orientation_dec = [aeico.prop({ type: String })], _trigger_dec = [aeico.prop({ type: String })], _selectedKey_dec = [aeico.prop({ type: String })], _a) {
345
- constructor() {
346
- super(...arguments);
347
- __privateAdd(this, _mode, __runInitializers(_init, 8, this, "flyout")), __runInitializers(_init, 11, this);
348
- __privateAdd(this, _orientation, __runInitializers(_init, 12, this, "horizontal")), __runInitializers(_init, 15, this);
349
- __privateAdd(this, _trigger, __runInitializers(_init, 16, this, "click")), __runInitializers(_init, 19, this);
350
- __privateAdd(this, _selectedKey, __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
351
- __publicField(this, "_handleItemSelect", (e) => {
352
- const { key, label, keyPath } = e.detail;
353
- this.querySelectorAll("ae-menu-item").forEach((el) => {
354
- const item = el;
355
- item.selected = item.key === key && !item.label;
356
- });
357
- this.selectedKey = key;
358
- this.emit("select", { detail: { key, label, keyPath } });
359
- });
360
- }
361
- connectedCallback() {
362
- super.connectedCallback();
363
- this.listen("_menu-item-select", this._handleItemSelect);
364
- }
365
- render() {
366
- const isHorizontal = this.orientation === "horizontal";
367
- return aeico.html(({ div, slot }) => {
368
- div(
369
- {
370
- className: { "menu-list": true, "menu-list--horizontal": isHorizontal },
371
- role: isHorizontal ? "menubar" : "menu",
372
- "aria-orientation": this.orientation
373
- },
374
- () => {
375
- slot();
376
- }
377
- );
378
- });
379
- }
380
- }
381
- _init = __decoratorStart(_a);
382
- _mode = /* @__PURE__ */ new WeakMap();
383
- _orientation = /* @__PURE__ */ new WeakMap();
384
- _trigger = /* @__PURE__ */ new WeakMap();
385
- _selectedKey = /* @__PURE__ */ new WeakMap();
386
- __decorateElement(_init, 4, "mode", _mode_dec, Menu, _mode);
387
- __decorateElement(_init, 4, "orientation", _orientation_dec, Menu, _orientation);
388
- __decorateElement(_init, 4, "trigger", _trigger_dec, Menu, _trigger);
389
- __decorateElement(_init, 4, "selectedKey", _selectedKey_dec, Menu, _selectedKey);
390
- __decoratorMetadata(_init, Menu);
391
- __publicField(Menu, "tagName", "menu");
392
- __publicField(Menu, "styles", [variables.variables, style$1]);
393
- Menu.register();
394
- exports.Menu = Menu;
395
- exports.MenuItem = MenuItem;
396
- //# sourceMappingURL=menu.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu.cjs","sources":["../../src/menu/menu-item.ts","../../src/menu/menu.ts"],"sourcesContent":["import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/menu-item.css?inline';\nimport variables from '../styles/variables.css?inline';\nimport type {\n MenuMode,\n MenuOrientation,\n MenuTrigger,\n ParentMenuLike,\n MenuIconPlacement,\n} from './defines';\n\n/**\n * Menu item — used as a direct child of `<ae-menu>` or nested inside another\n * `<ae-menu-item>` to create a two-level submenu.\n *\n * - **Leaf item**: omit `label`; slot contains the item text.\n * - **Parent item**: set `label` to the trigger text; slot children are\n * `<ae-menu-item>` elements that appear in the submenu panel/section.\n *\n * **Slots (parent items only)**\n * - `expand` — icon shown when the submenu is closed (default: CSS triangle).\n * - `collapse` — icon shown when the submenu is open (default: rotated CSS triangle).\n *\n * @example\n * ```html\n * <ae-menu-item label=\"Settings\" icon-placement=\"start\">\n * <ae-icon name=\"chevron-right\" slot=\"expand\"></ae-icon>\n * <ae-icon name=\"chevron-down\" slot=\"collapse\"></ae-icon>\n * <ae-menu-item key=\"profile\">Profile</ae-menu-item>\n * </ae-menu-item>\n * ```\n */\nclass MenuItem extends AeicoComponent {\n static tagName = 'menu-item';\n\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor key: string | undefined;\n\n @prop({ type: String })\n accessor label: string | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor href: string | undefined;\n\n @prop({ type: Boolean })\n accessor selected: boolean = false;\n\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n @prop({ type: String })\n accessor iconPlacement: MenuIconPlacement = 'end';\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n private _closeTimer: ReturnType<typeof setTimeout> | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n // data-depth lets CSS apply depth-specific styles without JS\n const depth = this.parentElement?.closest('ae-menu-item') ? 1 : 0;\n this.dataset.depth = String(depth);\n\n // Hover listeners — check mode/trigger at runtime\n this.listen('mouseenter', this._handleMouseEnter);\n this.listen('mouseleave', this._handleMouseLeave);\n\n // Outside-click to close flyout panel (not applicable in inline mode)\n this._outsideClickHandler = (e: MouseEvent) => {\n if (!this.open) return;\n if (this._mode === 'inline') return;\n if (!e.composedPath().includes(this)) this.open = false;\n };\n\n document.addEventListener('click', this._outsideClickHandler);\n\n // Close own submenu when a leaf inside it is selected (flyout)\n this.listen('_menu-item-select', this._handleChildSelect as EventListener);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._outsideClickHandler) {\n document.removeEventListener('click', this._outsideClickHandler);\n this._outsideClickHandler = null;\n }\n if (this._closeTimer !== null) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n }\n\n private get _parentMenu(): ParentMenuLike | null {\n return this.closest<ParentMenuLike>('ae-menu');\n }\n\n private get _mode(): MenuMode {\n return this._parentMenu?.mode ?? 'flyout';\n }\n\n private get _orientation(): MenuOrientation {\n return this._parentMenu?.orientation ?? 'horizontal';\n }\n\n private get _trigger(): MenuTrigger {\n return this._parentMenu?.trigger ?? 'click';\n }\n\n private get _isParent(): boolean {\n return this.label != null && this.label !== '';\n }\n\n /** Compute flyout panel placement based on depth and parent orientation. */\n private get _panelPlacement(): 'bottom' | 'right' {\n const isNested = !!this.parentElement?.closest('ae-menu-item');\n if (!isNested && this._orientation === 'horizontal') return 'bottom';\n return 'right';\n }\n\n private _isHoverTrigger(): boolean {\n return this._isParent && this._mode === 'flyout' && this._trigger === 'hover';\n }\n\n private _handleMouseEnter = (): void => {\n if (!this._isHoverTrigger()) return;\n if (this._closeTimer !== null) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n this.open = true;\n };\n\n private _handleMouseLeave = (): void => {\n if (!this._isHoverTrigger()) return;\n this._closeTimer = setTimeout(() => {\n this.open = false;\n this._closeTimer = null;\n }, 150);\n };\n\n private _handleParentClick = (): void => {\n if (this.disabled) return;\n const mode = this._mode;\n const trigger = this._trigger;\n // In hover mode, click should still toggle (accessibility)\n if (mode === 'flyout' && trigger === 'hover') {\n this.open = !this.open;\n return;\n }\n this.open = !this.open;\n };\n\n private _handleLeafClick = (e: Event): void => {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n const path = this._buildKeyPath();\n const label = this.textContent?.trim() ?? '';\n this.dispatchEvent(\n new CustomEvent('_menu-item-select', {\n bubbles: true,\n composed: true,\n detail: { key: this.key ?? '', label, keyPath: path },\n }),\n );\n };\n\n private _handleChildSelect = (): void => {\n // Close flyout panel after a child leaf is selected\n if (this._mode === 'flyout') {\n this.open = false;\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.open) {\n e.stopPropagation();\n this.open = false;\n }\n };\n\n private _buildKeyPath(): string[] {\n const path: string[] = [];\n if (this.key) path.unshift(this.key);\n let el: Element | null = this.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-menu-item') {\n const k = (el as MenuItem).key;\n if (k) path.unshift(k);\n } else if (tag === 'ae-menu') {\n break;\n }\n el = el.parentElement;\n }\n return path;\n }\n\n protected render() {\n const mode = this._mode;\n const panelPlacement = this._panelPlacement;\n const isParent = this._isParent;\n const isInline = mode === 'inline';\n // Arrow direction: inline always shows ► (rotates to ▼ on open)\n // flyout-bottom shows ▼; flyout-right shows ►\n const arrowDir = !isInline && panelPlacement === 'bottom' ? 'bottom' : 'right';\n // Leaf items inside a submenu panel (depth > 0) need different padding\n const isNested = !!this.parentElement?.closest('ae-menu-item');\n\n return html(({ div, button, a, span, slot }) => {\n if (isParent) {\n div({ className: 'item-wrapper' }, () => {\n button(\n {\n type: 'button',\n className: { item: true, 'item--parent': true, 'item--open': this.open },\n disabled: this.disabled,\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(this.open),\n '@click': this._handleParentClick,\n '@keydown': this._handleKeydown,\n },\n () => {\n span({ text: this.label });\n slot({ name: 'expand' }, () => {\n span({ className: `item-arrow item-arrow--${arrowDir}`, 'aria-hidden': 'true' });\n });\n slot({ name: 'collapse' }, () => {\n span({ className: `item-arrow item-arrow--${arrowDir}`, 'aria-hidden': 'true' });\n });\n },\n );\n\n if (isInline) {\n div(\n {\n className: { 'submenu-inline': true, open: this.open },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n } else {\n div(\n {\n className: {\n 'submenu-panel': true,\n [`placement-${panelPlacement}`]: true,\n open: this.open,\n },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n }\n });\n } else {\n // Leaf item\n const sharedProps = {\n className: { item: true, 'item--leaf-in-panel': isNested },\n role: 'menuitem',\n '@click': this._handleLeafClick,\n '@keydown': this._handleKeydown,\n };\n\n if (this.href) {\n a(\n {\n ...sharedProps,\n href: this.disabled ? undefined : this.href,\n 'aria-disabled': this.disabled ? 'true' : undefined,\n },\n () => {\n slot();\n },\n );\n } else {\n button(\n {\n ...sharedProps,\n type: 'button',\n disabled: this.disabled,\n },\n () => {\n slot();\n },\n );\n }\n }\n });\n }\n}\n\nMenuItem.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-menu-item': MenuItem;\n }\n}\n\nexport default MenuItem;\nexport type MenuItemProps = InferProps<typeof MenuItem>;\nexport type { MenuIconPlacement };\n","import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/menu.css?inline';\nimport variables from '../styles/variables.css?inline';\nimport type { MenuMode, MenuOrientation, MenuSelectDetail, MenuTrigger } from './defines';\n// Ensure ae-menu-item is registered when this module is used\nimport './menu-item';\n\n/**\n * Menu navigation component. Renders a horizontal or vertical menu with\n * optional two-level flyout or inline (accordion) submenus.\n *\n * Two modes:\n * - `flyout` (default) — submenus open as floating panels (like a nav bar or\n * context menu).\n * - `inline` — submenus expand in-place (accordion-style sidebar).\n *\n * Emits:\n * - `select` — `{ detail: { key, label, keyPath } }` when a leaf item is clicked.\n */\nclass Menu extends AeicoComponent {\n static tagName = 'menu';\n\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor mode: MenuMode = 'flyout';\n\n @prop({ type: String })\n accessor orientation: MenuOrientation = 'horizontal';\n\n @prop({ type: String })\n accessor trigger: MenuTrigger = 'click';\n\n @prop({ type: String })\n accessor selectedKey: string | undefined;\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('_menu-item-select', this._handleItemSelect as EventListener);\n }\n\n private _handleItemSelect = (e: CustomEvent<MenuSelectDetail>): void => {\n const { key, label, keyPath } = e.detail;\n // Update visual selection on all leaf items\n this.querySelectorAll('ae-menu-item').forEach((el) => {\n const item = el;\n item.selected = item.key === key && !item.label; // only leaf items\n });\n this.selectedKey = key;\n this.emit('select', { detail: { key, label, keyPath } });\n };\n\n protected render() {\n const isHorizontal = this.orientation === 'horizontal';\n return html(({ div, slot }) => {\n div(\n {\n className: { 'menu-list': true, 'menu-list--horizontal': isHorizontal },\n role: isHorizontal ? 'menubar' : 'menu',\n 'aria-orientation': this.orientation,\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nMenu.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-menu': Menu;\n }\n}\n\nexport default Menu;\nexport type MenuProps = InferProps<typeof Menu>;\n"],"names":["_a","_init","prop","__privateAdd","__runInitializers","__publicField","html","__decoratorStart","__decorateElement","__decoratorMetadata","variables","AeicoComponent","style"],"mappings":"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"}