@astryx-vue/core 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/dist/AlertDialog/index.js +1 -1
  2. package/dist/{AlertDialog-RAVA_cT1.js → AlertDialog-C2inDZWG.js} +5 -5
  3. package/dist/AppShell/index.d.ts +1 -1
  4. package/dist/AppShell/index.js +1 -1
  5. package/dist/{AppShell-0wTvOo3H.js → AppShell-awAKicsc.js} +3 -3
  6. package/dist/Avatar/index.js +1 -1
  7. package/dist/{Avatar-pPZ4dI_s.js → Avatar-DXBjJ88C.js} +47 -34
  8. package/dist/AvatarGroup/index.d.ts +1 -1
  9. package/dist/AvatarGroup/index.js +1 -1
  10. package/dist/{AvatarGroup-B--NQSB3.js → AvatarGroup-kpAeKLNq.js} +57 -13
  11. package/dist/Banner/index.d.ts +1 -1
  12. package/dist/Banner/index.js +1 -1
  13. package/dist/{Banner-GbGxrqQO.js → Banner-BdvuyzAe.js} +71 -35
  14. package/dist/Blockquote/index.js +1 -1
  15. package/dist/Blockquote-DRoKdcxZ.js +27 -0
  16. package/dist/BottomSheet/index.d.ts +1 -1
  17. package/dist/BottomSheet/index.js +2 -2
  18. package/dist/{BottomSheet-pt7m4CvC.js → BottomSheet-B4sc3F1S.js} +286 -140
  19. package/dist/{BottomSheet-JYMB_Ofl.js → BottomSheet-m54uCMJN.js} +20 -4
  20. package/dist/Breadcrumbs/index.d.ts +2 -2
  21. package/dist/Breadcrumbs/index.js +2 -2
  22. package/dist/Breadcrumbs-D4ZzHEB0.js +223 -0
  23. package/dist/Button/index.d.ts +1 -1
  24. package/dist/Button/index.js +1 -1
  25. package/dist/{Button-B6Hj_O_s.js → Button-ONOoHdkg.js} +25 -15
  26. package/dist/ButtonGroup/index.d.ts +1 -1
  27. package/dist/ButtonGroup/index.js +1 -1
  28. package/dist/ButtonGroup-DnkSZ9a5.js +87 -0
  29. package/dist/{ButtonTooltip-nWWrth8j.js → ButtonTooltip-CNKOQHYR.js} +7 -4
  30. package/dist/Calendar/index.d.ts +1 -1
  31. package/dist/Calendar/index.js +1 -1
  32. package/dist/{Calendar-B7vIowKq.js → Calendar-CjK-JUDM.js} +5 -5
  33. package/dist/Card/index.d.ts +2 -2
  34. package/dist/Carousel/index.js +1 -1
  35. package/dist/{Carousel-CA8zpD9v.js → Carousel-D262qigj.js} +8 -8
  36. package/dist/Chat/index.d.ts +1 -1
  37. package/dist/Chat/index.js +1 -1
  38. package/dist/{Chat-Bmna9EOA.js → Chat-DD_mlIP3.js} +165 -101
  39. package/dist/CheckboxIndicator/index.js +1 -1
  40. package/dist/{CheckboxIndicator-D37cm2Rh.js → CheckboxIndicator-fH4d-JE1.js} +9 -3
  41. package/dist/CheckboxInput/index.d.ts +1 -1
  42. package/dist/CheckboxInput/index.js +1 -1
  43. package/dist/{CheckboxInput-BS9J6edf.js → CheckboxInput-D8vTmAMZ.js} +20 -12
  44. package/dist/CheckboxList/index.d.ts +1 -1
  45. package/dist/CheckboxList/index.js +1 -1
  46. package/dist/{CheckboxList-CX1i_jVP.js → CheckboxList-DCvHewHB.js} +155 -38
  47. package/dist/Citation/index.js +1 -1
  48. package/dist/{Citation-Djgwa0ko.js → Citation-C69BgxW3.js} +8 -3
  49. package/dist/ClickableCard/index.d.ts +1 -1
  50. package/dist/ClickableCard/index.js +1 -1
  51. package/dist/{ClickableCard-DUsC-j03.js → ClickableCard-ChAfiw9T.js} +9 -6
  52. package/dist/Code/index.d.ts +1 -1
  53. package/dist/Code/index.js +3 -3
  54. package/dist/{Code-XnPuGxey.js → Code-Bg7GBdxy.js} +2 -1
  55. package/dist/{CodeBlock-D0BFubut.js → CodeBlock-DsbwTBiT.js} +8 -8
  56. package/dist/Collapsible/index.d.ts +1 -1
  57. package/dist/Collapsible/index.js +1 -1
  58. package/dist/{Collapsible-Cov3Pyq5.js → Collapsible-Bdj0WYpb.js} +13 -11
  59. package/dist/CommandPalette/index.d.ts +1 -1
  60. package/dist/CommandPalette/index.js +1 -1
  61. package/dist/{CommandPalette-YHsUNg3V.js → CommandPalette-CZ7CZglZ.js} +147 -67
  62. package/dist/ComplexSelector/index.d.ts +1 -1
  63. package/dist/ComplexSelector/index.js +1 -1
  64. package/dist/{ComplexSelector-DWLdKPGI.js → ComplexSelector-CIz6DDmY.js} +114 -28
  65. package/dist/ContextMenu/index.d.ts +2 -2
  66. package/dist/ContextMenu/index.js +2 -2
  67. package/dist/{ContextMenu-Bq9b3Ti5.js → ContextMenu-CxoiRh_h.js} +297 -179
  68. package/dist/DateInput/index.d.ts +1 -1
  69. package/dist/DateInput/index.js +1 -1
  70. package/dist/{DateInput-DT518j5E.js → DateInput-C67HCOU-.js} +563 -72
  71. package/dist/DateRangeInput/index.d.ts +1 -1
  72. package/dist/DateRangeInput/index.js +1 -1
  73. package/dist/{DateRangeInput-Bqi5tlIA.js → DateRangeInput-Dsf5Tyf-.js} +91 -26
  74. package/dist/DateTimeInput/index.d.ts +1 -1
  75. package/dist/DateTimeInput/index.js +1 -1
  76. package/dist/DateTimeInput-tfM1y5nZ.js +562 -0
  77. package/dist/Dialog/index.d.ts +1 -1
  78. package/dist/Dialog/index.js +2 -2
  79. package/dist/{Dialog-BiOSKQso.js → Dialog-DT1GzCrB.js} +28 -11
  80. package/dist/{Dialog-FGHfDu5M.js → Dialog-fhyxB00e.js} +32 -5
  81. package/dist/Divider/index.d.ts +1 -1
  82. package/dist/Divider/index.js +1 -1
  83. package/dist/{Divider-BtwnL18I.js → Divider-mOZ6vIQw.js} +5 -1
  84. package/dist/DropdownMenu/index.d.ts +2 -2
  85. package/dist/DropdownMenu/index.js +3 -3
  86. package/dist/{DropdownMenu-CoOQVlRp.js → DropdownMenu-C6wBC18g.js} +84 -56
  87. package/dist/{DropdownMenu-DEb2dSSP.js → DropdownMenu-G-pWSiBk.js} +479 -264
  88. package/dist/{DropdownMenuRadioItem.vue-CXEURBcq.d.ts → DropdownMenuRadioItem.vue-Qd-8Rg4Q.d.ts} +236 -230
  89. package/dist/EmptyState/index.js +1 -1
  90. package/dist/{EmptyState-C_GH7IV5.js → EmptyState-CmOQf2SH.js} +2 -2
  91. package/dist/Field/index.d.ts +4 -3
  92. package/dist/Field/index.js +4 -3
  93. package/dist/{Field-D5gUEGw4.js → Field-JIxT3xCh.js} +5 -4
  94. package/dist/FieldIcon-BFSHZEs_.js +40 -0
  95. package/dist/{FieldInfoTip-Ds-sW_jY.js → FieldInfoTip-BbgLt4ug.js} +4 -4
  96. package/dist/{FieldLabel-BNeXRuGH.js → FieldLabel-CHqp1y3z.js} +13 -8
  97. package/dist/FieldStatus/index.d.ts +1 -1
  98. package/dist/FieldStatus/index.js +1 -1
  99. package/dist/{FieldStatus-MjY19ERl.js → FieldStatus-DaAB3TIt.js} +1 -1
  100. package/dist/FileInput/index.d.ts +1 -1
  101. package/dist/FileInput/index.js +1 -1
  102. package/dist/{FileInput-BpdiO1V8.js → FileInput-Bi1uty-F.js} +108 -31
  103. package/dist/FormLayout/index.d.ts +1 -1
  104. package/dist/FormLayout/index.js +1 -1
  105. package/dist/{FormLayout-D47FjiOq.js → FormLayout-B9dUB6Ps.js} +1 -1
  106. package/dist/Heading/index.d.ts +1 -1
  107. package/dist/Heading/index.js +1 -1
  108. package/dist/{Heading-BnwWEWkp.js → Heading-BzBunfN7.js} +1 -1
  109. package/dist/HoverCard/index.js +1 -1
  110. package/dist/{HoverCard-ycY50pRN.js → HoverCard-BpJhT0sn.js} +35 -22
  111. package/dist/Icon/index.d.ts +4 -4
  112. package/dist/Icon/index.js +1 -1
  113. package/dist/{Icon-bteSId7T.js → Icon-KDnUyY7f.js} +12 -20
  114. package/dist/IconButton/index.js +1 -1
  115. package/dist/{IconButton-DDNgNl7B.js → IconButton-DI-XBbtV.js} +1 -1
  116. package/dist/Indicator/index.d.ts +2 -2
  117. package/dist/Indicator/index.js +2 -1
  118. package/dist/InputClearButton-CfSIqc-V.js +40 -0
  119. package/dist/InputGroup/index.d.ts +1 -1
  120. package/dist/InputGroup/index.js +2 -2
  121. package/dist/{InputGroup-CA03Smrs.js → InputGroup-D3F-QnET.js} +2 -2
  122. package/dist/InternationalizationProvider/index.d.ts +1 -1
  123. package/dist/InternationalizationProvider/index.js +1 -1
  124. package/dist/{InternationalizationProvider-DJay_w3B.js → InternationalizationProvider-CVV5QDgp.js} +5 -9
  125. package/dist/{Item-KhFKX9St.js → Item-DWMIjN8n.js} +34 -9
  126. package/dist/Kbd/index.js +1 -1
  127. package/dist/{Kbd-BB-Dw6zE.js → Kbd-CV3LO2Ge.js} +18 -2
  128. package/dist/LayerContentBoundary-CvsKxwwm.js +27 -0
  129. package/dist/LayerProvider/index.js +1 -1
  130. package/dist/{LayerProvider-D9NsQFzL.js → LayerProvider-B6zpMBWC.js} +15 -3
  131. package/dist/Layout/index.d.ts +1 -1
  132. package/dist/Layout/index.js +2 -2
  133. package/dist/{Layout-C6RHllr-.js → Layout-JJRCG7Mf.js} +1 -1
  134. package/dist/{LayoutPanel-DXOsaeQb.js → LayoutPanel-zM5vjrKS.js} +12 -8
  135. package/dist/Lightbox/index.js +1 -1
  136. package/dist/{Lightbox-DTF9EdTG.js → Lightbox-CjXhbDPc.js} +14 -12
  137. package/dist/Link/index.js +1 -1
  138. package/dist/{Link-BqHCtiyt.js → Link-ClNkTN1Q.js} +29 -12
  139. package/dist/List/index.d.ts +1 -1
  140. package/dist/List/index.js +2 -2
  141. package/dist/{ListItem-8RWT8XAG.js → ListItem-BQXMu1Tb.js} +1 -1
  142. package/dist/Markdown/index.d.ts +5 -2
  143. package/dist/Markdown/index.js +4 -2
  144. package/dist/Markdown/parser/index.d.ts +4 -0
  145. package/dist/Markdown/parser/index.js +2 -0
  146. package/dist/Markdown/plugin-protocol/index.d.ts +35 -0
  147. package/dist/Markdown/plugin-protocol/index.js +107 -0
  148. package/dist/Markdown/plugin-renderer/index.d.ts +31 -0
  149. package/dist/Markdown/plugin-renderer/index.js +42 -0
  150. package/dist/{Markdown-CvtN7HnF.js → Markdown-EIBrwQrb.js} +195 -524
  151. package/dist/MediaTheme-DlLqYhDy.js +433 -0
  152. package/dist/MetadataList/index.js +1 -1
  153. package/dist/{MetadataList-B-OelQlt.js → MetadataList-DLlSLX1n.js} +15 -7
  154. package/dist/MobileNav/index.js +1 -1
  155. package/dist/{MobileNavToggle-DxGz0xKA.js → MobileNavToggle-DgJYyzT6.js} +52 -17
  156. package/dist/MoreMenu/index.d.ts +1 -1
  157. package/dist/MoreMenu/index.js +1 -1
  158. package/dist/{MoreMenu-Dlb7MLlW.js → MoreMenu-C8BEt6-O.js} +74 -61
  159. package/dist/MultiSelector/index.d.ts +1 -1
  160. package/dist/MultiSelector/index.js +1 -1
  161. package/dist/MultiSelector-C7NCAtwW.js +1456 -0
  162. package/dist/{NavDisclosure-C_fugrQ3.js → NavDisclosure-Bq9DTZLO.js} +29 -7
  163. package/dist/{NavHeadingSurface-B3yJspSN.js → NavHeadingSurface-DQXisuaX.js} +29 -26
  164. package/dist/NavItem/index.d.ts +1 -1
  165. package/dist/NavItem/index.js +2 -2
  166. package/dist/{NavItem-BBIGSvDj.js → NavItem-BPb3yfgz.js} +17 -4
  167. package/dist/NavMenu/index.d.ts +1 -1
  168. package/dist/NavMenu/index.js +3 -3
  169. package/dist/{NavMenu-ThXguZAz.js → NavMenu-BYIDzjix.js} +42 -15
  170. package/dist/{NavMenuItem-BvJNsDFC.js → NavMenuItem-D3FO90GR.js} +14 -12
  171. package/dist/NumberInput/index.d.ts +1 -1
  172. package/dist/NumberInput/index.js +1 -1
  173. package/dist/NumberInput-3u3NZWnv.js +727 -0
  174. package/dist/Outline/index.d.ts +2 -2
  175. package/dist/Outline/index.js +2 -2
  176. package/dist/{Outline-755h-lMP.js → Outline-8szj9eXu.js} +91 -6
  177. package/dist/OverflowList/index.d.ts +2 -2
  178. package/dist/OverflowList/index.js +1 -1
  179. package/dist/{OverflowList-NmrSMbxb.js → OverflowList-BizpEwH8.js} +23 -6
  180. package/dist/Pagination/index.d.ts +1 -1
  181. package/dist/Pagination/index.js +1 -1
  182. package/dist/{Pagination-DqwNQFRp.js → Pagination-Cihr1CjD.js} +2 -2
  183. package/dist/PickerWheel-CSwUYfes.js +69 -0
  184. package/dist/Popover/index.d.ts +1 -1
  185. package/dist/Popover/index.js +1 -1
  186. package/dist/{Popover-DJf8POzL.js → Popover-78dFjTb9.js} +20 -15
  187. package/dist/PowerSearch/index.d.ts +1 -1
  188. package/dist/PowerSearch/index.js +1 -1
  189. package/dist/{PowerSearch-DvjiPqMZ.js → PowerSearch-BHx91ypY.js} +778 -590
  190. package/dist/ProgressBar/index.d.ts +1 -1
  191. package/dist/ProgressBar/index.js +1 -1
  192. package/dist/{ProgressBar-CVLzdoBK.js → ProgressBar-VP4JS7vm.js} +10 -7
  193. package/dist/Radio/index.d.ts +1 -1
  194. package/dist/Radio/index.js +1 -1
  195. package/dist/{RadioGroup-Bfu6JSNV.js → RadioGroup-DeSIRrgt.js} +94 -26
  196. package/dist/RadioList/index.d.ts +1 -1
  197. package/dist/RadioList/index.js +1 -1
  198. package/dist/{RadioList-xY1cwLdZ.js → RadioList-Co2lmetC.js} +57 -8
  199. package/dist/Resizable/index.d.ts +1 -1
  200. package/dist/Resizable/index.js +1 -1
  201. package/dist/{ResizeHandle-q4nD_586.js → ResizeHandle-DjLZ2pcq.js} +103 -50
  202. package/dist/ScrollableArea/index.d.ts +1 -1
  203. package/dist/ScrollableArea/index.js +1 -1
  204. package/dist/{ScrollableArea-D4dCJv9I.js → ScrollableArea-0u6RWtGG.js} +1 -1
  205. package/dist/SegmentedControl/index.d.ts +1 -1
  206. package/dist/SegmentedControl/index.js +1 -1
  207. package/dist/{SegmentedControl-ChHmFrrC.js → SegmentedControl-D1wWGBZo.js} +11 -5
  208. package/dist/SelectableCard/index.d.ts +1 -1
  209. package/dist/SelectableCard/index.js +1 -1
  210. package/dist/{SelectableCard-Cku4dRzc.js → SelectableCard-BEqnhPaX.js} +16 -11
  211. package/dist/Selector/index.d.ts +1 -1
  212. package/dist/Selector/index.js +1 -1
  213. package/dist/Selector-swa3RNQI.js +1049 -0
  214. package/dist/SideNav/index.d.ts +1 -1
  215. package/dist/SideNav/index.js +1 -1
  216. package/dist/{SideNav-BF8mYDxl.js → SideNav-BH6XKsW2.js} +56 -42
  217. package/dist/Slider/index.d.ts +1 -1
  218. package/dist/Slider/index.js +1 -1
  219. package/dist/{Slider-DWobsPgm.js → Slider-DG2YXll8.js} +172 -46
  220. package/dist/Spinner/index.js +1 -1
  221. package/dist/Spinner-BY8iQz--.js +200 -0
  222. package/dist/Stack/index.js +2 -2
  223. package/dist/{Stack-CTsTFfar.js → Stack-Bb_h60t3.js} +1 -1
  224. package/dist/{Stack-kQlYbbL4.js → Stack-Bp-XN9J4.js} +12 -7
  225. package/dist/StatusDot/index.d.ts +1 -1
  226. package/dist/StatusDot/index.js +1 -1
  227. package/dist/{StatusDot-BPUhMOff.js → StatusDot-BS_ohXhd.js} +8 -4
  228. package/dist/Stepper/index.d.ts +1 -1
  229. package/dist/Stepper/index.js +1 -1
  230. package/dist/{Stepper-CE8dHysu.js → Stepper-FtkTq5qR.js} +127 -113
  231. package/dist/Switch/index.d.ts +1 -1
  232. package/dist/Switch/index.js +1 -1
  233. package/dist/{Switch-DaVPRxvN.js → Switch-0JKvJluV.js} +38 -22
  234. package/dist/TabList/index.d.ts +2 -2
  235. package/dist/TabList/index.js +1 -1
  236. package/dist/{TabList-DIkK9sgK.js → TabList-cpjvnbhx.js} +205 -63
  237. package/dist/Table/index.d.ts +3 -3
  238. package/dist/Table/index.js +1 -1
  239. package/dist/{Table-fecqnm7P.js → Table-fWs_ZQBF.js} +735 -461
  240. package/dist/Text/index.d.ts +1 -1
  241. package/dist/Text/index.js +1 -1
  242. package/dist/{Text-CV3LmscH.js → Text-CmTOgYXf.js} +1 -1
  243. package/dist/TextArea/index.d.ts +1 -1
  244. package/dist/TextArea/index.js +1 -1
  245. package/dist/{TextArea-Ab5Sw60T.js → TextArea-CwSfEjT1.js} +110 -50
  246. package/dist/TextInput/index.d.ts +1 -1
  247. package/dist/TextInput/index.js +1 -1
  248. package/dist/{TextInput-zFT1_qgI.js → TextInput-CavITage.js} +71 -38
  249. package/dist/Theme/index.d.ts +3 -3
  250. package/dist/Theme/index.js +3 -2
  251. package/dist/Theme-BbDT8B_C.js +2125 -0
  252. package/dist/Thumbnail/index.js +1 -1
  253. package/dist/{Thumbnail-C3NnJUFG.js → Thumbnail-DpJnaNbg.js} +17 -14
  254. package/dist/{TimeField-CoHDGmsP.js → TimeField-DefNjDIT.js} +297 -40
  255. package/dist/TimeInput/index.d.ts +1 -1
  256. package/dist/TimeInput/index.js +1 -1
  257. package/dist/{TimeInput-D2k3Ux3p.js → TimeInput-j5vzN8MG.js} +78 -9
  258. package/dist/Timer/index.js +1 -1
  259. package/dist/{Timer-avMQk5DN.js → Timer-CH7GsEVu.js} +1 -1
  260. package/dist/Timestamp/index.d.ts +1 -1
  261. package/dist/Timestamp/index.js +1 -1
  262. package/dist/{Timestamp-xpQKCk0d.js → Timestamp-dtT4yADD.js} +9 -9
  263. package/dist/Toast/index.d.ts +1 -1
  264. package/dist/Toast/index.js +1 -1
  265. package/dist/Toast-igtJYSw0.js +685 -0
  266. package/dist/ToggleButton/index.d.ts +1 -1
  267. package/dist/ToggleButton/index.js +1 -1
  268. package/dist/{ToggleButton-B-C-Q7XP.js → ToggleButton-cLjh9W-x.js} +5 -4
  269. package/dist/Token/index.d.ts +1 -1
  270. package/dist/Token/index.js +1 -1
  271. package/dist/{Token-DsntTYhQ.js → Token-DhsAtAH6.js} +32 -17
  272. package/dist/Tokenizer/index.d.ts +1 -1
  273. package/dist/Tokenizer/index.js +1 -1
  274. package/dist/{Tokenizer-B5C_qY7t.js → Tokenizer-BGdj78UK.js} +107 -23
  275. package/dist/Toolbar/index.d.ts +2 -2
  276. package/dist/Toolbar/index.js +1 -1
  277. package/dist/{Toolbar-BrgvvTCk.js → Toolbar-C0pMWL4S.js} +1 -1
  278. package/dist/Tooltip/index.d.ts +1 -1
  279. package/dist/Tooltip/index.js +1 -1
  280. package/dist/{Tooltip-C4Vaqd3G.js → Tooltip-sAM8i1eO.js} +23 -19
  281. package/dist/TopNav/index.d.ts +1 -1
  282. package/dist/TopNav/index.js +1 -1
  283. package/dist/{TopNav-Ciq0l1w7.js → TopNav-Dw0m387B.js} +23 -22
  284. package/dist/TreeList/index.d.ts +1 -1
  285. package/dist/TreeList/index.js +1 -1
  286. package/dist/{TreeList-BUz-KZJd.js → TreeList-Bunn7u3T.js} +129 -46
  287. package/dist/Typeahead/index.d.ts +1 -1
  288. package/dist/Typeahead/index.js +2 -2
  289. package/dist/{Typeahead-JP9RT87x.js → Typeahead-DRyf2HEh.js} +123 -26
  290. package/dist/{TypeaheadMenu-DBW6rHeO.js → TypeaheadMenu-BY5__sPC.js} +141 -51
  291. package/dist/{announce-Cnio10Wk.js → announce-B210eJVf.js} +17 -2
  292. package/dist/characters-rcDbGt71.d.ts +29 -0
  293. package/dist/characters-wTnzjkkR.js +58 -0
  294. package/dist/{colorMode-CBgdgDSn.js → colorMode-BxqfDP4P.js} +1 -4
  295. package/dist/composables/index.d.ts +5 -4
  296. package/dist/composables/index.js +23 -18
  297. package/dist/{composables-CbKx9C1Y.js → composables-CnsDaMuU.js} +167 -197
  298. package/dist/context-B6UElI5X.js +5 -0
  299. package/dist/context-CM-cjGg_.js +1425 -0
  300. package/dist/{context-Cfjh8te1.js → context-Cfml4jaK.js} +5 -3
  301. package/dist/context-IvbU9c3T.js +8 -0
  302. package/dist/context-pjBxaMSh.js +28 -0
  303. package/dist/fieldParts--SyRZVQG.js +44 -0
  304. package/dist/fieldParts-LXpQMKE8.d.ts +27 -0
  305. package/dist/{focus-CpficIgf.js → focus-l8jVTcqd.js} +1 -1
  306. package/dist/hoverIntent-DMHGb85c.js +115 -0
  307. package/dist/{index-ClNU2Th8.d.ts → index-3t5RAfNP.d.ts} +6 -2
  308. package/dist/{index-B9e52paP.d.ts → index-5LVG3QyV.d.ts} +1 -1
  309. package/dist/{index-CsNi1I8j.d.ts → index-B08-Uxhv.d.ts} +4 -2
  310. package/dist/{index-TXcNH86P.d.ts → index-B1eCxBCY.d.ts} +1 -1
  311. package/dist/{index-Cn-sSds-.d.ts → index-B1t1oQWH.d.ts} +24 -1
  312. package/dist/{index-BkjSF265.d.ts → index-BEZ4ezJk.d.ts} +3 -3
  313. package/dist/{index-yT1yiiww.d.ts → index-BI6jikpA.d.ts} +23 -11
  314. package/dist/{index-DeQwYJbg.d.ts → index-BNaRK-s5.d.ts} +10 -1
  315. package/dist/{index-D97pQbua.d.ts → index-BV2D2x_u.d.ts} +1 -1
  316. package/dist/{index-Crp3NFLW.d.ts → index-BZKgbyN9.d.ts} +1 -1
  317. package/dist/{index-Bu8NA2SD.d.ts → index-BaxM-pFP.d.ts} +12 -3
  318. package/dist/{index-BVKivP59.d.ts → index-Bgk1Rj2A.d.ts} +32 -3
  319. package/dist/index-BkUkm6Al.d.ts +11 -0
  320. package/dist/index-Bo-ofFyg.d.ts +166 -0
  321. package/dist/{index-B1WJxt-n.d.ts → index-C-tFz2Yx.d.ts} +17 -7
  322. package/dist/{index-DWh2WC8W.d.ts → index-C4Cjz6OK.d.ts} +2 -2
  323. package/dist/{index-CqE4Bf3Q.d.ts → index-C732aNMY.d.ts} +18 -4
  324. package/dist/{index-B7yhzGUT.d.ts → index-C7sam-SB.d.ts} +2 -2
  325. package/dist/{index-BrJzFA5X.d.ts → index-C90l2rH1.d.ts} +1 -1
  326. package/dist/{index-vP0EtrJJ.d.ts → index-C9gAlDt_.d.ts} +6 -3
  327. package/dist/index-CKUfpmFL.d.ts +375 -0
  328. package/dist/{index-CL1T2j4y.d.ts → index-CL8JvxHW.d.ts} +3 -3
  329. package/dist/{index-IBAInumL.d.ts → index-CMme-xmL.d.ts} +19 -6
  330. package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
  331. package/dist/{index-12QYAbiz.d.ts → index-CRrSHbok.d.ts} +3 -2
  332. package/dist/{index-B42oE_F-.d.ts → index-CT5OEUxd.d.ts} +17 -4
  333. package/dist/{index-DG52Bg0W.d.ts → index-CTf3SK0b.d.ts} +6 -0
  334. package/dist/{index-Cde5JvtX.d.ts → index-CUVmtB5-.d.ts} +13 -6
  335. package/dist/{index-DXpSFlPG.d.ts → index-CWaSYtk9.d.ts} +4 -4
  336. package/dist/{index-CVn0GBdB.d.ts → index-Ca8VIE4l.d.ts} +1 -1
  337. package/dist/{index-Cyb9Du5Z.d.ts → index-CfR2Z0uG.d.ts} +1 -1
  338. package/dist/{index-Byar3h1e.d.ts → index-D05JGsT3.d.ts} +6 -3
  339. package/dist/{index-hCpxKePE.d.ts → index-D5N9ikrS.d.ts} +1 -1
  340. package/dist/{index-CkKPMIeX.d.ts → index-D7XRtUTY.d.ts} +9 -0
  341. package/dist/{index-i0tNFWfz.d.ts → index-D8lv2BiD.d.ts} +3 -1
  342. package/dist/{index-TntQsADQ.d.ts → index-DEm3kRBO.d.ts} +4 -3
  343. package/dist/{index-0QGtSf3r.d.ts → index-DFLPv9io.d.ts} +4 -3
  344. package/dist/{index-C2nbK2AA.d.ts → index-DLAG3m9W.d.ts} +13 -3
  345. package/dist/{index-D41_xqjs.d.ts → index-DTuhnqHb.d.ts} +16 -9
  346. package/dist/{index-B3Fomy15.d.ts → index-DbiZvj1P.d.ts} +4 -4
  347. package/dist/{index-C5e-7Obr.d.ts → index-Dj1_1t3j.d.ts} +19 -6
  348. package/dist/{index-DIXAzTKL.d.ts → index-DxxudRgB.d.ts} +1 -1
  349. package/dist/{index-BhpAUzUr.d.ts → index-Dy746dfn.d.ts} +1 -1
  350. package/dist/{index-GI9xIV9l.d.ts → index-JL4auphT.d.ts} +2 -2
  351. package/dist/{index-DVmgNb78.d.ts → index-TA1zVibb.d.ts} +4 -4
  352. package/dist/{index-DUaLJO7l.d.ts → index-UA93Im7H.d.ts} +155 -109
  353. package/dist/{index-COgrQZIL.d.ts → index-YKCx03zD.d.ts} +2 -2
  354. package/dist/{index-XuAAcYiP.d.ts → index-f3d9cVtj.d.ts} +1 -1
  355. package/dist/{index-T2FOcOuI.d.ts → index-jOwU3YoR.d.ts} +400 -90
  356. package/dist/{index-CICeEoZV.d.ts → index-pNtfr-RW.d.ts} +1 -1
  357. package/dist/{index-B4OOtNP8.d.ts → index-pYh4gqgl.d.ts} +1 -1
  358. package/dist/index.d.ts +81 -75
  359. package/dist/index.js +150 -136
  360. package/dist/inlineSize-BNe8wggI.js +66 -0
  361. package/dist/inputPresentation-BOyHkCDr.js +62 -0
  362. package/dist/interactionModality-ACpTMhak.js +44 -0
  363. package/dist/isApplePlatform-B1ju6F5B.js +27 -0
  364. package/dist/isRenderable-BnKHIqfd.js +21 -0
  365. package/dist/layerDepth-CNDh-IHb.js +181 -0
  366. package/dist/link-DuuA2eCL.js +30 -0
  367. package/dist/loadCatalog-CsZFr9dg.js +424 -0
  368. package/dist/loadCatalog-opk5hs94.d.ts +803 -0
  369. package/dist/locale/index.d.ts +2 -2
  370. package/dist/locale/index.js +4 -3
  371. package/dist/locale-D1Z3K290.js +343 -0
  372. package/dist/modalOutlet-CUOcrhIu.js +56 -0
  373. package/dist/optionAction-Cg7xQLUA.d.ts +6 -0
  374. package/dist/{power-search-DrDfcoL1.d.ts → power-search-gHLIYXs5.d.ts} +2 -0
  375. package/dist/protocol-DHxY0NI8.js +113 -0
  376. package/dist/protocol-DwUmpC5G.d.ts +240 -0
  377. package/dist/publicParser-B6XMcsB2.d.ts +141 -0
  378. package/dist/publicParser-DWUMCx7j.js +1437 -0
  379. package/dist/resizableChannel-3vivrEcT.js +20 -0
  380. package/dist/safeUrl-CsvfcZ9m.js +54 -0
  381. package/dist/scopedProvide-C-Df7c15.js +30 -0
  382. package/dist/scrollKeyboardDelegation-D7cumnOl.js +238 -0
  383. package/dist/scrollLock-C3aT4-0z.js +102 -0
  384. package/dist/{searchResultMessage-hXXNOFJP.js → searchResultMessage-DtyScdZs.js} +5 -14
  385. package/dist/{semantic-CKH9XVqa.d.ts → semantic-BF_AjLvk.d.ts} +6 -3
  386. package/dist/slug-DAK6hdbr.js +17 -0
  387. package/dist/syntaxContext-DmIfNNtb.js +4 -0
  388. package/dist/triggerVariant-BsL8jMHs.js +16 -0
  389. package/dist/{types-0Q_SJv_F.d.ts → types-Bb7OGivY.d.ts} +6 -1
  390. package/dist/{types-CwyibrRB.d.ts → types-C5GQ2KCK.d.ts} +23 -3
  391. package/dist/{types-gKsEkk2g.d.ts → types-CsqwQkf1.d.ts} +143 -10
  392. package/dist/upstreamMap-ocuIRfI2.js +893 -0
  393. package/dist/{useAnchoredListbox-DwztMNjP.js → useAnchoredListbox-DGxxKHZb.js} +2 -2
  394. package/dist/{useAsyncSource-xpQovjV_.d.ts → useAsyncSource-aGzrvRkI.d.ts} +3 -0
  395. package/dist/{useClickableContainer-DyNpnSEa.js → useClickableContainer-CdGp_Cev.js} +1 -1
  396. package/dist/{useClipboard-BDfbEsWd.js → useClipboard-Dk8cS810.js} +1 -1
  397. package/dist/useHoverLayerDismiss-kYJ_NqL4.js +27 -0
  398. package/dist/{useIndicator-i1NORM7W.js → useIndicator-D9Y0dJsm.js} +5 -23
  399. package/dist/{useInputContainer-CpgDe2-4.js → useInputContainer-CLcYrby4.js} +1 -1
  400. package/dist/{useInputStatusIcon-DBOwxV4x.js → useInputStatusIcon-CWkCeMyX.js} +2 -2
  401. package/dist/useLayerMountTarget-BmZyeKWE.js +156 -0
  402. package/dist/{useListFocus-D0iOJl39.js → useListFocus-ChxLg0b4.js} +3 -2
  403. package/dist/{useMenuDrillIn-DzKGkTho.js → useMenuDrillIn-DhUnPvKs.js} +6 -5
  404. package/dist/useMenuHover-Djreu23i.js +170 -0
  405. package/dist/useMenuPress-8foxY8z4.js +764 -0
  406. package/dist/{useMergedRefs-CfHHlCsn.js → useMergedRefs-Cb6_w93m.js} +24 -4
  407. package/dist/{useNumberField-4-dIGVed.js → useNumberField-Dk1BE3-K.js} +3 -3
  408. package/dist/useOptionActionGrid-CkJcuvaU.js +97 -0
  409. package/dist/{usePositionedLayer-Cru9_00b.js → usePositionedLayer-B7cvG-_v.js} +43 -49
  410. package/dist/usePressFeedback-BJCpjEpv.js +319 -0
  411. package/dist/{useResizable-DDwPpPe6.d.ts → useResizable-1MHPNaRD.d.ts} +19 -1
  412. package/dist/{useResizable-B3ahKLoZ.js → useResizable-I3BCiLSL.js} +72 -40
  413. package/dist/useResolvedLabelHidden-B2rlWiaI.js +30 -0
  414. package/dist/{useRestoreFocus-Djw9RUIf.js → useRestoreFocus-XEKs5-gp.js} +49 -7
  415. package/dist/useScrollOverflow-DuMoGXmm.js +67 -0
  416. package/dist/useScrollableArea-BE8b3qm7.js +222 -0
  417. package/dist/{useTimeValue-6ufHM15W.js → useTimeValue-BJd0xBhG.js} +4 -22
  418. package/dist/useTranslator-PEXMxDpv.js +35 -0
  419. package/dist/{useTypeahead-PAK8lMYz.js → useTypeahead-BvtflkRk.js} +4 -5
  420. package/dist/utils/index.d.ts +3 -0
  421. package/dist/utils/index.js +5 -0
  422. package/dist/{utils-D33VQDnk.js → utils-ClVseK2w.js} +29 -2
  423. package/dist/utils-z3Q6BGIJ.js +819 -0
  424. package/locales/SOURCE.json +1 -1
  425. package/package.json +18 -2
  426. package/reset.css +364 -1
  427. package/styles/avatar-group.css +9 -1
  428. package/styles/badge.css +8 -5
  429. package/styles/banner.css +125 -26
  430. package/styles/blockquote.css +1 -0
  431. package/styles/bordered-control.css +1 -1
  432. package/styles/bottom-sheet.css +74 -6
  433. package/styles/breadcrumbs.css +16 -2
  434. package/styles/button-group.css +3 -1
  435. package/styles/button.css +53 -11
  436. package/styles/card.css +1 -1
  437. package/styles/chat.css +16 -6
  438. package/styles/checkbox-input.css +10 -0
  439. package/styles/clickable-card.css +10 -3
  440. package/styles/collapsible.css +12 -5
  441. package/styles/command-palette.css +29 -14
  442. package/styles/complex-selector.css +24 -5
  443. package/styles/context-menu.css +3 -3
  444. package/styles/date-input.css +111 -1
  445. package/styles/dialog-header.css +4 -1
  446. package/styles/dialog.css +7 -0
  447. package/styles/dropdown-menu.css +12 -3
  448. package/styles/field.css +5 -0
  449. package/styles/form-layout.css +1 -0
  450. package/styles/heading.css +18 -8
  451. package/styles/icon.css +9 -9
  452. package/styles/kbd.css +1 -1
  453. package/styles/layer.css +72 -0
  454. package/styles/list.css +9 -2
  455. package/styles/metadata-list.css +1 -0
  456. package/styles/mobile-nav.css +4 -1
  457. package/styles/multi-selector.css +48 -1
  458. package/styles/nav-item.css +9 -2
  459. package/styles/nav-menu.css +12 -2
  460. package/styles/number-input.css +9 -1
  461. package/styles/overflow-list.css +1 -1
  462. package/styles/popover.css +2 -1
  463. package/styles/power-search.css +5 -3
  464. package/styles/pressable.css +63 -22
  465. package/styles/progress-bar.css +15 -3
  466. package/styles/radio.css +16 -0
  467. package/styles/resize-handle.css +42 -0
  468. package/styles/segmented-control.css +12 -4
  469. package/styles/selector.css +53 -1
  470. package/styles/side-nav.css +19 -0
  471. package/styles/slider.css +4 -3
  472. package/styles/spinner.css +48 -42
  473. package/styles/stepper.css +58 -4
  474. package/styles/switch.css +26 -0
  475. package/styles/tab-list.css +132 -3
  476. package/styles/table.css +88 -11
  477. package/styles/text-area.css +7 -1
  478. package/styles/text-input.css +1 -1
  479. package/styles/text.css +6 -6
  480. package/styles/thumbnail.css +11 -3
  481. package/styles/time-input.css +8 -0
  482. package/styles/toast.css +37 -3
  483. package/styles/token.css +2 -2
  484. package/styles/tokenizer.css +1 -1
  485. package/styles/toolbar.css +4 -1
  486. package/styles/tree-list.css +1 -1
  487. package/styles/typeahead.css +34 -1
  488. package/styles.css +1 -0
  489. package/dist/Blockquote-DFqBv_oJ.js +0 -18
  490. package/dist/Breadcrumbs-DIm4figq.js +0 -141
  491. package/dist/ButtonGroup-ySQWanDP.js +0 -125
  492. package/dist/DateTimeInput-A7m2O3bg.js +0 -268
  493. package/dist/FieldIcon--NTgW5IU.js +0 -44
  494. package/dist/MultiSelector-BtAUfQ3t.js +0 -990
  495. package/dist/NumberInput-AZ9x3oja.js +0 -473
  496. package/dist/Selector-DJ2BhUTV.js +0 -677
  497. package/dist/Spinner-9cYUCnDy.js +0 -84
  498. package/dist/Theme-CtaUWo4g.js +0 -1246
  499. package/dist/Toast-BuqIZV5z.js +0 -322
  500. package/dist/context-4PuqD1Ic.js +0 -4
  501. package/dist/context-D5-MwxnN.js +0 -4
  502. package/dist/context-iABt_ueM.js +0 -976
  503. package/dist/index-BH9PzQ1F.d.ts +0 -87
  504. package/dist/link-C4_WogdF.js +0 -18
  505. package/dist/loadCatalog-BGHKG_9N.d.ts +0 -457
  506. package/dist/loadCatalog-CXKqEB9s.js +0 -877
  507. package/dist/locale-DgkZEMTn.js +0 -105
  508. package/dist/platform-B_9W_aHW.js +0 -33
  509. package/dist/scrollLock-BzIvIimL.js +0 -42
  510. package/dist/useMenuPress-D-FRNrBW.js +0 -573
  511. package/dist/useScrollableArea-DDk_CluT.js +0 -172
  512. /package/dist/{index-lgvUFSCO.d.ts → index-CryFtTT6.d.ts} +0 -0
