@astryx-vue/core 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/AlertDialog/index.js +1 -1
  2. package/dist/{AlertDialog-BylcA4vV.js → AlertDialog-ovx4cBjM.js} +1 -1
  3. package/dist/AppShell/index.d.ts +2 -0
  4. package/dist/AppShell/index.js +2 -0
  5. package/dist/AppShell-EiGyPFbA.js +249 -0
  6. package/dist/AspectRatio/index.d.ts +2 -0
  7. package/dist/AspectRatio/index.js +2 -0
  8. package/dist/AspectRatio-Bij7e-tq.js +40 -0
  9. package/dist/AvatarGroup/index.d.ts +1 -1
  10. package/dist/Banner/index.d.ts +1 -1
  11. package/dist/BottomSheet/index.d.ts +1 -1
  12. package/dist/Button/index.d.ts +1 -1
  13. package/dist/ButtonGroup/index.d.ts +1 -1
  14. package/dist/Calendar/index.js +1 -1
  15. package/dist/{Calendar-BEyrkUtr.js → Calendar-BG7wEsro.js} +1 -1
  16. package/dist/Carousel/index.d.ts +2 -0
  17. package/dist/Carousel/index.js +2 -0
  18. package/dist/Carousel-BTtHkKea.js +363 -0
  19. package/dist/Chat/index.js +1 -1
  20. package/dist/{Chat-CO3mCs9A.js → Chat-DjNxw5gv.js} +2 -2
  21. package/dist/CheckboxInput/index.d.ts +1 -1
  22. package/dist/CheckboxInput/index.js +1 -1
  23. package/dist/{CheckboxInput-C86o3XoG.js → CheckboxInput-CMsEE1_4.js} +4 -2
  24. package/dist/CheckboxList/index.d.ts +1 -1
  25. package/dist/CheckboxList/index.js +1 -1
  26. package/dist/{CheckboxList-BL2sDOWK.js → CheckboxList-EsIEXjK_.js} +2 -2
  27. package/dist/Citation/index.js +1 -1
  28. package/dist/{Citation-BqwJvw7o.js → Citation-DijdbUUu.js} +2 -2
  29. package/dist/ClickableCard/index.d.ts +2 -0
  30. package/dist/ClickableCard/index.js +2 -0
  31. package/dist/ClickableCard-Bhds4RRe.js +112 -0
  32. package/dist/Code/index.d.ts +3 -2
  33. package/dist/Code/index.js +4 -2
  34. package/dist/Code-yb_KOFtJ.js +299 -0
  35. package/dist/{CodeBlock-BQdooQy2.js → CodeBlock-CxTb6j9_.js} +8 -2
  36. package/dist/Collapsible/index.d.ts +2 -2
  37. package/dist/Collapsible/index.js +2 -2
  38. package/dist/Collapsible-9MC08X39.js +192 -0
  39. package/dist/CommandPalette/index.d.ts +2 -0
  40. package/dist/CommandPalette/index.js +2 -0
  41. package/dist/CommandPalette-BD2iODF5.js +489 -0
  42. package/dist/ComplexSelector/index.d.ts +2 -0
  43. package/dist/ComplexSelector/index.js +2 -0
  44. package/dist/ComplexSelector-D9iXd5cH.js +293 -0
  45. package/dist/ContextMenu/index.d.ts +1 -1
  46. package/dist/ContextMenu/index.js +1 -1
  47. package/dist/{ContextMenu-dA-ppaRQ.js → ContextMenu-HS_WqYIg.js} +1 -1
  48. package/dist/DateInput/index.d.ts +1 -1
  49. package/dist/DateInput/index.js +1 -1
  50. package/dist/{DateInput-BOIb0zAp.js → DateInput-DE2TN1Rq.js} +2 -2
  51. package/dist/DateRangeInput/index.d.ts +1 -1
  52. package/dist/DateRangeInput/index.js +1 -1
  53. package/dist/{DateRangeInput-DLcbgUBi.js → DateRangeInput-1bhPGG2s.js} +4 -4
  54. package/dist/DateTimeInput/index.d.ts +1 -1
  55. package/dist/DateTimeInput/index.js +1 -1
  56. package/dist/{DateTimeInput-RitYX_Yx.js → DateTimeInput-SnPdgk6P.js} +4 -4
  57. package/dist/Divider/index.d.ts +1 -1
  58. package/dist/DropdownMenu/index.js +1 -1
  59. package/dist/{DropdownMenu-B0gogrvG.js → DropdownMenu-UJGych6v.js} +1 -1
  60. package/dist/EmptyState/index.js +1 -1
  61. package/dist/{EmptyState-Bhlqgsg4.js → EmptyState-CUJdTYKV.js} +1 -1
  62. package/dist/Field/index.js +2 -2
  63. package/dist/{Field-VlTBsIEo.js → Field-8zRxzDHE.js} +11 -3
  64. package/dist/{FieldLabel-B1NRyQlS.js → FieldLabel-DmmJyX7w.js} +6 -1
  65. package/dist/FileInput/index.d.ts +1 -1
  66. package/dist/FileInput/index.js +1 -1
  67. package/dist/{FileInput-CYvEV503.js → FileInput-BQiwE-GB.js} +3 -3
  68. package/dist/FormLayout/index.d.ts +2 -0
  69. package/dist/FormLayout/index.js +2 -0
  70. package/dist/FormLayout-D47FjiOq.js +40 -0
  71. package/dist/HoverCard/index.d.ts +1 -1
  72. package/dist/Icon/index.d.ts +3 -0
  73. package/dist/Icon/index.js +2 -0
  74. package/dist/{Icon-5MdZQ18k.js → Icon-Dfr4k6-S.js} +1 -1
  75. package/dist/Layout/index.d.ts +2 -0
  76. package/dist/Layout/index.js +3 -0
  77. package/dist/Layout-Bed3kP0M.js +56 -0
  78. package/dist/LayoutPanel-C34uOq3e.js +358 -0
  79. package/dist/Lightbox/index.d.ts +2 -0
  80. package/dist/Lightbox/index.js +2 -0
  81. package/dist/Lightbox-CshKoB0r.js +384 -0
  82. package/dist/Link/index.d.ts +1 -1
  83. package/dist/List/index.d.ts +1 -1
  84. package/dist/Markdown/index.d.ts +1 -1
  85. package/dist/Markdown/index.js +1 -1
  86. package/dist/{Markdown-Dnlp8cVx.js → Markdown-D-Ua055V.js} +2 -2
  87. package/dist/MetadataList/index.js +1 -1
  88. package/dist/{MetadataList-DIsqS1Qb.js → MetadataList-sYph_d8Q.js} +1 -1
  89. package/dist/MobileNav/index.d.ts +1 -1
  90. package/dist/MobileNav/index.js +1 -1
  91. package/dist/{MobileNavToggle-aUZiDwHm.js → MobileNavToggle-DD9D01aj.js} +19 -12
  92. package/dist/MoreMenu/index.d.ts +1 -1
  93. package/dist/MoreMenu/index.js +1 -1
  94. package/dist/{MoreMenu-BXL6Dqsu.js → MoreMenu-BVrK5kkk.js} +1 -1
  95. package/dist/MultiSelector/index.d.ts +1 -1
  96. package/dist/MultiSelector/index.js +1 -1
  97. package/dist/{MultiSelector-Bh8or2S6.js → MultiSelector-DiYov9sF.js} +3 -3
  98. package/dist/NavItem/index.d.ts +1 -1
  99. package/dist/NavMenu/index.d.ts +1 -1
  100. package/dist/NavMenu/index.js +1 -1
  101. package/dist/{NavMenuItem-mzNQESpB.js → NavMenuItem-B-k7olt5.js} +2 -1
  102. package/dist/NumberInput/index.d.ts +1 -1
  103. package/dist/NumberInput/index.js +1 -1
  104. package/dist/{NumberInput-C3S-4dIu.js → NumberInput-CTYiQxHq.js} +1 -1
  105. package/dist/Outline/index.d.ts +2 -0
  106. package/dist/Outline/index.js +2 -0
  107. package/dist/Outline-DQfEBxlc.js +325 -0
  108. package/dist/OverflowList/index.d.ts +1 -1
  109. package/dist/OverflowList/index.js +1 -1
  110. package/dist/{OverflowList-Kr4iJrNV.js → OverflowList-BU5VCntl.js} +2 -2
  111. package/dist/Overlay/index.d.ts +1 -1
  112. package/dist/Pagination/index.js +1 -1
  113. package/dist/{Pagination-BRStpeSB.js → Pagination-HdhtykeF.js} +2 -2
  114. package/dist/Popover/index.d.ts +2 -1
  115. package/dist/Radio/index.d.ts +1 -1
  116. package/dist/Radio/index.js +1 -1
  117. package/dist/{RadioGroup-DS6oTV_j.js → RadioGroup-BqjdSCfJ.js} +1 -1
  118. package/dist/RadioList/index.d.ts +1 -1
  119. package/dist/RadioList/index.js +1 -1
  120. package/dist/{RadioList-pwr93I-z.js → RadioList-DI8ujXcT.js} +1 -1
  121. package/dist/Resizable/index.d.ts +2 -0
  122. package/dist/Resizable/index.js +2 -0
  123. package/dist/Resizable-BhSMfO5B.js +261 -0
  124. package/dist/ScrollableArea/index.d.ts +2 -0
  125. package/dist/ScrollableArea/index.js +2 -0
  126. package/dist/ScrollableArea-DQDYjnxO.js +78 -0
  127. package/dist/Section/index.d.ts +2 -0
  128. package/dist/Section/index.js +2 -0
  129. package/dist/Section-C48Wqfc7.js +68 -0
  130. package/dist/SelectableCard/index.d.ts +2 -0
  131. package/dist/SelectableCard/index.js +2 -0
  132. package/dist/SelectableCard-Bj5s_tIN.js +108 -0
  133. package/dist/Selector/index.d.ts +1 -1
  134. package/dist/Selector/index.js +1 -1
  135. package/dist/{Selector-DvEUIVEC.js → Selector-Da-2BO3q.js} +1 -1
  136. package/dist/SideNav/index.d.ts +1 -1
  137. package/dist/SideNav/index.js +2 -1
  138. package/dist/{SideNav-B7LX4RcP.js → SideNav-B-Om6Bz3.js} +49 -27
  139. package/dist/Slider/index.js +1 -1
  140. package/dist/{Slider-DTnWxtnb.js → Slider-D8h_RKcF.js} +1 -1
  141. package/dist/Stepper/index.d.ts +2 -0
  142. package/dist/Stepper/index.js +2 -0
  143. package/dist/Stepper-BZ_8SEZt.js +423 -0
  144. package/dist/Switch/index.d.ts +1 -1
  145. package/dist/Switch/index.js +1 -1
  146. package/dist/{Switch-CNdnr5TP.js → Switch-SesQzPGZ.js} +4 -2
  147. package/dist/TabList/index.d.ts +2 -2
  148. package/dist/TabList/index.js +2 -2
  149. package/dist/TabList-Cnc2Hs1H.js +380 -0
  150. package/dist/Table/index.d.ts +2 -1
  151. package/dist/Table/index.js +1 -1
  152. package/dist/{Table-D5zWaITo.js → Table-D-LhAy_J.js} +6 -6
  153. package/dist/Text/index.d.ts +3 -2
  154. package/dist/Text/index.js +1 -1
  155. package/dist/{Text-CKd7e3gK.js → Text-BHVghsWo.js} +12 -2
  156. package/dist/TextArea/index.d.ts +1 -1
  157. package/dist/TextArea/index.js +1 -1
  158. package/dist/{TextArea-BL0NuB99.js → TextArea-Cv9UVbzS.js} +5 -3
  159. package/dist/TextInput/index.d.ts +1 -1
  160. package/dist/TextInput/index.js +1 -1
  161. package/dist/{TextInput-B0IKC7g5.js → TextInput-BasnjVvy.js} +5 -3
  162. package/dist/Theme/index.d.ts +2 -0
  163. package/dist/Theme/index.js +2 -0
  164. package/dist/Theme-BuUiiJNr.js +429 -0
  165. package/dist/Thumbnail/index.js +1 -1
  166. package/dist/{Thumbnail-DMOgWncm.js → Thumbnail-Dc1UpykG.js} +2 -2
  167. package/dist/{TimeField-DeQ1ukHl.js → TimeField-C7t9Knq9.js} +2 -2
  168. package/dist/TimeInput/index.d.ts +1 -1
  169. package/dist/TimeInput/index.js +1 -1
  170. package/dist/{TimeInput-jb1nLqZk.js → TimeInput-BXxCOY98.js} +2 -2
  171. package/dist/Timer/index.d.ts +2 -0
  172. package/dist/Timer/index.js +2 -0
  173. package/dist/Timer-B7GV6hqd.js +134 -0
  174. package/dist/Timestamp/index.d.ts +1 -1
  175. package/dist/Timestamp/index.js +1 -1
  176. package/dist/{Timestamp-DrWwVQBL.js → Timestamp-DlZSmgCJ.js} +3 -3
  177. package/dist/ToggleButton/index.d.ts +1 -1
  178. package/dist/Token/index.d.ts +1 -1
  179. package/dist/Token/index.js +1 -1
  180. package/dist/{Token-CV2J94bn.js → Token-wt4e80IM.js} +1 -1
  181. package/dist/Tokenizer/index.d.ts +1 -1
  182. package/dist/Tokenizer/index.js +1 -1
  183. package/dist/{Tokenizer-DF9r4hTW.js → Tokenizer-nmTqdS9n.js} +3 -3
  184. package/dist/Toolbar/index.d.ts +1 -1
  185. package/dist/Tooltip/index.d.ts +1 -1
  186. package/dist/TopNav/index.d.ts +1 -1
  187. package/dist/TopNav/index.js +1 -1
  188. package/dist/{TopNav-BH_s3uap.js → TopNav-notp-mJx.js} +58 -32
  189. package/dist/TreeList/index.js +1 -1
  190. package/dist/{TreeList-D9cR-w7r.js → TreeList-s1xBQ0qq.js} +2 -2
  191. package/dist/Typeahead/index.d.ts +1 -1
  192. package/dist/Typeahead/index.js +1 -1
  193. package/dist/{Typeahead-s4DC1Qem.js → Typeahead-VAuiCurV.js} +3 -3
  194. package/dist/composables/index.d.ts +3 -2
  195. package/dist/composables/index.js +5 -2
  196. package/dist/composables-CVfjp9h4.js +502 -0
  197. package/dist/context-BjNya0v8.js +19 -0
  198. package/dist/context-Cfjh8te1.js +29 -0
  199. package/dist/{context-BshXcNYX.js → context-Dbo22sck.js} +138 -0
  200. package/dist/context-O2Vb8cJl.js +57 -0
  201. package/dist/index-1AZ4KZhg.d.ts +96 -0
  202. package/dist/index-1uRMrk63.d.ts +54 -0
  203. package/dist/{index-FEy8qFSD.d.ts → index-BHqRH7QW.d.ts} +2 -2
  204. package/dist/index-BMrggCw-.d.ts +52 -0
  205. package/dist/{index-BlWLperN.d.ts → index-BUXNRekN.d.ts} +2 -2
  206. package/dist/index-Bainr_3n.d.ts +31 -0
  207. package/dist/index-Be1czg3M.d.ts +167 -0
  208. package/dist/{index-Dbmgcm8a.d.ts → index-BeR-1LgF.d.ts} +2 -0
  209. package/dist/{index-DXDGk38y.d.ts → index-Bn_odHQ9.d.ts} +1 -1
  210. package/dist/index-BrJzFA5X.d.ts +38 -0
  211. package/dist/{index-AkMWQ97a.d.ts → index-BtPZKO20.d.ts} +3 -3
  212. package/dist/index-Bu0Zd1uw.d.ts +38 -0
  213. package/dist/{index-BDZCJ9ri.d.ts → index-BuubzuE8.d.ts} +2 -2
  214. package/dist/index-By2mSzUA.d.ts +67 -0
  215. package/dist/index-C59PdX9L.d.ts +141 -0
  216. package/dist/{index-BkIgRYGz.d.ts → index-C5p2NeCr.d.ts} +2 -2
  217. package/dist/{index-CQ9F1f_F.d.ts → index-C6iJwTL0.d.ts} +324 -145
  218. package/dist/{index-B4OOtNP8.d.ts → index-C7mxUcDR.d.ts} +2 -2
  219. package/dist/{index-BSRk8MFK.d.ts → index-C8wDPDcP.d.ts} +1 -1
  220. package/dist/index-CDdRQQF3.d.ts +170 -0
  221. package/dist/index-COqjznX0.d.ts +47 -0
  222. package/dist/index-CRizexSC.d.ts +147 -0
  223. package/dist/{index-Bc0dgVM5.d.ts → index-CTolyeii.d.ts} +4 -4
  224. package/dist/index-CVn0GBdB.d.ts +115 -0
  225. package/dist/index-Cm_TiLXU.d.ts +22 -0
  226. package/dist/index-Cn-sSds-.d.ts +68 -0
  227. package/dist/index-CsVS37na.d.ts +81 -0
  228. package/dist/{index-5R_pi3eT.d.ts → index-D-ZuubCK.d.ts} +3 -3
  229. package/dist/{index-g03bmR4K.d.ts → index-D0TlUOtG.d.ts} +2 -2
  230. package/dist/index-DA52oIdw.d.ts +171 -0
  231. package/dist/{index-D3V7yRUP.d.ts → index-DOUEn7V0.d.ts} +4 -4
  232. package/dist/{index-CCA4R0Mf.d.ts → index-DT9S92sh.d.ts} +31 -6
  233. package/dist/{index-CR6sUmRT.d.ts → index-DXSs3rwa.d.ts} +3 -107
  234. package/dist/{index--dh0s8Li.d.ts → index-DfgHJE7H.d.ts} +1 -1
  235. package/dist/{index-CNcQmDrK.d.ts → index-DoFCm2Q2.d.ts} +71 -0
  236. package/dist/{index-mQ6EPmaG.d.ts → index-DsyKhauk.d.ts} +78 -9
  237. package/dist/{index-12ObcW99.d.ts → index-DtjAdYEc.d.ts} +2 -2
  238. package/dist/{index-Byar3h1e.d.ts → index-HV6W3xCx.d.ts} +1 -1
  239. package/dist/{index-CsJpQElv.d.ts → index-NzLDrOkk.d.ts} +2 -2
  240. package/dist/{index-BnNh5Iml.d.ts → index-SMh42NI8.d.ts} +99 -2
  241. package/dist/{index-Q4gqBSIZ.d.ts → index-fa72tWIU.d.ts} +1 -1
  242. package/dist/{index-Bqb_Fyju.d.ts → index-jdjcb3Js.d.ts} +2 -2
  243. package/dist/{index-BhYFxnjV.d.ts → index-kaKBOZSU.d.ts} +2 -2
  244. package/dist/index-nKlTsNfV.d.ts +42 -0
  245. package/dist/index.d.ts +84 -63
  246. package/dist/index.js +118 -91
  247. package/dist/locale/index.d.ts +1 -1
  248. package/dist/locale/index.js +1 -1
  249. package/dist/size-BuTzpgnR.d.ts +14 -0
  250. package/dist/size-xcIqExkS.js +79 -0
  251. package/dist/syntaxTheme-Bcs1YMF7.d.ts +38 -0
  252. package/dist/syntaxTheme-ClpWALZX.js +75 -0
  253. package/dist/types-Bt-lSgYX.d.ts +65 -0
  254. package/dist/types-DZoEm_DG.d.ts +97 -0
  255. package/dist/{index-Bovw9_8d.d.ts → types-Db3Owy8Q.d.ts} +1 -36
  256. package/dist/types-JktRxujg.d.ts +107 -0
  257. package/dist/useAppShellMobile-DTsyuAJ4.js +19 -0
  258. package/dist/useClickableContainer-DyNpnSEa.js +112 -0
  259. package/dist/useResizable-CeESZS1v.d.ts +72 -0
  260. package/dist/useScrollableArea-DDk_CluT.js +172 -0
  261. package/package.json +73 -1
  262. package/styles/app-shell.css +151 -0
  263. package/styles/aspect-ratio.css +49 -0
  264. package/styles/card.css +5 -1
  265. package/styles/carousel.css +120 -0
  266. package/styles/clickable-card.css +101 -0
  267. package/styles/collapsible.css +37 -0
  268. package/styles/command-palette.css +183 -0
  269. package/styles/complex-selector.css +114 -0
  270. package/styles/field.css +12 -0
  271. package/styles/form-layout.css +31 -0
  272. package/styles/heading.css +25 -19
  273. package/styles/layout.css +280 -0
  274. package/styles/lightbox.css +144 -0
  275. package/styles/media-theme.css +51 -0
  276. package/styles/outline.css +124 -0
  277. package/styles/resize-handle.css +128 -0
  278. package/styles/scrollable-area.css +50 -0
  279. package/styles/section.css +60 -0
  280. package/styles/side-nav.css +26 -0
  281. package/styles/stepper.css +357 -0
  282. package/styles/tab-menu.css +91 -0
  283. package/styles/text.css +63 -14
  284. package/styles/theme.css +29 -0
  285. package/styles/timer.css +34 -0
  286. package/styles.css +18 -0
  287. package/dist/Collapsible-BYg9soTk.js +0 -102
  288. package/dist/TabList-LV1U4ZD6.js +0 -184
  289. package/dist/composables-Dq9RS33w.js +0 -111
  290. package/dist/index-BzqRns96.d.ts +0 -64
  291. package/dist/index-TnaIHsCS.d.ts +0 -87
