@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,325 @@
1
+ import { t as useListFocus } from "./useListFocus-D0iOJl39.js";
2
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
3
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, toDisplayString, toRef, unref, watch } from "vue";
4
+ import "../styles/outline.css";
5
+ //#region src/Outline/scrollGeometry.ts
6
+ function getScrollableAncestor(element) {
7
+ let current = element?.parentElement ?? null;
8
+ while (current != null) {
9
+ const overflowY = getComputedStyle(current).overflowY;
10
+ if ((overflowY === "auto" || overflowY === "scroll" || overflowY === "overlay") && current.scrollHeight > current.clientHeight) return current;
11
+ current = current.parentElement;
12
+ }
13
+ return null;
14
+ }
15
+ function getScrollMarginTop(element) {
16
+ return Number.parseFloat(getComputedStyle(element).scrollMarginTop) || 0;
17
+ }
18
+ function getRootTop(scrollRoot) {
19
+ return scrollRoot != null ? scrollRoot.getBoundingClientRect().top : 0;
20
+ }
21
+ function getRestingTop(target, scrollRoot, offset) {
22
+ return getRootTop(scrollRoot) + offset + getScrollMarginTop(target);
23
+ }
24
+ function scrollToTarget(target, scrollRoot, scrollTarget, offset) {
25
+ const behavior = typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth";
26
+ if (offset === 0) {
27
+ target.scrollIntoView({
28
+ behavior,
29
+ block: "start"
30
+ });
31
+ return;
32
+ }
33
+ const delta = target.getBoundingClientRect().top - getRestingTop(target, scrollRoot, offset);
34
+ scrollTarget.scrollBy({
35
+ top: delta,
36
+ behavior
37
+ });
38
+ }
39
+ function resolveActiveId(items, scrollRoot, offset) {
40
+ if (items.length === 0) return void 0;
41
+ if (scrollRoot != null ? scrollRoot.scrollTop + scrollRoot.clientHeight >= scrollRoot.scrollHeight - 2 : window.innerHeight + window.scrollY >= document.documentElement.scrollHeight - 2) return items[items.length - 1].id;
42
+ let activeId = items[0].id;
43
+ for (const item of items) {
44
+ const element = document.getElementById(item.id);
45
+ if (element == null) continue;
46
+ if (element.getBoundingClientRect().top <= getRestingTop(element, scrollRoot, offset) + 1) activeId = item.id;
47
+ else break;
48
+ }
49
+ return activeId;
50
+ }
51
+ /** Heading levels 1 and 2 share the first indent. Levels 5 and 6 share the fourth. */
52
+ function indentLevel(level) {
53
+ return Math.max(1, Math.min(4, level - 1 || 1));
54
+ }
55
+ //#endregion
56
+ //#region src/Outline/useIndicator.ts
57
+ /** Place the sliding bar on the active link, measured against the track. */
58
+ function useOutlineIndicator(root, activeId) {
59
+ let frame = 0;
60
+ let observer = null;
61
+ function place() {
62
+ const nav = root.value;
63
+ const track = nav?.querySelector(".astryx-outline__track");
64
+ const active = nav?.querySelector("[aria-current=\"location\"]");
65
+ if (nav == null || track == null || active == null) return;
66
+ const trackRect = track.getBoundingClientRect();
67
+ const activeRect = active.getBoundingClientRect();
68
+ nav.style.setProperty("--astryx-outline-indicator-top", `${activeRect.top - trackRect.top}px`);
69
+ nav.style.setProperty("--astryx-outline-indicator-height", `${activeRect.height}px`);
70
+ }
71
+ function schedule() {
72
+ if (typeof requestAnimationFrame !== "function") {
73
+ place();
74
+ return;
75
+ }
76
+ if (frame !== 0) cancelAnimationFrame(frame);
77
+ frame = requestAnimationFrame(() => {
78
+ frame = 0;
79
+ place();
80
+ });
81
+ }
82
+ onMounted(() => {
83
+ schedule();
84
+ observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(schedule);
85
+ if (root.value != null) observer?.observe(root.value);
86
+ window.addEventListener("resize", schedule);
87
+ });
88
+ onBeforeUnmount(() => {
89
+ observer?.disconnect();
90
+ window.removeEventListener("resize", schedule);
91
+ if (frame !== 0 && typeof cancelAnimationFrame === "function") cancelAnimationFrame(frame);
92
+ });
93
+ watch(activeId, schedule);
94
+ }
95
+ //#endregion
96
+ //#region src/Outline/useScrollSpy.ts
97
+ const SCROLL_SETTLE_TIMEOUT_MS = 1200;
98
+ const SCROLL_KEYS = /* @__PURE__ */ new Set([
99
+ "ArrowUp",
100
+ "ArrowDown",
101
+ "PageUp",
102
+ "PageDown",
103
+ "Home",
104
+ "End",
105
+ " ",
106
+ "Spacebar"
107
+ ]);
108
+ function useScrollSpy(options) {
109
+ const isControlled = computed(() => options.activeId.value !== void 0);
110
+ const uncontrolledId = ref(options.items.value[0]?.id);
111
+ const resolvedId = computed(() => isControlled.value ? options.activeId.value : uncontrolledId.value);
112
+ const suppressed = ref(false);
113
+ let navigation = null;
114
+ function scrollRoot() {
115
+ const explicit = options.scrollContainer.value;
116
+ if (explicit) return explicit;
117
+ return getScrollableAncestor(options.root.value);
118
+ }
119
+ function sync() {
120
+ if (isControlled.value || suppressed.value) return;
121
+ const next = resolveActiveId(options.items.value, scrollRoot(), options.offset.value);
122
+ if (next != null && next !== uncontrolledId.value) {
123
+ uncontrolledId.value = next;
124
+ options.onActive(next);
125
+ }
126
+ }
127
+ function scrollTo(id) {
128
+ const target = typeof document === "undefined" ? null : document.getElementById(id);
129
+ if (target == null) return false;
130
+ navigation?.supersede();
131
+ options.onNavigateStart?.(id);
132
+ if (isControlled.value) options.onActive(id);
133
+ else suppressed.value = true;
134
+ const root = scrollRoot();
135
+ const targetScroller = root ?? window;
136
+ let settled = false;
137
+ let timer = 0;
138
+ function cleanup() {
139
+ targetScroller.removeEventListener("scrollend", onSettle);
140
+ targetScroller.removeEventListener("wheel", onManual);
141
+ targetScroller.removeEventListener("touchmove", onManual);
142
+ window.removeEventListener("keydown", onKeyDown);
143
+ if (timer !== 0) clearTimeout(timer);
144
+ navigation = null;
145
+ }
146
+ function finish(didArrive, shouldResume = true) {
147
+ if (settled) return;
148
+ settled = true;
149
+ cleanup();
150
+ if (!isControlled.value) {
151
+ suppressed.value = false;
152
+ if (didArrive) {
153
+ uncontrolledId.value = id;
154
+ options.onActive(id);
155
+ } else if (shouldResume) sync();
156
+ }
157
+ options.onNavigateEnd?.(id);
158
+ }
159
+ function onSettle() {
160
+ finish(true);
161
+ }
162
+ function onManual() {
163
+ finish(false);
164
+ }
165
+ function onKeyDown(event) {
166
+ if (!event.defaultPrevented && SCROLL_KEYS.has(event.key)) finish(false);
167
+ }
168
+ if (options.hasScrollOnClick.value) {
169
+ targetScroller.addEventListener("scrollend", onSettle);
170
+ targetScroller.addEventListener("wheel", onManual, { passive: true });
171
+ targetScroller.addEventListener("touchmove", onManual, { passive: true });
172
+ window.addEventListener("keydown", onKeyDown);
173
+ timer = window.setTimeout(onSettle, SCROLL_SETTLE_TIMEOUT_MS);
174
+ navigation = { supersede: () => finish(false, false) };
175
+ scrollToTarget(target, root, targetScroller, options.offset.value);
176
+ } else finish(true);
177
+ return true;
178
+ }
179
+ let listened = null;
180
+ onMounted(() => {
181
+ sync();
182
+ listened = scrollRoot() ?? window;
183
+ listened.addEventListener("scroll", sync, { passive: true });
184
+ window.addEventListener("resize", sync);
185
+ });
186
+ onBeforeUnmount(() => {
187
+ listened?.removeEventListener("scroll", sync);
188
+ window.removeEventListener("resize", sync);
189
+ navigation?.supersede();
190
+ });
191
+ watch(() => options.items.value.map((item) => item.id).join("\n"), () => {
192
+ if (!isControlled.value && (uncontrolledId.value == null || !options.items.value.some((item) => item.id === uncontrolledId.value))) uncontrolledId.value = options.items.value[0]?.id;
193
+ sync();
194
+ });
195
+ return {
196
+ resolvedId,
197
+ scrollTo
198
+ };
199
+ }
200
+ //#endregion
201
+ //#region src/Outline/Outline.vue
202
+ const _hoisted_1 = ["aria-label", "data-density"];
203
+ const _hoisted_2 = [
204
+ "href",
205
+ "data-level",
206
+ "data-active",
207
+ "aria-current",
208
+ "onClick",
209
+ "onKeydown"
210
+ ];
211
+ const _hoisted_3 = { class: "astryx-outline__label" };
212
+ const _sfc_main = /*@__PURE__*/ defineComponent({
213
+ name: "AstryxOutline",
214
+ inheritAttrs: false,
215
+ __name: "Outline",
216
+ props: {
217
+ items: {},
218
+ activeId: {},
219
+ label: {},
220
+ density: { default: "default" },
221
+ offset: { default: 0 },
222
+ scrollContainer: { default: null },
223
+ hasScrollOnClick: {
224
+ type: Boolean,
225
+ default: true
226
+ }
227
+ },
228
+ emits: [
229
+ "navigateEnd",
230
+ "navigateStart",
231
+ "update:activeId"
232
+ ],
233
+ setup(__props, { emit: __emit }) {
234
+ const props = __props;
235
+ const emit = __emit;
236
+ const messages = useAstryxMessages();
237
+ const root = ref(null);
238
+ const regionLabel = computed(() => props.label ?? messages.value.outline.label);
239
+ const { resolvedId, scrollTo } = useScrollSpy({
240
+ activeId: toRef(props, "activeId"),
241
+ items: toRef(props, "items"),
242
+ root,
243
+ offset: toRef(props, "offset"),
244
+ scrollContainer: toRef(props, "scrollContainer"),
245
+ hasScrollOnClick: toRef(props, "hasScrollOnClick"),
246
+ onActive: (id) => emit("update:activeId", id),
247
+ onNavigateStart: (id) => emit("navigateStart", id),
248
+ onNavigateEnd: (id) => emit("navigateEnd", id)
249
+ });
250
+ const { handleFocus, handleKeyDown, listRef } = useListFocus({
251
+ hasRovingTabIndex: true,
252
+ itemSelector: "a[href]",
253
+ orientation: "vertical"
254
+ });
255
+ function seatTabStop() {
256
+ const list = listRef.value;
257
+ if (list == null || document.activeElement != null && list.contains(document.activeElement)) return;
258
+ const links = [...list.querySelectorAll("a[href]")];
259
+ const active = links.find((link) => link.getAttribute("aria-current") === "location");
260
+ if (active == null) return;
261
+ for (const link of links) link.tabIndex = link === active ? 0 : -1;
262
+ }
263
+ watch(resolvedId, () => {
264
+ nextTick(seatTabStop);
265
+ });
266
+ useOutlineIndicator(root, resolvedId);
267
+ function hasModifier(event) {
268
+ return event.metaKey || event.altKey || event.ctrlKey || event.shiftKey;
269
+ }
270
+ function navigate(id) {
271
+ if (scrollTo(id)) window.history.pushState(null, "", `#${id}`);
272
+ }
273
+ function onClick(id, event) {
274
+ if (event.defaultPrevented || hasModifier(event)) return;
275
+ if (document.getElementById(id) == null) return;
276
+ event.preventDefault();
277
+ navigate(id);
278
+ }
279
+ function onItemKeyDown(id, event) {
280
+ if (event.key !== " " && event.key !== "Spacebar") return;
281
+ if (event.defaultPrevented || hasModifier(event)) return;
282
+ event.preventDefault();
283
+ navigate(id);
284
+ }
285
+ return (_ctx, _cache) => {
286
+ return openBlock(), createElementBlock("nav", {
287
+ ref_key: "root",
288
+ ref: root,
289
+ class: normalizeClass(["astryx-outline", _ctx.$attrs.class]),
290
+ style: normalizeStyle(_ctx.$attrs.style),
291
+ "aria-label": regionLabel.value,
292
+ "data-density": __props.density,
293
+ "data-component": "outline"
294
+ }, [
295
+ createCommentVNode(" eslint-disable-next-line vue-a11y/no-static-element-interactions -- 方向键在链接之间移动焦点,列表本身不是另一个控件。 "),
296
+ createElementVNode("ul", {
297
+ ref_key: "listRef",
298
+ ref: listRef,
299
+ class: "astryx-outline__list",
300
+ onKeydown: _cache[0] || (_cache[0] = (...args) => unref(handleKeyDown) && unref(handleKeyDown)(...args)),
301
+ onFocus: _cache[1] || (_cache[1] = (...args) => unref(handleFocus) && unref(handleFocus)(...args))
302
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
303
+ return openBlock(), createElementBlock("li", {
304
+ key: item.id,
305
+ class: "astryx-outline__item"
306
+ }, [createElementVNode("a", {
307
+ class: "astryx-outline__link",
308
+ href: `#${item.id}`,
309
+ "data-level": unref(indentLevel)(item.level),
310
+ "data-active": item.id === unref(resolvedId) || void 0,
311
+ "aria-current": item.id === unref(resolvedId) ? "location" : void 0,
312
+ onClick: ($event) => onClick(item.id, $event),
313
+ onKeydown: ($event) => onItemKeyDown(item.id, $event)
314
+ }, [createElementVNode("span", _hoisted_3, toDisplayString(item.label), 1)], 40, _hoisted_2)]);
315
+ }), 128))], 544),
316
+ _cache[2] || (_cache[2] = createElementVNode("div", {
317
+ class: "astryx-outline__track",
318
+ "aria-hidden": "true"
319
+ }, [createElementVNode("span", { class: "astryx-outline__line" }), createElementVNode("span", { class: "astryx-outline__indicator" })], -1))
320
+ ], 14, _hoisted_1);
321
+ };
322
+ }
323
+ });
324
+ //#endregion
325
+ export { _sfc_main as t };
@@ -1,2 +1,2 @@
1
- import { _n as OverflowListEmits, gn as _default, vn as OverflowListItem, yn as OverflowListProps } from "../index-CQ9F1f_F.js";
1
+ import { Cn as _default, En as OverflowListProps, Tn as OverflowListItem, wn as OverflowListEmits } from "../index-C6iJwTL0.js";
2
2
  export { _default as OverflowList, type OverflowListEmits, type OverflowListItem, type OverflowListProps };
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../OverflowList-Kr4iJrNV.js";
1
+ import { t as _sfc_main } from "../OverflowList-BU5VCntl.js";
2
2
  export { _sfc_main as OverflowList };