@@ -1,80 +1,89 @@
1
1
  import { n as useLinkComponent } from "./context-C_peZbXf.js";
2
- import { t as _sfc_main$5 } from "./Button-B6Hj_O_s.js";
2
+ import { t as _sfc_main$7 } from "./Button-ONOoHdkg.js";
3
3
  import { t as useMediaQuery } from "./useMediaQuery-GMmgp28-.js";
4
- import { n as useDismiss, t as usePositionedLayer } from "./usePositionedLayer-Cru9_00b.js";
5
- import { n as getFocusables } from "./focus-CpficIgf.js";
6
- import { t as useTypeahead } from "./useTypeahead-PAK8lMYz.js";
4
+ import { n as useDismiss, t as usePositionedLayer } from "./usePositionedLayer-B7cvG-_v.js";
5
+ import { r as getFocusables } from "./focus-l8jVTcqd.js";
6
+ import { r as trackInteractionModality, t as getInteractionModality } from "./interactionModality-ACpTMhak.js";
7
+ import { t as _sfc_main$8 } from "./Icon-KDnUyY7f.js";
8
+ import { s as useAstryxMessages } from "./context-CM-cjGg_.js";
9
+ import { a as isMenuPressActivation, t as useMenuPress } from "./useMenuPress-8foxY8z4.js";
10
+ import { n as useOverflow } from "./useOverflow-VrwF5oek.js";
11
+ import { t as useTypeahead } from "./useTypeahead-BvtflkRk.js";
12
+ import { t as _sfc_main$9 } from "./LayerContentBoundary-CvsKxwwm.js";
7
13
  import { t as useScrollbars } from "./useScrollbars-C2NJ6Qwq.js";