@@ -0,0 +1,384 @@
1
+ import { t as useAnnounce } from "./announce-Cnio10Wk.js";
2
+ import { t as useScrollLock } from "./scrollLock-BzIvIimL.js";
3
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
4
+ import { t as _sfc_main$1 } from "./IconButton-BNQuz9W_.js";
5
+ import { t as _sfc_main$2 } from "./Icon-Dfr4k6-S.js";
6
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, onBeforeUnmount, openBlock, ref, toDisplayString, toRef, unref, useTemplateRef, watch, withCtx } from "vue";
7
+ import "../styles/lightbox.css";
8
+ //#region src/Lightbox/Lightbox.vue
9
+ const _hoisted_1 = ["aria-label"];
10
+ const _hoisted_2 = { class: "astryx-lightbox__media" };
11
+ const _hoisted_3 = [
12
+ "data-zoomable",
13
+ "data-zoomed",
14
+ "data-dragging",
15
+ "role",
16
+ "tabindex",
17
+ "aria-pressed",
18
+ "aria-label"
19
+ ];
20
+ const _hoisted_4 = [
21
+ "src",
22
+ "aria-label",
23
+ "autoplay"
24
+ ];
25
+ const _hoisted_5 = [
26
+ "src",
27
+ "alt",
28
+ "data-dragging"
29
+ ];
30
+ const _hoisted_6 = {
31
+ key: 0,
32
+ class: "astryx-lightbox__caption"
33
+ };
34
+ const _hoisted_7 = {
35
+ key: 2,
36
+ class: "astryx-lightbox__counter"
37
+ };
38
+ const _sfc_main = /*@__PURE__*/ defineComponent({
39
+ name: "AstryxLightbox",
40
+ inheritAttrs: false,
41
+ __name: "Lightbox",
42
+ props: {
43
+ isOpen: { type: Boolean },
44
+ media: {},
45
+ index: {},
46
+ defaultIndex: { default: 0 },
47
+ hasZoom: {
48
+ type: Boolean,
49
+ default: false
50
+ },
51
+ hasAutoPlay: {
52
+ type: Boolean,
53
+ default: false
54
+ }
55
+ },
56
+ emits: ["update:isOpen", "update:index"],
57
+ setup(__props, { emit: __emit }) {
58
+ const props = __props;
59
+ const emit = __emit;
60
+ const messages = useAstryxMessages();
61
+ const announce = useAnnounce();
62
+ const dialogRef = useTemplateRef("dialog");
63
+ const containerRef = ref(null);
64
+ useScrollLock(toRef(props, "isOpen"));
65
+ const mediaList = computed(() => Array.isArray(props.media) ? props.media : [props.media]);
66
+ const isGallery = computed(() => Array.isArray(props.media) && mediaList.value.length > 1);
67
+ const internalIndex = ref(props.defaultIndex);
68
+ const index = computed(() => {
69
+ const raw = props.index ?? internalIndex.value;
70
+ const last = Math.max(0, mediaList.value.length - 1);
71
+ return Math.min(Math.max(0, raw), last);
72
+ });
73
+ const current = computed(() => mediaList.value[index.value]);
74
+ const isVideo = computed(() => current.value?.type === "video");
75
+ const canPrev = computed(() => index.value > 0);
76
+ const canNext = computed(() => index.value < mediaList.value.length - 1);
77
+ const zoom = ref(1);
78
+ const pan = ref({
79
+ x: 0,
80
+ y: 0
81
+ });
82
+ const dragging = ref(false);
83
+ const didDrag = ref(false);
84
+ const dragStart = {
85
+ x: 0,
86
+ y: 0,
87
+ panX: 0,
88
+ panY: 0
89
+ };
90
+ let restoreFocus = null;
91
+ const zoomable = computed(() => props.hasZoom && !isVideo.value);
92
+ const imageTransform = computed(() => zoom.value === 1 ? void 0 : `scale(${zoom.value}) translate(${pan.value.x / zoom.value}px, ${pan.value.y / zoom.value}px)`);
93
+ function close() {
94
+ emit("update:isOpen", false);
95
+ }
96
+ function setIndex(next) {
97
+ const last = Math.max(0, mediaList.value.length - 1);
98
+ const clamped = Math.min(Math.max(0, next), last);
99
+ internalIndex.value = clamped;
100
+ emit("update:index", clamped);
101
+ }
102
+ function resetZoom() {
103
+ zoom.value = 1;
104
+ pan.value = {
105
+ x: 0,
106
+ y: 0
107
+ };
108
+ dragging.value = false;
109
+ }
110
+ function applyZoom(next) {
111
+ if (!zoomable.value || next === zoom.value) return;
112
+ zoom.value = next;
113
+ pan.value = {
114
+ x: 0,
115
+ y: 0
116
+ };
117
+ announce(next > 1 ? messages.value.lightbox.zoomedIn : messages.value.lightbox.zoomedOut);
118
+ }
119
+ function toggleZoom() {
120
+ applyZoom(zoom.value === 1 ? 2 : 1);
121
+ }
122
+ function onCancel(event) {
123
+ event.preventDefault();
124
+ close();
125
+ }
126
+ function onBackdropClick(event) {
127
+ if (didDrag.value) {
128
+ didDrag.value = false;
129
+ return;
130
+ }
131
+ if (event.target === event.currentTarget || event.target === containerRef.value) close();
132
+ }
133
+ function onKeyDown(event) {
134
+ if (zoomable.value) {
135
+ if (event.key === "+" || event.key === "=") {
136
+ event.preventDefault();
137
+ applyZoom(2);
138
+ return;
139
+ }
140
+ if (event.key === "-" || event.key === "_") {
141
+ event.preventDefault();
142
+ applyZoom(1);
143
+ return;
144
+ }
145
+ const step = 50;
146
+ const offsets = {
147
+ ArrowDown: [0, -50],
148
+ ArrowLeft: [step, 0],
149
+ ArrowRight: [-50, 0],
150
+ ArrowUp: [0, step]
151
+ };
152
+ const offset = zoom.value > 1 ? offsets[event.key] : void 0;
153
+ if (offset != null) {
154
+ event.preventDefault();
155
+ pan.value = {
156
+ x: pan.value.x + offset[0],
157
+ y: pan.value.y + offset[1]
158
+ };
159
+ return;
160
+ }
161
+ }
162
+ if (event.key === "ArrowLeft" && canPrev.value) {
163
+ event.preventDefault();
164
+ setIndex(index.value - 1);
165
+ } else if (event.key === "ArrowRight" && canNext.value) {
166
+ event.preventDefault();
167
+ setIndex(index.value + 1);
168
+ }
169
+ }
170
+ function onImageKeyDown(event) {
171
+ if (event.key === "Enter" || event.key === " ") {
172
+ event.preventDefault();
173
+ toggleZoom();
174
+ }
175
+ }
176
+ function onPointerDown(event) {
177
+ if (!zoomable.value || zoom.value <= 1) return;
178
+ dragging.value = true;
179
+ didDrag.value = false;
180
+ dragStart.x = event.clientX;
181
+ dragStart.y = event.clientY;
182
+ dragStart.panX = pan.value.x;
183
+ dragStart.panY = pan.value.y;
184
+ }
185
+ function onPointerMove(event) {
186
+ if (!dragging.value) return;
187
+ didDrag.value = true;
188
+ pan.value = {
189
+ x: dragStart.panX + event.clientX - dragStart.x,
190
+ y: dragStart.panY + event.clientY - dragStart.y
191
+ };
192
+ }
193
+ function onPointerUp() {
194
+ dragging.value = false;
195
+ }
196
+ watch(() => props.isOpen, (open) => {
197
+ const dialog = dialogRef.value;
198
+ if (dialog == null) return;
199
+ if (open && !dialog.open) {
200
+ const active = document.activeElement;
201
+ restoreFocus = active instanceof HTMLElement ? active : null;
202
+ dialog.showModal();
203
+ } else if (!open && dialog.open) {
204
+ dialog.close();
205
+ resetZoom();
206
+ restoreFocus?.focus();
207
+ restoreFocus = null;
208
+ }
209
+ }, { flush: "post" });
210
+ watch(index, () => {
211
+ resetZoom();
212
+ if (!props.isOpen) return;
213
+ const item = current.value;
214
+ if (item == null || mediaList.value.length < 2) return;
215
+ const position = {
216
+ index: index.value + 1,
217
+ total: mediaList.value.length
218
+ };
219
+ announce(item.alt ? messages.value.lightbox.mediaPosition(item.alt, position.index, position.total) : messages.value.lightbox.imagePosition(position.index, position.total));
220
+ });
221
+ watch([dragging], ([isDragging]) => {
222
+ if (!isDragging) return;
223
+ window.addEventListener("pointermove", onPointerMove);
224
+ window.addEventListener("pointerup", onPointerUp);
225
+ }, { flush: "post" });
226
+ onBeforeUnmount(() => {
227
+ window.removeEventListener("pointermove", onPointerMove);
228
+ window.removeEventListener("pointerup", onPointerUp);
229
+ });
230
+ watch(dragging, (isDragging, wasDragging) => {
231
+ if (wasDragging && !isDragging) {
232
+ window.removeEventListener("pointermove", onPointerMove);
233
+ window.removeEventListener("pointerup", onPointerUp);
234
+ }
235
+ });
236
+ return (_ctx, _cache) => {
237
+ return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" eslint-disable-next-line vue-a11y/click-events-have-key-events, vue-a11y/no-static-element-interactions -- 点在 dialog 自身上等于点遮罩;键盘走 Escape 和方向键。 "), current.value ? (openBlock(), createElementBlock("dialog", {
238
+ key: 0,
239
+ ref: "dialog",
240
+ class: normalizeClass(["astryx-lightbox", _ctx.$attrs.class]),
241
+ style: normalizeStyle(_ctx.$attrs.style),
242
+ "aria-label": current.value.alt || unref(messages).lightbox.mediaViewer,
243
+ "data-component": "lightbox",
244
+ onCancel,
245
+ onClick: onBackdropClick,
246
+ onKeydown: onKeyDown
247
+ }, [createElementVNode("div", {
248
+ ref_key: "containerRef",
249
+ ref: containerRef,
250
+ class: "astryx-lightbox__container"
251
+ }, [
252
+ createVNode(_sfc_main$1, {
253
+ class: "astryx-lightbox__close",
254
+ variant: "ghost",
255
+ size: "sm",
256
+ label: unref(messages).lightbox.close,
257
+ onClick: close
258
+ }, {
259
+ default: withCtx(() => [createVNode(_sfc_main$2, {
260
+ icon: "close",
261
+ size: "sm"
262
+ })]),
263
+ _: 1
264
+ }, 8, ["label"]),
265
+ isGallery.value ? (openBlock(), createBlock(_sfc_main$1, {
266
+ key: 0,
267
+ class: "astryx-lightbox__nav astryx-lightbox__nav--prev",
268
+ variant: "ghost",
269
+ size: "sm",
270
+ label: unref(messages).lightbox.previous,
271
+ "is-disabled": !canPrev.value,
272
+ onClick: _cache[0] || (_cache[0] = ($event) => setIndex(index.value - 1))
273
+ }, {
274
+ default: withCtx(() => [createVNode(_sfc_main$2, {
275
+ icon: "chevronLeft",
276
+ size: "sm"
277
+ })]),
278
+ _: 1
279
+ }, 8, ["label", "is-disabled"])) : createCommentVNode("v-if", true),
280
+ createElementVNode("div", _hoisted_2, [
281
+ createCommentVNode(" eslint-disable-next-line vue-a11y/no-static-element-interactions -- 可缩放时 role、tabindex 和 aria 从脚本绑上;视频没有这些交互。 "),
282
+ createElementVNode("div", {
283
+ class: "astryx-lightbox__frame",
284
+ "data-zoomable": zoomable.value || void 0,
285
+ "data-zoomed": zoom.value > 1 || void 0,
286
+ "data-dragging": dragging.value || void 0,
287
+ role: zoomable.value ? "button" : void 0,
288
+ tabindex: zoomable.value ? 0 : void 0,
289
+ "aria-pressed": zoomable.value ? zoom.value > 1 : void 0,
290
+ "aria-label": zoomable.value ? unref(messages).lightbox.zoom : void 0,
291
+ onDblclick: _cache[1] || (_cache[1] = ($event) => isVideo.value ? void 0 : toggleZoom()),
292
+ onKeydown: _cache[2] || (_cache[2] = ($event) => zoomable.value ? onImageKeyDown($event) : void 0),
293
+ onPointerdown: _cache[3] || (_cache[3] = ($event) => isVideo.value ? void 0 : onPointerDown($event))
294
+ }, [createCommentVNode(" eslint-disable-next-line vue-a11y/media-has-caption -- 说明文字在灯箱 caption 里;媒体文件本身不带字幕轨。 "), isVideo.value ? (openBlock(), createElementBlock("video", {
295
+ key: 0,
296
+ class: "astryx-lightbox__video",
297
+ src: current.value.src,
298
+ "aria-label": current.value.alt,
299
+ controls: "",
300
+ autoplay: __props.hasAutoPlay
301
+ }, null, 8, _hoisted_4)) : (openBlock(), createElementBlock("img", {
302
+ key: 1,
303
+ class: "astryx-lightbox__image",
304
+ src: current.value.src,
305
+ alt: current.value.alt,
306
+ draggable: "false",
307
+ style: normalizeStyle(imageTransform.value ? { transform: imageTransform.value } : void 0),
308
+ "data-dragging": dragging.value || void 0
309
+ }, null, 12, _hoisted_5))], 40, _hoisted_3),
310
+ current.value.caption ? (openBlock(), createElementBlock("p", _hoisted_6, toDisplayString(current.value.caption), 1)) : createCommentVNode("v-if", true)
311
+ ]),
312
+ isGallery.value ? (openBlock(), createBlock(_sfc_main$1, {
313
+ key: 1,
314
+ class: "astryx-lightbox__nav astryx-lightbox__nav--next",
315
+ variant: "ghost",
316
+ size: "sm",
317
+ label: unref(messages).lightbox.next,
318
+ "is-disabled": !canNext.value,
319
+ onClick: _cache[4] || (_cache[4] = ($event) => setIndex(index.value + 1))
320
+ }, {
321
+ default: withCtx(() => [createVNode(_sfc_main$2, {
322
+ icon: "chevronRight",
323
+ size: "sm"
324
+ })]),
325
+ _: 1
326
+ }, 8, ["label", "is-disabled"])) : createCommentVNode("v-if", true),
327
+ isGallery.value ? (openBlock(), createElementBlock("p", _hoisted_7, toDisplayString(index.value + 1) + " / " + toDisplayString(mediaList.value.length), 1)) : createCommentVNode("v-if", true)
328
+ ], 512)], 46, _hoisted_1)) : createCommentVNode("v-if", true)], 2112);
329
+ };
330
+ }
331
+ });
332
+ //#endregion
333
+ //#region src/Lightbox/useLightbox.ts
334
+ /**
335
+ * Owns the open state and gallery index for a `Lightbox`.
336
+ * Bind `bindings` onto `Lightbox`, and call `open(index)` from a thumbnail.
337
+ */
338
+ function useLightbox(options) {
339
+ const isOpen = ref(false);
340
+ const index = ref(0);
341
+ function open(next = 0) {
342
+ index.value = next;
343
+ isOpen.value = true;
344
+ }
345
+ function close() {
346
+ isOpen.value = false;
347
+ }
348
+ function triggerPropsFor(next) {
349
+ return {
350
+ "aria-haspopup": "dialog",
351
+ "onClick": () => open(next),
352
+ "onKeydown": (event) => {
353
+ if (event.key !== "Enter" && event.key !== " ") return;
354
+ event.preventDefault();
355
+ open(next);
356
+ },
357
+ "role": "button",
358
+ "tabindex": 0
359
+ };
360
+ }
361
+ return {
362
+ bindings: computed(() => ({
363
+ "hasAutoPlay": options.hasAutoPlay,
364
+ "hasZoom": options.hasZoom,
365
+ "index": index.value,
366
+ "isOpen": isOpen.value,
367
+ "media": options.media,
368
+ "onUpdate:index": (next) => {
369
+ index.value = next;
370
+ },
371
+ "onUpdate:isOpen": (next) => {
372
+ isOpen.value = next;
373
+ }
374
+ })),
375
+ close,
376
+ getTriggerProps: triggerPropsFor,
377
+ index,
378
+ isOpen,
379
+ open,
380
+ triggerProps: computed(() => triggerPropsFor(0))
381
+ };
382
+ }
383
+ //#endregion
384
+ export { _sfc_main as n, useLightbox as t };
@@ -1,2 +1,2 @@
1
- import { n as LinkColor, r as LinkProps, t as _default } from "../index-DXDGk38y.js";
1
+ import { n as LinkColor, r as LinkProps, t as _default } from "../index-Bn_odHQ9.js";
2
2
  export { _default as Link, type LinkColor, type LinkProps };
