@astryx-vue/core 0.2.2 → 0.2.3

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 (253) hide show
  1. package/THIRD_PARTY_NOTICES.md +2 -0
  2. package/dist/AppShell/index.d.ts +1 -1
  3. package/dist/AppShell/index.js +1 -1
  4. package/dist/{AppShell-Cb41gIAj.js → AppShell-Dd-D4bA2.js} +2 -2
  5. package/dist/AvatarGroup/index.d.ts +1 -1
  6. package/dist/Banner/index.d.ts +1 -1
  7. package/dist/Breadcrumbs/index.d.ts +3 -2
  8. package/dist/Breadcrumbs/index.js +3 -2
  9. package/dist/{Breadcrumbs-CTQ7fjDn.js → Breadcrumbs-CWGfgLNK.js} +13 -8
  10. package/dist/Button/index.d.ts +1 -1
  11. package/dist/ButtonGroup/index.d.ts +1 -1
  12. package/dist/Calendar/index.d.ts +2 -2
  13. package/dist/Calendar/index.js +1 -1
  14. package/dist/Calendar-CnOsSjMY.js +656 -0
  15. package/dist/Card/index.d.ts +1 -1
  16. package/dist/Carousel/index.js +1 -1
  17. package/dist/{Carousel-X0cuQkvg.js → Carousel-JA7ilqI_.js} +2 -2
  18. package/dist/Chat/index.d.ts +1 -1
  19. package/dist/Chat/index.js +1 -1
  20. package/dist/{Chat-M0tiGrNT.js → Chat-C7WrCOE4.js} +3 -3
  21. package/dist/CheckboxIndicator/index.js +1 -1
  22. package/dist/CheckboxIndicator-D37cm2Rh.js +68 -0
  23. package/dist/CheckboxInput/index.d.ts +1 -1
  24. package/dist/CheckboxInput/index.js +1 -1
  25. package/dist/{CheckboxInput-CMsEE1_4.js → CheckboxInput-25Q8ItH-.js} +10 -9
  26. package/dist/CheckboxList/index.d.ts +1 -1
  27. package/dist/CheckboxList/index.js +1 -1
  28. package/dist/{CheckboxList-BbCPiend.js → CheckboxList-CnCGnkZk.js} +77 -24
  29. package/dist/Citation/index.js +1 -1
  30. package/dist/{Citation-C1veUk5p.js → Citation-CtwrU33I.js} +2 -2
  31. package/dist/ClickableCard/index.d.ts +1 -1
  32. package/dist/Code/index.d.ts +1 -1
  33. package/dist/Code/index.js +2 -2
  34. package/dist/{Code-yb_KOFtJ.js → Code-BvefYRpx.js} +2 -1
  35. package/dist/{CodeBlock-DesTJAkm.js → CodeBlock-BZGzYeoL.js} +1 -1
  36. package/dist/Collapsible/index.d.ts +1 -1
  37. package/dist/Collapsible/index.js +1 -1
  38. package/dist/{Collapsible-BestK35V.js → Collapsible-3YerR-FO.js} +1 -1
  39. package/dist/CommandPalette/index.js +1 -1
  40. package/dist/{CommandPalette-BArt97V8.js → CommandPalette-BNbM9T9y.js} +1 -1
  41. package/dist/ComplexSelector/index.d.ts +1 -1
  42. package/dist/ComplexSelector/index.js +1 -1
  43. package/dist/{ComplexSelector-CAoig1RK.js → ComplexSelector-LtbLlrcj.js} +3 -3
  44. package/dist/ContextMenu/index.d.ts +3 -2
  45. package/dist/ContextMenu/index.js +3 -2
  46. package/dist/{ContextMenu-9Im6i43E.js → ContextMenu-DVQl0xL5.js} +204 -56
  47. package/dist/DateInput/index.d.ts +2 -2
  48. package/dist/DateInput/index.js +1 -1
  49. package/dist/DateInput-zm8sNc0t.js +743 -0
  50. package/dist/DateRangeInput/index.d.ts +1 -1
  51. package/dist/DateRangeInput/index.js +1 -1
  52. package/dist/{DateRangeInput-DwDy3eRo.js → DateRangeInput-DlVFzrf7.js} +54 -19
  53. package/dist/DateTimeInput/index.d.ts +1 -1
  54. package/dist/DateTimeInput/index.js +1 -1
  55. package/dist/{DateTimeInput-BYiaC9bn.js → DateTimeInput-C7Z-p6Yd.js} +54 -15
  56. package/dist/Dialog/index.d.ts +1 -1
  57. package/dist/DropdownMenu/index.d.ts +3 -3
  58. package/dist/DropdownMenu/index.js +4 -3
  59. package/dist/{DropdownMenu-Dh-WAHKb.js → DropdownMenu-BoZChdev.js} +308 -63
  60. package/dist/DropdownMenu-u1psFjis.js +325 -0
  61. package/dist/DropdownMenuRadioItem.vue-uVM0FD2f.d.ts +564 -0
  62. package/dist/FileInput/index.d.ts +1 -1
  63. package/dist/FileInput/index.js +1 -1
  64. package/dist/{FileInput-DLO6V12n.js → FileInput-QdlZn7qK.js} +2 -2
  65. package/dist/Icon/index.d.ts +4 -3
  66. package/dist/Icon/index.js +2 -2
  67. package/dist/{Icon-CJKjdJy-.js → Icon-bteSId7T.js} +113 -18
  68. package/dist/Indicator/index.d.ts +3 -0
  69. package/dist/Indicator/index.js +2 -0
  70. package/dist/InputGroup/index.d.ts +2 -2
  71. package/dist/InputGroup/index.js +3 -2
  72. package/dist/InputGroup-BzR6JRZb.js +129 -0
  73. package/dist/Lightbox/index.js +1 -1
  74. package/dist/{Lightbox-CdFCS_EA.js → Lightbox-BSzfqZ-u.js} +2 -2
  75. package/dist/List/index.d.ts +1 -1
  76. package/dist/Markdown/index.js +1 -1
  77. package/dist/{Markdown-BqKloI3w.js → Markdown-B6tSqenv.js} +8 -5
  78. package/dist/MetadataList/index.js +1 -1
  79. package/dist/{MetadataList-CvZkmisf.js → MetadataList-aN1tRn6W.js} +1 -1
  80. package/dist/MobileNav/index.js +1 -1
  81. package/dist/{MobileNavToggle-Bwi0qXXM.js → MobileNavToggle-fqcSafkc.js} +1 -1
  82. package/dist/MoreMenu/index.d.ts +1 -1
  83. package/dist/MoreMenu/index.js +1 -1
  84. package/dist/{MoreMenu-BwJaJrkB.js → MoreMenu-B3brqdK_.js} +1 -1
  85. package/dist/MultiSelector/index.d.ts +2 -2
  86. package/dist/MultiSelector/index.js +1 -1
  87. package/dist/{MultiSelector-C-ETfFy_.js → MultiSelector-BD5PMgez.js} +303 -121
  88. package/dist/{NavDisclosure-DHrSNRDR.js → NavDisclosure-DbYLDXK0.js} +1 -1
  89. package/dist/NavItem/index.d.ts +1 -1
  90. package/dist/NavMenu/index.js +2 -2
  91. package/dist/{NavMenuItem-B-k7olt5.js → NavMenuItem-DrwIMHKO.js} +1 -1
  92. package/dist/NumberInput/index.d.ts +1 -1
  93. package/dist/NumberInput/index.js +1 -1
  94. package/dist/{NumberInput-DjetVB8O.js → NumberInput-CBeU4lEl.js} +1 -1
  95. package/dist/Outline/index.js +1 -1
  96. package/dist/{Outline-Bz9c-u5y.js → Outline--HVMSB6i.js} +1 -1
  97. package/dist/OverflowList/index.d.ts +1 -1
  98. package/dist/OverflowList/index.js +1 -1
  99. package/dist/{OverflowList-ED-KN9Y5.js → OverflowList-FMh7r-r_.js} +3 -3
  100. package/dist/Pagination/index.d.ts +1 -1
  101. package/dist/Pagination/index.js +1 -1
  102. package/dist/{Pagination-Cb66HMEf.js → Pagination-DlIvESjx.js} +2 -2
  103. package/dist/Popover/index.d.ts +1 -1
  104. package/dist/Popover/index.js +1 -1
  105. package/dist/{Popover-Crhk9PNP.js → Popover-D7zqpFwU.js} +1 -1
  106. package/dist/PowerSearch/index.d.ts +1 -1
  107. package/dist/PowerSearch/index.js +1 -1
  108. package/dist/{PowerSearch-CjU8y4mi.js → PowerSearch-CMG7Rb69.js} +14 -14
  109. package/dist/ProgressBar/index.d.ts +1 -1
  110. package/dist/Radio/index.d.ts +1 -1
  111. package/dist/Radio/index.js +1 -1
  112. package/dist/{RadioGroup-BqjdSCfJ.js → RadioGroup-CBqUPq_L.js} +16 -8
  113. package/dist/RadioList/index.d.ts +1 -1
  114. package/dist/RadioList/index.js +1 -1
  115. package/dist/{RadioList-DI8ujXcT.js → RadioList-CPOJn9Th.js} +1 -1
  116. package/dist/Resizable/index.js +1 -1
  117. package/dist/{Resizable-D-TBCg0Y.js → Resizable-CXpvj1TZ.js} +1 -1
  118. package/dist/ScrollableArea/index.d.ts +1 -1
  119. package/dist/SegmentedControl/index.d.ts +1 -1
  120. package/dist/SelectableCard/index.d.ts +1 -1
  121. package/dist/Selector/index.d.ts +2 -2
  122. package/dist/Selector/index.js +1 -1
  123. package/dist/Selector-BpPnuWH3.js +618 -0
  124. package/dist/SideNav/index.d.ts +1 -1
  125. package/dist/SideNav/index.js +1 -1
  126. package/dist/{SideNav-DonEfiAx.js → SideNav-D4TupqgE.js} +3 -3
  127. package/dist/Stack/index.d.ts +1 -1
  128. package/dist/Stepper/index.d.ts +1 -1
  129. package/dist/Stepper/index.js +1 -1
  130. package/dist/{Stepper-D2ZIcUNx.js → Stepper-H-6-T5Ps.js} +1 -1
  131. package/dist/Switch/index.d.ts +1 -1
  132. package/dist/TabList/index.d.ts +1 -1
  133. package/dist/TabList/index.js +1 -1
  134. package/dist/{TabList-D3F-stq-.js → TabList-BlzkrObv.js} +2 -2
  135. package/dist/Table/index.js +1 -1
  136. package/dist/{Table-CrP2Uffq.js → Table-nqA_njNz.js} +6 -6
  137. package/dist/TextArea/index.d.ts +1 -1
  138. package/dist/TextInput/index.d.ts +1 -1
  139. package/dist/Theme/index.d.ts +2 -1
  140. package/dist/Theme/index.js +1 -1
  141. package/dist/{Theme-BuUiiJNr.js → Theme-CejS9MHm.js} +21 -3
  142. package/dist/Thumbnail/index.js +1 -1
  143. package/dist/{Thumbnail-BC5JGPGZ.js → Thumbnail-CXb3m_Hv.js} +2 -2
  144. package/dist/{TimeField-DpHFrNv0.js → TimeField-B3cndWb0.js} +2 -2
  145. package/dist/TimeInput/index.d.ts +1 -1
  146. package/dist/TimeInput/index.js +1 -1
  147. package/dist/{TimeInput-DJLV0_4z.js → TimeInput-BHQ_LKGm.js} +1 -1
  148. package/dist/Timestamp/index.d.ts +1 -1
  149. package/dist/Timestamp/index.js +1 -1
  150. package/dist/{Timestamp-GKNjjt5g.js → Timestamp-Cfuxbb3i.js} +2 -2
  151. package/dist/ToggleButton/index.d.ts +1 -1
  152. package/dist/Token/index.d.ts +1 -1
  153. package/dist/Token/index.js +1 -1
  154. package/dist/{Token-Chu_eCVs.js → Token-CdVLH0_H.js} +2 -2
  155. package/dist/Tokenizer/index.d.ts +1 -1
  156. package/dist/Tokenizer/index.js +1 -1
  157. package/dist/{Tokenizer-DRDpvQ_l.js → Tokenizer-DlD-S_8-.js} +3 -3
  158. package/dist/Toolbar/index.d.ts +1 -1
  159. package/dist/TopNav/index.d.ts +1 -1
  160. package/dist/TopNav/index.js +1 -1
  161. package/dist/{TopNav-CEyWddtA.js → TopNav-DzV874G7.js} +5 -5
  162. package/dist/TreeList/index.js +1 -1
  163. package/dist/{TreeList-COS8US8e.js → TreeList-DEwvlZRV.js} +2 -2
  164. package/dist/Typeahead/index.d.ts +1 -1
  165. package/dist/Typeahead/index.js +1 -1
  166. package/dist/{Typeahead-P7cCqtaQ.js → Typeahead-DQ3tmqYe.js} +3 -3
  167. package/dist/{context-O2Vb8cJl.js → colorMode-CBgdgDSn.js} +1 -7
  168. package/dist/composables/index.d.ts +2 -2
  169. package/dist/composables/index.js +10 -5
  170. package/dist/{composables-CVfjp9h4.js → composables-DDI08XFF.js} +98 -1
  171. package/dist/context-Cws_tXTr.js +7 -0
  172. package/dist/context-D5-MwxnN.js +4 -0
  173. package/dist/{context-CiKncNSH.js → context-DmOLCubj.js} +82 -8
  174. package/dist/{index-DimuSES0.d.ts → index-B1x05arQ.d.ts} +3 -1
  175. package/dist/index-B9f1rUEv.d.ts +77 -0
  176. package/dist/{index-D-ZuubCK.d.ts → index-BB5yVIN-.d.ts} +2 -2
  177. package/dist/{index-Bu0Zd1uw.d.ts → index-BMn9ghAX.d.ts} +3 -3
  178. package/dist/{index-CJlBAXwj.d.ts → index-BRfR0lhb.d.ts} +41 -4
  179. package/dist/{index-DNRBbwp_.d.ts → index-BTAgQRP0.d.ts} +758 -111
  180. package/dist/{index-DA52oIdw.d.ts → index-BcJBLWJ0.d.ts} +2 -2
  181. package/dist/{index-jdjcb3Js.d.ts → index-Bqb_Fyju.d.ts} +2 -2
  182. package/dist/{index-CNjbOgty.d.ts → index-C-QpeUlQ.d.ts} +2 -2
  183. package/dist/{index-DGXviOlp.d.ts → index-C2sfHfBw.d.ts} +31 -5
  184. package/dist/{index-By2mSzUA.d.ts → index-CA6RbRWx.d.ts} +1 -1
  185. package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
  186. package/dist/{index-CVn0GBdB.d.ts → index-Ca8VIE4l.d.ts} +1 -1
  187. package/dist/{index-CRizexSC.d.ts → index-Ch6BbxCP.d.ts} +2 -67
  188. package/dist/{index-DWH_HzXi.d.ts → index-ChWlKHjc.d.ts} +1 -1
  189. package/dist/{index-kVhSuA9t.d.ts → index-Ctu32CLv.d.ts} +4 -4
  190. package/dist/{index-DOUEn7V0.d.ts → index-D1Twv_fL.d.ts} +65 -6
  191. package/dist/{index-D_nYxnNv.d.ts → index-D7-WTV6I.d.ts} +1 -1
  192. package/dist/{index-c_TaW8mM.d.ts → index-D8o50qOE.d.ts} +1 -1
  193. package/dist/{index-D4I_obqR.d.ts → index-DAiGhkNZ.d.ts} +1 -1
  194. package/dist/{index-Cs5pcwY3.d.ts → index-DMQG6kdM.d.ts} +3 -3
  195. package/dist/index-D_UEJIU5.d.ts +83 -0
  196. package/dist/{index-fa72tWIU.d.ts → index-DkVEBdWa.d.ts} +2 -2
  197. package/dist/{index-B1TG2GPS.d.ts → index-DxsKyAxq.d.ts} +116 -44
  198. package/dist/{index-BHqRH7QW.d.ts → index-FEy8qFSD.d.ts} +2 -2
  199. package/dist/{index-qiZtHnGK.d.ts → index-LIyvJTW3.d.ts} +39 -0
  200. package/dist/{index-BKr7yvVv.d.ts → index-MPcg1Pm4.d.ts} +1 -1
  201. package/dist/{index-cGagYM1g.d.ts → index-ViSV0RBx.d.ts} +1 -1
  202. package/dist/{index-C7mxUcDR.d.ts → index-f4NGT-e2.d.ts} +4 -4
  203. package/dist/{index-DsyKhauk.d.ts → index-foQMNKZO.d.ts} +1 -1
  204. package/dist/{index-u5ozu0G7.d.ts → index-vP0EtrJJ.d.ts} +13 -3
  205. package/dist/{index-CZeoAr0a.d.ts → index-xfkEuGLY.d.ts} +2 -2
  206. package/dist/index.d.ts +76 -75
  207. package/dist/index.js +115 -107
  208. package/dist/locale/index.d.ts +1 -1
  209. package/dist/locale/index.js +2 -2
  210. package/dist/{locale-Cpk_nrLA.js → locale-CCwVnyMZ.js} +25 -1
  211. package/dist/searchResultMessage-DN0HeRRB.js +94 -0
  212. package/dist/semantic-CKH9XVqa.d.ts +54 -0
  213. package/dist/{types-pnljWjEE.d.ts → types-CwyibrRB.d.ts} +12 -11
  214. package/dist/types-jmqqnkKA.d.ts +163 -0
  215. package/dist/{useAnchoredListbox-7W90Ny-9.js → useAnchoredListbox-BN9LQnon.js} +1 -1
  216. package/dist/useDatePresentation-C07PnOCw.js +21 -0
  217. package/dist/{useMonthGrid-CmJsZTcB.js → useDateRange-CIXoE_8k.js} +1 -42
  218. package/dist/useDisclosureHandle-Df3HhAfC.js +24 -0
  219. package/dist/{useDismiss-CAiHU6QD.js → useDismiss-Cj8x_51F.js} +8 -4
  220. package/dist/useFieldControlState-voICDrys.js +18 -0
  221. package/dist/useHandleRef-6cdKugm8.js +17 -0
  222. package/dist/useIndicator-i1NORM7W.js +147 -0
  223. package/dist/useMenuDrillIn-OaEwjK44.js +520 -0
  224. package/dist/useMonthGrid-fGHSSrFc.js +43 -0
  225. package/dist/usePendingChange-ib-h8FZK.js +25 -0
  226. package/dist/useSubmenuMode-CZN9qrUo.js +37 -0
  227. package/package.json +5 -1
  228. package/styles/calendar.css +38 -3
  229. package/styles/check-indicator.css +17 -0
  230. package/styles/checkbox-indicator.css +29 -10
  231. package/styles/checkbox-input.css +0 -11
  232. package/styles/date-input.css +48 -0
  233. package/styles/dropdown-menu.css +163 -0
  234. package/styles/field.css +48 -0
  235. package/styles/icon.css +51 -3
  236. package/styles/input-group.css +32 -3
  237. package/styles/multi-selector.css +26 -0
  238. package/styles/radio-indicator.css +90 -0
  239. package/styles/radio.css +9 -42
  240. package/styles/selector.css +112 -14
  241. package/styles.css +2 -0
  242. package/dist/Calendar-BFaI5AMv.js +0 -352
  243. package/dist/CheckboxIndicator-DdJmksHt.js +0 -52
  244. package/dist/DateInput-BLocxqC3.js +0 -376
  245. package/dist/DropdownMenu-Ddfr-aEC.js +0 -164
  246. package/dist/InputGroup-ChrFVxzV.js +0 -42
  247. package/dist/Selector-DE2IEFML.js +0 -468
  248. package/dist/index-Bgv4ZmBl.d.ts +0 -72
  249. package/dist/index-DN7MXPHM.d.ts +0 -398
  250. package/dist/index-IbUN4M8V.d.ts +0 -40
  251. package/dist/types-DDAAT1Xd.d.ts +0 -285
  252. package/dist/useGridRovingFocus-DQQAOYH5.js +0 -99
  253. /package/dist/{index-BUXNRekN.d.ts → index-BXkNZF3q.d.ts} +0 -0