8
- import { t as _sfc_main$6 } from "./BottomSheet-pt7m4CvC.js";
9
- import { t as _sfc_main$7 } from "./Icon-bteSId7T.js";
10
- import { t as _sfc_main$8 } from "./Item-KhFKX9St.js";
11
- import { a as dropdownMenuContextKey, i as _sfc_main$10, n as _sfc_main$9, o as useDropdownMenuContext, r as _sfc_main$11, t as useMenuDrillIn } from "./useMenuDrillIn-DzKGkTho.js";
12
- import { t as _sfc_main$12 } from "./Divider-BtwnL18I.js";
13
- import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, h, mergeModels, mergeProps, nextTick, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toRaw, unref, useAttrs, useId, useModel, useSlots, vShow, watch, withCtx, withDirectives } from "vue";
14
+ import { t as _sfc_main$10 } from "./BottomSheet-B4sc3F1S.js";
15
+ import { t as _sfc_main$11 } from "./Item-DWMIjN8n.js";
16
+ import { a as dropdownMenuContextKey, i as _sfc_main$13, n as _sfc_main$12, o as useDropdownMenuContext, r as _sfc_main$14, t as useMenuDrillIn } from "./useMenuDrillIn-DhUnPvKs.js";
17
+ import { n as clampInlineSize, r as isIntrinsicInlineSize, t as LAYER_MAX_INLINE_SIZE } from "./inlineSize-BNe8wggI.js";
18
+ import { t as _sfc_main$15 } from "./Divider-mOZ6vIQw.js";
19
+ import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, h, inject, markRaw, mergeModels, mergeProps, nextTick, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, provide, reactive, ref, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toRaw, unref, useAttrs, useId, useModel, useSlots, vShow, watch, withCtx, withDirectives } from "vue";
14
20
  import "../styles/dropdown-menu.css";