@@ -1,3 +1,3 @@
1
1
  import { a as ItemLayout, c as ItemTarget, d as ListEdgeCompensation, f as ListItemProps, g as ListSlots, h as ListProps, i as ItemLabel, l as ItemText, m as ListMarkerStyle, n as ItemDensity, o as ItemProps, p as ListItemSlots, r as ItemElement, s as ItemSlots, t as ItemAlign, u as ListDensity } from "../types-CAZY4Xua.js";
2
- import { a as useListContext, i as useItemDescriptionId, n as _default$1, r as _default, t as _default$2 } from "../index-5R_pi3eT.js";
2
+ import { a as useListContext, i as useItemDescriptionId, n as _default$1, r as _default, t as _default$2 } from "../index-D-ZuubCK.js";
3
3
  export { _default as Item, type ItemAlign, type ItemDensity, type ItemElement, type ItemLabel, type ItemLayout, type ItemProps, type ItemSlots, type ItemTarget, type ItemText, _default$1 as List, type ListDensity, type ListEdgeCompensation, _default$2 as ListItem, type ListItemProps, type ListItemSlots, type ListMarkerStyle, type ListProps, type ListSlots, useItemDescriptionId, useListContext };
@@ -1,2 +1,2 @@
1
- import { _ as MarkdownSlots, a as MarkdownAlign, c as MarkdownDensity, d as MarkdownHeadingProps, f as MarkdownImageProps, g as MarkdownProps, h as MarkdownListProps, i as _default, l as MarkdownDisplay, m as MarkdownLinkProps, n as uniqueSlug, o as MarkdownCodeProps, p as MarkdownInlineCodeProps, r as parseMarkdown, s as MarkdownComponents, t as slugify, u as MarkdownHeadingLevel } from "../index--dh0s8Li.js";
1
+ import { _ as MarkdownSlots, a as MarkdownAlign, c as MarkdownDensity, d as MarkdownHeadingProps, f as MarkdownImageProps, g as MarkdownProps, h as MarkdownListProps, i as _default, l as MarkdownDisplay, m as MarkdownLinkProps, n as uniqueSlug, o as MarkdownCodeProps, p as MarkdownInlineCodeProps, r as parseMarkdown, s as MarkdownComponents, t as slugify, u as MarkdownHeadingLevel } from "../index-DfgHJE7H.js";
2
2
  export { _default as Markdown, type MarkdownAlign, type MarkdownCodeProps, type MarkdownComponents, type MarkdownDensity, type MarkdownDisplay, type MarkdownHeadingLevel, type MarkdownHeadingProps, type MarkdownImageProps, type MarkdownInlineCodeProps, type MarkdownLinkProps, type MarkdownListProps, type MarkdownProps, type MarkdownSlots, parseMarkdown, slugify, uniqueSlug };