@@ -1,8 +1,8 @@
1
1
  import { n as useOverflow } from "./useOverflow-VrwF5oek.js";
2
- import { a as useAstryxMessages } from "./context-BshXcNYX.js";
2
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
3
3
  import { n as resolveNavRoot } from "./link-CdcUSxAj.js";
4
4
  import { t as _sfc_main$2 } from "./NavDisclosure-DHrSNRDR.js";
5
- import { n as _sfc_main$3, t as _sfc_main$4 } from "./NavMenuItem-mzNQESpB.js";
5
+ import { n as _sfc_main$3, t as _sfc_main$4 } from "./NavMenuItem-B-k7olt5.js";
6
6
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
7
7
  import "../styles/overflow-list.css";
8
8
  //#region src/OverflowList/OverflowMore.vue
@@ -1,2 +1,2 @@
1
- import { a as OverlayContainerProps, c as OverlayScrimMode, d as OverlayShowOn, f as OverlaySlots, i as OverlayAlign, l as OverlayScrimProps, m as UseOverlayResult, n as _default$1, o as OverlayPosition, p as UseOverlayOptions, r as _default, s as OverlayProps, t as useOverlay, u as OverlayScrimSlots } from "../index-BDZCJ9ri.js";
1
+ import { a as OverlayContainerProps, c as OverlayScrimMode, d as OverlayShowOn, f as OverlaySlots, i as OverlayAlign, l as OverlayScrimProps, m as UseOverlayResult, n as _default$1, o as OverlayPosition, p as UseOverlayOptions, r as _default, s as OverlayProps, t as useOverlay, u as OverlayScrimSlots } from "../index-BuubzuE8.js";
2
2
  export { _default as Overlay, type OverlayAlign, type OverlayContainerProps, type OverlayPosition, type OverlayProps, _default$1 as OverlayScrim, type OverlayScrimMode, type OverlayScrimProps, type OverlayScrimSlots, type OverlayShowOn, type OverlaySlots, type UseOverlayOptions, type UseOverlayResult, useOverlay };
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../Pagination-BRStpeSB.js";
1
+ import { t as _sfc_main } from "../Pagination-HdhtykeF.js";
2
2
  export { _sfc_main as Pagination };