15
- //#region src/DropdownMenu/menuItemRoles.ts
16
- /**
17
- * Rows a menu's roving focus, typeahead, and keyboard activation all agree on.
18
- */
19
- const MENU_ITEM_ROLES = /* @__PURE__ */ new Set([
20
- "menuitem",
21
- "menuitemradio",
22
- "menuitemcheckbox"
23
- ]);
24
- /** Rows the arrow keys may land on: enabled menu items, in DOM order. */
25
- const MENU_ITEM_SELECTOR = [...MENU_ITEM_ROLES].map((role) => `[role="${role}"]:not([aria-disabled="true"])`).join(",");
26
- /** Scopes item collection and key handling to one menu level. */
27
- const MENU_BOUNDARY_SELECTOR = "[role=\"menu\"]";
28
- /**
29
- * Whether a click carries a modifier or a non-primary button: on a row that is
30
- * a link the browser gives it a meaning of its own, which the row leaves alone.
31
- */
32
- function isModifiedClick(event) {
33
- return event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0;
34
- }
21
+ //#region src/composables/internal/useFocusReturnVisibility.ts
35
22
  /**
36
- * Activate a row from the keyboard: a synthesized click that carries the key's
37
- * modifiers, so a ⌘-Enter on a link row opens it the way a ⌘-click would.
38
- * `detail` stays 0, the mark of a non-pointer activation.
23
+ * 对应原版 Astryx 的 `hooks/useFocusReturnVisibility`(内部用)。
24
+ *
25
+ * 焦点照常还回去,但用鼠标或手指关掉浮层时不画焦点环。给那些自己画焦点环、
26
+ * 光靠 `focusForLastInput` 不够的触发器(例如 DropdownMenu 的触发按钮、Selector)。
39
27
  */