@@ -1,2 +1,2 @@
1
- import { i as parseMarkdown, n as slugify, r as uniqueSlug, t as _sfc_main } from "../Markdown-Dnlp8cVx.js";
1
+ import { i as parseMarkdown, n as slugify, r as uniqueSlug, t as _sfc_main } from "../Markdown-D-Ua055V.js";
2
2
  export { _sfc_main as Markdown, parseMarkdown, slugify, uniqueSlug };
@@ -1,9 +1,9 @@
1
1
  import { t as _sfc_main$1 } from "./VisuallyHidden-C7NN3VEP.js";
2
2
  import { t as _sfc_main$2 } from "./Heading-Dugosn6j.js";
3
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
3
4
  import { t as _sfc_main$3 } from "./Blockquote-DFqBv_oJ.js";
4
- import { a as useAstryxMessages } from "./context-BshXcNYX.js";
5
5
  import { t as _sfc_main$4 } from "./CheckboxIndicator-DdJmksHt.js";
6
- import { c as _sfc_main$5, t as _sfc_main$6 } from "./CodeBlock-BQdooQy2.js";
6
+ import { c as _sfc_main$5, t as _sfc_main$6 } from "./CodeBlock-CxTb6j9_.js";
7
7
  import { t as _sfc_main$7 } from "./Link-CprjOuTI.js";