@@ -1,21 +1,16 @@
1
1
  import { t as _sfc_main$5 } from "./Button-DrqeomlE.js";
2
2
  import { t as useMediaQuery } from "./useMediaQuery-GMmgp28-.js";
3
- import { t as useDismiss } from "./useDismiss-CAiHU6QD.js";
3
+ import { t as useDismiss } from "./useDismiss-Cj8x_51F.js";
4
+ import { n as getFocusables } from "./focus-CpficIgf.js";
4
5
  import { t as useTypeahead } from "./useTypeahead-PAK8lMYz.js";
5
6
  import { t as usePositionedLayer } from "./usePositionedLayer-C1NBOsVT.js";
6
7
  import { t as _sfc_main$6 } from "./BottomSheet-Dg95HB1s.js";
7
- import { t as _sfc_main$7 } from "./Icon-CJKjdJy-.js";
8
- import { t as _sfc_main$8 } from "./Divider-BtwnL18I.js";
9
- import { t as _sfc_main$9 } from "./Item-C1z6gXn8.js";
10
- import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, h, inject, mergeModels, mergeProps, nextTick, normalizeProps, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, shallowRef, toDisplayString, unref, useAttrs, useId, useModel, useSlots, vShow, watch, withCtx, withDirectives } from "vue";
8
+ import { t as _sfc_main$7 } from "./Icon-bteSId7T.js";
9
+ import { t as _sfc_main$8 } from "./Item-C1z6gXn8.js";
10
+ 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-OaEwjK44.js";
11
+ import { t as _sfc_main$12 } from "./Divider-BtwnL18I.js";
12
+ 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, shallowRef, toDisplayString, unref, useAttrs, useId, useModel, useSlots, vShow, watch, withCtx, withDirectives } from "vue";
11
13
  import "../styles/dropdown-menu.css";