@@ -1,5 +1,5 @@
1
- import { a as useAstryxMessages } from "./context-BshXcNYX.js";
2
- import { t as _sfc_main$1 } from "./Selector-DvEUIVEC.js";
1
+ import { a as useAstryxMessages } from "./context-Dbo22sck.js";
2
+ import { t as _sfc_main$1 } from "./Selector-Da-2BO3q.js";
3
3
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, toDisplayString, toValue, unref, vShow, withDirectives } from "vue";
4
4
  import "../styles/pagination.css";
5
5
  /**
@@ -1,2 +1,3 @@
1
- import { a as PopoverProps, i as PopoverPlacement, n as PopoverAlignment, o as PopoverRole, r as PopoverPadding, t as _default } from "../index-Bovw9_8d.js";
1
+ import { a as PopoverRole, i as PopoverProps, n as PopoverPadding, r as PopoverPlacement, t as PopoverAlignment } from "../types-Db3Owy8Q.js";
2
+ import { t as _default } from "../index-Bu0Zd1uw.js";
2
3
  export { _default as Popover, type PopoverAlignment, type PopoverPadding, type PopoverPlacement, type PopoverProps, type PopoverRole };
@@ -1,2 +1,2 @@
1
- import { an as RadioGroupProps, cn as RadioOption, dn as RadioSize, fn as RadioSlots, hn as RadioValue, in as RadioGroupEmits, ln as RadioOrientation, mn as RadioStatusType, nn as _default, on as RadioGroupSlots, pn as RadioStatus, rn as RadioChangeEvent, tn as _default$1, un as RadioProps } from "../index-CQ9F1f_F.js";
1
+ import { Sn as RadioValue, _n as RadioProps, bn as RadioStatus, cn as _default$1, dn as RadioGroupEmits, fn as RadioGroupProps, gn as RadioOrientation, hn as RadioOption, ln as _default, pn as RadioGroupSlots, un as RadioChangeEvent, vn as RadioSize, xn as RadioStatusType, yn as RadioSlots } from "../index-C6iJwTL0.js";
2
2
  export { _default as Radio, type RadioChangeEvent, _default$1 as RadioGroup, type RadioGroupEmits, type RadioGroupProps, type RadioGroupSlots, type RadioOption, type RadioOrientation, type RadioProps, type RadioSize, type RadioSlots, type RadioStatus, type RadioStatusType, type RadioValue };
@@ -1,2 +1,2 @@
1
- import { n as _sfc_main, t as _sfc_main$1 } from "../RadioGroup-DS6oTV_j.js";
1
+ import { n as _sfc_main, t as _sfc_main$1 } from "../RadioGroup-BqjdSCfJ.js";
2
2
  export { _sfc_main as Radio, _sfc_main$1 as RadioGroup };
@@ -1,4 +1,4 @@
1
- import { t as _sfc_main$2 } from "./Field-VlTBsIEo.js";
1
+ import { t as _sfc_main$2 } from "./Field-8zRxzDHE.js";
2
2
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, defineComponent, inject, mergeModels, normalizeStyle, openBlock, provide, renderList, renderSlot, toDisplayString, unref, useAttrs, useId, useModel, useTemplateRef, withCtx } from "vue";
3
3
  import "../styles/radio.css";
4
4
  //#region src/Radio/types.ts
@@ -1,2 +1,2 @@
1
- import { $t as RadioListItemProps, Qt as _default$1, en as _default, sn as RadioListProps } from "../index-CQ9F1f_F.js";
1
+ import { an as _default$1, mn as RadioListProps, on as RadioListItemProps, sn as _default } from "../index-C6iJwTL0.js";
2
2
  export { _default as RadioList, _default$1 as RadioListItem, type RadioListItemProps, type RadioListProps };
@@ -1,2 +1,2 @@
1
- import { n as _sfc_main, t as _sfc_main$1 } from "../RadioList-pwr93I-z.js";
1
+ import { n as _sfc_main, t as _sfc_main$1 } from "../RadioList-DI8ujXcT.js";
2
2
  export { _sfc_main as RadioList, _sfc_main$1 as RadioListItem };
@@ -1,4 +1,4 @@
1
- import { n as _sfc_main$3, t as _sfc_main$2 } from "./RadioGroup-DS6oTV_j.js";
1
+ import { n as _sfc_main$3, t as _sfc_main$2 } from "./RadioGroup-BqjdSCfJ.js";
2
2
  import { createBlock, createSlots, defineComponent, mergeModels, openBlock, renderSlot, useModel, withCtx } from "vue";
3
3
  //#region src/Radio/RadioList.vue
4
4
  const _sfc_main$1 = /*@__PURE__*/ defineComponent({
@@ -0,0 +1,2 @@
1
+ import { a as ResizePillPlacement, i as ResizeHandleSlots, n as ResizeDirection, o as ResizePosition, r as ResizeHandleProps, t as _default } from "../index-1uRMrk63.js";
2
+ export { type ResizeDirection, _default as ResizeHandle, type ResizeHandleProps, type ResizeHandleSlots, type ResizePillPlacement, type ResizePosition };
@@ -0,0 +1,2 @@
1
+ import { t as _sfc_main } from "../Resizable-BhSMfO5B.js";
2
+ export { _sfc_main as ResizeHandle };