8
8
  import { Fragment, computed, defineComponent, h, ref } from "vue";
9
9
  import { fromMarkdown } from "mdast-util-from-markdown";
@@ -1,2 +1,2 @@
1
- import { n as _sfc_main, t as _sfc_main$1 } from "../MetadataList-DIsqS1Qb.js";
1
+ import { n as _sfc_main, t as _sfc_main$1 } from "../MetadataList-sYph_d8Q.js";
2
2
  export { _sfc_main as MetadataList, _sfc_main$1 as MetadataListItem };
@@ -1,4 +1,4 @@
1
- import { a as useAstryxMessages } from "./context-BshXcNYX.js";
1
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
2
2
  import { Comment, Fragment, computed, defineComponent, h, inject, provide, ref, useId, useSlots } from "vue";
3
3
  import "../styles/metadata-list.css";
4
4
  //#region src/MetadataList/context.ts
@@ -1,2 +1,2 @@
1
- import { a as MobileNavSide, c as MobileNavToggleProps, i as MobileNavProps, l as mobileNavKey, n as _default, o as MobileNavSlots, r as MobileNavEmits, s as MobileNavToggleEmits, t as _default$1 } from "../index-Dbmgcm8a.js";
1
+ import { a as MobileNavSide, c as MobileNavToggleProps, i as MobileNavProps, l as mobileNavKey, n as _default, o as MobileNavSlots, r as MobileNavEmits, s as MobileNavToggleEmits, t as _default$1 } from "../index-BeR-1LgF.js";
2
2
  export { _default as MobileNav, type MobileNavEmits, type MobileNavProps, type MobileNavSide, type MobileNavSlots, _default$1 as MobileNavToggle, type MobileNavToggleEmits, type MobileNavToggleProps, mobileNavKey };