12
- //#region src/DropdownMenu/context.ts
13
- const dropdownMenuContextKey = Symbol("astryx-dropdown-menu-context");
14
- /** The surrounding menu, or `undefined` when a row stands alone. */
15
- function useDropdownMenuContext() {
16
- return inject(dropdownMenuContextKey, void 0);
17
- }
18
- //#endregion
19
14
  //#region src/DropdownMenu/menuItemRoles.ts
20
15
  /**
21
16
  * Rows a menu's roving focus, typeahead, and keyboard activation all agree on.
@@ -59,7 +54,7 @@ const _sfc_main$4 = /*@__PURE__*/ defineComponent({
59
54
  __name: "DropdownMenuDivider",
60
55
  setup(__props) {
61
56
  return (_ctx, _cache) => {
62
- return openBlock(), createBlock(_sfc_main$8, { class: "astryx-dropdown-menu-divider" });
57
+ return openBlock(), createBlock(_sfc_main$12, { class: "astryx-dropdown-menu-divider" });
63
58
  };
64
59
  }
65
60
  });
@@ -119,15 +114,15 @@ const _hoisted_2$1 = {
119
114
  class: "astryx-item__start"
120
115
  };
121
116
  const _hoisted_3$1 = { class: "astryx-item__content" };
122
- const _hoisted_4 = {
117
+ const _hoisted_4$1 = {
123
118
  key: 0,
124
119
  class: "astryx-item__label"
125
120
  };
126
- const _hoisted_5 = {
121
+ const _hoisted_5$1 = {
127
122
  key: 1,
128
123
  class: "astryx-item__description"
129
124
  };
130
- const _hoisted_6 = {
125
+ const _hoisted_6$1 = {
131
126
  key: 1,
132
127
  class: "astryx-item__end"
133
128
  };
@@ -227,9 +222,9 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
227
222
  icon: __props.icon,
228
223
  size: "sm"
229
224
  }, null, 8, ["color", "icon"])])])) : createCommentVNode("v-if", true),