40
- function activateMenuItem(row, key) {
41
- row.dispatchEvent(new MouseEvent("click", {
42
- altKey: key.altKey,
43
- bubbles: true,
44
- cancelable: true,
45
- composed: true,
46
- ctrlKey: key.ctrlKey,
47
- metaKey: key.metaKey,
48
- shiftKey: key.shiftKey
49
- }));
28
+ function useFocusReturnVisibility() {
29
+ const isFocusRingSuppressed = shallowRef(false);
30
+ onMounted(trackInteractionModality);
31
+ return {
32
+ isFocusRingSuppressed,
33
+ onFocusReturnTargetFocus: () => {
34
+ if (getInteractionModality() === "keyboard") isFocusRingSuppressed.value = false;
35
+ },
36
+ prepareFocusReturn: () => {
37
+ isFocusRingSuppressed.value = getInteractionModality() === "pointer";
38
+ },
39
+ resetFocusReturn: () => {
40
+ isFocusRingSuppressed.value = false;
41
+ }
42
+ };
50
43
  }
51
44
  //#endregion
45
+ //#region src/DropdownMenu/DropdownMenuBranch.vue
46
+ const _sfc_main$6 = /*@__PURE__*/ defineComponent({
47
+ name: "AstryxDropdownMenuBranch",
48
+ __name: "DropdownMenuBranch",
49
+ props: { value: {} },
50
+ setup(__props) {
51
+ provide(dropdownMenuContextKey, __props.value);
52
+ return (_ctx, _cache) => {
53
+ return renderSlot(_ctx.$slots, "default");
54
+ };
55
+ }
56
+ });
57
+ //#endregion
58
+ //#region src/DropdownMenu/frame.ts
59
+ const dropdownMenuFrameKey = Symbol("astryx-dropdown-menu-frame");
60
+ //#endregion
52
61
  //#region src/DropdownMenu/DropdownMenuDivider.vue
53
- const _sfc_main$4 = /*@__PURE__*/ defineComponent({
62
+ const _sfc_main$5 = /*@__PURE__*/ defineComponent({
54
63
  name: "AstryxDropdownMenuDivider",
55
64
  __name: "DropdownMenuDivider",
56
65
  setup(__props) {
57
66
  return (_ctx, _cache) => {
58
- return openBlock(), createBlock(_sfc_main$12, { class: "astryx-dropdown-menu-divider" });
67
+ return openBlock(), createBlock(_sfc_main$15, { class: "astryx-dropdown-menu-divider" });
59
68
  };
60
69
  }
61
70
  });
62
71
  //#endregion
63
72
  //#region src/DropdownMenu/DropdownMenuSectionHeading.vue
64
- const _hoisted_1$3 = { class: "astryx-dropdown-menu-section-heading" };
65
- const _sfc_main$3 = /*@__PURE__*/ defineComponent({
73
+ const _hoisted_1$4 = { class: "astryx-dropdown-menu-section-heading" };
74
+ const _sfc_main$4 = /*@__PURE__*/ defineComponent({
66
75
  name: "AstryxDropdownMenuSectionHeading",
67
76
  __name: "DropdownMenuSectionHeading",
68
77
  setup(__props) {
69
78
  return (_ctx, _cache) => {
70
- return openBlock(), createElementBlock("div", _hoisted_1$3, [renderSlot(_ctx.$slots, "default")]);
79
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [renderSlot(_ctx.$slots, "default")]);
71
80
  };
72
81
  }
73
82
  });
74
83
  //#endregion
75
84
  //#region src/DropdownMenu/DropdownMenuGroup.vue
76
- const _hoisted_1$2 = ["aria-labelledby"];
77
- const _sfc_main$2 = /*@__PURE__*/ defineComponent({
85
+ const _hoisted_1$3 = ["aria-labelledby"];
86
+ const _sfc_main$3 = /*@__PURE__*/ defineComponent({
78
87
  name: "AstryxDropdownMenuGroup",
79
88
  __name: "DropdownMenuGroup",
80
89
  props: { title: {} },
@@ -87,19 +96,56 @@ const _sfc_main$2 = /*@__PURE__*/ defineComponent({
87
96
  class: "astryx-dropdown-menu-group",
88
97
  role: "group",
89
98
  "aria-labelledby": hasTitle.value ? headingId : void 0
90
- }, [hasTitle.value || _ctx.$slots.title ? (openBlock(), createBlock(_sfc_main$3, {
99
+ }, [hasTitle.value || _ctx.$slots.title ? (openBlock(), createBlock(_sfc_main$4, {
91
100
  key: 0,
92
101
  id: headingId
93
102
  }, {
94
103
  default: withCtx(() => [renderSlot(_ctx.$slots, "title", {}, () => [createTextVNode(toDisplayString(__props.title), 1)])]),
95
104
  _: 3
96
- })) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")], 8, _hoisted_1$2);
105
+ })) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default")], 8, _hoisted_1$3);
97
106
  };
98
107
  }
99
108
  });
100
109
  //#endregion
110
+ //#region src/DropdownMenu/menuItemRoles.ts
111
+ /**
112
+ * Rows a menu's roving focus, typeahead, and keyboard activation all agree on.
113
+ */
114
+ const MENU_ITEM_ROLES = /* @__PURE__ */ new Set([
115
+ "menuitem",
116
+ "menuitemradio",
117
+ "menuitemcheckbox"
118
+ ]);
119
+ /** Rows the arrow keys may land on: enabled menu items, in DOM order. */
120
+ const MENU_ITEM_SELECTOR = [...MENU_ITEM_ROLES].map((role) => `[role="${role}"]:not([aria-disabled="true"])`).join(",");
121
+ /** Scopes item collection and key handling to one menu level. */
122
+ const MENU_BOUNDARY_SELECTOR = "[role=\"menu\"]";
123
+ /**
124
+ * Whether a click carries a modifier or a non-primary button: on a row that is
125
+ * a link the browser gives it a meaning of its own, which the row leaves alone.
126
+ */
127
+ function isModifiedClick(event) {
128
+ return event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0;
129
+ }
130
+ /**
131
+ * Activate a row from the keyboard: a synthesized click that carries the key's
132
+ * modifiers, so a ⌘-Enter on a link row opens it the way a ⌘-click would.
133
+ * `detail` stays 0, the mark of a non-pointer activation.
134
+ */
135
+ function activateMenuItem(row, key) {
136
+ row.dispatchEvent(new MouseEvent("click", {
137
+ altKey: key.altKey,
138
+ bubbles: true,
139
+ cancelable: true,
140
+ composed: true,
141
+ ctrlKey: key.ctrlKey,
142
+ metaKey: key.metaKey,
143
+ shiftKey: key.shiftKey
144
+ }));
145
+ }
146
+ //#endregion
101
147
  //#region src/DropdownMenu/DropdownMenuItem.vue
102
- const _hoisted_1$1 = {
148
+ const _hoisted_1$2 = {
103
149
  key: 0,
104
150
  class: "astryx-item__start"
105
151
  };
@@ -116,7 +162,7 @@ const _hoisted_5$1 = {
116
162
  key: 1,
117
163
  class: "astryx-item__end"
118
164
  };
119
- const _sfc_main$1 = /*@__PURE__*/ defineComponent({
165
+ const _sfc_main$2 = /*@__PURE__*/ defineComponent({
120
166
  name: "AstryxDropdownMenuItem",
121
167
  inheritAttrs: false,
122
168
  __name: "DropdownMenuItem",
@@ -174,8 +220,16 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
174
220
  return;
175
221
  }
176
222
  if (!(isLink.value && isModifiedClick(event))) emit("click", event);
223
+ followPressActivation(event);
177
224
  if (props.hasCloseOnSelect) menu?.closeMenu();
178
225
  }
226
+ function followPressActivation(event) {
227
+ if (!isMenuPressActivation() || isModifiedClick(event) || linkRoot.value !== "a") return;
228
+ const href = props.href;
229
+ if (href == null || !(event.currentTarget instanceof HTMLAnchorElement)) return;
230
+ if (props.target === "_blank") window.open(href, "_blank", "noopener,noreferrer");
231
+ else window.location.assign(href);
232
+ }
179
233
  function handleAuxClick(event) {
180
234
  if (props.isDisabled) {
181
235
  event.preventDefault();
@@ -199,6 +253,7 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
199
253
  "data-density": density.value,
200
254
  "data-disabled": __props.isDisabled || void 0,
201
255
  "data-interactive": true,
256
+ draggable: "false",
202
257
  "data-menu-size": menuSize.value,
203
258
  "data-variant": __props.variant,
204
259
  href: linkHref.value,
@@ -212,7 +267,7 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
212
267
  onPointermove: handlePointerMove
213
268
  }), {
214
269
  default: withCtx(() => [
215
- hasStart.value ? (openBlock(), createElementBlock("span", _hoisted_1$1, [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(_sfc_main$7, {
270
+ hasStart.value ? (openBlock(), createElementBlock("span", _hoisted_1$2, [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(_sfc_main$8, {
216
271
  color: iconColor.value,
217
272
  icon: __props.icon,
218
273
  size: "sm"
@@ -234,7 +289,7 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
234
289
  "style",
235
290
  "tabindex",
236
291
  "target"
237
- ])) : (openBlock(), createBlock(_sfc_main$8, mergeProps({ key: 1 }, unref(attrs), {
292
+ ])) : (openBlock(), createBlock(_sfc_main$11, mergeProps({ key: 1 }, unref(attrs), {
238
293
  class: "astryx-dropdown-menu-item",
239
294
  role: "menuitem",
240
295
  "data-menu-size": menuSize.value,
@@ -250,7 +305,7 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
250
305
  }), createSlots({ _: 2 }, [
251
306
  hasStart.value ? {
252
307
  name: "startContent",
253
- fn: withCtx(() => [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(_sfc_main$7, {
308
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(_sfc_main$8, {
254
309
  color: iconColor.value,
255
310
  icon: __props.icon,
256
311
  size: "sm"
@@ -291,14 +346,14 @@ function endSlot(endContent) {
291
346
  }
292
347
  function renderRadioOption(option, index) {
293
348
  const { endContent, id, ...itemProps } = option;
294
- return h(_sfc_main$9, {
349
+ return h(_sfc_main$12, {
295
350
  key: id ?? `radio-${index}`,
296
351
  ...itemProps
297
352
  }, endSlot(endContent));
298
353
  }
299
354
  function renderCheckbox(item, index) {
300
355
  const { checked, endContent, id, onChange, ...itemProps } = item;
301
- return h(_sfc_main$10, {
356
+ return h(_sfc_main$13, {
302
357
  "key": id ?? `checkbox-${index}`,
303
358
  ...itemProps,
304
359
  "modelValue": checked,
@@ -306,7 +361,7 @@ function renderCheckbox(item, index) {
306
361
  }, endSlot(endContent));
307
362
  }
308
363
  function renderRadio(item, index) {
309
- return h(_sfc_main$11, {
364
+ return h(_sfc_main$14, {
310
365
  "key": item.id ?? `radio-group-${index}`,
311
366
  "label": item.label,
312
367
  "modelValue": item.value,
@@ -318,7 +373,7 @@ function renderRadio(item, index) {
318
373
  }
319
374
  function renderItem(item, index) {
320
375
  const { endContent, id, ...itemProps } = item;
321
- return h(_sfc_main$1, {
376
+ return h(_sfc_main$2, {
322
377
  key: id ?? `item-${index}`,
323
378
  ...itemProps
324
379
  }, endSlot(endContent));
@@ -333,8 +388,8 @@ function renderEntry(entry, index) {
333
388
  * so both modes produce one `role="group"` named by its visible heading.
334
389
  */
335
390
  function renderOption(option, index) {
336
- if ("type" in option && option.type === "divider") return h(_sfc_main$4, { key: `divider-${index}` });
337
- if ("type" in option && option.type === "section") return h(_sfc_main$2, {
391
+ if ("type" in option && option.type === "divider") return h(_sfc_main$5, { key: `divider-${index}` });
392
+ if ("type" in option && option.type === "section") return h(_sfc_main$3, {
338
393
  key: option.id ?? `section-${index}`,
339
394
  title: option.title
340
395
  }, { default: () => option.items.map((item, itemIndex) => renderEntry(item, itemIndex)) });
@@ -355,6 +410,188 @@ const DropdownMenuItems = defineComponent({
355
410
  }
356
411
  });
357
412
  //#endregion
413
+ //#region src/DropdownMenu/DropdownMenuFrame.vue
414
+ const _hoisted_1$1 = [
415
+ "id",
416
+ "aria-labelledby",
417
+ "aria-label",
418
+ "data-overflow"
419
+ ];
420
+ const _hoisted_2 = ["hidden", "inert"];
421
+ const _hoisted_3 = [
422
+ "id",
423
+ "aria-label",
424
+ "data-placement"
425
+ ];
426
+ const _hoisted_4 = [
427
+ "id",
428
+ "aria-labelledby",
429
+ "aria-label",
430
+ "data-overflow",
431
+ "data-region-focus"
432
+ ];
433
+ const _hoisted_5 = ["hidden", "inert"];
434
+ const _hoisted_6 = [
435
+ "id",
436
+ "aria-labelledby",
437
+ "aria-label",
438
+ "data-placement",
439
+ "data-overflow"
440
+ ];
441
+ const _hoisted_7 = ["hidden", "inert"];
442
+ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
443
+ name: "AstryxDropdownMenuFrame",
444
+ __name: "DropdownMenuFrame",
445
+ setup(__props) {
446
+ const frame = inject(dropdownMenuFrameKey);
447
+ if (frame == null) throw new Error("DropdownMenuFrame must render inside DropdownMenu");
448
+ return (_ctx, _cache) => {
449
+ return unref(frame).isSheet ? (openBlock(), createBlock(_sfc_main$10, {
450
+ key: 0,
451
+ "is-open": unref(frame).sheetOpen,
452
+ "onUpdate:isOpen": _cache[3] || (_cache[3] = ($event) => unref(frame).sheetOpen = $event),
453
+ height: "hug",
454
+ label: unref(frame).sheetLabel,
455
+ padding: 2
456
+ }, {
457
+ default: withCtx(() => [createVNode(_sfc_main$9, null, {
458
+ default: withCtx(() => [createVNode(_sfc_main$6, { value: unref(frame).menuContext }, {
459
+ default: withCtx(() => [
460
+ _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
461
+ key: 0,
462
+ ref: unref(frame).setHeader,
463
+ class: "astryx-dropdown-menu-region",
464
+ onKeydown: _cache[0] || (_cache[0] = (...args) => unref(frame).regions.onRegionKeydown && unref(frame).regions.onRegionKeydown(...args))
465
+ }, [renderSlot(_ctx.$slots, "header")], 544)) : createCommentVNode("v-if", true),
466
+ createElementVNode("div", mergeProps({
467
+ id: unref(frame).surfaceId,
468
+ ref: unref(frame).setSurface
469
+ }, unref(frame).menuBindings, {
470
+ "aria-labelledby": unref(frame).menuAriaLabelledBy,
471
+ "aria-label": unref(frame).menuAriaLabel,
472
+ class: ["astryx-dropdown-menu is-sheet", unref(frame).surfaceClass],
473
+ "data-overflow": unref(frame).hasOverflow || void 0,
474
+ role: "menu",
475
+ tabindex: "-1",
476
+ onKeydown: _cache[1] || (_cache[1] = (...args) => unref(frame).onSurfaceKeydown && unref(frame).onSurfaceKeydown(...args))
477
+ }), [createElementVNode("div", {
478
+ class: "astryx-dropdown-menu-tree",
479
+ hidden: unref(frame).isDrilled || void 0,
480
+ inert: unref(frame).isDrilled || void 0
481
+ }, [unref(frame).items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
482
+ key: 0,
483
+ items: unref(frame).items
484
+ }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_2), createElementVNode("div", {
485
+ ref: unref(frame).setHost,
486
+ class: "astryx-dropdown-menu-tree"
487
+ }, null, 512)], 16, _hoisted_1$1),
488
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", {
489
+ key: 1,
490
+ ref: unref(frame).setFooter,
491
+ class: "astryx-dropdown-menu-region",
492
+ onKeydown: _cache[2] || (_cache[2] = (...args) => unref(frame).regions.onRegionKeydown && unref(frame).regions.onRegionKeydown(...args))
493
+ }, [renderSlot(_ctx.$slots, "footer")], 544)) : createCommentVNode("v-if", true)
494
+ ]),
495
+ _: 3
496
+ }, 8, ["value"])]),
497
+ _: 3
498
+ })]),
499
+ _: 3
500
+ }, 8, ["is-open", "label"])) : (openBlock(), createBlock(Teleport, {
501
+ key: 1,
502
+ to: unref(frame).teleportTarget
503
+ }, [createVNode(Transition, { name: "astryx-dropdown-menu" }, {
504
+ default: withCtx(() => [unref(frame).hasRegions ? withDirectives((openBlock(), createElementBlock("div", {
505
+ key: 0,
506
+ id: unref(frame).dialogId,
507
+ ref: unref(frame).setPopover,
508
+ class: "astryx-dropdown-menu-popover",
509
+ role: "dialog",
510
+ "aria-modal": "true",
511
+ "aria-label": unref(frame).dialogLabel,
512
+ "data-placement": unref(frame).placement,
513
+ style: normalizeStyle(unref(frame).surfaceStyle)
514
+ }, [createVNode(_sfc_main$9, null, {
515
+ default: withCtx(() => [createVNode(_sfc_main$6, { value: unref(frame).menuContext }, {
516
+ default: withCtx(() => [
517
+ _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
518
+ key: 0,
519
+ ref: unref(frame).setHeader,
520
+ class: "astryx-dropdown-menu-region",
521
+ onKeydown: _cache[4] || (_cache[4] = (...args) => unref(frame).regions.onRegionKeydown && unref(frame).regions.onRegionKeydown(...args))
522
+ }, [renderSlot(_ctx.$slots, "header")], 544)) : createCommentVNode("v-if", true),
523
+ createElementVNode("div", mergeProps({
524
+ id: unref(frame).surfaceId,
525
+ ref: unref(frame).setSurface
526
+ }, unref(frame).menuBindings, {
527
+ "aria-labelledby": unref(frame).menuAriaLabelledBy,
528
+ "aria-label": unref(frame).menuAriaLabel,
529
+ class: ["astryx-dropdown-menu is-in-frame", unref(frame).surfaceClass],
530
+ "data-overflow": unref(frame).hasOverflow || void 0,
531
+ "data-region-focus": unref(frame).regionFocus || void 0,
532
+ role: "menu",
533
+ tabindex: "0",
534
+ onFocus: _cache[5] || (_cache[5] = (...args) => unref(frame).onSurfaceFocus && unref(frame).onSurfaceFocus(...args)),
535
+ onKeydown: _cache[6] || (_cache[6] = (...args) => unref(frame).onSurfaceKeydown && unref(frame).onSurfaceKeydown(...args))
536
+ }), [createElementVNode("div", {
537
+ class: "astryx-dropdown-menu-tree",
538
+ hidden: unref(frame).isDrilled || void 0,
539
+ inert: unref(frame).isDrilled || void 0
540
+ }, [unref(frame).items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
541
+ key: 0,
542
+ items: unref(frame).items
543
+ }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_5), createElementVNode("div", {
544
+ ref: unref(frame).setHost,
545
+ class: "astryx-dropdown-menu-tree"
546
+ }, null, 512)], 16, _hoisted_4),
547
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", {
548
+ key: 1,
549
+ ref: unref(frame).setFooter,
550
+ class: "astryx-dropdown-menu-region",
551
+ onKeydown: _cache[7] || (_cache[7] = (...args) => unref(frame).regions.onRegionKeydown && unref(frame).regions.onRegionKeydown(...args))
552
+ }, [renderSlot(_ctx.$slots, "footer")], 544)) : createCommentVNode("v-if", true)
553
+ ]),
554
+ _: 3
555
+ }, 8, ["value"])]),
556
+ _: 3
557
+ })], 12, _hoisted_3)), [[vShow, unref(frame).isOpen]]) : withDirectives((openBlock(), createElementBlock("div", mergeProps({
558
+ key: 1,
559
+ id: unref(frame).surfaceId,
560
+ ref: unref(frame).setSurface
561
+ }, unref(frame).menuBindings, {
562
+ "aria-labelledby": unref(frame).menuAriaLabelledBy,
563
+ "aria-label": unref(frame).menuAriaLabel,
564
+ class: ["astryx-dropdown-menu", unref(frame).surfaceClass],
565
+ "data-placement": unref(frame).placement,
566
+ "data-overflow": unref(frame).hasOverflow || void 0,
567
+ role: "menu",
568
+ style: unref(frame).surfaceStyle,
569
+ tabindex: "-1",
570
+ onFocus: _cache[8] || (_cache[8] = (...args) => unref(frame).onSurfaceFocus && unref(frame).onSurfaceFocus(...args)),
571
+ onKeydown: _cache[9] || (_cache[9] = (...args) => unref(frame).onSurfaceKeydown && unref(frame).onSurfaceKeydown(...args))
572
+ }), [createVNode(_sfc_main$9, null, {
573
+ default: withCtx(() => [createVNode(_sfc_main$6, { value: unref(frame).menuContext }, {
574
+ default: withCtx(() => [createElementVNode("div", {
575
+ class: "astryx-dropdown-menu-tree",
576
+ hidden: unref(frame).isDrilled || void 0,
577
+ inert: unref(frame).isDrilled || void 0
578
+ }, [unref(frame).items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
579
+ key: 0,
580
+ items: unref(frame).items
581
+ }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_7), createElementVNode("div", {
582
+ ref: unref(frame).setHost,
583
+ class: "astryx-dropdown-menu-tree"
584
+ }, null, 512)]),
585
+ _: 3
586
+ }, 8, ["value"])]),
587
+ _: 3
588
+ })], 16, _hoisted_6)), [[vShow, unref(frame).isOpen]])]),
589
+ _: 3
590
+ })], 8, ["to"]));
591
+ };
592
+ }
593
+ });
594
+ //#endregion
358
595
  //#region src/DropdownMenu/useMenuFocus.ts
359
596
  function isDisabled(el) {
360
597
  return el.getAttribute("aria-disabled") === "true" || el.hasAttribute("disabled");
@@ -525,11 +762,45 @@ function focusControl(element) {
525
762
  element.focus();
526
763
  return element.ownerDocument.activeElement === element;
527
764
  }
765
+ function radioGroupKey(element) {
766
+ if (!(element instanceof HTMLInputElement) || element.getAttribute("type") !== "radio" || element.name === "") return null;
767
+ return `${element.form?.id ?? ""}\u0000${element.name}`;
768
+ }
769
+ /**
770
+ * A named radio group is one Tab stop: the focused radio, else the checked
771
+ * one, else the first radio going forward or the last going backward.
772
+ */
773
+ function collapseRadioGroups(elements, active, isBackward) {
774
+ const groups = /* @__PURE__ */ new Map();
775
+ for (const element of elements) {
776
+ const key = radioGroupKey(element);
777
+ if (key == null) continue;
778
+ const members = groups.get(key) ?? [];
779
+ members.push(element);
780
+ groups.set(key, members);
781
+ }
782
+ const placed = /* @__PURE__ */ new Set();
783
+ const result = [];
784
+ for (const element of elements) {
785
+ const key = radioGroupKey(element);
786
+ if (key == null) {
787
+ result.push(element);
788
+ continue;
789
+ }
790
+ if (placed.has(key)) continue;
791
+ placed.add(key);
792
+ const members = groups.get(key) ?? [];
793
+ const stop = members.find((radio) => radio === active) ?? members.find((radio) => radio.checked) ?? (isBackward ? members[members.length - 1] : members[0]);
794
+ if (stop != null) result.push(stop);
795
+ }
796
+ return result;
797
+ }
528
798
  /**
529
799
  * Keyboard between a menu and the header and footer beside it.
530
800
  *
531
- * The menu is one Tab stop. Shift+Tab from a row skips that stop and lands on
532
- * the header, because the menu element would otherwise catch the key first.
801
+ * With either region the popover is a dialog: Tab cycles the header, the menu
802
+ * as one stop, and the footer, and wraps at both ends. A row counts as the
803
+ * menu's stop, so Shift+Tab from a row lands on the header.
533
804
  */
534
805
  function useMenuRegions(options) {
535
806
  function focusRegion(direction) {
@@ -540,68 +811,50 @@ function useMenuRegions(options) {
540
811
  }
541
812
  return true;
542
813
  }
543
- function onMenuTab(event) {
544
- if (event.key !== "Tab" || !options.hasRegions.value) return false;
545
- const tabbables = tabbablesIn(event.shiftKey ? options.header.value : options.footer.value);
546
- if (tabbables.length === 0) {
547
- options.closeMenu();
548
- return true;
549
- }
550
- if (event.shiftKey && event.target !== options.menu.value) {
551
- event.preventDefault();
552
- event.stopPropagation();
553
- if (!focusControl(tabbables[tabbables.length - 1])) options.closeMenu();
814
+ function moveDialogTab(event, isFromFlyout = false) {
815
+ const menu = options.menu.value;
816
+ if (menu == null || !options.hasRegions.value) return;
817
+ event.preventDefault();
818
+ event.stopPropagation();
819
+ const active = menu.ownerDocument.activeElement;
820
+ const cycle = collapseRadioGroups([
821
+ ...tabbablesIn(options.header.value),
822
+ menu,
823
+ ...tabbablesIn(options.footer.value)
824
+ ], active, event.shiftKey);
825
+ if (cycle.length <= 1) {
826
+ if (isFromFlyout) menu.focus();
827
+ return;
554
828
  }
555
- return true;
829
+ const menuIndex = cycle.indexOf(menu);
830
+ let index = active instanceof Node && menu.contains(active) ? menuIndex : cycle.findIndex((element) => element === active || element.contains(active));
831
+ if (index < 0) index = menuIndex;
832
+ const step = event.shiftKey ? -1 : 1;
833
+ const next = cycle[(index + step + cycle.length) % cycle.length];
834
+ if (!focusControl(next)) menu.focus();
556
835
  }
557
836
  function onRegionKeydown(event) {
558
- if (event.key !== "Tab") return;
559
- const region = event.currentTarget;
560
- if (!(region instanceof HTMLElement)) return;
561
- const tabbables = tabbablesIn(region);
562
- const exit = region === options.header.value ? event.shiftKey ? tabbables[0] : void 0 : event.shiftKey ? void 0 : tabbables[tabbables.length - 1];
563
- if (exit != null && exit === region.ownerDocument.activeElement) options.closeMenu();
837
+ if (event.key === "Tab") moveDialogTab(event);
564
838
  }
565
839
  return {
566
840
  focusRegion,
567
- onMenuTab,
841
+ moveDialogTab,
568
842
  onRegionKeydown
569
843
  };
570
844
  }
571
845
  //#endregion
572
846
  //#region src/DropdownMenu/DropdownMenu.vue
573
847
  const _hoisted_1 = ["data-open"];
574
- const _hoisted_2 = [
575
- "id",
576
- "aria-labelledby",
577
- "aria-label"
578
- ];
579
- const _hoisted_3 = ["hidden", "inert"];
580
- const _hoisted_4 = ["data-placement"];
581
- const _hoisted_5 = [
582
- "id",
583
- "aria-labelledby",
584
- "aria-label",
585
- "data-region-focus"
586
- ];
587
- const _hoisted_6 = ["hidden", "inert"];
588
- const _hoisted_7 = [
589
- "id",
590
- "aria-labelledby",
591
- "aria-label",
592
- "data-placement"
593
- ];
594
- const _hoisted_8 = ["hidden", "inert"];
595
848
  const GAP = 4;
596
849
  const DEFAULT_MAX_WIDTH = 320;
597
850
  const DEFAULT_MAX_HEIGHT = "300px";
598
- const COMPACT_TOUCH_QUERY = "(max-width: 639px) and (pointer: coarse) and (hover: none)";
851
+ const COMPACT_TOUCH_QUERY = "(max-width: 768px) and (pointer: coarse)";
599
852
  const _sfc_main = /*@__PURE__*/ defineComponent({
600
853
  name: "AstryxDropdownMenu",
601
854
  inheritAttrs: false,
602
855
  __name: "DropdownMenu",
603
856
  props: /*@__PURE__*/ mergeModels({
604
- button: { default: () => ({ label: "Menu" }) },
857
+ button: {},
605
858
  items: {},
606
859
  isMenuOpen: { type: Boolean },
607
860
  menuWidth: {},
@@ -630,7 +883,8 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
630
883
  const emit = __emit;
631
884
  const attrs = useAttrs();
632
885
  const slots = useSlots();
633
- const INTRINSIC_SIZE = /^(?:auto|min-content|max-content|fit-content|fit-content\(.*\)|inherit|initial|unset|revert|revert-layer)$/i;
886
+ const messages = useAstryxMessages();
887
+ const focusReturn = useFocusReturnVisibility();
634
888
  const open = useModel(__props, "isMenuOpen");
635
889
  const localIsOpen = shallowRef(false);
636
890
  const isOpen = computed(() => open.value ?? localIsOpen.value);
@@ -661,8 +915,11 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
661
915
  if (!open) closeMenu();
662
916
  }
663
917
  });
664
- const buttonProps = computed(() => props.button ?? {});
665
- const sheetLabel = computed(() => typeof buttonProps.value.label === "string" ? buttonProps.value.label : "Menu");
918
+ const buttonProps = computed(() => ({
919
+ label: messages.value.dropdownMenu.label,
920
+ ...props.button
921
+ }));
922
+ const sheetLabel = computed(() => typeof buttonProps.value.label === "string" ? buttonProps.value.label : messages.value.dropdownMenu.label);
666
923
  const menuSize = computed(() => buttonProps.value.size ?? "md");
667
924
  const isIconOnly = computed(() => buttonProps.value.isIconOnly === true);
668
925
  const hasChevron = computed(() => props.hasChevron && !isIconOnly.value);
@@ -681,6 +938,12 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
681
938
  if (slots.trigger != null) return void 0;
682
939
  return typeof buttonProps.value.label === "string" ? buttonProps.value.label : void 0;
683
940
  });
941
+ const dialogLabel = computed(() => menuLabel.value ?? messages.value.dropdownMenu.label);
942
+ const dialogId = `${menuId}-dialog`;
943
+ const popupKind = computed(() => hasRegions.value ? "dialog" : "menu");
944
+ const controlsId = computed(() => hasRegions.value ? dialogId : surfaceId.value);
945
+ const focusRing = computed(() => focusReturn.isFocusRingSuppressed.value ? "off" : void 0);
946
+ const hasOverflow = useOverflow(surfaceRef, isOpen);
684
947
  const menuAriaLabelledBy = computed(() => {
685
948
  const explicit = attrs["aria-labelledby"];
686
949
  if (typeof explicit === "string") return explicit;
@@ -694,13 +957,8 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
694
957
  "aria-label",
695
958
  "aria-labelledby"
696
959
  ].includes(key))));
697
- /**
698
- * The layer tracks its own open state so a menu that mounts already open still
699
- * gets one open transition: the layer's own watcher only reacts to a change,
700
- * and a controlled menu renders open from the first frame.
701
- */
702
960
  const layerIsOpen = ref(false);
703
- const { position, detach: detachPosition } = usePositionedLayer({
961
+ const { position, teleportTarget, detach: detachPosition } = usePositionedLayer({
704
962
  anchor: anchorRef,
705
963
  layer: positionedEl,
706
964
  isOpen: layerIsOpen,
@@ -717,15 +975,15 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
717
975
  "top": `${position.value.top}px`,
718
976
  "left": `${position.value.left}px`,
719
977
  "--_dropdown-menu-max-block": `min(${props.menuMaxHeight == null ? DEFAULT_MAX_HEIGHT : `${props.menuMaxHeight}px`}, calc(100dvh - 16px))`,
720
- "maxWidth": props.menuWidth == null ? `min(${DEFAULT_MAX_WIDTH}px, calc(100vw - 16px))` : "calc(100vw - 16px)"
978
+ "maxWidth": props.menuWidth == null ? clampInlineSize(`${DEFAULT_MAX_WIDTH}px`) : LAYER_MAX_INLINE_SIZE
721
979
  };
722
980
  if (props.menuWidth == null) {
723
981
  style.minWidth = `min(${anchorWidth.value}px, ${DEFAULT_MAX_WIDTH}px)`;
724
982
  return style;
725
983
  }
726
984
  const width = (typeof props.menuWidth === "number" ? `${props.menuWidth}px` : props.menuWidth).trim();
727
- if (INTRINSIC_SIZE.test(width)) style.width = width;
728
- else style.minWidth = `min(${width}, calc(100vw - 16px))`;
985
+ if (isIntrinsicInlineSize(width)) style.width = width;
986
+ else style.minWidth = clampInlineSize(width);
729
987
  return style;
730
988
  });
731
989
  const focusNav = useMenuFocus({ list: surfaceRef });
@@ -769,17 +1027,40 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
769
1027
  }
770
1028
  regionFocus.value = hasRegions.value && !suppressRegionRing;
771
1029
  }
1030
+ function assignElement(target, element) {
1031
+ target.value = element instanceof HTMLElement ? element : null;
1032
+ }
772
1033
  function assignHost(element) {
773
1034
  host.value = element instanceof HTMLElement ? element : null;
774
1035
  }
1036
+ function isTriggerDisabled() {
1037
+ return getTriggerControl()?.matches(":disabled, [aria-disabled=\"true\"]") === true;
1038
+ }
775
1039
  function openMenu(modality) {
776
- if (isOpen.value) return;
1040
+ if (isTriggerDisabled() || isOpen.value) return false;
1041
+ focusReturn.resetFocusReturn();
777
1042
  openModality = modality;
778
1043
  shouldFocusOnOpen.value = true;
779
1044
  emitOpenChange(true);
1045
+ return true;
780
1046
  }
1047
+ const press = useMenuPress({
1048
+ menuRef: surfaceRef,
1049
+ triggerRef: anchorRef,
1050
+ isEnabled: () => !isSheet.value && !isTriggerDisabled(),
1051
+ onTriggerPress: () => {
1052
+ if (isOpen.value) {
1053
+ closeMenu();
1054
+ return false;
1055
+ }
1056
+ return openMenu("pointer");
1057
+ },
1058
+ onDismiss: () => closeMenu()
1059
+ });
781
1060
  function closeMenu() {
782
1061
  if (!isOpen.value) return;
1062
+ focusReturn.prepareFocusReturn();
1063
+ press.cancel();
783
1064
  emitOpenChange(false);
784
1065
  }
785
1066
  function getTriggerControl() {
@@ -804,7 +1085,10 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
804
1085
  typeahead.reset();
805
1086
  const active = typeof document !== "undefined" ? document.activeElement : null;
806
1087
  const surface = surfaceRef.value;
807
- if (active == null || active === (typeof document !== "undefined" ? document.body : null) || surface != null && surface.contains(active)) getTriggerControl()?.focus({ preventScroll: true });
1088
+ if (active == null || active === (typeof document !== "undefined" ? document.body : null) || surface != null && surface.contains(active)) {
1089
+ await nextTick();
1090
+ getTriggerControl()?.focus({ preventScroll: true });
1091
+ }
808
1092
  });
809
1093
  const regions = useMenuRegions({
810
1094
  closeMenu,
@@ -815,10 +1099,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
815
1099
  });
816
1100
  function onSurfaceKeydown(event) {
817
1101
  if (!focusNav.ownsEvent(event)) {
818
- if (event.key === "Tab" && hasRegions.value) {
819
- event.preventDefault();
820
- regions.focusRegion(event.shiftKey ? "previous" : "next");
821
- }
1102
+ if (event.key === "Tab" && hasRegions.value) regions.moveDialogTab(event, true);
822
1103
  return;
823
1104
  }
824
1105
  if (event.key === "Enter" || event.key === " ") {
@@ -828,9 +1109,9 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
828
1109
  if (focused instanceof HTMLElement && MENU_ITEM_ROLES.has(focused.getAttribute("role") ?? "")) activateMenuItem(focused, event);
829
1110
  return;
830
1111
  }
831
- if (regions.onMenuTab(event)) return;
832
1112
  if (event.key === "Tab") {
833
- closeMenu();
1113
+ if (hasRegions.value) regions.moveDialogTab(event);
1114
+ else closeMenu();
834
1115
  return;
835
1116
  }
836
1117
  if (typeahead.onKeyDown(event)) {
@@ -840,7 +1121,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
840
1121
  focusNav.handleKeyDown(event);
841
1122
  }
842
1123
  function onTriggerClick(event) {
843
- if (armedTriggerClickGuard) {
1124
+ if (armedTriggerClickGuard || press.isTriggerClickFromPress()) {
844
1125
  armedTriggerClickGuard = false;
845
1126
  return;
846
1127
  }
@@ -874,21 +1155,60 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
874
1155
  }
875
1156
  const triggerProps = computed(() => ({
876
1157
  "id": triggerId,
877
- "aria-haspopup": "menu",
1158
+ "aria-haspopup": popupKind.value,
878
1159
  "aria-expanded": isOpen.value,
879
- "aria-controls": surfaceId.value,
1160
+ "aria-controls": controlsId.value,
1161
+ "data-astryx-focus-ring": focusRing.value,
880
1162
  "onClick": onTriggerClick,
881
- "onKeyDown": onTriggerKeydown
1163
+ "onKeyDown": onTriggerKeydown,
1164
+ "onFocus": focusReturn.onFocusReturnTargetFocus
882
1165
  }));
883
- provide(dropdownMenuContextKey, {
1166
+ const menuContext = markRaw({
884
1167
  closeMenu,
885
1168
  drillIn,
886
1169
  focusRegion: regions.focusRegion,
1170
+ moveDialogTab: regions.moveDialogTab,
887
1171
  hasRegions,
888
1172
  isOpen,
889
1173
  menuLabel,
890
1174
  menuSize
891
1175
  });
1176
+ const paintedStyle = computed(() => [surfaceStyle.value, attrs.style]);
1177
+ const menuBindings = computed(() => ({
1178
+ ...forwardedAttrs.value,
1179
+ ...press.menuProps
1180
+ }));
1181
+ provide(dropdownMenuFrameKey, reactive({
1182
+ isSheet,
1183
+ sheetOpen,
1184
+ sheetLabel,
1185
+ hasRegions,
1186
+ isOpen,
1187
+ isDrilled,
1188
+ hasOverflow,
1189
+ regionFocus,
1190
+ surfaceId,
1191
+ dialogId,
1192
+ dialogLabel,
1193
+ menuAriaLabel,
1194
+ menuAriaLabelledBy,
1195
+ forwardedAttrs,
1196
+ menuBindings,
1197
+ surfaceClass: computed(() => attrs.class),
1198
+ surfaceStyle: paintedStyle,
1199
+ placement: computed(() => position.value.placement),
1200
+ teleportTarget,
1201
+ items: computed(() => props.items),
1202
+ menuContext,
1203
+ regions,
1204
+ setSurface: (element) => assignElement(surfaceRef, element),
1205
+ setPopover: (element) => assignElement(popoverRef, element),
1206
+ setHeader: (element) => assignElement(headerRef, element),
1207
+ setFooter: (element) => assignElement(footerRef, element),
1208
+ setHost: assignHost,
1209
+ onSurfaceKeydown,
1210
+ onSurfaceFocus
1211
+ }));
892
1212
  onMounted(() => {
893
1213
  if (!isOpen.value) return;
894
1214
  layerIsOpen.value = true;
@@ -902,18 +1222,23 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
902
1222
  ref_key: "anchorRef",
903
1223
  ref: anchorRef,
904
1224
  class: "astryx-dropdown-menu-trigger",
905
- "data-open": isOpen.value ? "true" : void 0
906
- }, [unref(slots).trigger ? renderSlot(_ctx.$slots, "trigger", normalizeProps(guardReactiveProps(triggerProps.value)), void 0, void 0, 0) : (openBlock(), createBlock(_sfc_main$5, mergeProps({ key: 1 }, buttonProps.value, {
1225
+ "data-open": isOpen.value ? "true" : void 0,
1226
+ onContextmenu: _cache[0] || (_cache[0] = (...args) => unref(press).triggerProps.onContextmenu && unref(press).triggerProps.onContextmenu(...args)),
1227
+ onFocusin: _cache[1] || (_cache[1] = (...args) => unref(focusReturn).onFocusReturnTargetFocus && unref(focusReturn).onFocusReturnTargetFocus(...args)),
1228
+ onPointerdown: _cache[2] || (_cache[2] = (...args) => unref(press).triggerProps.onPointerdown && unref(press).triggerProps.onPointerdown(...args))
1229
+ }, [unref(slots).trigger ? renderSlot(_ctx.$slots, "trigger", normalizeProps(guardReactiveProps(triggerProps.value)), void 0, void 0, 0) : (openBlock(), createBlock(_sfc_main$7, mergeProps({ key: 1 }, buttonProps.value, {
907
1230
  id: triggerId,
908
- "aria-controls": surfaceId.value,
1231
+ "aria-controls": controlsId.value,
909
1232
  "aria-expanded": isOpen.value,
910
- "aria-haspopup": "menu",
1233
+ "aria-haspopup": popupKind.value,
1234
+ "data-astryx-focus-ring": focusRing.value,
911
1235
  tooltip: isOpen.value ? void 0 : buttonProps.value.tooltip,
912
1236
  onClick: onTriggerClick,
1237
+ onFocus: unref(focusReturn).onFocusReturnTargetFocus,
913
1238
  onKeydown: onTriggerKeydown
914
1239
  }), createSlots({ _: 2 }, [hasChevron.value ? {
915
1240
  name: "end",
916
- fn: withCtx(() => [createVNode(_sfc_main$7, {
1241
+ fn: withCtx(() => [createVNode(_sfc_main$8, {
917
1242
  color: "inherit",
918
1243
  icon: "chevronDown",
919
1244
  size: "sm"
@@ -922,134 +1247,24 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
922
1247
  } : void 0]), 1040, [
923
1248
  "aria-controls",
924
1249
  "aria-expanded",
925
- "tooltip"
926
- ]))], 8, _hoisted_1), isSheet.value ? (openBlock(), createBlock(_sfc_main$6, {
927
- key: 0,
928
- "is-open": sheetOpen.value,
929
- "onUpdate:isOpen": _cache[2] || (_cache[2] = ($event) => sheetOpen.value = $event),
930
- height: "hug",
931
- label: sheetLabel.value,
932
- padding: 2
933
- }, {
934
- default: withCtx(() => [
935
- unref(slots).header ? (openBlock(), createElementBlock("div", {
936
- key: 0,
937
- ref_key: "headerRef",
938
- ref: headerRef,
939
- class: "astryx-dropdown-menu-region",
940
- onKeydown: _cache[0] || (_cache[0] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
941
- }, [renderSlot(_ctx.$slots, "header")], 544)) : createCommentVNode("v-if", true),
942
- createElementVNode("div", mergeProps({
943
- id: surfaceId.value,
944
- ref_key: "surfaceRef",
945
- ref: surfaceRef
946
- }, forwardedAttrs.value, {
947
- "aria-labelledby": menuAriaLabelledBy.value,
948
- "aria-label": menuAriaLabel.value,
949
- class: ["astryx-dropdown-menu is-sheet", unref(attrs).class],
950
- role: "menu",
951
- tabindex: "-1",
952
- onKeydown: onSurfaceKeydown
953
- }), [createElementVNode("div", {
954
- class: "astryx-dropdown-menu-tree",
955
- hidden: unref(isDrilled) || void 0,
956
- inert: unref(isDrilled) || void 0
957
- }, [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
958
- key: 0,
959
- items: __props.items
960
- }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_3), createElementVNode("div", {
961
- ref: assignHost,
962
- class: "astryx-dropdown-menu-tree"
963
- }, null, 512)], 16, _hoisted_2),
964
- unref(slots).footer ? (openBlock(), createElementBlock("div", {
965
- key: 1,
966
- ref_key: "footerRef",
967
- ref: footerRef,
968
- class: "astryx-dropdown-menu-region",
969
- onKeydown: _cache[1] || (_cache[1] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
970
- }, [renderSlot(_ctx.$slots, "footer")], 544)) : createCommentVNode("v-if", true)
971
- ]),
972
- _: 3
973
- }, 8, ["is-open", "label"])) : (openBlock(), createBlock(Teleport, {
974
- key: 1,
975
- to: "body"
976
- }, [createVNode(Transition, { name: "astryx-dropdown-menu" }, {
977
- default: withCtx(() => [hasRegions.value ? withDirectives((openBlock(), createElementBlock("div", {
978
- key: 0,
979
- ref_key: "popoverRef",
980
- ref: popoverRef,
981
- class: "astryx-dropdown-menu-popover",
982
- "data-placement": unref(position).placement,
983
- style: normalizeStyle([surfaceStyle.value, unref(attrs).style])
984
- }, [
985
- unref(slots).header ? (openBlock(), createElementBlock("div", {
986
- key: 0,
987
- ref_key: "headerRef",
988
- ref: headerRef,
989
- class: "astryx-dropdown-menu-region",
990
- onKeydown: _cache[3] || (_cache[3] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
991
- }, [renderSlot(_ctx.$slots, "header")], 544)) : createCommentVNode("v-if", true),
992
- createElementVNode("div", mergeProps({
993
- id: surfaceId.value,
994
- ref_key: "surfaceRef",
995
- ref: surfaceRef
996
- }, forwardedAttrs.value, {
997
- "aria-labelledby": menuAriaLabelledBy.value,
998
- "aria-label": menuAriaLabel.value,
999
- class: ["astryx-dropdown-menu is-in-frame", unref(attrs).class],
1000
- "data-region-focus": regionFocus.value || void 0,
1001
- role: "menu",
1002
- tabindex: "0",
1003
- onFocus: onSurfaceFocus,
1004
- onKeydown: onSurfaceKeydown
1005
- }), [createElementVNode("div", {
1006
- class: "astryx-dropdown-menu-tree",
1007
- hidden: unref(isDrilled) || void 0,
1008
- inert: unref(isDrilled) || void 0
1009
- }, [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
1010
- key: 0,
1011
- items: __props.items
1012
- }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_6), createElementVNode("div", {
1013
- ref: assignHost,
1014
- class: "astryx-dropdown-menu-tree"
1015
- }, null, 512)], 16, _hoisted_5),
1016
- unref(slots).footer ? (openBlock(), createElementBlock("div", {
1017
- key: 1,
1018
- ref_key: "footerRef",
1019
- ref: footerRef,
1020
- class: "astryx-dropdown-menu-region",
1021
- onKeydown: _cache[4] || (_cache[4] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
1022
- }, [renderSlot(_ctx.$slots, "footer")], 544)) : createCommentVNode("v-if", true)
1023
- ], 12, _hoisted_4)), [[vShow, isOpen.value]]) : withDirectives((openBlock(), createElementBlock("div", mergeProps({
1024
- key: 1,
1025
- id: surfaceId.value,
1026
- ref_key: "surfaceRef",
1027
- ref: surfaceRef
1028
- }, forwardedAttrs.value, {
1029
- "aria-labelledby": menuAriaLabelledBy.value,
1030
- "aria-label": menuAriaLabel.value,
1031
- class: ["astryx-dropdown-menu", unref(attrs).class],
1032
- "data-placement": unref(position).placement,
1033
- role: "menu",
1034
- style: [surfaceStyle.value, unref(attrs).style],
1035
- tabindex: "-1",
1036
- onFocus: onSurfaceFocus,
1037
- onKeydown: onSurfaceKeydown
1038
- }), [createElementVNode("div", {
1039
- class: "astryx-dropdown-menu-tree",
1040
- hidden: unref(isDrilled) || void 0,
1041
- inert: unref(isDrilled) || void 0
1042
- }, [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
1043
- key: 0,
1044
- items: __props.items
1045
- }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_8), createElementVNode("div", {
1046
- ref: assignHost,
1047
- class: "astryx-dropdown-menu-tree"
1048
- }, null, 512)], 16, _hoisted_7)), [[vShow, isOpen.value]])]),
1049
- _: 3
1050
- })]))], 64);
1250
+ "aria-haspopup",
1251
+ "data-astryx-focus-ring",
1252
+ "tooltip",
1253
+ "onFocus"
1254
+ ]))], 40, _hoisted_1), createVNode(_sfc_main$1, null, createSlots({
1255
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1256
+ _: 2
1257
+ }, [unref(slots).header ? {
1258
+ name: "header",
1259
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "header")]),
1260
+ key: "0"
1261
+ } : void 0, unref(slots).footer ? {
1262
+ name: "footer",
1263
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "footer")]),
1264
+ key: "1"
1265
+ } : void 0]), 1024)], 64);
1051
1266
  };
1052
1267
  }
1053
1268
  });
1054
1269
  //#endregion
1055
- export { _sfc_main$4 as a, _sfc_main$2 as i, useMenuFocus as n, MENU_ITEM_ROLES as o, _sfc_main$1 as r, activateMenuItem as s, _sfc_main as t };
1270
+ export { activateMenuItem as a, _sfc_main$6 as c, MENU_ITEM_ROLES as i, useMenuFocus as n, _sfc_main$3 as o, _sfc_main$2 as r, _sfc_main$5 as s, _sfc_main as t };