@editora/ui-core 0.2.1 → 0.3.0

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 (365) hide show
  1. package/dist/{ElementBase-DxbvhLJs.js → ElementBase-CbUsP3D6.js} +1 -1
  2. package/dist/{ElementBase-BeZT54Hj.mjs → ElementBase-D5QsC5Vw.mjs} +10 -1
  3. package/dist/ElementBase.d.ts +7 -0
  4. package/dist/ElementBase.d.ts.map +1 -1
  5. package/dist/accordion.cjs.js +1 -1
  6. package/dist/accordion.esm.js +1 -1
  7. package/dist/add-icons-CVeHOsWl.js +1 -0
  8. package/dist/add-icons-DBUZJ0g7.mjs +14 -0
  9. package/dist/add-icons.cjs.js +1 -0
  10. package/dist/add-icons.d.ts +16 -0
  11. package/dist/add-icons.d.ts.map +1 -0
  12. package/dist/add-icons.esm.js +4 -0
  13. package/dist/alert-dialog.cjs.js +24 -24
  14. package/dist/alert-dialog.esm.js +112 -107
  15. package/dist/alert.cjs.js +8 -8
  16. package/dist/alert.esm.js +22 -22
  17. package/dist/animated-beam.cjs.js +1 -1
  18. package/dist/animated-beam.esm.js +1 -1
  19. package/dist/animated-list.cjs.js +1 -1
  20. package/dist/animated-list.esm.js +1 -1
  21. package/dist/animated-text.cjs.js +1 -1
  22. package/dist/animated-text.esm.js +1 -1
  23. package/dist/app-header.cjs.js +15 -3
  24. package/dist/app-header.esm.js +31 -4
  25. package/dist/aspect-ratio.cjs.js +1 -1
  26. package/dist/aspect-ratio.esm.js +1 -1
  27. package/dist/avatar.cjs.js +1 -1
  28. package/dist/avatar.esm.js +1 -1
  29. package/dist/badge.cjs.js +1 -1
  30. package/dist/badge.esm.js +1 -1
  31. package/dist/block-controls.cjs.js +1 -1
  32. package/dist/block-controls.esm.js +1 -1
  33. package/dist/box.cjs.js +1 -1
  34. package/dist/box.esm.js +1 -1
  35. package/dist/breadcrumb.cjs.js +4 -4
  36. package/dist/breadcrumb.esm.js +93 -84
  37. package/dist/button.cjs.js +520 -1
  38. package/dist/button.esm.js +682 -2
  39. package/dist/{calendar-CzpWDxLc.js → calendar-BsVqtpjM.js} +6 -6
  40. package/dist/{calendar-DkSDFg33.mjs → calendar-CFafqZVA.mjs} +6 -6
  41. package/dist/calendar.cjs.js +1 -1
  42. package/dist/calendar.esm.js +1 -1
  43. package/dist/card.cjs.js +6 -5
  44. package/dist/card.esm.js +52 -39
  45. package/dist/chart.cjs.js +2 -2
  46. package/dist/chart.esm.js +2 -2
  47. package/dist/checkbox.cjs.js +4 -4
  48. package/dist/checkbox.esm.js +36 -15
  49. package/dist/clone-source-BxK2pEVw.mjs +11 -0
  50. package/dist/clone-source-C7E_ri5f.js +1 -0
  51. package/dist/collapsible.cjs.js +1 -1
  52. package/dist/collapsible.esm.js +1 -1
  53. package/dist/color-picker.cjs.js +2 -2
  54. package/dist/color-picker.esm.js +3 -3
  55. package/dist/combobox.cjs.js +4 -4
  56. package/dist/combobox.esm.js +22 -19
  57. package/dist/command-palette.cjs.js +1 -1
  58. package/dist/command-palette.esm.js +1 -1
  59. package/dist/command.cjs.js +1 -1
  60. package/dist/command.esm.js +1 -1
  61. package/dist/components/ui-alert-dialog.d.ts.map +1 -1
  62. package/dist/components/ui-alert.d.ts.map +1 -1
  63. package/dist/components/ui-app-header.d.ts +1 -0
  64. package/dist/components/ui-app-header.d.ts.map +1 -1
  65. package/dist/components/ui-breadcrumb.d.ts.map +1 -1
  66. package/dist/components/ui-card.d.ts +7 -0
  67. package/dist/components/ui-card.d.ts.map +1 -1
  68. package/dist/components/ui-checkbox.d.ts +6 -0
  69. package/dist/components/ui-checkbox.d.ts.map +1 -1
  70. package/dist/components/ui-combobox.d.ts.map +1 -1
  71. package/dist/components/ui-date-time-picker.d.ts.map +1 -1
  72. package/dist/components/ui-dialog.d.ts +1 -0
  73. package/dist/components/ui-dialog.d.ts.map +1 -1
  74. package/dist/components/ui-drawer.d.ts.map +1 -1
  75. package/dist/components/ui-dropdown.d.ts.map +1 -1
  76. package/dist/components/ui-empty-state.d.ts.map +1 -1
  77. package/dist/components/ui-hover-card.d.ts.map +1 -1
  78. package/dist/components/ui-icon.d.ts +1 -0
  79. package/dist/components/ui-icon.d.ts.map +1 -1
  80. package/dist/components/ui-input.d.ts +16 -0
  81. package/dist/components/ui-input.d.ts.map +1 -1
  82. package/dist/components/ui-layout.d.ts +20 -0
  83. package/dist/components/ui-layout.d.ts.map +1 -1
  84. package/dist/components/ui-menu.d.ts +1 -0
  85. package/dist/components/ui-menu.d.ts.map +1 -1
  86. package/dist/components/ui-menubar.d.ts.map +1 -1
  87. package/dist/components/ui-multi-select.d.ts +6 -0
  88. package/dist/components/ui-multi-select.d.ts.map +1 -1
  89. package/dist/components/ui-number-field.d.ts +6 -0
  90. package/dist/components/ui-number-field.d.ts.map +1 -1
  91. package/dist/components/ui-pagination.d.ts.map +1 -1
  92. package/dist/components/ui-password-field.d.ts +11 -0
  93. package/dist/components/ui-password-field.d.ts.map +1 -1
  94. package/dist/components/ui-popover.d.ts.map +1 -1
  95. package/dist/components/ui-positioner.d.ts.map +1 -1
  96. package/dist/components/ui-radio-group.d.ts +6 -0
  97. package/dist/components/ui-radio-group.d.ts.map +1 -1
  98. package/dist/components/ui-rating.d.ts +1 -0
  99. package/dist/components/ui-rating.d.ts.map +1 -1
  100. package/dist/components/ui-select.d.ts +7 -0
  101. package/dist/components/ui-select.d.ts.map +1 -1
  102. package/dist/components/ui-sidebar.d.ts +1 -0
  103. package/dist/components/ui-sidebar.d.ts.map +1 -1
  104. package/dist/components/ui-slider.d.ts +6 -0
  105. package/dist/components/ui-slider.d.ts.map +1 -1
  106. package/dist/components/ui-sortable.d.ts +1 -0
  107. package/dist/components/ui-sortable.d.ts.map +1 -1
  108. package/dist/components/ui-switch.d.ts +6 -0
  109. package/dist/components/ui-switch.d.ts.map +1 -1
  110. package/dist/components/ui-tabs.d.ts +2 -0
  111. package/dist/components/ui-tabs.d.ts.map +1 -1
  112. package/dist/components/ui-textarea.d.ts +6 -0
  113. package/dist/components/ui-textarea.d.ts.map +1 -1
  114. package/dist/components/ui-toast.d.ts.map +1 -1
  115. package/dist/components/ui-tooltip.d.ts.map +1 -1
  116. package/dist/container.cjs.js +1 -1
  117. package/dist/container.esm.js +1 -1
  118. package/dist/context-menu.cjs.js +2 -2
  119. package/dist/context-menu.esm.js +2 -2
  120. package/dist/control-group.cjs.js +1 -1
  121. package/dist/control-group.esm.js +1 -1
  122. package/dist/data-table.cjs.js +5 -5
  123. package/dist/data-table.esm.js +7 -7
  124. package/dist/date-field.cjs.js +1 -1
  125. package/dist/date-field.esm.js +3 -3
  126. package/dist/date-picker.cjs.js +2 -2
  127. package/dist/date-picker.esm.js +17 -17
  128. package/dist/date-range-picker.cjs.js +2 -2
  129. package/dist/date-range-picker.esm.js +4 -4
  130. package/dist/date-range-time-picker.cjs.js +3 -3
  131. package/dist/date-range-time-picker.esm.js +16 -16
  132. package/dist/date-time-picker.cjs.js +26 -23
  133. package/dist/date-time-picker.esm.js +49 -46
  134. package/dist/{date-time-utils-zAx4ghvC.mjs → date-time-utils-CJUksWj3.mjs} +1 -1
  135. package/dist/{date-time-utils-C-4eHTyy.js → date-time-utils-D3hQQ5Om.js} +1 -1
  136. package/dist/description.cjs.js +1 -1
  137. package/dist/description.esm.js +1 -1
  138. package/dist/dialog.cjs.js +7 -7
  139. package/dist/dialog.esm.js +51 -47
  140. package/dist/direction-provider.cjs.js +1 -1
  141. package/dist/direction-provider.esm.js +1 -1
  142. package/dist/dismissable-layer.cjs.js +1 -1
  143. package/dist/dismissable-layer.esm.js +1 -1
  144. package/dist/dock.cjs.js +1 -1
  145. package/dist/dock.esm.js +1 -1
  146. package/dist/drawer.cjs.js +5 -5
  147. package/dist/drawer.esm.js +18 -17
  148. package/dist/dropdown.cjs.js +7 -7
  149. package/dist/dropdown.esm.js +39 -38
  150. package/dist/empty-state.cjs.js +12 -2
  151. package/dist/empty-state.esm.js +17 -7
  152. package/dist/field-error.cjs.js +1 -1
  153. package/dist/field-error.esm.js +1 -1
  154. package/dist/field.cjs.js +2 -2
  155. package/dist/field.esm.js +2 -2
  156. package/dist/fieldset.cjs.js +1 -1
  157. package/dist/fieldset.esm.js +1 -1
  158. package/dist/file-upload.cjs.js +1 -1
  159. package/dist/file-upload.esm.js +1 -1
  160. package/dist/flex.cjs.js +1 -1
  161. package/dist/flex.esm.js +1 -1
  162. package/dist/floating-toolbar.cjs.js +2 -2
  163. package/dist/floating-toolbar.esm.js +2 -2
  164. package/dist/focus-scope-Dl0qk5GP.mjs +177 -0
  165. package/dist/focus-scope-Doz0bnE1.js +1 -0
  166. package/dist/focus-scope.cjs.js +1 -1
  167. package/dist/focus-scope.esm.js +2 -2
  168. package/dist/form-control-B90_3kYN.js +1 -0
  169. package/dist/form-control-D9wWUMBl.mjs +86 -0
  170. package/dist/form.cjs.js +2 -2
  171. package/dist/form.esm.js +2 -2
  172. package/dist/gantt.cjs.js +2 -2
  173. package/dist/gantt.esm.js +2 -2
  174. package/dist/grid.cjs.js +1 -1
  175. package/dist/grid.esm.js +1 -1
  176. package/dist/hover-card.cjs.js +5 -5
  177. package/dist/hover-card.esm.js +19 -18
  178. package/dist/icon-cloud.cjs.js +1 -1
  179. package/dist/icon-cloud.esm.js +1 -1
  180. package/dist/icon.cjs.js +207 -1
  181. package/dist/icon.esm.js +294 -2
  182. package/dist/icons-CpCpPXV5.js +1 -0
  183. package/dist/icons-DWYbbhb0.mjs +115 -0
  184. package/dist/icons.d.ts +11 -1
  185. package/dist/icons.d.ts.map +1 -1
  186. package/dist/implicit-submit-B6M5Uc56.js +1 -0
  187. package/dist/implicit-submit-Lr0-q2LR.mjs +44 -0
  188. package/dist/index.cjs.js +1 -1
  189. package/dist/index.d.ts +1 -0
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.esm.js +309 -299
  192. package/dist/inline-edit.cjs.js +1 -1
  193. package/dist/inline-edit.esm.js +1 -1
  194. package/dist/input.cjs.js +62 -20
  195. package/dist/input.esm.js +164 -58
  196. package/dist/label.cjs.js +1 -1
  197. package/dist/label.esm.js +1 -1
  198. package/dist/layout.cjs.js +145 -4
  199. package/dist/layout.esm.js +278 -40
  200. package/dist/marquee.cjs.js +1 -1
  201. package/dist/marquee.esm.js +1 -1
  202. package/dist/masonry-grid.cjs.js +1 -1
  203. package/dist/masonry-grid.esm.js +1 -1
  204. package/dist/menu.cjs.js +8 -8
  205. package/dist/menu.esm.js +51 -47
  206. package/dist/menubar.cjs.js +9 -9
  207. package/dist/menubar.esm.js +41 -40
  208. package/dist/meter.cjs.js +1 -1
  209. package/dist/meter.esm.js +1 -1
  210. package/dist/multi-select.cjs.js +7 -7
  211. package/dist/multi-select.esm.js +55 -34
  212. package/dist/navigate-CXebafwF.mjs +18 -0
  213. package/dist/navigate-ChJVIIuS.js +1 -0
  214. package/dist/navigation-menu.cjs.js +1 -1
  215. package/dist/navigation-menu.esm.js +1 -1
  216. package/dist/number-attribute-BAF07JrU.mjs +8 -0
  217. package/dist/number-attribute-C4Rrl7d3.js +1 -0
  218. package/dist/number-field.cjs.js +8 -8
  219. package/dist/number-field.esm.js +90 -69
  220. package/dist/number-ticker.cjs.js +1 -1
  221. package/dist/number-ticker.esm.js +1 -1
  222. package/dist/odometer.cjs.js +1 -1
  223. package/dist/odometer.esm.js +1 -1
  224. package/dist/orbiter.cjs.js +1 -1
  225. package/dist/orbiter.esm.js +1 -1
  226. package/dist/pagination.cjs.js +24 -23
  227. package/dist/pagination.esm.js +61 -46
  228. package/dist/{panel-group-BVHJEdfx.js → panel-group-BIzzpQ5i.js} +1 -1
  229. package/dist/{panel-group-BxO_eNW6.mjs → panel-group-CFLjzRWI.mjs} +1 -1
  230. package/dist/panel-group.cjs.js +1 -1
  231. package/dist/panel-group.esm.js +1 -1
  232. package/dist/panel.cjs.js +1 -1
  233. package/dist/panel.esm.js +1 -1
  234. package/dist/password-field.cjs.js +36 -16
  235. package/dist/password-field.esm.js +113 -44
  236. package/dist/pin-input.cjs.js +1 -1
  237. package/dist/pin-input.esm.js +1 -1
  238. package/dist/placement-grid.cjs.js +1 -1
  239. package/dist/placement-grid.esm.js +1 -1
  240. package/dist/plugin-panel.cjs.js +1 -1
  241. package/dist/plugin-panel.esm.js +1 -1
  242. package/dist/popover.cjs.js +2 -2
  243. package/dist/popover.esm.js +28 -26
  244. package/dist/portal.cjs.js +1 -1
  245. package/dist/portal.esm.js +1 -1
  246. package/dist/positioner.cjs.js +2 -2
  247. package/dist/positioner.esm.js +35 -38
  248. package/dist/preload.cjs.js +221 -0
  249. package/dist/preload.css +220 -0
  250. package/dist/preload.d.ts +17 -0
  251. package/dist/preload.d.ts.map +1 -0
  252. package/dist/preload.esm.js +224 -0
  253. package/dist/presence.cjs.js +1 -1
  254. package/dist/presence.esm.js +1 -1
  255. package/dist/primitives/clone-source.d.ts +3 -0
  256. package/dist/primitives/clone-source.d.ts.map +1 -0
  257. package/dist/primitives/focus-scope.d.ts +6 -0
  258. package/dist/primitives/focus-scope.d.ts.map +1 -1
  259. package/dist/primitives/form-control.d.ts +68 -0
  260. package/dist/primitives/form-control.d.ts.map +1 -0
  261. package/dist/primitives/implicit-submit.d.ts +17 -0
  262. package/dist/primitives/implicit-submit.d.ts.map +1 -0
  263. package/dist/primitives/navigate.d.ts +27 -0
  264. package/dist/primitives/navigate.d.ts.map +1 -0
  265. package/dist/primitives/number-attribute.d.ts +7 -0
  266. package/dist/primitives/number-attribute.d.ts.map +1 -0
  267. package/dist/primitives/slotted-input.d.ts +19 -0
  268. package/dist/primitives/slotted-input.d.ts.map +1 -0
  269. package/dist/progress.cjs.js +3 -3
  270. package/dist/progress.esm.js +3 -3
  271. package/dist/quick-actions.cjs.js +5 -5
  272. package/dist/quick-actions.esm.js +3 -3
  273. package/dist/radio-group.cjs.js +9 -9
  274. package/dist/radio-group.esm.js +47 -24
  275. package/dist/radio.cjs.js +1 -1
  276. package/dist/radio.esm.js +1 -1
  277. package/dist/rating.cjs.js +6 -6
  278. package/dist/rating.esm.js +21 -10
  279. package/dist/{runtime-BRT7E4A8.mjs → runtime-CORXjP7e.mjs} +379 -357
  280. package/dist/runtime-uCly3ECd.js +5 -0
  281. package/dist/runtime.cjs.js +1 -1
  282. package/dist/runtime.esm.js +1 -1
  283. package/dist/scroll-area.cjs.js +1 -1
  284. package/dist/scroll-area.esm.js +1 -1
  285. package/dist/section.cjs.js +1 -1
  286. package/dist/section.esm.js +1 -1
  287. package/dist/select.cjs.js +21 -21
  288. package/dist/select.esm.js +111 -71
  289. package/dist/selection-popup.cjs.js +2 -2
  290. package/dist/selection-popup.esm.js +2 -2
  291. package/dist/semantic-tokens.d.ts.map +1 -1
  292. package/dist/separator.cjs.js +1 -1
  293. package/dist/separator.esm.js +1 -1
  294. package/dist/sidebar.cjs.js +15 -15
  295. package/dist/sidebar.esm.js +48 -42
  296. package/dist/skeleton.cjs.js +1 -1
  297. package/dist/skeleton.esm.js +1 -1
  298. package/dist/slider.cjs.js +11 -11
  299. package/dist/slider.esm.js +40 -23
  300. package/dist/slot.cjs.js +1 -1
  301. package/dist/slot.esm.js +1 -1
  302. package/dist/slotted-input-BVq2QQg2.js +1 -0
  303. package/dist/slotted-input-atWznLfm.mjs +13 -0
  304. package/dist/sortable.cjs.js +25 -25
  305. package/dist/sortable.esm.js +29 -21
  306. package/dist/spinning-text.cjs.js +1 -1
  307. package/dist/spinning-text.esm.js +1 -1
  308. package/dist/split-button.cjs.js +1 -1
  309. package/dist/split-button.esm.js +1 -1
  310. package/dist/splitter.cjs.js +1 -1
  311. package/dist/splitter.esm.js +1 -1
  312. package/dist/standalone/add-icons.d.ts +2 -0
  313. package/dist/standalone/add-icons.d.ts.map +1 -0
  314. package/dist/standalone/preload.d.ts +2 -0
  315. package/dist/standalone/preload.d.ts.map +1 -0
  316. package/dist/stepper.cjs.js +3 -3
  317. package/dist/stepper.esm.js +3 -3
  318. package/dist/switch.cjs.js +9 -9
  319. package/dist/switch.esm.js +56 -35
  320. package/dist/table.cjs.js +1 -1
  321. package/dist/table.esm.js +1 -1
  322. package/dist/tabs.cjs.js +14 -14
  323. package/dist/tabs.esm.js +129 -115
  324. package/dist/tags-input.cjs.js +1 -1
  325. package/dist/tags-input.esm.js +1 -1
  326. package/dist/textarea.cjs.js +33 -11
  327. package/dist/textarea.esm.js +74 -35
  328. package/dist/theme.d.ts +6 -0
  329. package/dist/theme.d.ts.map +1 -1
  330. package/dist/time-field.cjs.js +1 -1
  331. package/dist/time-field.esm.js +2 -2
  332. package/dist/time-picker.cjs.js +1 -1
  333. package/dist/time-picker.esm.js +3 -3
  334. package/dist/timeline.cjs.js +2 -2
  335. package/dist/timeline.esm.js +2 -2
  336. package/dist/toast.cjs.js +4 -4
  337. package/dist/toast.esm.js +17 -16
  338. package/dist/toggle-group.cjs.js +1 -1
  339. package/dist/toggle-group.esm.js +1 -1
  340. package/dist/toggle.cjs.js +3 -3
  341. package/dist/toggle.esm.js +9 -9
  342. package/dist/toolbar.cjs.js +1 -1
  343. package/dist/toolbar.esm.js +1 -1
  344. package/dist/tooltip.cjs.js +2 -2
  345. package/dist/tooltip.esm.js +12 -14
  346. package/dist/transfer-list.cjs.js +1 -1
  347. package/dist/transfer-list.esm.js +1 -1
  348. package/dist/{tree-33fVNnaf.mjs → tree-CD2k2lIC.mjs} +1 -1
  349. package/dist/{tree-Dc02MChE.js → tree-ChQfhxya.js} +1 -1
  350. package/dist/tree-item.cjs.js +1 -1
  351. package/dist/tree-item.esm.js +1 -1
  352. package/dist/tree.cjs.js +1 -1
  353. package/dist/tree.esm.js +1 -1
  354. package/dist/visually-hidden.cjs.js +1 -1
  355. package/dist/visually-hidden.esm.js +1 -1
  356. package/dist/wizard.cjs.js +4 -4
  357. package/dist/wizard.esm.js +4 -4
  358. package/package.json +3 -2
  359. package/dist/focus-scope-Bwug2gDv.js +0 -1
  360. package/dist/focus-scope-CmEsG5UZ.mjs +0 -138
  361. package/dist/runtime-CXw4SGV9.js +0 -5
  362. package/dist/ui-button-C3OmI7Sn.mjs +0 -684
  363. package/dist/ui-button-CnLwXBnx.js +0 -520
  364. package/dist/ui-icon-D3avtxX_.js +0 -207
  365. package/dist/ui-icon-DLhB08Fo.mjs +0 -361