230
- createElementVNode("span", _hoisted_3$1, [hasLabel.value ? (openBlock(), createElementBlock("span", _hoisted_4, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(__props.label), 1)])])) : createCommentVNode("v-if", true), hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_5, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(__props.description), 1)])])) : createCommentVNode("v-if", true)]),
231
- hasEnd.value ? (openBlock(), createElementBlock("span", _hoisted_6, [renderSlot(_ctx.$slots, "endContent")])) : createCommentVNode("v-if", true)
232
- ], 16, _hoisted_1$1)) : (openBlock(), createBlock(_sfc_main$9, mergeProps({ key: 1 }, unref(attrs), {
225
+ createElementVNode("span", _hoisted_3$1, [hasLabel.value ? (openBlock(), createElementBlock("span", _hoisted_4$1, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(__props.label), 1)])])) : createCommentVNode("v-if", true), hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_5$1, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(__props.description), 1)])])) : createCommentVNode("v-if", true)]),
226
+ hasEnd.value ? (openBlock(), createElementBlock("span", _hoisted_6$1, [renderSlot(_ctx.$slots, "endContent")])) : createCommentVNode("v-if", true)
227
+ ], 16, _hoisted_1$1)) : (openBlock(), createBlock(_sfc_main$8, mergeProps({ key: 1 }, unref(attrs), {
233
228
  class: "astryx-dropdown-menu-item",
234
229
  role: "menuitem",
235
230
  "data-menu-size": menuSize.value,
@@ -281,26 +276,61 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
281
276
  });
282
277
  //#endregion
283
278
  //#region src/DropdownMenu/renderItems.ts
284
- /**
285
- * Renders one data-mode entry. A section renders through `DropdownMenuGroup`,
286
- * so both modes produce one `role="group"` named by its visible heading.
287
- */
288
- function renderOption(option, index) {
289
- if ("type" in option) {
290
- if (option.type === "divider") return h(_sfc_main$4, { key: `divider-${index}` });
291
- return h(_sfc_main$2, {
292
- key: option.id ?? `section-${index}`,
293
- title: option.title
294
- }, { default: () => option.items.map((item, itemIndex) => renderItem(item, itemIndex)) });
295
- }
296
- return renderItem(option, index);
279
+ function endSlot(endContent) {
280
+ return endContent == null ? void 0 : { endContent: () => endContent };
281
+ }
282
+ function renderRadioOption(option, index) {
283
+ const { endContent, id, ...itemProps } = option;
284
+ return h(_sfc_main$9, {
285
+ key: id ?? `radio-${index}`,
286
+ ...itemProps
287
+ }, endSlot(endContent));
288
+ }
289
+ function renderCheckbox(item, index) {
290
+ const { checked, endContent, id, onChange, ...itemProps } = item;
291
+ return h(_sfc_main$10, {
292
+ "key": id ?? `checkbox-${index}`,
293
+ ...itemProps,
294
+ "modelValue": checked,
295
+ "onUpdate:modelValue": (value) => onChange?.(value)
296
+ }, endSlot(endContent));
297
+ }
298
+ function renderRadio(item, index) {
299
+ return h(_sfc_main$11, {
300
+ "key": item.id ?? `radio-group-${index}`,
301
+ "label": item.label,
302
+ "modelValue": item.value,
303
+ "onUpdate:modelValue": (value) => {
304
+ if (value != null) item.onChange?.(value);
305
+ },
306
+ ...item.hasCloseOnSelect == null ? {} : { hasCloseOnSelect: item.hasCloseOnSelect }
307
+ }, { default: () => item.items.map((option, optionIndex) => renderRadioOption(option, optionIndex)) });
297
308
  }
298
309
  function renderItem(item, index) {
299
310
  const { endContent, id, ...itemProps } = item;
300
311
  return h(_sfc_main$1, {
301
312
  key: id ?? `item-${index}`,
302
313
  ...itemProps
303
- }, endContent == null ? void 0 : { endContent: () => endContent });
314
+ }, endSlot(endContent));
315
+ }
316
+ function renderEntry(entry, index) {
317
+ if ("type" in entry && entry.type === "checkbox") return renderCheckbox(entry, index);
318
+ if ("type" in entry && entry.type === "radio") return renderRadio(entry, index);
319
+ return renderItem(entry, index);
320
+ }
321
+ /**
322
+ * Renders one data-mode entry. A section renders through `DropdownMenuGroup`,
323
+ * so both modes produce one `role="group"` named by its visible heading.
324
+ */
325
+ function renderOption(option, index) {
326
+ if ("type" in option && option.type === "divider") return h(_sfc_main$4, { key: `divider-${index}` });
327
+ if ("type" in option && option.type === "section") return h(_sfc_main$2, {
328
+ key: option.id ?? `section-${index}`,
329
+ title: option.title
330
+ }, { default: () => option.items.map((item, itemIndex) => renderEntry(item, itemIndex)) });
331
+ if ("type" in option && option.type === "checkbox") return renderCheckbox(option, index);
332
+ if ("type" in option && option.type === "radio") return renderRadio(option, index);
333
+ return renderItem(option, index);
304
334
  }
305
335
  /** Data-mode content of a `DropdownMenu`, as a component so the template stays flat. */
306
336
  const DropdownMenuItems = defineComponent({
@@ -319,6 +349,15 @@ const DropdownMenuItems = defineComponent({
319
349
  function isDisabled(el) {
320
350
  return el.getAttribute("aria-disabled") === "true" || el.hasAttribute("disabled");
321
351
  }
352
+ /** A row inside a drilled-away view stays mounted and must not take focus. */
353
+ function isHiddenRow(el, listEl) {
354
+ let current = el;
355
+ while (current != null && current !== listEl) {
356
+ if (current.hidden || current.getAttribute("aria-hidden") === "true") return true;
357
+ current = current.parentElement;
358
+ }
359
+ return false;
360
+ }
322
361
  /**
323
362
  * Roving focus over a menu's rows.
324
363
  *
@@ -334,7 +373,7 @@ function useMenuFocus(options) {
334
373
  function getItems() {
335
374
  const listEl = list.value;
336
375
  if (listEl == null) return [];
337
- return Array.from(listEl.querySelectorAll(MENU_ITEM_SELECTOR)).filter((el) => belongsHere(el, listEl) && !isDisabled(el));
376
+ return Array.from(listEl.querySelectorAll(MENU_ITEM_SELECTOR)).filter((el) => belongsHere(el, listEl) && !isDisabled(el) && !isHiddenRow(el, listEl));
338
377
  }
339
378
  function getCurrentIndex() {
340
379
  const active = document.activeElement;
@@ -446,7 +485,77 @@ function useMenuFocus(options) {
446
485
  focusItem,
447
486
  focusLast,
448
487
  getItems,
449
- handleKeyDown
488
+ handleKeyDown,
489
+ ownsEvent
490
+ };
491
+ }
492
+ //#endregion
493
+ //#region src/DropdownMenu/useMenuRegions.ts
494
+ /**
495
+ * Controls Tab can land on inside a header or footer, in DOM order.
496
+ *
497
+ * Hidden, `display: none`, and `aria-hidden` controls are skipped, so a field
498
+ * that the layout has put away is not a stop.
499
+ */
500
+ function tabbablesIn(region) {
501
+ if (region == null) return [];
502
+ return getFocusables(region).filter((element) => {
503
+ if (element.tabIndex < 0) return false;
504
+ let node = element;
505
+ while (node != null && node !== region.parentElement) {
506
+ if (node.hidden || node.getAttribute("aria-hidden") === "true") return false;
507
+ if (typeof window !== "undefined" && window.getComputedStyle(node).display === "none") return false;
508
+ node = node.parentElement;
509
+ }
510
+ return true;
511
+ });
512
+ }
513
+ function focusControl(element) {
514
+ if (element == null) return false;
515
+ element.focus();
516
+ return element.ownerDocument.activeElement === element;
517
+ }
518
+ /**
519
+ * Keyboard between a menu and the header and footer beside it.
520
+ *
521
+ * The menu is one Tab stop. Shift+Tab from a row skips that stop and lands on
522
+ * the header, because the menu element would otherwise catch the key first.
523
+ */
524
+ function useMenuRegions(options) {
525
+ function focusRegion(direction) {
526
+ const tabbables = tabbablesIn(direction === "previous" ? options.header.value : options.footer.value);
527
+ if (!focusControl(direction === "previous" ? tabbables[tabbables.length - 1] : tabbables[0])) {
528
+ options.closeMenu();
529
+ return false;
530
+ }
531
+ return true;
532
+ }
533
+ function onMenuTab(event) {
534
+ if (event.key !== "Tab" || !options.hasRegions.value) return false;
535
+ const tabbables = tabbablesIn(event.shiftKey ? options.header.value : options.footer.value);
536
+ if (tabbables.length === 0) {
537
+ options.closeMenu();
538
+ return true;
539
+ }
540
+ if (event.shiftKey && event.target !== options.menu.value) {
541
+ event.preventDefault();
542
+ event.stopPropagation();
543
+ if (!focusControl(tabbables[tabbables.length - 1])) options.closeMenu();
544
+ }
545
+ return true;
546
+ }
547
+ function onRegionKeydown(event) {
548
+ if (event.key !== "Tab") return;
549
+ const region = event.currentTarget;
550
+ if (!(region instanceof HTMLElement)) return;
551
+ const tabbables = tabbablesIn(region);
552
+ const exit = region === options.header.value ? event.shiftKey ? tabbables[0] : void 0 : event.shiftKey ? void 0 : tabbables[tabbables.length - 1];
553
+ if (exit != null && exit === region.ownerDocument.activeElement) options.closeMenu();
554
+ }
555
+ return {
556
+ focusRegion,
557
+ onMenuTab,
558
+ onRegionKeydown
450
559
  };
451
560
  }
452
561
  //#endregion
@@ -457,12 +566,22 @@ const _hoisted_2 = [
457
566
  "aria-labelledby",
458
567
  "aria-label"
459
568
  ];
460
- const _hoisted_3 = [
569
+ const _hoisted_3 = ["hidden", "inert"];
570
+ const _hoisted_4 = ["data-placement"];
571
+ const _hoisted_5 = [
572
+ "id",
573
+ "aria-labelledby",
574
+ "aria-label",
575
+ "data-region-focus"
576
+ ];
577
+ const _hoisted_6 = ["hidden", "inert"];
578
+ const _hoisted_7 = [
461
579
  "id",
462
580
  "aria-labelledby",
463
581
  "aria-label",
464
582
  "data-placement"
465
583
  ];
584
+ const _hoisted_8 = ["hidden", "inert"];
466
585
  const GAP = 4;
467
586
  const DEFAULT_MAX_WIDTH = 320;
468
587
  const DEFAULT_MAX_HEIGHT = "300px";
@@ -510,12 +629,20 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
510
629
  const triggerId = `astryx-dropdown-menu-trigger-${uid}`;
511
630
  const anchorRef = ref(null);
512
631
  const surfaceRef = ref(null);
632
+ const popoverRef = ref(null);
633
+ const headerRef = ref(null);
634
+ const footerRef = ref(null);
513
635
  const anchorWidth = ref(0);
636
+ const regionFocus = ref(false);
637
+ let suppressRegionRing = false;
514
638
  const shouldFocusOnOpen = shallowRef(false);
515
639
  const focusLastOnOpen = shallowRef(false);
516
640
  let openModality = "keyboard";
517
641
  let armedTriggerClickGuard = false;
518
642
  const isCompactTouch = useMediaQuery(COMPACT_TOUCH_QUERY);
643
+ const hasRegions = computed(() => slots.header != null || slots.footer != null);
644
+ const { drillIn, host, isDrilled } = useMenuDrillIn(isOpen, COMPACT_TOUCH_QUERY);
645
+ const positionedEl = computed(() => hasRegions.value ? popoverRef.value : surfaceRef.value);
519
646
  const isSheet = computed(() => props.presentation === "bottom-sheet" || props.presentation === "adaptive" && isCompactTouch.value);
520
647
  const sheetOpen = computed({
521
648
  get: () => isSheet.value && isOpen.value,
@@ -532,6 +659,11 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
532
659
  const provided = attrs.id;
533
660
  return typeof provided === "string" && provided.length > 0 ? provided : menuId;
534
661
  });
662
+ const menuLabel = computed(() => {
663
+ const explicit = attrs["aria-label"];
664
+ if (typeof explicit === "string" && explicit.length > 0) return explicit;
665
+ return typeof buttonProps.value.label === "string" ? buttonProps.value.label : void 0;
666
+ });
535
667
  const menuAriaLabel = computed(() => {
536
668
  const explicit = attrs["aria-label"];
537
669
  if (typeof explicit === "string") return explicit;
@@ -559,7 +691,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
559
691
  const layerIsOpen = ref(false);
560
692
  const { position, detach: detachPosition } = usePositionedLayer({
561
693
  anchor: anchorRef,
562
- layer: surfaceRef,
694
+ layer: positionedEl,
563
695
  isOpen: layerIsOpen,
564
696
  placement: computed(() => props.placement),
565
697
  alignment: computed(() => props.alignment),
@@ -597,10 +729,17 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
597
729
  onMatch: (index) => focusNav.focusItem(index)
598
730
  });
599
731
  useDismiss({
600
- container: surfaceRef,
732
+ container: positionedEl,
601
733
  trigger: anchorRef,
602
734
  isEnabled: computed(() => isOpen.value && !isSheet.value),
603
- onDismiss: closeMenu
735
+ onDismiss: closeMenu,
736
+ onEscape: () => {
737
+ if (drillIn.value.viewStack.length > 0) {
738
+ drillIn.value.pop();
739
+ return;
740
+ }
741
+ closeMenu();
742
+ }
604
743
  });
605
744
  function emitOpenChange(next) {
606
745
  localIsOpen.value = next;
@@ -608,7 +747,19 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
608
747
  emit("openChange", next);
609
748
  }
610
749
  function focusSurface() {
750
+ suppressRegionRing = openModality === "pointer";
611
751
  surfaceRef.value?.focus({ preventScroll: true });
752
+ suppressRegionRing = false;
753
+ }
754
+ function onSurfaceFocus(event) {
755
+ if (event.target !== surfaceRef.value) {
756
+ regionFocus.value = false;
757
+ return;
758
+ }
759
+ regionFocus.value = hasRegions.value && !suppressRegionRing;
760
+ }
761
+ function assignHost(element) {
762
+ host.value = element instanceof HTMLElement ? element : null;
612
763
  }
613
764
  function openMenu(modality) {
614
765
  if (isOpen.value) return;
@@ -644,7 +795,21 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
644
795
  const surface = surfaceRef.value;
645
796
  if (active == null || active === (typeof document !== "undefined" ? document.body : null) || surface != null && surface.contains(active)) getTriggerControl()?.focus({ preventScroll: true });
646
797
  });
798
+ const regions = useMenuRegions({
799
+ closeMenu,
800
+ footer: footerRef,
801
+ hasRegions,
802
+ header: headerRef,
803
+ menu: surfaceRef
804
+ });
647
805
  function onSurfaceKeydown(event) {
806
+ if (!focusNav.ownsEvent(event)) {
807
+ if (event.key === "Tab" && hasRegions.value) {
808
+ event.preventDefault();
809
+ regions.focusRegion(event.shiftKey ? "previous" : "next");
810
+ }
811
+ return;
812
+ }
648
813
  if (event.key === "Enter" || event.key === " ") {
649
814
  event.preventDefault();
650
815
  if (event.repeat) return;
@@ -652,6 +817,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
652
817
  if (focused instanceof HTMLElement && MENU_ITEM_ROLES.has(focused.getAttribute("role") ?? "")) activateMenuItem(focused, event);
653
818
  return;
654
819
  }
820
+ if (regions.onMenuTab(event)) return;
655
821
  if (event.key === "Tab") {
656
822
  closeMenu();
657
823
  return;
@@ -705,7 +871,11 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
705
871
  }));
706
872
  provide(dropdownMenuContextKey, {
707
873
  closeMenu,
874
+ drillIn,
875
+ focusRegion: regions.focusRegion,
876
+ hasRegions,
708
877
  isOpen,
878
+ menuLabel,
709
879
  menuSize
710
880
  });
711
881
  onMounted(() => {
@@ -745,35 +915,102 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
745
915
  ]))], 8, _hoisted_1), isSheet.value ? (openBlock(), createBlock(_sfc_main$6, {
746
916
  key: 0,
747
917
  "is-open": sheetOpen.value,
748
- "onUpdate:isOpen": _cache[0] || (_cache[0] = ($event) => sheetOpen.value = $event),
918
+ "onUpdate:isOpen": _cache[2] || (_cache[2] = ($event) => sheetOpen.value = $event),
749
919
  height: "hug",
750
920
  label: sheetLabel.value,
751
921
  padding: 2
752
922
  }, {
753
- default: withCtx(() => [createElementVNode("div", mergeProps({
754
- id: surfaceId.value,
755
- ref_key: "surfaceRef",
756
- ref: surfaceRef
757
- }, forwardedAttrs.value, {
758
- "aria-labelledby": menuAriaLabelledBy.value,
759
- "aria-label": menuAriaLabel.value,
760
- class: ["astryx-dropdown-menu is-sheet", unref(attrs).class],
761
- role: "menu",
762
- tabindex: "-1",
763
- onKeydown: onSurfaceKeydown
764
- }), [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
765
- key: 0,
766
- items: __props.items
767
- }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 16, _hoisted_2)]),
923
+ default: withCtx(() => [
924
+ unref(slots).header ? (openBlock(), createElementBlock("div", {
925
+ key: 0,
926
+ ref_key: "headerRef",
927
+ ref: headerRef,
928
+ class: "astryx-dropdown-menu-region",
929
+ onKeydown: _cache[0] || (_cache[0] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
930
+ }, [renderSlot(_ctx.$slots, "header")], 544)) : createCommentVNode("v-if", true),
931
+ createElementVNode("div", mergeProps({
932
+ id: surfaceId.value,
933
+ ref_key: "surfaceRef",
934
+ ref: surfaceRef
935
+ }, forwardedAttrs.value, {
936
+ "aria-labelledby": menuAriaLabelledBy.value,
937
+ "aria-label": menuAriaLabel.value,
938
+ class: ["astryx-dropdown-menu is-sheet", unref(attrs).class],
939
+ role: "menu",
940
+ tabindex: "-1",
941
+ onKeydown: onSurfaceKeydown
942
+ }), [createElementVNode("div", {
943
+ class: "astryx-dropdown-menu-tree",
944
+ hidden: unref(isDrilled) || void 0,
945
+ inert: unref(isDrilled) || void 0
946
+ }, [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
947
+ key: 0,
948
+ items: __props.items
949
+ }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_3), createElementVNode("div", {
950
+ ref: assignHost,
951
+ class: "astryx-dropdown-menu-tree"
952
+ }, null, 512)], 16, _hoisted_2),
953
+ unref(slots).footer ? (openBlock(), createElementBlock("div", {
954
+ key: 1,
955
+ ref_key: "footerRef",
956
+ ref: footerRef,
957
+ class: "astryx-dropdown-menu-region",
958
+ onKeydown: _cache[1] || (_cache[1] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
959
+ }, [renderSlot(_ctx.$slots, "footer")], 544)) : createCommentVNode("v-if", true)
960
+ ]),
768
961
  _: 3
769
962
  }, 8, ["is-open", "label"])) : (openBlock(), createBlock(Teleport, {
770
963
  key: 1,
771
964
  to: "body"
772
- }, [createVNode(Transition, {
773
- name: "astryx-dropdown-menu",
774
- persisted: ""
775
- }, {
776
- default: withCtx(() => [withDirectives(createElementVNode("div", mergeProps({
965
+ }, [createVNode(Transition, { name: "astryx-dropdown-menu" }, {
966
+ default: withCtx(() => [hasRegions.value ? withDirectives((openBlock(), createElementBlock("div", {
967
+ key: 0,
968
+ ref_key: "popoverRef",
969
+ ref: popoverRef,
970
+ class: "astryx-dropdown-menu-popover",
971
+ "data-placement": unref(position).placement,
972
+ style: normalizeStyle([surfaceStyle.value, unref(attrs).style])
973
+ }, [
974
+ unref(slots).header ? (openBlock(), createElementBlock("div", {
975
+ key: 0,
976
+ ref_key: "headerRef",
977
+ ref: headerRef,
978
+ class: "astryx-dropdown-menu-region",
979
+ onKeydown: _cache[3] || (_cache[3] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
980
+ }, [renderSlot(_ctx.$slots, "header")], 544)) : createCommentVNode("v-if", true),
981
+ createElementVNode("div", mergeProps({
982
+ id: surfaceId.value,
983
+ ref_key: "surfaceRef",
984
+ ref: surfaceRef
985
+ }, forwardedAttrs.value, {
986
+ "aria-labelledby": menuAriaLabelledBy.value,
987
+ "aria-label": menuAriaLabel.value,
988
+ class: ["astryx-dropdown-menu is-in-frame", unref(attrs).class],
989
+ "data-region-focus": regionFocus.value || void 0,
990
+ role: "menu",
991
+ tabindex: "0",
992
+ onFocus: onSurfaceFocus,
993
+ onKeydown: onSurfaceKeydown
994
+ }), [createElementVNode("div", {
995
+ class: "astryx-dropdown-menu-tree",
996
+ hidden: unref(isDrilled) || void 0,
997
+ inert: unref(isDrilled) || void 0
998
+ }, [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
999
+ key: 0,
1000
+ items: __props.items
1001
+ }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_6), createElementVNode("div", {
1002
+ ref: assignHost,
1003
+ class: "astryx-dropdown-menu-tree"
1004
+ }, null, 512)], 16, _hoisted_5),
1005
+ unref(slots).footer ? (openBlock(), createElementBlock("div", {
1006
+ key: 1,
1007
+ ref_key: "footerRef",
1008
+ ref: footerRef,
1009
+ class: "astryx-dropdown-menu-region",
1010
+ onKeydown: _cache[4] || (_cache[4] = (...args) => unref(regions).onRegionKeydown && unref(regions).onRegionKeydown(...args))
1011
+ }, [renderSlot(_ctx.$slots, "footer")], 544)) : createCommentVNode("v-if", true)
1012
+ ], 12, _hoisted_4)), [[vShow, isOpen.value]]) : withDirectives((openBlock(), createElementBlock("div", mergeProps({
1013
+ key: 1,
777
1014
  id: surfaceId.value,
778
1015
  ref_key: "surfaceRef",
779
1016
  ref: surfaceRef
@@ -785,15 +1022,23 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
785
1022
  role: "menu",
786
1023
  style: [surfaceStyle.value, unref(attrs).style],
787
1024
  tabindex: "-1",
1025
+ onFocus: onSurfaceFocus,
788
1026
  onKeydown: onSurfaceKeydown
789
- }), [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
1027
+ }), [createElementVNode("div", {
1028
+ class: "astryx-dropdown-menu-tree",
1029
+ hidden: unref(isDrilled) || void 0,
1030
+ inert: unref(isDrilled) || void 0
1031
+ }, [__props.items != null ? (openBlock(), createBlock(unref(DropdownMenuItems), {
790
1032
  key: 0,
791
1033
  items: __props.items
792
- }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 16, _hoisted_3), [[vShow, isOpen.value]])]),
1034
+ }, null, 8, ["items"])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)], 8, _hoisted_8), createElementVNode("div", {
1035
+ ref: assignHost,
1036
+ class: "astryx-dropdown-menu-tree"
1037
+ }, null, 512)], 16, _hoisted_7)), [[vShow, isOpen.value]])]),
793
1038
  _: 3
794
1039
  })]))], 64);
795
1040
  };
796
1041
  }
797
1042
  });
798
1043
  //#endregion
799
- export { _sfc_main$4 as a, useDropdownMenuContext as c, _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 };
1044
+ 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 };