@@ -1,2 +1,2 @@
1
- import { n as _sfc_main, r as mobileNavKey, t as _sfc_main$1 } from "../MobileNavToggle-aUZiDwHm.js";
1
+ import { n as _sfc_main, r as mobileNavKey, t as _sfc_main$1 } from "../MobileNavToggle-DD9D01aj.js";
2
2
  export { _sfc_main as MobileNav, _sfc_main$1 as MobileNavToggle, mobileNavKey };
@@ -1,5 +1,5 @@
1
1
  import { n as useFocusTrap, t as useRestoreFocus } from "./useRestoreFocus-BvMdXVX9.js";
2
- import { a as useAstryxMessages } from "./context-BshXcNYX.js";
2
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
3
3
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onMounted, openBlock, provide, ref, renderSlot, toDisplayString, unref, useId, useModel, watch } from "vue";
4
4
  import "../styles/mobile-nav.css";
5
5
  //#region src/MobileNav/context.ts
@@ -7,10 +7,15 @@ import "../styles/mobile-nav.css";
7
7
  const mobileNavKey = Symbol("astryx-mobile-nav");
8
8
  //#endregion
9
9
  //#region src/MobileNav/MobileNav.vue
10
- const _hoisted_1$1 = ["aria-labelledby", "aria-label"];
10
+ const _hoisted_1$1 = [
11
+ "id",
12
+ "aria-labelledby",
13
+ "aria-label"
14
+ ];
11
15
  const _hoisted_2 = { class: "astryx-mobile-nav__drawer" };