@@ -1,4 +1,4 @@
1
- import { E as f } from "./ElementBase-BeZT54Hj.mjs";
1
+ import { E as f } from "./ElementBase-D5QsC5Vw.mjs";
2
2
  const g = {
3
3
  sm: "var(--ui-breakpoint-sm, 640px)",
4
4
  md: "var(--ui-breakpoint-md, 768px)",
package/dist/menu.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("./ElementBase-DxbvhLJs.js"),x=require("./trigger-DkPsKxsP.js"),A=require("./portal-XbYR3m_q.js"),E=require("./dismissable-layer-DNfrKA20.js"),S=require("./positioner-DZ1FW6A9.js"),c=require("./overlay-motion-B56x1GoY.js"),k=require("./menu-item-styles-DUdyjQ7i.js");function _(r){return r==="top"||r==="left"||r==="right"?r:"bottom"}function w(r){return r==="sm"||r==="1"||r==="compact"?"sm":r==="lg"||r==="3"||r==="comfortable"?"lg":"md"}function I(r){return!r||r==="default"?null:r==="none"?"0px":r==="sm"?"8px":r==="md"?"12px":r==="lg"?"16px":r==="full"?"999px":r==="square"?"6px":r==="soft"?"14px":/^\d+(\.\d+)?$/.test(r)?`${r}px`:/^\d+(\.\d+)?(px|rem|em|%)$/.test(r)?r:null}function l(r,e){return r.getAttribute(e)||""}function p(r,e){if(r==null)return e;const t=String(r).toLowerCase();return t!=="false"&&t!=="0"}function u(){return['[role="menuitem"]','[role="menuitemcheckbox"]','[role="menuitemradio"]',".item","[data-menu-item]"].join(", ")}function m(r){return r.hasAttribute("disabled")||r.getAttribute("aria-disabled")==="true"||!!r.disabled}function f(r){const e=typeof r.composedPath=="function"?r.composedPath():[];for(const i of e)if(i instanceof HTMLElement&&i.matches(u()))return i;const t=r.target;return t instanceof HTMLElement?t.closest(u()):null}const C=new Set(["variant","density","shape","elevation","tone","size","radius"]),T=["--ui-menu-bg","--ui-menu-color","--ui-menu-border-color","--ui-menu-border","--ui-menu-shadow","--ui-menu-radius","--ui-menu-padding","--ui-menu-min-width","--ui-menu-ring","--ui-menu-backdrop","--ui-menu-z","--ui-menu-item-radius","--ui-menu-item-gap","--ui-menu-item-min-height","--ui-menu-item-pad-y","--ui-menu-item-pad-x","--ui-menu-item-font-size","--ui-menu-item-line-height","--ui-menu-separator-margin","--ui-menu-item-hover-bg","--ui-menu-item-active-color"],L=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("./ElementBase-CbUsP3D6.js"),p=require("./clone-source-C7E_ri5f.js"),A=require("./trigger-DkPsKxsP.js"),E=require("./portal-XbYR3m_q.js"),S=require("./dismissable-layer-DNfrKA20.js"),k=require("./positioner-DZ1FW6A9.js"),m=require("./overlay-motion-B56x1GoY.js"),w=require("./menu-item-styles-DUdyjQ7i.js");function v(r){return r==="top"||r==="left"||r==="right"?r:"bottom"}function C(r){return r==="sm"||r==="1"||r==="compact"?"sm":r==="lg"||r==="3"||r==="comfortable"?"lg":"md"}function I(r){return!r||r==="default"?null:r==="none"?"0px":r==="sm"?"8px":r==="md"?"12px":r==="lg"?"16px":r==="full"?"999px":r==="square"?"6px":r==="soft"?"14px":/^\d+(\.\d+)?$/.test(r)?`${r}px`:/^\d+(\.\d+)?(px|rem|em|%)$/.test(r)?r:null}function l(r,e){return r.getAttribute(e)||""}function f(r,e){if(r==null)return e;const t=String(r).toLowerCase();return t!=="false"&&t!=="0"}function u(){return['[role="menuitem"]','[role="menuitemcheckbox"]','[role="menuitemradio"]',".item","[data-menu-item]"].join(", ")}function c(r){return r.hasAttribute("disabled")||r.getAttribute("aria-disabled")==="true"||!!r.disabled}function b(r){const e=typeof r.composedPath=="function"?r.composedPath():[];for(const i of e)if(i instanceof HTMLElement&&i.matches(u()))return i;const t=r.target;return t instanceof HTMLElement?t.closest(u()):null}const T=new Set(["variant","density","shape","elevation","tone","size","radius"]),L=["--ui-menu-bg","--ui-menu-color","--ui-menu-border-color","--ui-menu-border","--ui-menu-shadow","--ui-menu-radius","--ui-menu-padding","--ui-menu-min-width","--ui-menu-ring","--ui-menu-backdrop","--ui-menu-z","--ui-menu-item-radius","--ui-menu-item-gap","--ui-menu-item-min-height","--ui-menu-item-pad-y","--ui-menu-item-pad-x","--ui-menu-item-font-size","--ui-menu-item-line-height","--ui-menu-separator-margin","--ui-menu-item-hover-bg","--ui-menu-item-active-color"],P=`
2
2
  :host {
3
3
  --ui-menu-bg: var(--base-menu-bg, var(--color-panel-solid, var(--ui-color-surface, var(--ui-surface, #ffffff))));
4
4
  --ui-menu-color: var(--ui-color-text, var(--ui-text, #0f172a));
@@ -40,8 +40,8 @@
40
40
  pointer-events: none;
41
41
  opacity: 0.62;
42
42
  }
43
- `,P=`
44
- ${c.OVERLAY_MOTION_CSS}
43
+ `,O=`
44
+ ${m.OVERLAY_MOTION_CSS}
45
45
 
46
46
  .menu {
47
47
  position: absolute;
@@ -99,7 +99,7 @@
99
99
  --ui-menu-bg: #0f172a;
100
100
  --ui-menu-color: #f8fafc;
101
101
  --ui-menu-border-color: #334155;
102
- --ui-menu-ring: #93c5fd;
102
+ --ui-menu-ring: var(--ui-color-accent-on-dark, #93c5fd);
103
103
  --ui-menu-item-hover-bg: color-mix(in srgb, #ffffff 12%, transparent);
104
104
  }
105
105
 
@@ -175,7 +175,7 @@
175
175
  --ui-menu-item-active-color: inherit;
176
176
  }
177
177
 
178
- ${k.createSharedMenuItemCss({scopes:[".menu"],prefix:"--ui-menu",shortcutSelectors:[".shortcut",".meta"],activeStateSelectors:['.item[data-active="true"]','[role="menuitem"][data-active="true"]','[role="menuitemcheckbox"][data-active="true"]','[role="menuitemradio"][data-active="true"]','[data-menu-item][data-active="true"]']})}
178
+ ${w.createSharedMenuItemCss({scopes:[".menu"],prefix:"--ui-menu",shortcutSelectors:[".shortcut",".meta"],activeStateSelectors:['.item[data-active="true"]','[role="menuitem"][data-active="true"]','[role="menuitemcheckbox"][data-active="true"]','[role="menuitemradio"][data-active="true"]','[data-menu-item][data-active="true"]']})}
179
179
 
180
180
  .menu[data-variant="solid"] [role="menuitem"]:hover,
181
181
  .menu[data-variant="solid"] [role="menuitem"]:focus-visible,
@@ -246,8 +246,8 @@
246
246
  box-shadow: none;
247
247
  }
248
248
  }
249
- `;class v extends y.ElementBase{constructor(){super(),this._isOpen=!1,this._portalEl=null,this._positioner=null,this._dismissableLayer=null,this._restoreFocusEl=null,this._typeaheadBuffer="",this._typeaheadTimer=null,this._globalListenersBound=!1,this._menuClickHandler=null,this._menuId=`ui-menu-${Math.random().toString(36).slice(2,10)}`,this._onHostClick=this._onHostClick.bind(this),this._onDocumentKeyDown=this._onDocumentKeyDown.bind(this),this._onDocumentScroll=this._onDocumentScroll.bind(this),this._onSlotChange=this._onSlotChange.bind(this)}static get observedAttributes(){return["open","disabled","placement","variant","size","density","radius","shape","elevation","tone","close-on-select","close-on-scroll","typeahead"]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onHostClick),this.root.addEventListener("slotchange",this._onSlotChange),this._syncOpenState(),this._syncTriggerA11y()}disconnectedCallback(){this.removeEventListener("click",this._onHostClick),this.root.removeEventListener("slotchange",this._onSlotChange),this._unbindGlobalListeners(),this._teardownPortal(),super.disconnectedCallback()}attributeChangedCallback(e,t,i){if(t!==i){if(e==="open"){this._syncOpenState();return}if(!(e==="close-on-select"||e==="close-on-scroll"||e==="typeahead")){if(e==="disabled"){this.hasAttribute("disabled")&&this.close(),this._syncTriggerA11y();return}if(e==="placement"&&this._isOpen){this._rebuildPositioner();return}C.has(e)&&this._isOpen&&this._syncPortalVisualState()}}}open(){this.hasAttribute("disabled")||this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}get closeOnSelect(){return p(this.getAttribute("close-on-select"),!0)}set closeOnSelect(e){this.setAttribute("close-on-select",e?"true":"false")}get closeOnScroll(){return p(this.getAttribute("close-on-scroll"),!0)}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get typeahead(){return p(this.getAttribute("typeahead"),!0)}set typeahead(e){this.setAttribute("typeahead",e?"true":"false")}_getTrigger(){return this.querySelector('[slot="trigger"]')}_getContentSource(){return this.querySelector('[slot="content"]')}_getItemSources(){return Array.from(this.querySelectorAll('[slot="item"]'))}_onSlotChange(){this._isOpen&&this._rebuildPortalContent()}_syncTriggerA11y(){const e=this._getTrigger();if(!e)return;const t=x.resolveTriggerControl(e);if(t.setAttribute("aria-haspopup","menu"),t.setAttribute("aria-expanded",this._isOpen?"true":"false"),t.setAttribute("aria-controls",this._menuId),this.hasAttribute("disabled")){t.setAttribute("aria-disabled","true"),t.setAttribute("tabindex","-1");return}t.getAttribute("aria-disabled")==="true"&&t.removeAttribute("aria-disabled"),t.getAttribute("tabindex")==="-1"&&t.removeAttribute("tabindex")}_syncOpenState(){const e=this.hasAttribute("open")&&!this.hasAttribute("disabled");if(e===this._isOpen){this._syncTriggerA11y(),e&&!this._portalEl?this._mountPortal():e&&this._positioner?.update();return}if(this._isOpen=e,this._syncTriggerA11y(),e){this._bindGlobalListeners(),this._restoreFocusEl=document.activeElement,this._mountPortal(),this.dispatchEvent(new CustomEvent("open",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!0}})),requestAnimationFrame(()=>this._focusFirstItem());return}this._unbindGlobalListeners(),this._teardownPortal(!0),this.dispatchEvent(new CustomEvent("close",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!1}}));const t=this._getTrigger();if(t)try{t.focus({preventScroll:!0})}catch{t.focus()}this._restoreFocusEl=null}_bindGlobalListeners(){this._globalListenersBound||(document.addEventListener("keydown",this._onDocumentKeyDown),document.addEventListener("scroll",this._onDocumentScroll,{passive:!0,capture:!0}),this._globalListenersBound=!0)}_unbindGlobalListeners(){this._globalListenersBound&&(document.removeEventListener("keydown",this._onDocumentKeyDown),document.removeEventListener("scroll",this._onDocumentScroll,!0),this._globalListenersBound=!1)}_clearActiveState(){this._portalEl&&this._portalEl.querySelectorAll(u()).forEach(e=>e.removeAttribute("data-active"))}_queryItems(){return this._portalEl?Array.from(this._portalEl.querySelectorAll(u())).filter(e=>!m(e)):[]}_focusItem(e){if(e){this._clearActiveState(),e.setAttribute("data-active","true");try{e.focus({preventScroll:!0})}catch{e.focus()}typeof e.scrollIntoView=="function"&&e.scrollIntoView({block:"nearest"})}}_focusFirstItem(){this._focusItem(this._queryItems()[0]||null)}_focusLastItem(){const e=this._queryItems();this._focusItem(e[e.length-1]||null)}_moveFocus(e){const t=this._queryItems();if(!t.length)return;const i=document.activeElement,n=i?t.findIndex(o=>o===i||o.contains(i)):-1,s=n===-1?0:Math.max(0,Math.min(t.length-1,n+e));this._focusItem(t[s]||null)}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_isTypeaheadKey(e){return e.ctrlKey||e.metaKey||e.altKey?!1:e.key.length===1&&/\S/.test(e.key)}_handleTypeahead(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const t=document.activeElement,i=this._queryItems();if(!i.length)return!1;const n=t?i.findIndex(a=>a===t||a.contains(t)):-1,o=(n>=0?[...i.slice(n+1),...i.slice(0,n+1)]:i).find(a=>(a.textContent||"").trim().toLowerCase().startsWith(this._typeaheadBuffer));return o?(e.preventDefault(),this._focusItem(o),!0):!1}_applySelectionBehavior(e){const t=e.getAttribute("role");if(t==="menuitemcheckbox"){const n=e.getAttribute("aria-checked")==="true";e.setAttribute("aria-checked",n?"false":"true"),e.setAttribute("data-state",n?"unchecked":"checked");return}if(t!=="menuitemradio"||!this._portalEl)return;const i=e.getAttribute("data-group")||e.getAttribute("name")||"";this._portalEl.querySelectorAll('[role="menuitemradio"]').forEach(n=>{const s=n.getAttribute("data-group")||n.getAttribute("name")||"";i&&s!==i||(n.setAttribute("aria-checked",n===e?"true":"false"),n.setAttribute("data-state",n===e?"checked":"unchecked"))})}_handleItemSelect(e){this._applySelectionBehavior(e);const t=e.getAttribute("data-index"),i=t!=null&&!Number.isNaN(Number(t))?Number(t):void 0;this.dispatchEvent(new CustomEvent("select",{bubbles:!0,detail:{index:i,value:e.getAttribute("data-value")||e.getAttribute("value")||void 0,label:e.getAttribute("aria-label")||e.textContent?.trim()||void 0,checked:e.getAttribute("aria-checked")==="true",item:e}})),this.closeOnSelect?this.close():this._focusItem(e)}_buildLegacyItems(e){const t=this._getItemSources();return t.forEach((i,n)=>{const s=i.cloneNode(!0);s.removeAttribute("slot"),s.getAttribute("role")||s.setAttribute("role","menuitem"),s.classList.contains("item")||s.classList.add("item"),s.hasAttribute("tabindex")||s.setAttribute("tabindex","-1"),s.hasAttribute("data-index")||s.setAttribute("data-index",String(n)),e.appendChild(s)}),t.length}_hydrateMenuItems(e){const t=Array.from(e.querySelectorAll(u()));return t.forEach((i,n)=>{i.getAttribute("role")||i.setAttribute("role","menuitem"),i.hasAttribute("tabindex")||i.setAttribute("tabindex","-1"),i.classList.contains("item")||i.classList.add("item"),i.hasAttribute("data-index")||i.setAttribute("data-index",String(n))}),t.length}_applyPortalTokens(e){const t=window.getComputedStyle(this);T.forEach(i=>{const n=t.getPropertyValue(i).trim();n?e.style.setProperty(i,n):e.style.removeProperty(i)})}_applyPortalVariantData(e){const t=l(this,"variant"),i=w(this.getAttribute("size")||this.getAttribute("density")),n=l(this,"density"),s=this.getAttribute("radius"),o=l(this,"shape"),a=l(this,"elevation"),d=l(this,"tone"),b=t==="default"||t===""?"":t==="line"?"outline":t==="glass"?"soft":t;b?e.setAttribute("data-variant",b):e.removeAttribute("data-variant"),i!=="md"?e.setAttribute("data-size",i):e.removeAttribute("data-size"),n&&n!=="default"?e.setAttribute("data-density",n):e.removeAttribute("data-density"),a&&a!=="default"?e.setAttribute("data-elevation",a):e.removeAttribute("data-elevation");const g=d==="default"||d==="brand"||d===""?"":d;g?e.setAttribute("data-tone",g):e.removeAttribute("data-tone");const h=I(s||o||null);h?(e.style.setProperty("--ui-menu-radius",h),e.style.setProperty("--ui-menu-item-radius",h==="999px"?"999px":`calc(${h} - 2px)`)):(e.style.removeProperty("--ui-menu-radius"),e.style.removeProperty("--ui-menu-item-radius"))}_syncPortalVisualState(){this._portalEl&&(this._applyPortalTokens(this._portalEl),this._applyPortalVariantData(this._portalEl),this._portalEl.setAttribute("aria-hidden","false"),this._portalEl.setAttribute("aria-busy","false"),this._portalEl.style.display="block",this._portalEl.style.visibility="visible",this._portalEl.style.opacity="1",this._portalEl.style.transform="translateY(0px) scale(1)",this._portalEl.style.pointerEvents="auto")}_attachMenuEvents(e){this._menuClickHandler=t=>{const i=f(t);!i||m(i)||this._handleItemSelect(i)},e.addEventListener("click",this._menuClickHandler),e.addEventListener("mouseover",t=>{const i=f(t);!i||m(i)||this._focusItem(i)}),e.addEventListener("focusin",t=>{const i=f(t);!i||m(i)||this._focusItem(i)}),e.addEventListener("mouseleave",()=>this._clearActiveState())}_buildPortalElement(){const e=document.createElement("div");e.className="surface menu",e.id=this._menuId,e.setAttribute("part","menu"),e.setAttribute("role","menu"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","false"),e.setAttribute("aria-busy","false"),e.setAttribute("data-placement",_(this.getAttribute("placement")));const t=document.createElement("style");t.textContent=P,e.appendChild(t);const i=this._getContentSource();let n=0;if(i){const s=i.cloneNode(!0);s.removeAttribute("slot"),e.appendChild(s)}else n=this._buildLegacyItems(e);if(n=this._hydrateMenuItems(e)||n,n===0){const s=document.createElement("div");s.className="empty-state",s.textContent="No items",e.appendChild(s)}return this._applyPortalTokens(e),this._applyPortalVariantData(e),e.style.display="block",e.style.visibility="visible",e.style.opacity="1",e.style.transform="translateY(0px) scale(1)",e.style.pointerEvents="auto",this._attachMenuEvents(e),e}_rebuildPortalContent(){if(!this._portalEl)return;const e=this._portalEl.parentElement;if(!e)return;const t=this._portalEl,i=this._buildPortalElement();e.replaceChild(i,t),this._portalEl=i,this._rebuildPositioner(),c.openOverlay(i,{animate:!1})}_rebuildPositioner(){const e=this._getTrigger();!this._portalEl||!e||(this._positioner?.destroy(),this._positioner=S.createPositioner({anchor:e,floating:this._portalEl,placement:_(this.getAttribute("placement")),offset:6,flip:!0,shift:!0,fitViewport:!0,observeScroll:!1}))}_mountPortal(){const e=this._getTrigger();if(!e)return;let t=!1;if(this._portalEl)this._syncPortalVisualState();else{this._portalEl=this._buildPortalElement();const i=A.createPortalContainer();if(!i){this._portalEl=null;return}i.appendChild(this._portalEl),t=!0}this._rebuildPositioner(),t&&this._portalEl&&c.openOverlay(this._portalEl),this._dismissableLayer?.destroy(),this._dismissableLayer=E.createDismissableLayer({node:this._portalEl,trigger:e,closeOnEscape:!0,closeOnPointerOutside:!0,onDismiss:()=>this.close()})}_teardownPortal(e=!1){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._positioner?.destroy(),this._positioner=null,e?c.retireOverlay(this._portalEl):c.removeOverlay(this._portalEl),this._portalEl=null,this._menuClickHandler=null,this._resetTypeahead()}_isEventInsideTrigger(e){const t=this._getTrigger();return!!t&&e.composedPath().includes(t)}_isEventInsideMenu(e){return!!this._portalEl&&e.composedPath().includes(this._portalEl)}_isInternalScrollEvent(e){const t=typeof e.composedPath=="function"?e.composedPath():[];if(this._portalEl&&t.includes(this._portalEl))return!0;const i=this._getTrigger();if(i&&t.includes(i))return!0;const n=e.target;return!!(n instanceof Node&&(this._portalEl?.contains(n)||i?.contains(n)))}_onHostClick(e){this.hasAttribute("disabled")||this._isEventInsideTrigger(e)&&(e.preventDefault(),this.toggle())}_onDocumentScroll(e){!this._isOpen||!this.closeOnScroll||this._isInternalScrollEvent(e)||this.close()}_onDocumentKeyDown(e){if(!this._isOpen){if(e.key!=="ArrowDown"&&e.key!=="ArrowUp"||!this._isEventInsideTrigger(e))return;e.preventDefault(),this.open(),requestAnimationFrame(()=>{e.key==="ArrowUp"?this._focusLastItem():this._focusFirstItem()});return}if(!(!this._isEventInsideTrigger(e)&&!this._isEventInsideMenu(e))&&!this._handleTypeahead(e)){if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),this.close();return}if(e.key==="ArrowDown"){e.preventDefault(),this._moveFocus(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this._moveFocus(-1);return}if(e.key==="Home"){e.preventDefault(),this._focusFirstItem();return}if(e.key==="End"){e.preventDefault(),this._focusLastItem();return}if(e.key==="Tab"){this.close();return}if(e.key==="Enter"||e.key===" "){const t=document.activeElement;if(!t||!this._portalEl?.contains(t))return;const i=t.closest(u());if(!i||m(i))return;e.preventDefault(),this._handleItemSelect(i)}}}render(){this.setContent(`
250
- <style>${L}</style>
249
+ `;class y extends x.ElementBase{constructor(){super(),this._isOpen=!1,this._portalEl=null,this._positioner=null,this._dismissableLayer=null,this._restoreFocusEl=null,this._typeaheadBuffer="",this._typeaheadTimer=null,this._globalListenersBound=!1,this._menuClickHandler=null,this._menuId=`ui-menu-${Math.random().toString(36).slice(2,10)}`,this._onHostClick=this._onHostClick.bind(this),this._onDocumentKeyDown=this._onDocumentKeyDown.bind(this),this._onDocumentScroll=this._onDocumentScroll.bind(this),this._onSlotChange=this._onSlotChange.bind(this)}static get observedAttributes(){return["open","disabled","placement","variant","size","density","radius","shape","elevation","tone","close-on-select","close-on-scroll","typeahead"]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onHostClick),this.root.addEventListener("slotchange",this._onSlotChange),this._hideSources(),this._syncOpenState(),this._syncTriggerA11y()}disconnectedCallback(){this.removeEventListener("click",this._onHostClick),this.root.removeEventListener("slotchange",this._onSlotChange),this._unbindGlobalListeners(),this._teardownPortal(),super.disconnectedCallback()}attributeChangedCallback(e,t,i){if(t!==i){if(e==="open"){this._syncOpenState();return}if(!(e==="close-on-select"||e==="close-on-scroll"||e==="typeahead")){if(e==="disabled"){this.hasAttribute("disabled")&&this.close(),this._syncTriggerA11y();return}if(e==="placement"&&this._isOpen){this._rebuildPositioner();return}T.has(e)&&this._isOpen&&this._syncPortalVisualState()}}}open(){this.hasAttribute("disabled")||this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}get closeOnSelect(){return f(this.getAttribute("close-on-select"),!0)}set closeOnSelect(e){this.setAttribute("close-on-select",e?"true":"false")}get closeOnScroll(){return f(this.getAttribute("close-on-scroll"),!0)}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get typeahead(){return f(this.getAttribute("typeahead"),!0)}set typeahead(e){this.setAttribute("typeahead",e?"true":"false")}_getTrigger(){return this.querySelector('[slot="trigger"]')}_getContentSource(){return this.querySelector('[slot="content"]')}_getItemSources(){return Array.from(this.querySelectorAll('[slot="item"]'))}_onSlotChange(){this._hideSources(),this._isOpen&&this._rebuildPortalContent()}_hideSources(){p.hideCloneSource(this._getContentSource()),this._getItemSources().forEach(e=>p.hideCloneSource(e))}_syncTriggerA11y(){const e=this._getTrigger();if(!e)return;const t=A.resolveTriggerControl(e);if(t.setAttribute("aria-haspopup","menu"),t.setAttribute("aria-expanded",this._isOpen?"true":"false"),t.setAttribute("aria-controls",this._menuId),this.hasAttribute("disabled")){t.setAttribute("aria-disabled","true"),t.setAttribute("tabindex","-1");return}t.getAttribute("aria-disabled")==="true"&&t.removeAttribute("aria-disabled"),t.getAttribute("tabindex")==="-1"&&t.removeAttribute("tabindex")}_syncOpenState(){const e=this.hasAttribute("open")&&!this.hasAttribute("disabled");if(e===this._isOpen){this._syncTriggerA11y(),e&&!this._portalEl?this._mountPortal():e&&this._positioner?.update();return}if(this._isOpen=e,this._syncTriggerA11y(),e){this._bindGlobalListeners(),this._restoreFocusEl=document.activeElement,this._mountPortal(),this.dispatchEvent(new CustomEvent("open",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!0}})),requestAnimationFrame(()=>this._focusFirstItem());return}this._unbindGlobalListeners(),this._teardownPortal(!0),this.dispatchEvent(new CustomEvent("close",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!1}}));const t=this._getTrigger();if(t)try{t.focus({preventScroll:!0})}catch{t.focus()}this._restoreFocusEl=null}_bindGlobalListeners(){this._globalListenersBound||(document.addEventListener("keydown",this._onDocumentKeyDown),document.addEventListener("scroll",this._onDocumentScroll,{passive:!0,capture:!0}),this._globalListenersBound=!0)}_unbindGlobalListeners(){this._globalListenersBound&&(document.removeEventListener("keydown",this._onDocumentKeyDown),document.removeEventListener("scroll",this._onDocumentScroll,!0),this._globalListenersBound=!1)}_clearActiveState(){this._portalEl&&this._portalEl.querySelectorAll(u()).forEach(e=>e.removeAttribute("data-active"))}_queryItems(){return this._portalEl?Array.from(this._portalEl.querySelectorAll(u())).filter(e=>!c(e)):[]}_focusItem(e){if(e){this._clearActiveState(),e.setAttribute("data-active","true");try{e.focus({preventScroll:!0})}catch{e.focus()}typeof e.scrollIntoView=="function"&&e.scrollIntoView({block:"nearest"})}}_focusFirstItem(){this._focusItem(this._queryItems()[0]||null)}_focusLastItem(){const e=this._queryItems();this._focusItem(e[e.length-1]||null)}_moveFocus(e){const t=this._queryItems();if(!t.length)return;const i=document.activeElement,n=i?t.findIndex(o=>o===i||o.contains(i)):-1,s=n===-1?0:Math.max(0,Math.min(t.length-1,n+e));this._focusItem(t[s]||null)}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_isTypeaheadKey(e){return e.ctrlKey||e.metaKey||e.altKey?!1:e.key.length===1&&/\S/.test(e.key)}_handleTypeahead(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const t=document.activeElement,i=this._queryItems();if(!i.length)return!1;const n=t?i.findIndex(a=>a===t||a.contains(t)):-1,o=(n>=0?[...i.slice(n+1),...i.slice(0,n+1)]:i).find(a=>(a.textContent||"").trim().toLowerCase().startsWith(this._typeaheadBuffer));return o?(e.preventDefault(),this._focusItem(o),!0):!1}_applySelectionBehavior(e){const t=e.getAttribute("role");if(t==="menuitemcheckbox"){const n=e.getAttribute("aria-checked")==="true";e.setAttribute("aria-checked",n?"false":"true"),e.setAttribute("data-state",n?"unchecked":"checked");return}if(t!=="menuitemradio"||!this._portalEl)return;const i=e.getAttribute("data-group")||e.getAttribute("name")||"";this._portalEl.querySelectorAll('[role="menuitemradio"]').forEach(n=>{const s=n.getAttribute("data-group")||n.getAttribute("name")||"";i&&s!==i||(n.setAttribute("aria-checked",n===e?"true":"false"),n.setAttribute("data-state",n===e?"checked":"unchecked"))})}_handleItemSelect(e){this._applySelectionBehavior(e);const t=e.getAttribute("data-index"),i=t!=null&&!Number.isNaN(Number(t))?Number(t):void 0;this.dispatchEvent(new CustomEvent("select",{bubbles:!0,detail:{index:i,value:e.getAttribute("data-value")||e.getAttribute("value")||void 0,label:e.getAttribute("aria-label")||e.textContent?.trim()||void 0,checked:e.getAttribute("aria-checked")==="true",item:e}})),this.closeOnSelect?this.close():this._focusItem(e)}_buildLegacyItems(e){const t=this._getItemSources();return t.forEach((i,n)=>{const s=p.revealClone(i.cloneNode(!0));s.removeAttribute("slot"),s.getAttribute("role")||s.setAttribute("role","menuitem"),s.classList.contains("item")||s.classList.add("item"),s.hasAttribute("tabindex")||s.setAttribute("tabindex","-1"),s.hasAttribute("data-index")||s.setAttribute("data-index",String(n)),e.appendChild(s)}),t.length}_hydrateMenuItems(e){const t=Array.from(e.querySelectorAll(u()));return t.forEach((i,n)=>{i.getAttribute("role")||i.setAttribute("role","menuitem"),i.hasAttribute("tabindex")||i.setAttribute("tabindex","-1"),i.classList.contains("item")||i.classList.add("item"),i.hasAttribute("data-index")||i.setAttribute("data-index",String(n))}),t.length}_applyPortalTokens(e){const t=window.getComputedStyle(this);L.forEach(i=>{const n=t.getPropertyValue(i).trim();n?e.style.setProperty(i,n):e.style.removeProperty(i)})}_applyPortalVariantData(e){const t=l(this,"variant"),i=C(this.getAttribute("size")||this.getAttribute("density")),n=l(this,"density"),s=this.getAttribute("radius"),o=l(this,"shape"),a=l(this,"elevation"),d=l(this,"tone"),g=t==="default"||t===""?"":t==="line"?"outline":t==="glass"?"soft":t;g?e.setAttribute("data-variant",g):e.removeAttribute("data-variant"),i!=="md"?e.setAttribute("data-size",i):e.removeAttribute("data-size"),n&&n!=="default"?e.setAttribute("data-density",n):e.removeAttribute("data-density"),a&&a!=="default"?e.setAttribute("data-elevation",a):e.removeAttribute("data-elevation");const _=d==="default"||d==="brand"||d===""?"":d;_?e.setAttribute("data-tone",_):e.removeAttribute("data-tone");const h=I(s||o||null);h?(e.style.setProperty("--ui-menu-radius",h),e.style.setProperty("--ui-menu-item-radius",h==="999px"?"999px":`calc(${h} - 2px)`)):(e.style.removeProperty("--ui-menu-radius"),e.style.removeProperty("--ui-menu-item-radius"))}_syncPortalVisualState(){this._portalEl&&(this._applyPortalTokens(this._portalEl),this._applyPortalVariantData(this._portalEl),this._portalEl.setAttribute("aria-hidden","false"),this._portalEl.setAttribute("aria-busy","false"),this._portalEl.style.display="block",this._portalEl.style.visibility="visible",this._portalEl.style.opacity="1",this._portalEl.style.transform="translateY(0px) scale(1)",this._portalEl.style.pointerEvents="auto")}_attachMenuEvents(e){this._menuClickHandler=t=>{const i=b(t);!i||c(i)||this._handleItemSelect(i)},e.addEventListener("click",this._menuClickHandler),e.addEventListener("mouseover",t=>{const i=b(t);!i||c(i)||this._focusItem(i)}),e.addEventListener("focusin",t=>{const i=b(t);!i||c(i)||this._focusItem(i)}),e.addEventListener("mouseleave",()=>this._clearActiveState())}_buildPortalElement(){const e=document.createElement("div");e.className="surface menu",e.id=this._menuId,e.setAttribute("part","menu"),e.setAttribute("role","menu"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","false"),e.setAttribute("aria-busy","false"),e.setAttribute("data-placement",v(this.getAttribute("placement")));const t=document.createElement("style");t.textContent=O,e.appendChild(t);const i=this._getContentSource();let n=0;if(i){const s=p.revealClone(i.cloneNode(!0));s.removeAttribute("slot"),e.appendChild(s)}else n=this._buildLegacyItems(e);if(n=this._hydrateMenuItems(e)||n,n===0){const s=document.createElement("div");s.className="empty-state",s.textContent="No items",e.appendChild(s)}return this._applyPortalTokens(e),this._applyPortalVariantData(e),e.style.display="block",e.style.visibility="visible",e.style.opacity="1",e.style.transform="translateY(0px) scale(1)",e.style.pointerEvents="auto",this._attachMenuEvents(e),e}_rebuildPortalContent(){if(!this._portalEl)return;const e=this._portalEl.parentElement;if(!e)return;const t=this._portalEl,i=this._buildPortalElement();e.replaceChild(i,t),this._portalEl=i,this._rebuildPositioner(),m.openOverlay(i,{animate:!1})}_rebuildPositioner(){const e=this._getTrigger();!this._portalEl||!e||(this._positioner?.destroy(),this._positioner=k.createPositioner({anchor:e,floating:this._portalEl,placement:v(this.getAttribute("placement")),offset:6,flip:!0,shift:!0,fitViewport:!0,observeScroll:!1}))}_mountPortal(){const e=this._getTrigger();if(!e)return;let t=!1;if(this._portalEl)this._syncPortalVisualState();else{this._portalEl=this._buildPortalElement();const i=E.createPortalContainer();if(!i){this._portalEl=null;return}i.appendChild(this._portalEl),t=!0}this._rebuildPositioner(),t&&this._portalEl&&m.openOverlay(this._portalEl),this._dismissableLayer?.destroy(),this._dismissableLayer=S.createDismissableLayer({node:this._portalEl,trigger:e,closeOnEscape:!0,closeOnPointerOutside:!0,onDismiss:()=>this.close()})}_teardownPortal(e=!1){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._positioner?.destroy(),this._positioner=null,e?m.retireOverlay(this._portalEl):m.removeOverlay(this._portalEl),this._portalEl=null,this._menuClickHandler=null,this._resetTypeahead()}_isEventInsideTrigger(e){const t=this._getTrigger();return!!t&&e.composedPath().includes(t)}_isEventInsideMenu(e){return!!this._portalEl&&e.composedPath().includes(this._portalEl)}_isInternalScrollEvent(e){const t=typeof e.composedPath=="function"?e.composedPath():[];if(this._portalEl&&t.includes(this._portalEl))return!0;const i=this._getTrigger();if(i&&t.includes(i))return!0;const n=e.target;return!!(n instanceof Node&&(this._portalEl?.contains(n)||i?.contains(n)))}_onHostClick(e){this.hasAttribute("disabled")||this._isEventInsideTrigger(e)&&(e.preventDefault(),this.toggle())}_onDocumentScroll(e){!this._isOpen||!this.closeOnScroll||this._isInternalScrollEvent(e)||this.close()}_onDocumentKeyDown(e){if(!this._isOpen){if(e.key!=="ArrowDown"&&e.key!=="ArrowUp"||!this._isEventInsideTrigger(e))return;e.preventDefault(),this.open(),requestAnimationFrame(()=>{e.key==="ArrowUp"?this._focusLastItem():this._focusFirstItem()});return}if(!(!this._isEventInsideTrigger(e)&&!this._isEventInsideMenu(e))&&!this._handleTypeahead(e)){if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),this.close();return}if(e.key==="ArrowDown"){e.preventDefault(),this._moveFocus(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this._moveFocus(-1);return}if(e.key==="Home"){e.preventDefault(),this._focusFirstItem();return}if(e.key==="End"){e.preventDefault(),this._focusLastItem();return}if(e.key==="Tab"){this.close();return}if(e.key==="Enter"||e.key===" "){const t=document.activeElement;if(!t||!this._portalEl?.contains(t))return;const i=t.closest(u());if(!i||c(i))return;e.preventDefault(),this._handleItemSelect(i)}}}render(){this.setContent(`
250
+ <style>${P}</style>
251
251
  <div class="trigger" part="trigger">
252
252
  <slot name="trigger"></slot>
253
253
  </div>
@@ -256,4 +256,4 @@
256
256
  <slot name="content"></slot>
257
257
  </div>
258
258
  <slot></slot>
259
- `),this._syncTriggerA11y(),this._isOpen&&!this._portalEl?this._mountPortal():this._isOpen&&this._positioner?.update()}shouldRenderOnAttributeChange(){return!1}}typeof customElements<"u"&&!customElements.get("ui-menu")&&customElements.define("ui-menu",v);exports.UIMenu=v;
259
+ `),this._syncTriggerA11y(),this._isOpen&&!this._portalEl?this._mountPortal():this._isOpen&&this._positioner?.update()}shouldRenderOnAttributeChange(){return!1}}typeof customElements<"u"&&!customElements.get("ui-menu")&&customElements.define("ui-menu",y);exports.UIMenu=y;
package/dist/menu.esm.js CHANGED
@@ -1,17 +1,18 @@
1
- import { E as v } from "./ElementBase-BeZT54Hj.mjs";
2
- import { r as y } from "./trigger-BjnxLCeQ.mjs";
3
- import { b as x } from "./portal-DeaM1tYY.mjs";
4
- import { c as A } from "./dismissable-layer-BmPIoK80.mjs";
5
- import { e as E } from "./positioner-BE8Nbho2.mjs";
6
- import { O as k, o as g, r as S, a as w } from "./overlay-motion-BX3dPLay.mjs";
7
- import { c as I } from "./menu-item-styles-CdqxPUuw.mjs";
8
- function _(r) {
1
+ import { E as x } from "./ElementBase-D5QsC5Vw.mjs";
2
+ import { h as g, r as _ } from "./clone-source-BxK2pEVw.mjs";
3
+ import { r as A } from "./trigger-BjnxLCeQ.mjs";
4
+ import { b as E } from "./portal-DeaM1tYY.mjs";
5
+ import { c as S } from "./dismissable-layer-BmPIoK80.mjs";
6
+ import { e as k } from "./positioner-BE8Nbho2.mjs";
7
+ import { O as w, o as v, r as C, a as I } from "./overlay-motion-BX3dPLay.mjs";
8
+ import { c as T } from "./menu-item-styles-CdqxPUuw.mjs";
9
+ function y(r) {
9
10
  return r === "top" || r === "left" || r === "right" ? r : "bottom";
10
11
  }
11
- function C(r) {
12
+ function L(r) {
12
13
  return r === "sm" || r === "1" || r === "compact" ? "sm" : r === "lg" || r === "3" || r === "comfortable" ? "lg" : "md";
13
14
  }
14
- function T(r) {
15
+ function P(r) {
15
16
  return !r || r === "default" ? null : r === "none" ? "0px" : r === "sm" ? "8px" : r === "md" ? "12px" : r === "lg" ? "16px" : r === "full" ? "999px" : r === "square" ? "6px" : r === "soft" ? "14px" : /^\d+(\.\d+)?$/.test(r) ? `${r}px` : /^\d+(\.\d+)?(px|rem|em|%)$/.test(r) ? r : null;
16
17
  }
17
18
  function l(r, e) {
@@ -42,7 +43,7 @@ function p(r) {
42
43
  const t = r.target;
43
44
  return t instanceof HTMLElement ? t.closest(u()) : null;
44
45
  }
45
- const L = /* @__PURE__ */ new Set(["variant", "density", "shape", "elevation", "tone", "size", "radius"]), P = [
46
+ const O = /* @__PURE__ */ new Set(["variant", "density", "shape", "elevation", "tone", "size", "radius"]), D = [
46
47
  "--ui-menu-bg",
47
48
  "--ui-menu-color",
48
49
  "--ui-menu-border-color",
@@ -64,7 +65,7 @@ const L = /* @__PURE__ */ new Set(["variant", "density", "shape", "elevation", "
64
65
  "--ui-menu-separator-margin",
65
66
  "--ui-menu-item-hover-bg",
66
67
  "--ui-menu-item-active-color"
67
- ], O = `
68
+ ], z = `
68
69
  :host {
69
70
  --ui-menu-bg: var(--base-menu-bg, var(--color-panel-solid, var(--ui-color-surface, var(--ui-surface, #ffffff))));
70
71
  --ui-menu-color: var(--ui-color-text, var(--ui-text, #0f172a));
@@ -106,8 +107,8 @@ const L = /* @__PURE__ */ new Set(["variant", "density", "shape", "elevation", "
106
107
  pointer-events: none;
107
108
  opacity: 0.62;
108
109
  }
109
- `, D = `
110
- ${k}
110
+ `, M = `
111
+ ${w}
111
112
 
112
113
  .menu {
113
114
  position: absolute;
@@ -165,7 +166,7 @@ const L = /* @__PURE__ */ new Set(["variant", "density", "shape", "elevation", "
165
166
  --ui-menu-bg: #0f172a;
166
167
  --ui-menu-color: #f8fafc;
167
168
  --ui-menu-border-color: #334155;
168
- --ui-menu-ring: #93c5fd;
169
+ --ui-menu-ring: var(--ui-color-accent-on-dark, #93c5fd);
169
170
  --ui-menu-item-hover-bg: color-mix(in srgb, #ffffff 12%, transparent);
170
171
  }
171
172
 
@@ -241,7 +242,7 @@ const L = /* @__PURE__ */ new Set(["variant", "density", "shape", "elevation", "
241
242
  --ui-menu-item-active-color: inherit;
242
243
  }
243
244
 
244
- ${I({
245
+ ${T({
245
246
  scopes: [".menu"],
246
247
  prefix: "--ui-menu",
247
248
  shortcutSelectors: [".shortcut", ".meta"],
@@ -324,7 +325,7 @@ const L = /* @__PURE__ */ new Set(["variant", "density", "shape", "elevation", "
324
325
  }
325
326
  }
326
327
  `;
327
- class z extends v {
328
+ class H extends x {
328
329
  constructor() {
329
330
  super(), this._isOpen = !1, this._portalEl = null, this._positioner = null, this._dismissableLayer = null, this._restoreFocusEl = null, this._typeaheadBuffer = "", this._typeaheadTimer = null, this._globalListenersBound = !1, this._menuClickHandler = null, this._menuId = `ui-menu-${Math.random().toString(36).slice(2, 10)}`, this._onHostClick = this._onHostClick.bind(this), this._onDocumentKeyDown = this._onDocumentKeyDown.bind(this), this._onDocumentScroll = this._onDocumentScroll.bind(this), this._onSlotChange = this._onSlotChange.bind(this);
330
331
  }
@@ -346,7 +347,7 @@ class z extends v {
346
347
  ];
347
348
  }
348
349
  connectedCallback() {
349
- super.connectedCallback(), this.addEventListener("click", this._onHostClick), this.root.addEventListener("slotchange", this._onSlotChange), this._syncOpenState(), this._syncTriggerA11y();
350
+ super.connectedCallback(), this.addEventListener("click", this._onHostClick), this.root.addEventListener("slotchange", this._onSlotChange), this._hideSources(), this._syncOpenState(), this._syncTriggerA11y();
350
351
  }
351
352
  disconnectedCallback() {
352
353
  this.removeEventListener("click", this._onHostClick), this.root.removeEventListener("slotchange", this._onSlotChange), this._unbindGlobalListeners(), this._teardownPortal(), super.disconnectedCallback();
@@ -366,7 +367,7 @@ class z extends v {
366
367
  this._rebuildPositioner();
367
368
  return;
368
369
  }
369
- L.has(e) && this._isOpen && this._syncPortalVisualState();
370
+ O.has(e) && this._isOpen && this._syncPortalVisualState();
370
371
  }
371
372
  }
372
373
  }
@@ -407,12 +408,15 @@ class z extends v {
407
408
  return Array.from(this.querySelectorAll('[slot="item"]'));
408
409
  }
409
410
  _onSlotChange() {
410
- this._isOpen && this._rebuildPortalContent();
411
+ this._hideSources(), this._isOpen && this._rebuildPortalContent();
412
+ }
413
+ _hideSources() {
414
+ g(this._getContentSource()), this._getItemSources().forEach((e) => g(e));
411
415
  }
412
416
  _syncTriggerA11y() {
413
417
  const e = this._getTrigger();
414
418
  if (!e) return;
415
- const t = y(e);
419
+ const t = A(e);
416
420
  if (t.setAttribute("aria-haspopup", "menu"), t.setAttribute("aria-expanded", this._isOpen ? "true" : "false"), t.setAttribute("aria-controls", this._menuId), this.hasAttribute("disabled")) {
417
421
  t.setAttribute("aria-disabled", "true"), t.setAttribute("tabindex", "-1");
418
422
  return;
@@ -472,8 +476,8 @@ class z extends v {
472
476
  _moveFocus(e) {
473
477
  const t = this._queryItems();
474
478
  if (!t.length) return;
475
- const i = document.activeElement, n = i ? t.findIndex((o) => o === i || o.contains(i)) : -1, a = n === -1 ? 0 : Math.max(0, Math.min(t.length - 1, n + e));
476
- this._focusItem(t[a] || null);
479
+ const i = document.activeElement, n = i ? t.findIndex((o) => o === i || o.contains(i)) : -1, s = n === -1 ? 0 : Math.max(0, Math.min(t.length - 1, n + e));
480
+ this._focusItem(t[s] || null);
477
481
  }
478
482
  _resetTypeahead() {
479
483
  this._typeaheadBuffer = "", this._typeaheadTimer != null && (window.clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null);
@@ -486,7 +490,7 @@ class z extends v {
486
490
  this._typeaheadBuffer = `${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0, 24), this._typeaheadTimer != null && window.clearTimeout(this._typeaheadTimer), this._typeaheadTimer = window.setTimeout(() => this._resetTypeahead(), 420);
487
491
  const t = document.activeElement, i = this._queryItems();
488
492
  if (!i.length) return !1;
489
- const n = t ? i.findIndex((s) => s === t || s.contains(t)) : -1, o = (n >= 0 ? [...i.slice(n + 1), ...i.slice(0, n + 1)] : i).find((s) => (s.textContent || "").trim().toLowerCase().startsWith(this._typeaheadBuffer));
493
+ const n = t ? i.findIndex((a) => a === t || a.contains(t)) : -1, o = (n >= 0 ? [...i.slice(n + 1), ...i.slice(0, n + 1)] : i).find((a) => (a.textContent || "").trim().toLowerCase().startsWith(this._typeaheadBuffer));
490
494
  return o ? (e.preventDefault(), this._focusItem(o), !0) : !1;
491
495
  }
492
496
  _applySelectionBehavior(e) {
@@ -499,8 +503,8 @@ class z extends v {
499
503
  if (t !== "menuitemradio" || !this._portalEl) return;
500
504
  const i = e.getAttribute("data-group") || e.getAttribute("name") || "";
501
505
  this._portalEl.querySelectorAll('[role="menuitemradio"]').forEach((n) => {
502
- const a = n.getAttribute("data-group") || n.getAttribute("name") || "";
503
- i && a !== i || (n.setAttribute("aria-checked", n === e ? "true" : "false"), n.setAttribute("data-state", n === e ? "checked" : "unchecked"));
506
+ const s = n.getAttribute("data-group") || n.getAttribute("name") || "";
507
+ i && s !== i || (n.setAttribute("aria-checked", n === e ? "true" : "false"), n.setAttribute("data-state", n === e ? "checked" : "unchecked"));
504
508
  });
505
509
  }
506
510
  _handleItemSelect(e) {
@@ -522,8 +526,8 @@ class z extends v {
522
526
  _buildLegacyItems(e) {
523
527
  const t = this._getItemSources();
524
528
  return t.forEach((i, n) => {
525
- const a = i.cloneNode(!0);
526
- a.removeAttribute("slot"), a.getAttribute("role") || a.setAttribute("role", "menuitem"), a.classList.contains("item") || a.classList.add("item"), a.hasAttribute("tabindex") || a.setAttribute("tabindex", "-1"), a.hasAttribute("data-index") || a.setAttribute("data-index", String(n)), e.appendChild(a);
529
+ const s = _(i.cloneNode(!0));
530
+ s.removeAttribute("slot"), s.getAttribute("role") || s.setAttribute("role", "menuitem"), s.classList.contains("item") || s.classList.add("item"), s.hasAttribute("tabindex") || s.setAttribute("tabindex", "-1"), s.hasAttribute("data-index") || s.setAttribute("data-index", String(n)), e.appendChild(s);
527
531
  }), t.length;
528
532
  }
529
533
  _hydrateMenuItems(e) {
@@ -534,17 +538,17 @@ class z extends v {
534
538
  }
535
539
  _applyPortalTokens(e) {
536
540
  const t = window.getComputedStyle(this);
537
- P.forEach((i) => {
541
+ D.forEach((i) => {
538
542
  const n = t.getPropertyValue(i).trim();
539
543
  n ? e.style.setProperty(i, n) : e.style.removeProperty(i);
540
544
  });
541
545
  }
542
546
  _applyPortalVariantData(e) {
543
- const t = l(this, "variant"), i = C(this.getAttribute("size") || this.getAttribute("density")), n = l(this, "density"), a = this.getAttribute("radius"), o = l(this, "shape"), s = l(this, "elevation"), c = l(this, "tone"), f = t === "default" || t === "" ? "" : t === "line" ? "outline" : t === "glass" ? "soft" : t;
544
- f ? e.setAttribute("data-variant", f) : e.removeAttribute("data-variant"), i !== "md" ? e.setAttribute("data-size", i) : e.removeAttribute("data-size"), n && n !== "default" ? e.setAttribute("data-density", n) : e.removeAttribute("data-density"), s && s !== "default" ? e.setAttribute("data-elevation", s) : e.removeAttribute("data-elevation");
547
+ const t = l(this, "variant"), i = L(this.getAttribute("size") || this.getAttribute("density")), n = l(this, "density"), s = this.getAttribute("radius"), o = l(this, "shape"), a = l(this, "elevation"), c = l(this, "tone"), f = t === "default" || t === "" ? "" : t === "line" ? "outline" : t === "glass" ? "soft" : t;
548
+ f ? e.setAttribute("data-variant", f) : e.removeAttribute("data-variant"), i !== "md" ? e.setAttribute("data-size", i) : e.removeAttribute("data-size"), n && n !== "default" ? e.setAttribute("data-density", n) : e.removeAttribute("data-density"), a && a !== "default" ? e.setAttribute("data-elevation", a) : e.removeAttribute("data-elevation");
545
549
  const b = c === "default" || c === "brand" || c === "" ? "" : c;
546
550
  b ? e.setAttribute("data-tone", b) : e.removeAttribute("data-tone");
547
- const d = T(a || o || null);
551
+ const d = P(s || o || null);
548
552
  d ? (e.style.setProperty("--ui-menu-radius", d), e.style.setProperty("--ui-menu-item-radius", d === "999px" ? "999px" : `calc(${d} - 2px)`)) : (e.style.removeProperty("--ui-menu-radius"), e.style.removeProperty("--ui-menu-item-radius"));
549
553
  }
550
554
  _syncPortalVisualState() {
@@ -564,19 +568,19 @@ class z extends v {
564
568
  }
565
569
  _buildPortalElement() {
566
570
  const e = document.createElement("div");
567
- e.className = "surface menu", e.id = this._menuId, e.setAttribute("part", "menu"), e.setAttribute("role", "menu"), e.setAttribute("tabindex", "-1"), e.setAttribute("aria-hidden", "false"), e.setAttribute("aria-busy", "false"), e.setAttribute("data-placement", _(this.getAttribute("placement")));
571
+ e.className = "surface menu", e.id = this._menuId, e.setAttribute("part", "menu"), e.setAttribute("role", "menu"), e.setAttribute("tabindex", "-1"), e.setAttribute("aria-hidden", "false"), e.setAttribute("aria-busy", "false"), e.setAttribute("data-placement", y(this.getAttribute("placement")));
568
572
  const t = document.createElement("style");
569
- t.textContent = D, e.appendChild(t);
573
+ t.textContent = M, e.appendChild(t);
570
574
  const i = this._getContentSource();
571
575
  let n = 0;
572
576
  if (i) {
573
- const a = i.cloneNode(!0);
574
- a.removeAttribute("slot"), e.appendChild(a);
577
+ const s = _(i.cloneNode(!0));
578
+ s.removeAttribute("slot"), e.appendChild(s);
575
579
  } else
576
580
  n = this._buildLegacyItems(e);
577
581
  if (n = this._hydrateMenuItems(e) || n, n === 0) {
578
- const a = document.createElement("div");
579
- a.className = "empty-state", a.textContent = "No items", e.appendChild(a);
582
+ const s = document.createElement("div");
583
+ s.className = "empty-state", s.textContent = "No items", e.appendChild(s);
580
584
  }
581
585
  return this._applyPortalTokens(e), this._applyPortalVariantData(e), e.style.display = "block", e.style.visibility = "visible", e.style.opacity = "1", e.style.transform = "translateY(0px) scale(1)", e.style.pointerEvents = "auto", this._attachMenuEvents(e), e;
582
586
  }
@@ -585,14 +589,14 @@ class z extends v {
585
589
  const e = this._portalEl.parentElement;
586
590
  if (!e) return;
587
591
  const t = this._portalEl, i = this._buildPortalElement();
588
- e.replaceChild(i, t), this._portalEl = i, this._rebuildPositioner(), g(i, { animate: !1 });
592
+ e.replaceChild(i, t), this._portalEl = i, this._rebuildPositioner(), v(i, { animate: !1 });
589
593
  }
590
594
  _rebuildPositioner() {
591
595
  const e = this._getTrigger();
592
- !this._portalEl || !e || (this._positioner?.destroy(), this._positioner = E({
596
+ !this._portalEl || !e || (this._positioner?.destroy(), this._positioner = k({
593
597
  anchor: e,
594
598
  floating: this._portalEl,
595
- placement: _(this.getAttribute("placement")),
599
+ placement: y(this.getAttribute("placement")),
596
600
  offset: 6,
597
601
  flip: !0,
598
602
  shift: !0,
@@ -608,14 +612,14 @@ class z extends v {
608
612
  this._syncPortalVisualState();
609
613
  else {
610
614
  this._portalEl = this._buildPortalElement();
611
- const i = x();
615
+ const i = E();
612
616
  if (!i) {
613
617
  this._portalEl = null;
614
618
  return;
615
619
  }
616
620
  i.appendChild(this._portalEl), t = !0;
617
621
  }
618
- this._rebuildPositioner(), t && this._portalEl && g(this._portalEl), this._dismissableLayer?.destroy(), this._dismissableLayer = A({
622
+ this._rebuildPositioner(), t && this._portalEl && v(this._portalEl), this._dismissableLayer?.destroy(), this._dismissableLayer = S({
619
623
  node: this._portalEl,
620
624
  trigger: e,
621
625
  closeOnEscape: !0,
@@ -624,7 +628,7 @@ class z extends v {
624
628
  });
625
629
  }
626
630
  _teardownPortal(e = !1) {
627
- this._dismissableLayer?.destroy(), this._dismissableLayer = null, this._positioner?.destroy(), this._positioner = null, e ? S(this._portalEl) : w(this._portalEl), this._portalEl = null, this._menuClickHandler = null, this._resetTypeahead();
631
+ this._dismissableLayer?.destroy(), this._dismissableLayer = null, this._positioner?.destroy(), this._positioner = null, e ? C(this._portalEl) : I(this._portalEl), this._portalEl = null, this._menuClickHandler = null, this._resetTypeahead();
628
632
  }
629
633
  _isEventInsideTrigger(e) {
630
634
  const t = this._getTrigger();
@@ -691,7 +695,7 @@ class z extends v {
691
695
  }
692
696
  render() {
693
697
  this.setContent(`
694
- <style>${O}</style>
698
+ <style>${z}</style>
695
699
  <div class="trigger" part="trigger">
696
700
  <slot name="trigger"></slot>
697
701
  </div>
@@ -706,7 +710,7 @@ class z extends v {
706
710
  return !1;
707
711
  }
708
712
  }
709
- typeof customElements < "u" && !customElements.get("ui-menu") && customElements.define("ui-menu", z);
713
+ typeof customElements < "u" && !customElements.get("ui-menu") && customElements.define("ui-menu", H);
710
714
  export {
711
- z as UIMenu
715
+ H as UIMenu
712
716
  };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const P=require("./ElementBase-DxbvhLJs.js"),E=require("./portal-XbYR3m_q.js"),k=require("./collection-qv8A8rq4.js"),I=require("./dismissable-layer-DNfrKA20.js"),m=require("./roving-focus-group-BdJ_4Njm.js"),L=require("./positioner-DZ1FW6A9.js"),v=require("./overlay-motion-B56x1GoY.js");require("./listbox-CTpRpuF7.js");const C=require("./menu-item-styles-DUdyjQ7i.js"),T=":scope > .submenu",D=["--ui-color-primary","--ui-color-primary-hover","--ui-color-foreground-on-primary","--ui-color-background","--ui-color-surface","--ui-color-surface-alt","--ui-color-text","--ui-color-muted","--ui-color-border","--ui-color-focus-ring","--ui-color-success","--ui-color-danger","--ui-color-warning","--ui-primary","--ui-primary-hover","--ui-foreground","--ui-background","--ui-surface","--ui-surface-alt","--ui-text","--ui-muted","--ui-border","--ui-focus-ring","--ui-radius","--color-background","--color-surface","--color-panel","--color-panel-solid","--color-panel-translucent","--color-overlay","--accent-contrast","--accent-surface","--accent-indicator","--accent-track"],z=[{prefix:"--accent-",from:1,to:12},{prefix:"--accent-a",from:1,to:12},{prefix:"--gray-",from:1,to:12},{prefix:"--gray-a",from:1,to:12},{prefix:"--black-a",from:1,to:12},{prefix:"--white-a",from:1,to:12},{prefix:"--shadow-",from:1,to:6},{prefix:"--radius-",from:1,to:6}];function B(n){return n==="sm"||n==="1"||n==="compact"?"sm":n==="lg"||n==="3"||n==="comfortable"?"lg":"md"}function y(n){return!n||n==="default"?null:n==="none"||n==="square"?"0px":n==="sm"?"8px":n==="md"||n==="soft"?"12px":n==="lg"?"16px":n==="full"?"999px":/^\d+(\.\d+)?$/.test(n)?`${n}px`:/^\d+(\.\d+)?(px|rem|em|%)$/.test(n)?n:null}const O=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("./ElementBase-CbUsP3D6.js"),y=require("./clone-source-C7E_ri5f.js"),k=require("./portal-XbYR3m_q.js"),I=require("./collection-qv8A8rq4.js"),L=require("./dismissable-layer-DNfrKA20.js"),m=require("./roving-focus-group-BdJ_4Njm.js"),C=require("./positioner-DZ1FW6A9.js"),v=require("./overlay-motion-B56x1GoY.js");require("./listbox-CTpRpuF7.js");const T=require("./menu-item-styles-DUdyjQ7i.js"),D=":scope > .submenu",z=["--ui-color-primary","--ui-color-primary-hover","--ui-color-foreground-on-primary","--ui-color-background","--ui-color-surface","--ui-color-surface-alt","--ui-color-text","--ui-color-muted","--ui-color-border","--ui-color-focus-ring","--ui-color-success","--ui-color-danger","--ui-color-warning","--ui-primary","--ui-primary-hover","--ui-foreground","--ui-background","--ui-surface","--ui-surface-alt","--ui-text","--ui-muted","--ui-border","--ui-focus-ring","--ui-radius","--color-background","--color-surface","--color-panel","--color-panel-solid","--color-panel-translucent","--color-overlay","--accent-contrast","--accent-surface","--accent-indicator","--accent-track"],B=[{prefix:"--accent-",from:1,to:12},{prefix:"--accent-a",from:1,to:12},{prefix:"--gray-",from:1,to:12},{prefix:"--gray-a",from:1,to:12},{prefix:"--black-a",from:1,to:12},{prefix:"--white-a",from:1,to:12},{prefix:"--shadow-",from:1,to:6},{prefix:"--radius-",from:1,to:6}];function O(n){return n==="sm"||n==="1"||n==="compact"?"sm":n==="lg"||n==="3"||n==="comfortable"?"lg":"md"}function x(n){return!n||n==="default"?null:n==="none"||n==="square"?"0px":n==="sm"?"8px":n==="md"||n==="soft"?"12px":n==="lg"?"16px":n==="full"?"999px":/^\d+(\.\d+)?$/.test(n)?`${n}px`:/^\d+(\.\d+)?(px|rem|em|%)$/.test(n)?n:null}const F=`
2
2
  :host {
3
3
  --ui-menubar-gap: var(--base-menubar-gap, 6px);
4
4
  --ui-menubar-padding: var(--base-menubar-padding, 6px);
@@ -78,7 +78,7 @@
78
78
  --ui-menubar-item-hover-bg: color-mix(in srgb, #ffffff 16%, transparent);
79
79
  --ui-menubar-item-active-bg: color-mix(in srgb, #ffffff 20%, transparent);
80
80
  --ui-menubar-item-active-color: #ffffff;
81
- --ui-menubar-ring: #93c5fd;
81
+ --ui-menubar-ring: var(--ui-color-accent-on-dark, #93c5fd);
82
82
  border-color: #334155;
83
83
  }
84
84
 
@@ -204,7 +204,7 @@
204
204
  border-color: Highlight;
205
205
  }
206
206
  }
207
- `,F=`
207
+ `,R=`
208
208
  ${v.OVERLAY_MOTION_CSS}
209
209
 
210
210
  .ui-menubar-portal {
@@ -306,7 +306,7 @@
306
306
  0 6px 18px rgba(2, 6, 23, 0.14);
307
307
  }
308
308
 
309
- ${C.createSharedMenuItemCss({scopes:[".ui-menubar-portal .content-host"],prefix:"--ui-menubar-panel",shortcutSelectors:[".shortcut",".meta"],activeStateSelectors:['.item[data-submenu-open="true"]','[role="menuitem"][data-submenu-open="true"]','[role="menuitemcheckbox"][data-submenu-open="true"]','[role="menuitemradio"][data-submenu-open="true"]','[data-menu-item][data-submenu-open="true"]','.item[data-active="true"]','[role="menuitem"][data-active="true"]','[role="menuitemcheckbox"][data-active="true"]','[role="menuitemradio"][data-active="true"]','[data-menu-item][data-active="true"]']})}
309
+ ${T.createSharedMenuItemCss({scopes:[".ui-menubar-portal .content-host"],prefix:"--ui-menubar-panel",shortcutSelectors:[".shortcut",".meta"],activeStateSelectors:['.item[data-submenu-open="true"]','[role="menuitem"][data-submenu-open="true"]','[role="menuitemcheckbox"][data-submenu-open="true"]','[role="menuitemradio"][data-submenu-open="true"]','[data-menu-item][data-submenu-open="true"]','.item[data-active="true"]','[role="menuitem"][data-active="true"]','[role="menuitemcheckbox"][data-active="true"]','[role="menuitemradio"][data-active="true"]','[data-menu-item][data-active="true"]']})}
310
310
 
311
311
  .ui-menubar-portal[data-variant="solid"] .content-host [role="menuitem"]:hover,
312
312
  .ui-menubar-portal[data-variant="solid"] .content-host [role="menuitem"]:focus-visible,
@@ -415,8 +415,8 @@
415
415
  box-shadow: none;
416
416
  }
417
417
  }
418
- `;function R(n){return n==="top"||n==="left"||n==="right"?n:"bottom"}function q(n){const e=R(n);return e==="top"?"top":e==="left"?"left":e==="right"?"right":"bottom"}function _(n,e){if(n==null)return e;const t=String(n).toLowerCase();return t!=="false"&&t!=="0"}function x(n,e){return e<=0?-1:Number.isNaN(n)||n<0?0:n>=e?e-1:n}function l(){return['[role="menuitem"]','[role="menuitemcheckbox"]','[role="menuitemradio"]',".item","[data-menu-item]"].join(", ")}function g(n){return n.hasAttribute("disabled")||n.getAttribute("aria-disabled")==="true"||!!n.disabled}function S(n){const e=typeof n.composedPath=="function"?n.composedPath():[];for(const r of e)if(r instanceof HTMLElement&&r.matches(l()))return r;const t=n.target;return t instanceof HTMLElement?t.closest(l()):null}function d(n){return n.hasAttribute("disabled")||n.disabled}function h(n,e){return n.getAttribute(e)||""}class A extends P.ElementBase{constructor(){super(),this._items=[],this._contents=[],this._itemSlot=null,this._contentSlot=null,this._uid=Math.random().toString(36).slice(2,8),this._ignoreSelected=!1,this._open=!1,this._portalEl=null,this._portalSurfaceEl=null,this._portalContentHostEl=null,this._positioner=null,this._dismissableLayer=null,this._panelForIndex=-1,this._typeaheadBuffer="",this._typeaheadTimer=null,this._submenuRaf=null,this._globalListenersBound=!1,this._focusIndex=-1,this._onClick=this._onClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onDocKeyDown=this._onDocKeyDown.bind(this),this._onDocScroll=this._onDocScroll.bind(this),this._onSlotChange=this._onSlotChange.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onPanelPointerOver=this._onPanelPointerOver.bind(this),this._onPanelPointerLeave=this._onPanelPointerLeave.bind(this),this._onPanelFocusIn=this._onPanelFocusIn.bind(this)}static get observedAttributes(){return["selected","open","headless","loop","orientation","variant","size","density","radius","shape","elevation","tone","placement","close-on-select","close-on-scroll","typeahead"]}_setPanelFlag(e,t){this._portalEl&&(t?this._portalEl.setAttribute(`data-${e}`,"true"):this._portalEl.removeAttribute(`data-${e}`))}connectedCallback(){super.connectedCallback(),this.root.addEventListener("click",this._onClick),this.root.addEventListener("keydown",this._onKeyDown),this.root.addEventListener("mousemove",this._onMouseMove),this._attachSlotListeners(),this._syncHostVisualState(),this._syncState()}disconnectedCallback(){this.root.removeEventListener("click",this._onClick),this.root.removeEventListener("keydown",this._onKeyDown),this.root.removeEventListener("mousemove",this._onMouseMove),this._unbindGlobalListeners(),this._detachSlotListeners(),this._teardownPanel(),super.disconnectedCallback()}attributeChangedCallback(e,t,r){if(t!==r&&!(e==="selected"&&this._ignoreSelected)){if((e==="radius"||e==="shape")&&this._syncHostVisualState(),this._syncBarA11y(),this._open&&e==="placement"){this._rebuildPanel();return}if(this._open&&(e==="variant"||e==="size"||e==="density"||e==="radius"||e==="shape"||e==="elevation"||e==="tone")){this._syncPanelVisualState();return}this._syncState()}}render(){const e=this.getAttribute("orientation")==="vertical"?"vertical":"horizontal";this.setContent(`
419
- <style>${O}</style>
418
+ `;function q(n){return n==="top"||n==="left"||n==="right"?n:"bottom"}function M(n){const e=q(n);return e==="top"?"top":e==="left"?"left":e==="right"?"right":"bottom"}function _(n,e){if(n==null)return e;const t=String(n).toLowerCase();return t!=="false"&&t!=="0"}function S(n,e){return e<=0?-1:Number.isNaN(n)||n<0?0:n>=e?e-1:n}function l(){return['[role="menuitem"]','[role="menuitemcheckbox"]','[role="menuitemradio"]',".item","[data-menu-item]"].join(", ")}function g(n){return n.hasAttribute("disabled")||n.getAttribute("aria-disabled")==="true"||!!n.disabled}function A(n){const e=typeof n.composedPath=="function"?n.composedPath():[];for(const r of e)if(r instanceof HTMLElement&&r.matches(l()))return r;const t=n.target;return t instanceof HTMLElement?t.closest(l()):null}function d(n){return n.hasAttribute("disabled")||n.disabled}function h(n,e){return n.getAttribute(e)||""}class w extends E.ElementBase{constructor(){super(),this._items=[],this._contents=[],this._itemSlot=null,this._contentSlot=null,this._uid=Math.random().toString(36).slice(2,8),this._ignoreSelected=!1,this._open=!1,this._portalEl=null,this._portalSurfaceEl=null,this._portalContentHostEl=null,this._positioner=null,this._dismissableLayer=null,this._panelForIndex=-1,this._typeaheadBuffer="",this._typeaheadTimer=null,this._submenuRaf=null,this._globalListenersBound=!1,this._focusIndex=-1,this._onClick=this._onClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onDocKeyDown=this._onDocKeyDown.bind(this),this._onDocScroll=this._onDocScroll.bind(this),this._onSlotChange=this._onSlotChange.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onPanelPointerOver=this._onPanelPointerOver.bind(this),this._onPanelPointerLeave=this._onPanelPointerLeave.bind(this),this._onPanelFocusIn=this._onPanelFocusIn.bind(this)}static get observedAttributes(){return["selected","open","headless","loop","orientation","variant","size","density","radius","shape","elevation","tone","placement","close-on-select","close-on-scroll","typeahead"]}_setPanelFlag(e,t){this._portalEl&&(t?this._portalEl.setAttribute(`data-${e}`,"true"):this._portalEl.removeAttribute(`data-${e}`))}connectedCallback(){super.connectedCallback(),this.root.addEventListener("click",this._onClick),this.root.addEventListener("keydown",this._onKeyDown),this.root.addEventListener("mousemove",this._onMouseMove),this._attachSlotListeners(),this._syncHostVisualState(),this._syncState()}disconnectedCallback(){this.root.removeEventListener("click",this._onClick),this.root.removeEventListener("keydown",this._onKeyDown),this.root.removeEventListener("mousemove",this._onMouseMove),this._unbindGlobalListeners(),this._detachSlotListeners(),this._teardownPanel(),super.disconnectedCallback()}attributeChangedCallback(e,t,r){if(t!==r&&!(e==="selected"&&this._ignoreSelected)){if((e==="radius"||e==="shape")&&this._syncHostVisualState(),this._syncBarA11y(),this._open&&e==="placement"){this._rebuildPanel();return}if(this._open&&(e==="variant"||e==="size"||e==="density"||e==="radius"||e==="shape"||e==="elevation"||e==="tone")){this._syncPanelVisualState();return}this._syncState()}}render(){const e=this.getAttribute("orientation")==="vertical"?"vertical":"horizontal";this.setContent(`
419
+ <style>${F}</style>
420
420
  <div class="bar" part="bar" role="menubar" aria-orientation="${e}">
421
421
  <slot name="item"></slot>
422
422
  </div>
@@ -424,10 +424,10 @@
424
424
  <slot name="content"></slot>
425
425
  </div>
426
426
  <slot></slot>
427
- `),this._attachSlotListeners(),this._syncStructure(),this._syncHostVisualState(),this._syncBarA11y(),this._open&&!this._portalEl?this._rebuildPanel():this._open&&this._positioner?.update()}open(){this.hasAttribute("headless")||this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}get closeOnSelect(){return _(this.getAttribute("close-on-select"),!0)}set closeOnSelect(e){this.setAttribute("close-on-select",e?"true":"false")}get closeOnScroll(){return _(this.getAttribute("close-on-scroll"),!0)}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get typeahead(){return _(this.getAttribute("typeahead"),!0)}set typeahead(e){this.setAttribute("typeahead",e?"true":"false")}_attachSlotListeners(){const e=this.root.querySelector('slot[name="item"]'),t=this.root.querySelector('slot[name="content"]');this._itemSlot&&this._itemSlot!==e&&this._itemSlot.removeEventListener("slotchange",this._onSlotChange),this._contentSlot&&this._contentSlot!==t&&this._contentSlot.removeEventListener("slotchange",this._onSlotChange),e&&this._itemSlot!==e&&e.addEventListener("slotchange",this._onSlotChange),t&&this._contentSlot!==t&&t.addEventListener("slotchange",this._onSlotChange),this._itemSlot=e,this._contentSlot=t}_detachSlotListeners(){this._itemSlot&&this._itemSlot.removeEventListener("slotchange",this._onSlotChange),this._contentSlot&&this._contentSlot.removeEventListener("slotchange",this._onSlotChange),this._itemSlot=null,this._contentSlot=null}_syncBarA11y(){const e=this.root.querySelector(".bar");if(!e)return;const t=this.getAttribute("orientation")==="vertical"?"vertical":"horizontal";e.setAttribute("aria-orientation",t)}_syncHostVisualState(){const e=y(this.getAttribute("radius")||this.getAttribute("shape"));e?(this.style.setProperty("--ui-menubar-radius",e),this.style.setProperty("--ui-menubar-item-radius",e==="999px"?"999px":`calc(${e} - 2px)`),this.style.setProperty("--ui-menubar-panel-radius",e),this.style.setProperty("--ui-menubar-panel-item-radius",e==="999px"?"999px":`calc(${e} - 2px)`)):(this.style.removeProperty("--ui-menubar-radius"),this.style.removeProperty("--ui-menubar-item-radius"),this.style.removeProperty("--ui-menubar-panel-radius"),this.style.removeProperty("--ui-menubar-panel-item-radius"))}_onSlotChange(){this._syncState()}_loopEnabled(){return _(this.getAttribute("loop"),!0)}_isOpenAttribute(){return this.hasAttribute("open")&&!this.hasAttribute("headless")}_selectedIndex(){const e=this.getAttribute("selected");if(e==null||e==="")return this._items.length>0?0:-1;const t=Number(e);return Number.isNaN(t)?this._items.length>0?0:-1:t<0?-1:x(t,this._items.length)}_setSelectedAttribute(e){this._ignoreSelected=!0,this.setAttribute("selected",String(e)),this._ignoreSelected=!1}_moveIndex(e,t){if(this._items.length===0)return-1;const r=this._loopEnabled();let i=e+t;return i<0&&(i=r?this._items.length-1:0),i>=this._items.length&&(i=r?0:this._items.length-1),i}_syncState(){this._syncStructure();const e=this._isOpenAttribute()&&this._selectedIndex()>=0&&this._items.length>0;if(e!==this._open){if(this._open=e,e)this._bindGlobalListeners(),this._rebuildPanel(),this.dispatchEvent(new CustomEvent("open",{detail:{selected:this._selectedIndex()},bubbles:!0}));else{this._unbindGlobalListeners();const t=this._panelForIndex>=0?this._panelForIndex:this._selectedIndex();this._teardownPanel(!0),this.dispatchEvent(new CustomEvent("close",{detail:{previous:t},bubbles:!0}))}return}this._open?(this._bindGlobalListeners(),(this._selectedIndex()!==this._panelForIndex||!this._portalEl)&&this._rebuildPanel()):(this._unbindGlobalListeners(),this._teardownPanel(!0))}_bindGlobalListeners(){this._globalListenersBound||(document.addEventListener("keydown",this._onDocKeyDown),document.addEventListener("scroll",this._onDocScroll,{passive:!0,capture:!0}),this._globalListenersBound=!0)}_unbindGlobalListeners(){this._globalListenersBound&&(document.removeEventListener("keydown",this._onDocKeyDown),document.removeEventListener("scroll",this._onDocScroll,!0),this._globalListenersBound=!1)}_syncStructure(){this._items=this._itemSlot?this._itemSlot.assignedElements({flatten:!0}):[],this._contents=this._contentSlot?this._contentSlot.assignedElements({flatten:!0}):[];const e=this._selectedIndex(),t=m.resolveRovingFocusIndex(this._items,{activeIndex:this._focusIndex,selectedIndex:e,getDisabled:d});this._focusIndex=t;const r=this._isOpenAttribute();this._items.forEach((i,a)=>{const s=e===a,o=i.id||`ui-menubar-item-${this._uid}-${a}`,u=this._contents[a]?.id||`ui-menubar-content-${this._uid}-${a}`;i.id=o,i.setAttribute("role","menuitem"),i.setAttribute("tabindex",a===t&&!d(i)?"0":"-1"),i.setAttribute("aria-haspopup","menu"),i.setAttribute("aria-expanded",s&&r?"true":"false"),i.setAttribute("aria-controls",u),i.setAttribute("data-active",s?"true":"false")}),m.syncRovingTabStops(this._items,this._items[t]||null,{activeAttribute:null}),this._contents.forEach((i,a)=>{const s=i.id||`ui-menubar-content-${this._uid}-${a}`;i.id=s,i.setAttribute("role","menu"),i.setAttribute("tabindex","-1"),i.setAttribute("aria-hidden",e===a&&r?"false":"true"),this._items[a]?i.setAttribute("aria-labelledby",this._items[a].id):i.removeAttribute("aria-labelledby")})}_hydratePanelItems(e){Array.from(e.querySelectorAll(l())).forEach((r,i)=>{r.getAttribute("role")||r.setAttribute("role","menuitem"),r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),r.hasAttribute("data-index")||r.setAttribute("data-index",String(i)),r.classList.contains("item")||r.classList.add("item")})}_queryPanelItemsIn(e){return this._panelListbox()?.queryEnabledItems({container:e||this._panelListbox()})||[]}_submenuFor(e){return e.querySelector(T)}_setOpenPanelBranch(e,t){const r=this._panelListbox();if(!r||(r.querySelectorAll('[data-submenu-open="true"]').forEach(s=>s.removeAttribute("data-submenu-open")),!e))return;const i=[];let a=e;for(;a;){const s=a.closest(".submenu");if(!s)break;const o=s.parentElement;if(!(o instanceof HTMLElement)||!o.matches(l()))break;i.unshift(o),a=o}i.forEach(s=>s.setAttribute("data-submenu-open","true")),t&&this._submenuFor(e)&&e.setAttribute("data-submenu-open","true")}_openPanelSubmenu(e,t){const r=this._submenuFor(e);if(!r||g(e))return!1;if(this._setOpenPanelBranch(e,!0),this._schedulePanelSubmenuLayout(),!t)return!0;const i=this._panelListbox()?.focusBoundary("first",{container:r,focus:!0,owner:this._panelSurface(),scroll:!0});return i&&this._setOpenPanelBranch(i,!1),!0}_closeParentPanelSubmenu(e){const t=e.closest(".submenu");if(!t)return!1;const r=t.parentElement;return!(r instanceof HTMLElement)||!r.matches(l())?!1:(this._focusPanelItem(r),this._setOpenPanelBranch(r,!1),r.removeAttribute("data-submenu-open"),!0)}_clearPanelSubmenuState(){const e=this._panelListbox();e&&e.querySelectorAll('[data-submenu-open="true"]').forEach(t=>t.removeAttribute("data-submenu-open"))}_schedulePanelSubmenuLayout(){this._submenuRaf!=null&&cancelAnimationFrame(this._submenuRaf),this._submenuRaf=requestAnimationFrame(()=>{this._submenuRaf=null,this._layoutPanelSubmenus()})}_layoutPanelSubmenus(){const e=this._panelListbox();if(!e)return;const t=window.innerWidth,r=window.innerHeight;Array.from(e.querySelectorAll('.item > .submenu, [role="menuitem"] > .submenu, [role="menuitemcheckbox"] > .submenu, [role="menuitemradio"] > .submenu, [data-menu-item] > .submenu')).forEach(a=>{const s=a.parentElement;if(!(s instanceof HTMLElement))return;s.removeAttribute("data-submenu-side"),s.removeAttribute("data-submenu-align");const o=a.style.display,u=a.style.visibility,c=a.style.pointerEvents,b=a.style.opacity,w=a.style.transform;a.style.display="grid",a.style.visibility="hidden",a.style.pointerEvents="none",a.style.opacity="0",a.style.transform="none";const p=s.getBoundingClientRect(),f=a.getBoundingClientRect();p.right+4+f.width>t-8&&p.left-4-f.width>=8&&s.setAttribute("data-submenu-side","left"),p.top+f.height>r-8&&p.bottom-f.height>=8&&s.setAttribute("data-submenu-align","up"),a.style.display=o,a.style.visibility=u,a.style.pointerEvents=c,a.style.opacity=b,a.style.transform=w})}_panelListbox(){return this._portalContentHostEl}_panelSurface(){return this._portalSurfaceEl}_buildPanelContent(e){const t=this._contents[e],r=document.createElement("div");r.className="ui-menubar-portal",r.style.position="absolute",r.style.pointerEvents="auto",r.innerHTML=`
428
- <style>${F}</style>
427
+ `),this._attachSlotListeners(),this._syncStructure(),this._syncHostVisualState(),this._syncBarA11y(),this._open&&!this._portalEl?this._rebuildPanel():this._open&&this._positioner?.update()}open(){this.hasAttribute("headless")||this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}get closeOnSelect(){return _(this.getAttribute("close-on-select"),!0)}set closeOnSelect(e){this.setAttribute("close-on-select",e?"true":"false")}get closeOnScroll(){return _(this.getAttribute("close-on-scroll"),!0)}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get typeahead(){return _(this.getAttribute("typeahead"),!0)}set typeahead(e){this.setAttribute("typeahead",e?"true":"false")}_attachSlotListeners(){const e=this.root.querySelector('slot[name="item"]'),t=this.root.querySelector('slot[name="content"]');this._itemSlot&&this._itemSlot!==e&&this._itemSlot.removeEventListener("slotchange",this._onSlotChange),this._contentSlot&&this._contentSlot!==t&&this._contentSlot.removeEventListener("slotchange",this._onSlotChange),e&&this._itemSlot!==e&&e.addEventListener("slotchange",this._onSlotChange),t&&this._contentSlot!==t&&t.addEventListener("slotchange",this._onSlotChange),this._itemSlot=e,this._contentSlot=t}_detachSlotListeners(){this._itemSlot&&this._itemSlot.removeEventListener("slotchange",this._onSlotChange),this._contentSlot&&this._contentSlot.removeEventListener("slotchange",this._onSlotChange),this._itemSlot=null,this._contentSlot=null}_syncBarA11y(){const e=this.root.querySelector(".bar");if(!e)return;const t=this.getAttribute("orientation")==="vertical"?"vertical":"horizontal";e.setAttribute("aria-orientation",t)}_syncHostVisualState(){const e=x(this.getAttribute("radius")||this.getAttribute("shape"));e?(this.style.setProperty("--ui-menubar-radius",e),this.style.setProperty("--ui-menubar-item-radius",e==="999px"?"999px":`calc(${e} - 2px)`),this.style.setProperty("--ui-menubar-panel-radius",e),this.style.setProperty("--ui-menubar-panel-item-radius",e==="999px"?"999px":`calc(${e} - 2px)`)):(this.style.removeProperty("--ui-menubar-radius"),this.style.removeProperty("--ui-menubar-item-radius"),this.style.removeProperty("--ui-menubar-panel-radius"),this.style.removeProperty("--ui-menubar-panel-item-radius"))}_onSlotChange(){this._syncState()}_loopEnabled(){return _(this.getAttribute("loop"),!0)}_isOpenAttribute(){return this.hasAttribute("open")&&!this.hasAttribute("headless")}_selectedIndex(){const e=this.getAttribute("selected");if(e==null||e==="")return this._items.length>0?0:-1;const t=Number(e);return Number.isNaN(t)?this._items.length>0?0:-1:t<0?-1:S(t,this._items.length)}_setSelectedAttribute(e){this._ignoreSelected=!0,this.setAttribute("selected",String(e)),this._ignoreSelected=!1}_moveIndex(e,t){if(this._items.length===0)return-1;const r=this._loopEnabled();let i=e+t;return i<0&&(i=r?this._items.length-1:0),i>=this._items.length&&(i=r?0:this._items.length-1),i}_syncState(){this._syncStructure();const e=this._isOpenAttribute()&&this._selectedIndex()>=0&&this._items.length>0;if(e!==this._open){if(this._open=e,e)this._bindGlobalListeners(),this._rebuildPanel(),this.dispatchEvent(new CustomEvent("open",{detail:{selected:this._selectedIndex()},bubbles:!0}));else{this._unbindGlobalListeners();const t=this._panelForIndex>=0?this._panelForIndex:this._selectedIndex();this._teardownPanel(!0),this.dispatchEvent(new CustomEvent("close",{detail:{previous:t},bubbles:!0}))}return}this._open?(this._bindGlobalListeners(),(this._selectedIndex()!==this._panelForIndex||!this._portalEl)&&this._rebuildPanel()):(this._unbindGlobalListeners(),this._teardownPanel(!0))}_bindGlobalListeners(){this._globalListenersBound||(document.addEventListener("keydown",this._onDocKeyDown),document.addEventListener("scroll",this._onDocScroll,{passive:!0,capture:!0}),this._globalListenersBound=!0)}_unbindGlobalListeners(){this._globalListenersBound&&(document.removeEventListener("keydown",this._onDocKeyDown),document.removeEventListener("scroll",this._onDocScroll,!0),this._globalListenersBound=!1)}_syncStructure(){this._items=this._itemSlot?this._itemSlot.assignedElements({flatten:!0}):[],this._contents=this._contentSlot?this._contentSlot.assignedElements({flatten:!0}):[],this._contents.forEach(i=>y.hideCloneSource(i));const e=this._selectedIndex(),t=m.resolveRovingFocusIndex(this._items,{activeIndex:this._focusIndex,selectedIndex:e,getDisabled:d});this._focusIndex=t;const r=this._isOpenAttribute();this._items.forEach((i,a)=>{const s=e===a,o=i.id||`ui-menubar-item-${this._uid}-${a}`,u=this._contents[a]?.id||`ui-menubar-content-${this._uid}-${a}`;i.id=o,i.setAttribute("role","menuitem"),i.setAttribute("tabindex",a===t&&!d(i)?"0":"-1"),i.setAttribute("aria-haspopup","menu"),i.setAttribute("aria-expanded",s&&r?"true":"false"),i.setAttribute("aria-controls",u),i.setAttribute("data-active",s?"true":"false")}),m.syncRovingTabStops(this._items,this._items[t]||null,{activeAttribute:null}),this._contents.forEach((i,a)=>{const s=i.id||`ui-menubar-content-${this._uid}-${a}`;i.id=s,i.setAttribute("role","menu"),i.setAttribute("tabindex","-1"),i.setAttribute("aria-hidden",e===a&&r?"false":"true"),this._items[a]?i.setAttribute("aria-labelledby",this._items[a].id):i.removeAttribute("aria-labelledby")})}_hydratePanelItems(e){Array.from(e.querySelectorAll(l())).forEach((r,i)=>{r.getAttribute("role")||r.setAttribute("role","menuitem"),r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),r.hasAttribute("data-index")||r.setAttribute("data-index",String(i)),r.classList.contains("item")||r.classList.add("item")})}_queryPanelItemsIn(e){return this._panelListbox()?.queryEnabledItems({container:e||this._panelListbox()})||[]}_submenuFor(e){return e.querySelector(D)}_setOpenPanelBranch(e,t){const r=this._panelListbox();if(!r||(r.querySelectorAll('[data-submenu-open="true"]').forEach(s=>s.removeAttribute("data-submenu-open")),!e))return;const i=[];let a=e;for(;a;){const s=a.closest(".submenu");if(!s)break;const o=s.parentElement;if(!(o instanceof HTMLElement)||!o.matches(l()))break;i.unshift(o),a=o}i.forEach(s=>s.setAttribute("data-submenu-open","true")),t&&this._submenuFor(e)&&e.setAttribute("data-submenu-open","true")}_openPanelSubmenu(e,t){const r=this._submenuFor(e);if(!r||g(e))return!1;if(this._setOpenPanelBranch(e,!0),this._schedulePanelSubmenuLayout(),!t)return!0;const i=this._panelListbox()?.focusBoundary("first",{container:r,focus:!0,owner:this._panelSurface(),scroll:!0});return i&&this._setOpenPanelBranch(i,!1),!0}_closeParentPanelSubmenu(e){const t=e.closest(".submenu");if(!t)return!1;const r=t.parentElement;return!(r instanceof HTMLElement)||!r.matches(l())?!1:(this._focusPanelItem(r),this._setOpenPanelBranch(r,!1),r.removeAttribute("data-submenu-open"),!0)}_clearPanelSubmenuState(){const e=this._panelListbox();e&&e.querySelectorAll('[data-submenu-open="true"]').forEach(t=>t.removeAttribute("data-submenu-open"))}_schedulePanelSubmenuLayout(){this._submenuRaf!=null&&cancelAnimationFrame(this._submenuRaf),this._submenuRaf=requestAnimationFrame(()=>{this._submenuRaf=null,this._layoutPanelSubmenus()})}_layoutPanelSubmenus(){const e=this._panelListbox();if(!e)return;const t=window.innerWidth,r=window.innerHeight;Array.from(e.querySelectorAll('.item > .submenu, [role="menuitem"] > .submenu, [role="menuitemcheckbox"] > .submenu, [role="menuitemradio"] > .submenu, [data-menu-item] > .submenu')).forEach(a=>{const s=a.parentElement;if(!(s instanceof HTMLElement))return;s.removeAttribute("data-submenu-side"),s.removeAttribute("data-submenu-align");const o=a.style.display,u=a.style.visibility,c=a.style.pointerEvents,b=a.style.opacity,P=a.style.transform;a.style.display="grid",a.style.visibility="hidden",a.style.pointerEvents="none",a.style.opacity="0",a.style.transform="none";const p=s.getBoundingClientRect(),f=a.getBoundingClientRect();p.right+4+f.width>t-8&&p.left-4-f.width>=8&&s.setAttribute("data-submenu-side","left"),p.top+f.height>r-8&&p.bottom-f.height>=8&&s.setAttribute("data-submenu-align","up"),a.style.display=o,a.style.visibility=u,a.style.pointerEvents=c,a.style.opacity=b,a.style.transform=P})}_panelListbox(){return this._portalContentHostEl}_panelSurface(){return this._portalSurfaceEl}_buildPanelContent(e){const t=this._contents[e],r=document.createElement("div");r.className="ui-menubar-portal",r.style.position="absolute",r.style.pointerEvents="auto",r.innerHTML=`
428
+ <style>${R}</style>
429
429
  <div class="surface menu-panel" part="menu" role="menu" aria-hidden="false" aria-busy="false" tabindex="-1">
430
430
  <div class="state-row" part="state"></div>
431
431
  <ui-listbox class="content-host" slot="menu" role="menu" item-selector="${l().replace(/"/g,"&quot;")}" direct-item-selector=":scope > [slot=&quot;menu&quot;] > ${l().replace(/"/g,"&quot;")}" item-role="menuitem" active-attribute="data-active"></ui-listbox>
432
432
  </div>
433
- `;const i=r.querySelector("ui-listbox.content-host"),a=r.querySelector(".surface");if(!i||!a)return r;if(a.id=t?.id||`ui-menubar-panel-${this._uid}-${e}`,a.setAttribute("aria-labelledby",this._items[e]?.id||""),this._applyPanelVariantData(r),this._applyPanelTokens(r),t){const s=t.cloneNode(!0);s.setAttribute("slot","menu"),i.appendChild(s)}if(this._hydratePanelItems(i),i.refresh(),!i.querySelector(l())){const s=document.createElement("div");s.className="empty-state",s.textContent="No items",i.appendChild(s)}return r.addEventListener("click",s=>{const o=S(s);if(!o||g(o))return;if(this._submenuFor(o)){s.preventDefault(),this._openPanelSubmenu(o,!0);return}this._applyPanelSelectionBehavior(o);const u=o.getAttribute("data-index"),c=u!=null&&!Number.isNaN(Number(u))?Number(u):void 0;this.dispatchEvent(new CustomEvent("select",{detail:{selected:e,index:c,value:o.getAttribute("data-value")||o.getAttribute("value")||void 0,label:o.getAttribute("aria-label")||o.textContent?.trim()||void 0,checked:o.getAttribute("aria-checked")==="true",item:o},bubbles:!0})),this.closeOnSelect?this.close():this._focusPanelItem(o)}),r.addEventListener("pointerover",this._onPanelPointerOver),r.addEventListener("pointerleave",this._onPanelPointerLeave),r.addEventListener("focusin",this._onPanelFocusIn),r}_applyPanelVariantData(e){const t=h(this,"variant"),r=B(this.getAttribute("size")||this.getAttribute("density")),i=h(this,"density"),a=this.getAttribute("radius"),s=h(this,"shape"),o=h(this,"elevation"),u=h(this,"tone"),c=t==="default"||t===""?"":t==="glass"?"soft":t==="line"?"outline":t;c?e.setAttribute("data-variant",c):e.removeAttribute("data-variant"),r!=="md"?e.setAttribute("data-size",r):e.removeAttribute("data-size"),i&&i!=="default"?e.setAttribute("data-density",i):e.removeAttribute("data-density"),a?e.setAttribute("data-radius",a):e.removeAttribute("data-radius"),s&&s!=="default"?e.setAttribute("data-shape",s):e.removeAttribute("data-shape"),o&&o!=="default"?e.setAttribute("data-elevation",o):e.removeAttribute("data-elevation"),u&&u!=="default"&&u!=="brand"?e.setAttribute("data-tone",u):e.removeAttribute("data-tone"),this._open?e.setAttribute("data-open","true"):e.removeAttribute("data-open");const b=y(a||s||null);b?(e.style.setProperty("--ui-menubar-panel-radius",b),e.style.setProperty("--ui-menubar-panel-item-radius",b==="999px"?"999px":`calc(${b} - 2px)`)):(e.style.removeProperty("--ui-menubar-panel-radius"),e.style.removeProperty("--ui-menubar-panel-item-radius"))}_applyPanelTokens(e){const t=window.getComputedStyle(this);["--ui-color-primary","--ui-color-primary-hover","--ui-color-foreground-on-primary","--ui-color-background","--ui-color-surface","--ui-color-surface-alt","--ui-color-text","--ui-color-muted","--ui-color-border","--ui-color-focus-ring","--ui-color-success","--ui-color-danger","--ui-color-warning","--ui-primary","--ui-primary-hover","--ui-foreground","--ui-background","--ui-surface","--ui-surface-alt","--ui-text","--ui-muted","--ui-border","--ui-focus-ring","--ui-radius","--color-background","--color-surface","--color-panel","--color-panel-solid","--color-panel-translucent","--color-overlay","--accent-contrast","--accent-surface","--accent-indicator","--accent-track","--ui-menubar-ring","--ui-menubar-z","--ui-menubar-panel-bg","--ui-menubar-panel-color","--ui-menubar-panel-border","--ui-menubar-panel-shadow","--ui-menubar-panel-radius","--ui-menubar-panel-padding","--ui-menubar-panel-min-width","--ui-menubar-panel-item-radius","--ui-menubar-panel-item-gap","--ui-menubar-panel-item-min-height","--ui-menubar-panel-item-pad-y","--ui-menubar-panel-item-pad-x","--ui-menubar-panel-item-font-size","--ui-menubar-panel-item-font-weight","--ui-menubar-panel-item-line-height","--ui-menubar-panel-separator-margin","--ui-menubar-panel-item-hover-bg","--ui-menubar-panel-item-active-color"].forEach(i=>{const a=t.getPropertyValue(i).trim();a?e.style.setProperty(i,a):e.style.removeProperty(i)}),D.forEach(i=>{const a=t.getPropertyValue(i).trim();a?e.style.setProperty(i,a):e.style.removeProperty(i)}),z.forEach(({prefix:i,from:a,to:s})=>{for(let o=a;o<=s;o+=1){const u=`${i}${o}`,c=t.getPropertyValue(u).trim();c?e.style.setProperty(u,c):e.style.removeProperty(u)}})}_syncPanelVisualState(){const e=this._portalEl;if(!e)return;this._setPanelFlag("open",this._open),this._applyPanelVariantData(e),this._applyPanelTokens(e);const t=this._panelSurface();t&&(t.setAttribute("aria-hidden","false"),t.setAttribute("aria-busy","false"),t.removeAttribute("hidden"),t.style.display="block",t.style.visibility="visible",t.style.opacity="1",t.style.transform="translateY(0px) scale(1)",t.style.pointerEvents="auto");const r=e.querySelector(".state-row");r&&(r.textContent=""),this._schedulePanelSubmenuLayout()}_rebuildPanel(){if(!this._open)return;const e=this._selectedIndex(),t=this._items[e];if(e<0||!t){this._teardownPanel();return}this._teardownPanel();const r=this._buildPanelContent(e);this._portalEl=r,this._portalSurfaceEl=r.querySelector(".surface"),this._portalContentHostEl=r.querySelector("ui-listbox.content-host"),this._panelForIndex=e;const i=E.createPortalContainer();if(!i){this._portalEl=null,this._panelForIndex=-1;return}i.appendChild(r),this._positioner=L.createPositioner({anchor:t,floating:this._panelSurface()||r,placement:q(this.getAttribute("placement")),offset:6,flip:!0,shift:!0,fitViewport:!0,observeScroll:!1}),this._dismissableLayer=I.createDismissableLayer({node:this._panelSurface()||r,trigger:t,closeOnEscape:!0,closeOnPointerOutside:!0,onDismiss:()=>this.close()}),v.openOverlay(this._panelSurface()||r)}_teardownPanel(e=!1){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._positioner?.destroy(),this._positioner=null,e?v.retireOverlay(this._portalEl):v.removeOverlay(this._portalEl),this._portalEl=null,this._portalSurfaceEl=null,this._portalContentHostEl=null,this._panelForIndex=-1,this._submenuRaf!=null&&(cancelAnimationFrame(this._submenuRaf),this._submenuRaf=null),this._resetTypeahead()}_selectIndex(e,t){const r=this._selectedIndex(),i=x(e,this._items.length);i<0||(this._setSelectedAttribute(i),this.setAttribute("open",""),this._syncState(),this.dispatchEvent(new CustomEvent("change",{detail:{selected:i,previous:r,open:!0,reason:t},bubbles:!0})))}_focusItem(e){const t=this._items[e];t&&(this._focusIndex=e,m.syncRovingTabStops(this._items,t,{activeAttribute:null}),m.focusRovingItem(t))}_queryPanelItems(){return this._queryPanelItemsIn(this._panelListbox())}_focusPanelItem(e){e&&this._panelListbox()?.setActiveItem(e,{focus:!0,owner:this._panelSurface(),scroll:!0})}_focusPanelFirst(){this._panelListbox()?.focusBoundary("first",{focus:!0,owner:this._panelSurface(),scroll:!0})}_focusPanelLast(){this._panelListbox()?.focusBoundary("last",{focus:!0,owner:this._panelSurface(),scroll:!0})}_movePanelFocus(e){const t=document.activeElement,i=(t&&this._portalEl?.contains(t)?t.closest(l()):null)?.closest(".submenu")||this._panelListbox();this._panelListbox()?.move(e,{container:i,current:t&&this._portalEl?.contains(t)?t:null,focus:!0,owner:this._panelSurface(),scroll:!0})||this._focusPanelFirst()}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_isTypeaheadKey(e){return e.ctrlKey||e.metaKey||e.altKey?!1:e.key.length===1&&/\S/.test(e.key)}_typeaheadOnBar(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const t=this._items.findIndex(i=>i===e.target||i.contains(e.target)),r=k.findTypeaheadMatch(this._items,this._typeaheadBuffer,{startIndex:t,getLabel:i=>i.getAttribute("aria-label")||i.textContent||"",getDisabled:d});return r<0?!1:(e.preventDefault(),this._focusItem(r),this._open&&this._selectIndex(r,"keyboard"),!0)}_typeaheadOnPanel(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const t=document.activeElement,i=(t&&this._portalEl?.contains(t)?t.closest(l()):null)?.closest(".submenu")||this._panelListbox();return this._panelListbox()?.typeahead(this._typeaheadBuffer,{container:i,current:t&&this._portalEl?.contains(t)?t:null,focus:!0,owner:this._panelSurface(),scroll:!0})||null?(e.preventDefault(),!0):!1}_applyPanelSelectionBehavior(e){const t=e.getAttribute("role");if(t==="menuitemcheckbox"){const s=e.getAttribute("aria-checked")!=="true";e.setAttribute("aria-checked",s?"true":"false"),e.setAttribute("data-state",s?"checked":"unchecked");return}if(t!=="menuitemradio")return;const r=e.closest(".submenu")||this._panelListbox();if(!r)return;const i=e.getAttribute("data-group")||e.getAttribute("name")||"";Array.from(r.querySelectorAll('[role="menuitemradio"]')).forEach(s=>{i&&(s.getAttribute("data-group")||s.getAttribute("name")||"")!==i||(s.setAttribute("aria-checked","false"),s.setAttribute("data-state","unchecked"))}),e.setAttribute("aria-checked","true"),e.setAttribute("data-state","checked")}_onClick(e){const t=e.composedPath(),r=this._items.findIndex(a=>t.includes(a));if(r<0)return;if(this._focusItem(r),this._selectedIndex()===r&&this._open){this.close(),this._syncState();return}this._selectIndex(r,"click")}_onMouseMove(e){if(!this._open)return;const t=e.composedPath(),r=this._items.findIndex(i=>t.includes(i));r<0||r!==this._selectedIndex()&&this._selectIndex(r,"programmatic")}_isInternalScrollEvent(e){const t=typeof e.composedPath=="function"?e.composedPath():[];if(this._portalEl&&t.includes(this._portalEl)||this._items.some(i=>t.includes(i)))return!0;const r=e.target;return!!(r instanceof Node&&(this._portalEl?.contains(r)||this._items.some(i=>i.contains(r))))}_onDocScroll(e){!this._open||!this.closeOnScroll||this._isInternalScrollEvent(e)||this.close()}_onPanelPointerOver(e){if(!this._open)return;const t=S(e);if(!t||g(t))return;const r=t.closest(".submenu")||this._panelListbox();this._panelListbox()?.setActiveItem(t,{container:r,focus:!1,owner:this._panelSurface(),scroll:!1}),this._submenuFor(t)?this._openPanelSubmenu(t,!1):this._setOpenPanelBranch(t,!1)}_onPanelPointerLeave(e){if(!(e.currentTarget instanceof HTMLElement))return;const t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||this._clearPanelSubmenuState()}_onPanelFocusIn(e){const t=e.target;if(!(t instanceof HTMLElement))return;const r=t.closest(l());r&&(this._submenuFor(r)?this._setOpenPanelBranch(r,!0):this._setOpenPanelBranch(r,!1))}_onKeyDown(e){const t=this._items.findIndex(o=>o===e.target||o.contains(e.target));if(t<0)return;const r=getComputedStyle(this).direction==="rtl"?"rtl":"ltr";let i=!1,a=t;const s=m.resolveRovingFocusIndex(this._items,{activeIndex:t,selectedIndex:this._selectedIndex(),getDisabled:d});e.key==="ArrowRight"?(a=m.moveRovingFocusIndex(this._items,t,r==="rtl"?-1:1,{wrap:this._loopEnabled(),fallbackIndex:s,getDisabled:d}),i=!0):e.key==="ArrowLeft"?(a=m.moveRovingFocusIndex(this._items,t,r==="rtl"?1:-1,{wrap:this._loopEnabled(),fallbackIndex:s,getDisabled:d}),i=!0):e.key==="Home"?(a=m.getRovingFocusBoundaryIndex(this._items,"first",d),i=!0):e.key==="End"?(a=m.getRovingFocusBoundaryIndex(this._items,"last",d),i=!0):e.key==="Enter"||e.key===" "?(this._selectIndex(t,"keyboard"),i=!0):e.key==="ArrowDown"?(this._selectIndex(t,"keyboard"),setTimeout(()=>this._focusPanelFirst(),0),i=!0):e.key==="ArrowUp"&&(this._selectIndex(t,"keyboard"),setTimeout(()=>this._focusPanelLast(),0),i=!0),!(!i&&this._typeaheadOnBar(e))&&i&&(e.preventDefault(),a>=0&&a!==t&&(this._focusItem(a),this._open&&this._selectIndex(a,"keyboard")))}_onDocKeyDown(e){if(!this._open||!(!!this._portalEl&&e.composedPath().includes(this._portalEl))||this._typeaheadOnPanel(e))return;if(e.key==="ArrowDown"){e.preventDefault(),this._movePanelFocus(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this._movePanelFocus(-1);return}if(e.key==="Home"){e.preventDefault(),this._focusPanelFirst();return}if(e.key==="End"){e.preventDefault(),this._focusPanelLast();return}const r=document.activeElement,i=r?.closest(l());if(e.key==="ArrowRight"&&i&&this._openPanelSubmenu(i,!0)){e.preventDefault();return}if(e.key==="ArrowLeft"&&i&&this._closeParentPanelSubmenu(i)){e.preventDefault();return}if(e.key==="Tab"){this.close();return}if(e.key==="Enter"||e.key===" "){if(!r||!this._portalEl?.contains(r)||!i||g(i)||(e.preventDefault(),this._openPanelSubmenu(i,!0)))return;i.click()}}shouldRenderOnAttributeChange(e,t,r){return!1}}typeof customElements<"u"&&!customElements.get("ui-menubar")&&customElements.define("ui-menubar",A);exports.UIMenubar=A;
433
+ `;const i=r.querySelector("ui-listbox.content-host"),a=r.querySelector(".surface");if(!i||!a)return r;if(a.id=t?.id||`ui-menubar-panel-${this._uid}-${e}`,a.setAttribute("aria-labelledby",this._items[e]?.id||""),this._applyPanelVariantData(r),this._applyPanelTokens(r),t){const s=y.revealClone(t.cloneNode(!0));s.setAttribute("slot","menu"),i.appendChild(s)}if(this._hydratePanelItems(i),i.refresh(),!i.querySelector(l())){const s=document.createElement("div");s.className="empty-state",s.textContent="No items",i.appendChild(s)}return r.addEventListener("click",s=>{const o=A(s);if(!o||g(o))return;if(this._submenuFor(o)){s.preventDefault(),this._openPanelSubmenu(o,!0);return}this._applyPanelSelectionBehavior(o);const u=o.getAttribute("data-index"),c=u!=null&&!Number.isNaN(Number(u))?Number(u):void 0;this.dispatchEvent(new CustomEvent("select",{detail:{selected:e,index:c,value:o.getAttribute("data-value")||o.getAttribute("value")||void 0,label:o.getAttribute("aria-label")||o.textContent?.trim()||void 0,checked:o.getAttribute("aria-checked")==="true",item:o},bubbles:!0})),this.closeOnSelect?this.close():this._focusPanelItem(o)}),r.addEventListener("pointerover",this._onPanelPointerOver),r.addEventListener("pointerleave",this._onPanelPointerLeave),r.addEventListener("focusin",this._onPanelFocusIn),r}_applyPanelVariantData(e){const t=h(this,"variant"),r=O(this.getAttribute("size")||this.getAttribute("density")),i=h(this,"density"),a=this.getAttribute("radius"),s=h(this,"shape"),o=h(this,"elevation"),u=h(this,"tone"),c=t==="default"||t===""?"":t==="glass"?"soft":t==="line"?"outline":t;c?e.setAttribute("data-variant",c):e.removeAttribute("data-variant"),r!=="md"?e.setAttribute("data-size",r):e.removeAttribute("data-size"),i&&i!=="default"?e.setAttribute("data-density",i):e.removeAttribute("data-density"),a?e.setAttribute("data-radius",a):e.removeAttribute("data-radius"),s&&s!=="default"?e.setAttribute("data-shape",s):e.removeAttribute("data-shape"),o&&o!=="default"?e.setAttribute("data-elevation",o):e.removeAttribute("data-elevation"),u&&u!=="default"&&u!=="brand"?e.setAttribute("data-tone",u):e.removeAttribute("data-tone"),this._open?e.setAttribute("data-open","true"):e.removeAttribute("data-open");const b=x(a||s||null);b?(e.style.setProperty("--ui-menubar-panel-radius",b),e.style.setProperty("--ui-menubar-panel-item-radius",b==="999px"?"999px":`calc(${b} - 2px)`)):(e.style.removeProperty("--ui-menubar-panel-radius"),e.style.removeProperty("--ui-menubar-panel-item-radius"))}_applyPanelTokens(e){const t=window.getComputedStyle(this);["--ui-color-primary","--ui-color-primary-hover","--ui-color-foreground-on-primary","--ui-color-background","--ui-color-surface","--ui-color-surface-alt","--ui-color-text","--ui-color-muted","--ui-color-border","--ui-color-focus-ring","--ui-color-success","--ui-color-danger","--ui-color-warning","--ui-primary","--ui-primary-hover","--ui-foreground","--ui-background","--ui-surface","--ui-surface-alt","--ui-text","--ui-muted","--ui-border","--ui-focus-ring","--ui-radius","--color-background","--color-surface","--color-panel","--color-panel-solid","--color-panel-translucent","--color-overlay","--accent-contrast","--accent-surface","--accent-indicator","--accent-track","--ui-menubar-ring","--ui-menubar-z","--ui-menubar-panel-bg","--ui-menubar-panel-color","--ui-menubar-panel-border","--ui-menubar-panel-shadow","--ui-menubar-panel-radius","--ui-menubar-panel-padding","--ui-menubar-panel-min-width","--ui-menubar-panel-item-radius","--ui-menubar-panel-item-gap","--ui-menubar-panel-item-min-height","--ui-menubar-panel-item-pad-y","--ui-menubar-panel-item-pad-x","--ui-menubar-panel-item-font-size","--ui-menubar-panel-item-font-weight","--ui-menubar-panel-item-line-height","--ui-menubar-panel-separator-margin","--ui-menubar-panel-item-hover-bg","--ui-menubar-panel-item-active-color"].forEach(i=>{const a=t.getPropertyValue(i).trim();a?e.style.setProperty(i,a):e.style.removeProperty(i)}),z.forEach(i=>{const a=t.getPropertyValue(i).trim();a?e.style.setProperty(i,a):e.style.removeProperty(i)}),B.forEach(({prefix:i,from:a,to:s})=>{for(let o=a;o<=s;o+=1){const u=`${i}${o}`,c=t.getPropertyValue(u).trim();c?e.style.setProperty(u,c):e.style.removeProperty(u)}})}_syncPanelVisualState(){const e=this._portalEl;if(!e)return;this._setPanelFlag("open",this._open),this._applyPanelVariantData(e),this._applyPanelTokens(e);const t=this._panelSurface();t&&(t.setAttribute("aria-hidden","false"),t.setAttribute("aria-busy","false"),t.removeAttribute("hidden"),t.style.display="block",t.style.visibility="visible",t.style.opacity="1",t.style.transform="translateY(0px) scale(1)",t.style.pointerEvents="auto");const r=e.querySelector(".state-row");r&&(r.textContent=""),this._schedulePanelSubmenuLayout()}_rebuildPanel(){if(!this._open)return;const e=this._selectedIndex(),t=this._items[e];if(e<0||!t){this._teardownPanel();return}this._teardownPanel();const r=this._buildPanelContent(e);this._portalEl=r,this._portalSurfaceEl=r.querySelector(".surface"),this._portalContentHostEl=r.querySelector("ui-listbox.content-host"),this._panelForIndex=e;const i=k.createPortalContainer();if(!i){this._portalEl=null,this._panelForIndex=-1;return}i.appendChild(r),this._positioner=C.createPositioner({anchor:t,floating:this._panelSurface()||r,placement:M(this.getAttribute("placement")),offset:6,flip:!0,shift:!0,fitViewport:!0,observeScroll:!1}),this._dismissableLayer=L.createDismissableLayer({node:this._panelSurface()||r,trigger:t,closeOnEscape:!0,closeOnPointerOutside:!0,onDismiss:()=>this.close()}),v.openOverlay(this._panelSurface()||r)}_teardownPanel(e=!1){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._positioner?.destroy(),this._positioner=null,e?v.retireOverlay(this._portalEl):v.removeOverlay(this._portalEl),this._portalEl=null,this._portalSurfaceEl=null,this._portalContentHostEl=null,this._panelForIndex=-1,this._submenuRaf!=null&&(cancelAnimationFrame(this._submenuRaf),this._submenuRaf=null),this._resetTypeahead()}_selectIndex(e,t){const r=this._selectedIndex(),i=S(e,this._items.length);i<0||(this._setSelectedAttribute(i),this.setAttribute("open",""),this._syncState(),this.dispatchEvent(new CustomEvent("change",{detail:{selected:i,previous:r,open:!0,reason:t},bubbles:!0})))}_focusItem(e){const t=this._items[e];t&&(this._focusIndex=e,m.syncRovingTabStops(this._items,t,{activeAttribute:null}),m.focusRovingItem(t))}_queryPanelItems(){return this._queryPanelItemsIn(this._panelListbox())}_focusPanelItem(e){e&&this._panelListbox()?.setActiveItem(e,{focus:!0,owner:this._panelSurface(),scroll:!0})}_focusPanelFirst(){this._panelListbox()?.focusBoundary("first",{focus:!0,owner:this._panelSurface(),scroll:!0})}_focusPanelLast(){this._panelListbox()?.focusBoundary("last",{focus:!0,owner:this._panelSurface(),scroll:!0})}_movePanelFocus(e){const t=document.activeElement,i=(t&&this._portalEl?.contains(t)?t.closest(l()):null)?.closest(".submenu")||this._panelListbox();this._panelListbox()?.move(e,{container:i,current:t&&this._portalEl?.contains(t)?t:null,focus:!0,owner:this._panelSurface(),scroll:!0})||this._focusPanelFirst()}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_isTypeaheadKey(e){return e.ctrlKey||e.metaKey||e.altKey?!1:e.key.length===1&&/\S/.test(e.key)}_typeaheadOnBar(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const t=this._items.findIndex(i=>i===e.target||i.contains(e.target)),r=I.findTypeaheadMatch(this._items,this._typeaheadBuffer,{startIndex:t,getLabel:i=>i.getAttribute("aria-label")||i.textContent||"",getDisabled:d});return r<0?!1:(e.preventDefault(),this._focusItem(r),this._open&&this._selectIndex(r,"keyboard"),!0)}_typeaheadOnPanel(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const t=document.activeElement,i=(t&&this._portalEl?.contains(t)?t.closest(l()):null)?.closest(".submenu")||this._panelListbox();return this._panelListbox()?.typeahead(this._typeaheadBuffer,{container:i,current:t&&this._portalEl?.contains(t)?t:null,focus:!0,owner:this._panelSurface(),scroll:!0})||null?(e.preventDefault(),!0):!1}_applyPanelSelectionBehavior(e){const t=e.getAttribute("role");if(t==="menuitemcheckbox"){const s=e.getAttribute("aria-checked")!=="true";e.setAttribute("aria-checked",s?"true":"false"),e.setAttribute("data-state",s?"checked":"unchecked");return}if(t!=="menuitemradio")return;const r=e.closest(".submenu")||this._panelListbox();if(!r)return;const i=e.getAttribute("data-group")||e.getAttribute("name")||"";Array.from(r.querySelectorAll('[role="menuitemradio"]')).forEach(s=>{i&&(s.getAttribute("data-group")||s.getAttribute("name")||"")!==i||(s.setAttribute("aria-checked","false"),s.setAttribute("data-state","unchecked"))}),e.setAttribute("aria-checked","true"),e.setAttribute("data-state","checked")}_onClick(e){const t=e.composedPath(),r=this._items.findIndex(a=>t.includes(a));if(r<0)return;if(this._focusItem(r),this._selectedIndex()===r&&this._open){this.close(),this._syncState();return}this._selectIndex(r,"click")}_onMouseMove(e){if(!this._open)return;const t=e.composedPath(),r=this._items.findIndex(i=>t.includes(i));r<0||r!==this._selectedIndex()&&this._selectIndex(r,"programmatic")}_isInternalScrollEvent(e){const t=typeof e.composedPath=="function"?e.composedPath():[];if(this._portalEl&&t.includes(this._portalEl)||this._items.some(i=>t.includes(i)))return!0;const r=e.target;return!!(r instanceof Node&&(this._portalEl?.contains(r)||this._items.some(i=>i.contains(r))))}_onDocScroll(e){!this._open||!this.closeOnScroll||this._isInternalScrollEvent(e)||this.close()}_onPanelPointerOver(e){if(!this._open)return;const t=A(e);if(!t||g(t))return;const r=t.closest(".submenu")||this._panelListbox();this._panelListbox()?.setActiveItem(t,{container:r,focus:!1,owner:this._panelSurface(),scroll:!1}),this._submenuFor(t)?this._openPanelSubmenu(t,!1):this._setOpenPanelBranch(t,!1)}_onPanelPointerLeave(e){if(!(e.currentTarget instanceof HTMLElement))return;const t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||this._clearPanelSubmenuState()}_onPanelFocusIn(e){const t=e.target;if(!(t instanceof HTMLElement))return;const r=t.closest(l());r&&(this._submenuFor(r)?this._setOpenPanelBranch(r,!0):this._setOpenPanelBranch(r,!1))}_onKeyDown(e){const t=this._items.findIndex(o=>o===e.target||o.contains(e.target));if(t<0)return;const r=getComputedStyle(this).direction==="rtl"?"rtl":"ltr";let i=!1,a=t;const s=m.resolveRovingFocusIndex(this._items,{activeIndex:t,selectedIndex:this._selectedIndex(),getDisabled:d});e.key==="ArrowRight"?(a=m.moveRovingFocusIndex(this._items,t,r==="rtl"?-1:1,{wrap:this._loopEnabled(),fallbackIndex:s,getDisabled:d}),i=!0):e.key==="ArrowLeft"?(a=m.moveRovingFocusIndex(this._items,t,r==="rtl"?1:-1,{wrap:this._loopEnabled(),fallbackIndex:s,getDisabled:d}),i=!0):e.key==="Home"?(a=m.getRovingFocusBoundaryIndex(this._items,"first",d),i=!0):e.key==="End"?(a=m.getRovingFocusBoundaryIndex(this._items,"last",d),i=!0):e.key==="Enter"||e.key===" "?(this._selectIndex(t,"keyboard"),i=!0):e.key==="ArrowDown"?(this._selectIndex(t,"keyboard"),setTimeout(()=>this._focusPanelFirst(),0),i=!0):e.key==="ArrowUp"&&(this._selectIndex(t,"keyboard"),setTimeout(()=>this._focusPanelLast(),0),i=!0),!(!i&&this._typeaheadOnBar(e))&&i&&(e.preventDefault(),a>=0&&a!==t&&(this._focusItem(a),this._open&&this._selectIndex(a,"keyboard")))}_onDocKeyDown(e){if(!this._open||!(!!this._portalEl&&e.composedPath().includes(this._portalEl))||this._typeaheadOnPanel(e))return;if(e.key==="ArrowDown"){e.preventDefault(),this._movePanelFocus(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this._movePanelFocus(-1);return}if(e.key==="Home"){e.preventDefault(),this._focusPanelFirst();return}if(e.key==="End"){e.preventDefault(),this._focusPanelLast();return}const r=document.activeElement,i=r?.closest(l());if(e.key==="ArrowRight"&&i&&this._openPanelSubmenu(i,!0)){e.preventDefault();return}if(e.key==="ArrowLeft"&&i&&this._closeParentPanelSubmenu(i)){e.preventDefault();return}if(e.key==="Tab"){this.close();return}if(e.key==="Enter"||e.key===" "){if(!r||!this._portalEl?.contains(r)||!i||g(i)||(e.preventDefault(),this._openPanelSubmenu(i,!0)))return;i.click()}}shouldRenderOnAttributeChange(e,t,r){return!1}}typeof customElements<"u"&&!customElements.get("ui-menubar")&&customElements.define("ui-menubar",w);exports.UIMenubar=w;