12
- const _hoisted_3 = ["aria-label"];
13
- const _hoisted_4 = { class: "astryx-mobile-nav__body" };
16
+ const _hoisted_3 = ["id"];
17
+ const _hoisted_4 = ["aria-label"];
18
+ const _hoisted_5 = { class: "astryx-mobile-nav__body" };
14
19
  const _sfc_main$1 = /*@__PURE__*/ defineComponent({
15
20
  name: "AstryxMobileNav",
16
21
  __name: "MobileNav",
@@ -18,7 +23,8 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
18
23
  header: {},
19
24
  width: { default: 320 },
20
25
  side: { default: "auto" },
21
- label: {}
26
+ label: {},
27
+ id: {}
22
28
  }, {
23
29
  "isOpen": {
24
30
  type: Boolean,
@@ -34,8 +40,9 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
34
40
  const isOpen = useModel(__props, "isOpen");
35
41
  const dialogRef = ref(null);
36
42
  const resolvedSide = ref(props.side === "end" ? "end" : "start");
37
- const dialogId = `astryx-mobile-nav-${useId()}`;
38
- const labelId = `${dialogId}-label`;
43
+ const generatedId = `astryx-mobile-nav-${useId()}`;
44
+ const dialogId = computed(() => props.id || generatedId);
45
+ const labelId = computed(() => `${dialogId.value}-label`);
39
46
  let previousOverflow = "";
40
47
  const accessibleName = computed(() => props.label || props.header || messages.value.nav.mobileNav);
41
48
  const trapEnabled = computed(() => isOpen.value);
@@ -101,21 +108,21 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
101
108
  });
102
109
  return (_ctx, _cache) => {
103
110
  return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" eslint-disable-next-line vue-a11y/click-events-have-key-events, vue-a11y/no-static-element-interactions -- 点在 dialog 自身上等于点遮罩;键盘用户走原生 cancel。 "), createElementVNode("dialog", {
104
- id: dialogId,
111
+ id: dialogId.value,
105
112
  ref_key: "dialogRef",
106
113
  ref: dialogRef,
107
114
  class: normalizeClass(["astryx-mobile-nav", sideIsStart.value ? "astryx-mobile-nav--start" : "astryx-mobile-nav--end"]),
108
115
  style: normalizeStyle({ "--astryx-mobile-nav-width": `${__props.width}px` }),
109
116
  "aria-modal": "true",
110
- "aria-labelledby": _ctx.$slots.header || __props.header ? labelId : void 0,
117
+ "aria-labelledby": _ctx.$slots.header || __props.header ? labelId.value : void 0,
111
118
  "aria-label": _ctx.$slots.header || __props.header ? void 0 : accessibleName.value,
112
119
  onCancel,
113
120
  onClick: onDialogClick
114
121
  }, [createElementVNode("div", _hoisted_2, [createElementVNode("div", { class: normalizeClass(["astryx-mobile-nav__header", { "astryx-mobile-nav__header--end": !_ctx.$slots.header && !__props.header }]) }, [_ctx.$slots.header || __props.header ? (openBlock(), createElementBlock("div", {
115
122
  key: 0,
116
- id: labelId,
123
+ id: labelId.value,
117
124
  class: "astryx-mobile-nav__title"
118
- }, [renderSlot(_ctx.$slots, "header", {}, () => [createTextVNode(toDisplayString(__props.header), 1)])])) : createCommentVNode("v-if", true), createElementVNode("button", {
125
+ }, [renderSlot(_ctx.$slots, "header", {}, () => [createTextVNode(toDisplayString(__props.header), 1)])], 8, _hoisted_3)) : createCommentVNode("v-if", true), createElementVNode("button", {
119
126
  type: "button",
120
127
  class: "astryx-mobile-nav__close",
121
128
  "aria-label": unref(messages).nav.close,
@@ -123,7 +130,7 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
123
130
  }, [..._cache[1] || (_cache[1] = [createElementVNode("span", {
124
131
  class: "astryx-mobile-nav__close-glyph",
125
132
  "aria-hidden": "true"
126
- }, null, -1)])], 8, _hoisted_3)], 2), createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "default")])])], 46, _hoisted_1$1)], 2112);
133
+ }, null, -1)])], 8, _hoisted_4)], 2), createElementVNode("div", _hoisted_5, [renderSlot(_ctx.$slots, "default")])])], 46, _hoisted_1$1)], 2112);
127
134
  };
128
135
  }
129
136
  });
@@ -1,2 +1,2 @@
1
- import { An as MoreMenuResolvedPresentation, Cn as MoreMenuIcon, Dn as MoreMenuOption, En as MoreMenuItemVariant, Mn as MoreMenuSlots, On as MoreMenuPresentation, Sn as MoreMenuEmits, Tn as MoreMenuItem, bn as _default, jn as MoreMenuSection, kn as MoreMenuProps, wn as MoreMenuInitialFocus, xn as MoreMenuDivider } from "../index-CQ9F1f_F.js";
1
+ import { An as MoreMenuIcon, Dn as _default, Fn as MoreMenuPresentation, In as MoreMenuProps, Ln as MoreMenuResolvedPresentation, Mn as MoreMenuItem, Nn as MoreMenuItemVariant, On as MoreMenuDivider, Pn as MoreMenuOption, Rn as MoreMenuSection, jn as MoreMenuInitialFocus, kn as MoreMenuEmits, zn as MoreMenuSlots } from "../index-C6iJwTL0.js";
2
2
  export { _default as MoreMenu, type MoreMenuDivider, type MoreMenuEmits, type MoreMenuIcon, type MoreMenuInitialFocus, type MoreMenuItem, type MoreMenuItemVariant, type MoreMenuOption, type MoreMenuPresentation, type MoreMenuProps, type MoreMenuResolvedPresentation, type MoreMenuSection, type MoreMenuSlots };
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../MoreMenu-BXL6Dqsu.js";
1
+ import { t as _sfc_main } from "../MoreMenu-BVrK5kkk.js";
2
2
  export { _sfc_main as MoreMenu };
@@ -2,7 +2,7 @@ import { n as getFocusables, t as focusElement } from "./focus-CpficIgf.js";
2
2
  import { n as useOverflow } from "./useOverflow-VrwF5oek.js";
3
3
  import { t as _sfc_main$5 } from "./Heading-Dugosn6j.js";
4
4
  import { t as _sfc_main$6 } from "./IconButton-BNQuz9W_.js";
5
- import { t as _sfc_main$7 } from "./Icon-5MdZQ18k.js";
5
+ import { t as _sfc_main$7 } from "./Icon-Dfr4k6-S.js";
6
6
  import { t as _sfc_main$8 } from "./Divider-BtwnL18I.js";
7
7
  import { n as _sfc_main$10, t as _sfc_main$9 } from "./ListItem-pGxvn6QJ.js";
8
8
  import { t as usePositionedLayer } from "./usePositionedLayer-C1NBOsVT.js";
@@ -1,2 +1,2 @@
1
- import { a as MultiSelectorDivider, c as MultiSelectorOptionData, d as MultiSelectorSection, f as MultiSelectorSize, g as MultiSelectorVariant, h as MultiSelectorTriggerDisplay, i as MultiSelectorCheckboxPosition, l as MultiSelectorPresentation, m as MultiSelectorStatus, n as flattenOptions, o as MultiSelectorEmits, p as MultiSelectorSlots, r as _default, s as MultiSelectorOption, t as SELECT_ALL_VALUE, u as MultiSelectorProps } from "../index-D3V7yRUP.js";
1
+ import { a as MultiSelectorDivider, c as MultiSelectorOptionData, d as MultiSelectorSection, f as MultiSelectorSize, g as MultiSelectorVariant, h as MultiSelectorTriggerDisplay, i as MultiSelectorCheckboxPosition, l as MultiSelectorPresentation, m as MultiSelectorStatus, n as flattenOptions, o as MultiSelectorEmits, p as MultiSelectorSlots, r as _default, s as MultiSelectorOption, t as SELECT_ALL_VALUE, u as MultiSelectorProps } from "../index-DOUEn7V0.js";
2
2
  export { _default as MultiSelector, type MultiSelectorCheckboxPosition, type MultiSelectorDivider, type MultiSelectorEmits, type MultiSelectorOption, type MultiSelectorOptionData, type MultiSelectorPresentation, type MultiSelectorProps, type MultiSelectorSection, type MultiSelectorSize, type MultiSelectorSlots, type MultiSelectorStatus, type MultiSelectorTriggerDisplay, type MultiSelectorVariant, SELECT_ALL_VALUE, flattenOptions };
@@ -1,2 +1,2 @@
1
- import { n as SELECT_ALL_VALUE, r as flattenOptions, t as _sfc_main } from "../MultiSelector-Bh8or2S6.js";
1
+ import { n as SELECT_ALL_VALUE, r as flattenOptions, t as _sfc_main } from "../MultiSelector-DiYov9sF.js";
2
2
  export { _sfc_main as MultiSelector, SELECT_ALL_VALUE, flattenOptions };
@@ -1,10 +1,10 @@
1
1
  import { t as useCombobox } from "./useCombobox-CTo5C-gc.js";
2
2
  import { n as useOverflow } from "./useOverflow-VrwF5oek.js";
3
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
3
4
  import { t as _sfc_main$1 } from "./BottomSheet-Dg95HB1s.js";
4
- import { a as useAstryxMessages } from "./context-BshXcNYX.js";
5
5
  import { t as _sfc_main$2 } from "./CheckboxIndicator-DdJmksHt.js";
6
- import { t as _sfc_main$3 } from "./Field-VlTBsIEo.js";
7
- import { t as _sfc_main$4 } from "./Token-CV2J94bn.js";
6
+ import { t as _sfc_main$3 } from "./Field-8zRxzDHE.js";
7
+ import { t as _sfc_main$4 } from "./Token-wt4e80IM.js";
8
8
  import { n as useAnchoredListbox, t as scrollOptionIntoView } from "./useAnchoredListbox-7W90Ny-9.js";
9
9
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useId, useTemplateRef, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
10
10
  import "../styles/visually-hidden-utility.css";
@@ -1,3 +1,3 @@
1
1
  import { a as NavItemSize, i as NavItemProps, n as NavIconSlots, o as NavItemSlots, r as NavItemEmits, s as NavLinkComponent, t as NavIconProps } from "../types-BG23kC3S.js";
2
- import { n as _default, r as resolveNavRoot, t as _default$1 } from "../index-Q4gqBSIZ.js";
2
+ import { n as _default, r as resolveNavRoot, t as _default$1 } from "../index-fa72tWIU.js";
3
3
  export { _default as NavIcon, type NavIconProps, type NavIconSlots, _default$1 as NavItem, type NavItemEmits, type NavItemProps, type NavItemSize, type NavItemSlots, type NavLinkComponent, resolveNavRoot };
@@ -1,2 +1,2 @@
1
- import { a as NavMenuEmits, c as NavMenuProps, i as NavDisclosureProps, l as NavMenuFocusRequest, n as _default$1, o as NavMenuItemEmits, r as _default, s as NavMenuItemProps, t as _default$2, u as NavMenuSize } from "../index-g03bmR4K.js";
1
+ import { a as NavMenuEmits, c as NavMenuProps, i as NavDisclosureProps, l as NavMenuFocusRequest, n as _default$1, o as NavMenuItemEmits, r as _default, s as NavMenuItemProps, t as _default$2, u as NavMenuSize } from "../index-D0TlUOtG.js";
2
2
  export { _default as NavDisclosure, type NavDisclosureProps, _default$1 as NavMenu, type NavMenuEmits, type NavMenuFocusRequest, _default$2 as NavMenuItem, type NavMenuItemEmits, type NavMenuItemProps, type NavMenuProps, type NavMenuSize };
@@ -1,3 +1,3 @@
1
1
  import { t as _sfc_main } from "../NavDisclosure-DHrSNRDR.js";
2
- import { n as _sfc_main$1, t as _sfc_main$2 } from "../NavMenuItem-mzNQESpB.js";
2
+ import { n as _sfc_main$1, t as _sfc_main$2 } from "../NavMenuItem-B-k7olt5.js";
3
3
  export { _sfc_main as NavDisclosure, _sfc_main$1 as NavMenu, _sfc_main$2 as NavMenuItem };
@@ -126,8 +126,9 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
126
126
  event.preventDefault();
127
127
  return;
128
128
  }
129
+ const preventedBeforeItem = event.defaultPrevented;
129
130
  emit("click", event);
130
- if (event.defaultPrevented || props.keepOpen) return;
131
+ if (props.keepOpen || !preventedBeforeItem && event.defaultPrevented) return;
131
132
  closeMenu?.();
132
133
  menu?.close();
133
134
  }
@@ -1,2 +1,2 @@
1
- import { n as NumberInputEmits, r as NumberInputProps, t as _default } from "../index-CsJpQElv.js";
1
+ import { n as NumberInputEmits, r as NumberInputProps, t as _default } from "../index-NzLDrOkk.js";
2
2
  export { _default as NumberInput, type NumberInputEmits, type NumberInputProps };
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../NumberInput-C3S-4dIu.js";
1
+ import { t as _sfc_main } from "../NumberInput-CTYiQxHq.js";
2
2
  export { _sfc_main as NumberInput };
@@ -1,5 +1,5 @@
1
1
  import { t as useNumberField } from "./useNumberField-DL-Radsp.js";
2
- import { a as useAstryxMessages } from "./context-BshXcNYX.js";
2
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
3
3
  import { computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, ref, unref, useId } from "vue";
4
4
  import "../styles/number-input.css";
5
5
  //#region src/NumberInput/NumberInput.vue
@@ -0,0 +1,2 @@
1
+ import { a as OutlineProps, i as OutlineItem, n as OutlineDensity, r as OutlineEmits, t as _default } from "../index-Cn-sSds-.js";
2
+ export { _default as Outline, type OutlineDensity, type OutlineEmits, type OutlineItem, type OutlineProps };
@@ -0,0 +1,2 @@
1
+ import { t as _sfc_main } from "../Outline-DQfEBxlc.js";
2
+ export { _sfc_main as Outline };