@astryx-vue/core 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/dist/AlertDialog/index.js +1 -1
  2. package/dist/{AlertDialog-RAVA_cT1.js → AlertDialog-C2inDZWG.js} +5 -5
  3. package/dist/AppShell/index.d.ts +1 -1
  4. package/dist/AppShell/index.js +1 -1
  5. package/dist/{AppShell-0wTvOo3H.js → AppShell-awAKicsc.js} +3 -3
  6. package/dist/Avatar/index.js +1 -1
  7. package/dist/{Avatar-pPZ4dI_s.js → Avatar-DXBjJ88C.js} +47 -34
  8. package/dist/AvatarGroup/index.d.ts +1 -1
  9. package/dist/AvatarGroup/index.js +1 -1
  10. package/dist/{AvatarGroup-B--NQSB3.js → AvatarGroup-kpAeKLNq.js} +57 -13
  11. package/dist/Banner/index.d.ts +1 -1
  12. package/dist/Banner/index.js +1 -1
  13. package/dist/{Banner-GbGxrqQO.js → Banner-BdvuyzAe.js} +71 -35
  14. package/dist/Blockquote/index.js +1 -1
  15. package/dist/Blockquote-DRoKdcxZ.js +27 -0
  16. package/dist/BottomSheet/index.d.ts +1 -1
  17. package/dist/BottomSheet/index.js +2 -2
  18. package/dist/{BottomSheet-pt7m4CvC.js → BottomSheet-B4sc3F1S.js} +286 -140
  19. package/dist/{BottomSheet-JYMB_Ofl.js → BottomSheet-m54uCMJN.js} +20 -4
  20. package/dist/Breadcrumbs/index.d.ts +2 -2
  21. package/dist/Breadcrumbs/index.js +2 -2
  22. package/dist/Breadcrumbs-D4ZzHEB0.js +223 -0
  23. package/dist/Button/index.d.ts +1 -1
  24. package/dist/Button/index.js +1 -1
  25. package/dist/{Button-B6Hj_O_s.js → Button-ONOoHdkg.js} +25 -15
  26. package/dist/ButtonGroup/index.d.ts +1 -1
  27. package/dist/ButtonGroup/index.js +1 -1
  28. package/dist/ButtonGroup-DnkSZ9a5.js +87 -0
  29. package/dist/{ButtonTooltip-nWWrth8j.js → ButtonTooltip-CNKOQHYR.js} +7 -4
  30. package/dist/Calendar/index.d.ts +1 -1
  31. package/dist/Calendar/index.js +1 -1
  32. package/dist/{Calendar-B7vIowKq.js → Calendar-CjK-JUDM.js} +5 -5
  33. package/dist/Card/index.d.ts +2 -2
  34. package/dist/Carousel/index.js +1 -1
  35. package/dist/{Carousel-CA8zpD9v.js → Carousel-D262qigj.js} +8 -8
  36. package/dist/Chat/index.d.ts +1 -1
  37. package/dist/Chat/index.js +1 -1
  38. package/dist/{Chat-Bmna9EOA.js → Chat-DD_mlIP3.js} +165 -101
  39. package/dist/CheckboxIndicator/index.js +1 -1
  40. package/dist/{CheckboxIndicator-D37cm2Rh.js → CheckboxIndicator-fH4d-JE1.js} +9 -3
  41. package/dist/CheckboxInput/index.d.ts +1 -1
  42. package/dist/CheckboxInput/index.js +1 -1
  43. package/dist/{CheckboxInput-BS9J6edf.js → CheckboxInput-D8vTmAMZ.js} +20 -12
  44. package/dist/CheckboxList/index.d.ts +1 -1
  45. package/dist/CheckboxList/index.js +1 -1
  46. package/dist/{CheckboxList-CX1i_jVP.js → CheckboxList-DCvHewHB.js} +155 -38
  47. package/dist/Citation/index.js +1 -1
  48. package/dist/{Citation-Djgwa0ko.js → Citation-C69BgxW3.js} +8 -3
  49. package/dist/ClickableCard/index.d.ts +1 -1
  50. package/dist/ClickableCard/index.js +1 -1
  51. package/dist/{ClickableCard-DUsC-j03.js → ClickableCard-ChAfiw9T.js} +9 -6
  52. package/dist/Code/index.d.ts +1 -1
  53. package/dist/Code/index.js +3 -3
  54. package/dist/{Code-XnPuGxey.js → Code-Bg7GBdxy.js} +2 -1
  55. package/dist/{CodeBlock-D0BFubut.js → CodeBlock-DsbwTBiT.js} +8 -8
  56. package/dist/Collapsible/index.d.ts +1 -1
  57. package/dist/Collapsible/index.js +1 -1
  58. package/dist/{Collapsible-Cov3Pyq5.js → Collapsible-Bdj0WYpb.js} +13 -11
  59. package/dist/CommandPalette/index.d.ts +1 -1
  60. package/dist/CommandPalette/index.js +1 -1
  61. package/dist/{CommandPalette-YHsUNg3V.js → CommandPalette-CZ7CZglZ.js} +147 -67
  62. package/dist/ComplexSelector/index.d.ts +1 -1
  63. package/dist/ComplexSelector/index.js +1 -1
  64. package/dist/{ComplexSelector-DWLdKPGI.js → ComplexSelector-CIz6DDmY.js} +114 -28
  65. package/dist/ContextMenu/index.d.ts +2 -2
  66. package/dist/ContextMenu/index.js +2 -2
  67. package/dist/{ContextMenu-Bq9b3Ti5.js → ContextMenu-CxoiRh_h.js} +297 -179
  68. package/dist/DateInput/index.d.ts +1 -1
  69. package/dist/DateInput/index.js +1 -1
  70. package/dist/{DateInput-DT518j5E.js → DateInput-C67HCOU-.js} +563 -72
  71. package/dist/DateRangeInput/index.d.ts +1 -1
  72. package/dist/DateRangeInput/index.js +1 -1
  73. package/dist/{DateRangeInput-Bqi5tlIA.js → DateRangeInput-Dsf5Tyf-.js} +91 -26
  74. package/dist/DateTimeInput/index.d.ts +1 -1
  75. package/dist/DateTimeInput/index.js +1 -1
  76. package/dist/DateTimeInput-tfM1y5nZ.js +562 -0
  77. package/dist/Dialog/index.d.ts +1 -1
  78. package/dist/Dialog/index.js +2 -2
  79. package/dist/{Dialog-BiOSKQso.js → Dialog-DT1GzCrB.js} +28 -11
  80. package/dist/{Dialog-FGHfDu5M.js → Dialog-fhyxB00e.js} +32 -5
  81. package/dist/Divider/index.d.ts +1 -1
  82. package/dist/Divider/index.js +1 -1
  83. package/dist/{Divider-BtwnL18I.js → Divider-mOZ6vIQw.js} +5 -1
  84. package/dist/DropdownMenu/index.d.ts +2 -2
  85. package/dist/DropdownMenu/index.js +3 -3
  86. package/dist/{DropdownMenu-CoOQVlRp.js → DropdownMenu-C6wBC18g.js} +84 -56
  87. package/dist/{DropdownMenu-DEb2dSSP.js → DropdownMenu-G-pWSiBk.js} +479 -264
  88. package/dist/{DropdownMenuRadioItem.vue-CXEURBcq.d.ts → DropdownMenuRadioItem.vue-Qd-8Rg4Q.d.ts} +236 -230
  89. package/dist/EmptyState/index.js +1 -1
  90. package/dist/{EmptyState-C_GH7IV5.js → EmptyState-CmOQf2SH.js} +2 -2
  91. package/dist/Field/index.d.ts +4 -3
  92. package/dist/Field/index.js +4 -3
  93. package/dist/{Field-D5gUEGw4.js → Field-JIxT3xCh.js} +5 -4
  94. package/dist/FieldIcon-BFSHZEs_.js +40 -0
  95. package/dist/{FieldInfoTip-Ds-sW_jY.js → FieldInfoTip-BbgLt4ug.js} +4 -4
  96. package/dist/{FieldLabel-BNeXRuGH.js → FieldLabel-CHqp1y3z.js} +13 -8
  97. package/dist/FieldStatus/index.d.ts +1 -1
  98. package/dist/FieldStatus/index.js +1 -1
  99. package/dist/{FieldStatus-MjY19ERl.js → FieldStatus-DaAB3TIt.js} +1 -1
  100. package/dist/FileInput/index.d.ts +1 -1
  101. package/dist/FileInput/index.js +1 -1
  102. package/dist/{FileInput-BpdiO1V8.js → FileInput-Bi1uty-F.js} +108 -31
  103. package/dist/FormLayout/index.d.ts +1 -1
  104. package/dist/FormLayout/index.js +1 -1
  105. package/dist/{FormLayout-D47FjiOq.js → FormLayout-B9dUB6Ps.js} +1 -1
  106. package/dist/Heading/index.d.ts +1 -1
  107. package/dist/Heading/index.js +1 -1
  108. package/dist/{Heading-BnwWEWkp.js → Heading-BzBunfN7.js} +1 -1
  109. package/dist/HoverCard/index.js +1 -1
  110. package/dist/{HoverCard-ycY50pRN.js → HoverCard-BpJhT0sn.js} +35 -22
  111. package/dist/Icon/index.d.ts +4 -4
  112. package/dist/Icon/index.js +1 -1
  113. package/dist/{Icon-bteSId7T.js → Icon-KDnUyY7f.js} +12 -20
  114. package/dist/IconButton/index.js +1 -1
  115. package/dist/{IconButton-DDNgNl7B.js → IconButton-DI-XBbtV.js} +1 -1
  116. package/dist/Indicator/index.d.ts +2 -2
  117. package/dist/Indicator/index.js +2 -1
  118. package/dist/InputClearButton-CfSIqc-V.js +40 -0
  119. package/dist/InputGroup/index.d.ts +1 -1
  120. package/dist/InputGroup/index.js +2 -2
  121. package/dist/{InputGroup-CA03Smrs.js → InputGroup-D3F-QnET.js} +2 -2
  122. package/dist/InternationalizationProvider/index.d.ts +1 -1
  123. package/dist/InternationalizationProvider/index.js +1 -1
  124. package/dist/{InternationalizationProvider-DJay_w3B.js → InternationalizationProvider-CVV5QDgp.js} +5 -9
  125. package/dist/{Item-KhFKX9St.js → Item-DWMIjN8n.js} +34 -9
  126. package/dist/Kbd/index.js +1 -1
  127. package/dist/{Kbd-BB-Dw6zE.js → Kbd-CV3LO2Ge.js} +18 -2
  128. package/dist/LayerContentBoundary-CvsKxwwm.js +27 -0
  129. package/dist/LayerProvider/index.js +1 -1
  130. package/dist/{LayerProvider-D9NsQFzL.js → LayerProvider-B6zpMBWC.js} +15 -3
  131. package/dist/Layout/index.d.ts +1 -1
  132. package/dist/Layout/index.js +2 -2
  133. package/dist/{Layout-C6RHllr-.js → Layout-JJRCG7Mf.js} +1 -1
  134. package/dist/{LayoutPanel-DXOsaeQb.js → LayoutPanel-zM5vjrKS.js} +12 -8
  135. package/dist/Lightbox/index.js +1 -1
  136. package/dist/{Lightbox-DTF9EdTG.js → Lightbox-CjXhbDPc.js} +14 -12
  137. package/dist/Link/index.js +1 -1
  138. package/dist/{Link-BqHCtiyt.js → Link-ClNkTN1Q.js} +29 -12
  139. package/dist/List/index.d.ts +1 -1
  140. package/dist/List/index.js +2 -2
  141. package/dist/{ListItem-8RWT8XAG.js → ListItem-BQXMu1Tb.js} +1 -1
  142. package/dist/Markdown/index.d.ts +5 -2
  143. package/dist/Markdown/index.js +4 -2
  144. package/dist/Markdown/parser/index.d.ts +4 -0
  145. package/dist/Markdown/parser/index.js +2 -0
  146. package/dist/Markdown/plugin-protocol/index.d.ts +35 -0
  147. package/dist/Markdown/plugin-protocol/index.js +107 -0
  148. package/dist/Markdown/plugin-renderer/index.d.ts +31 -0
  149. package/dist/Markdown/plugin-renderer/index.js +42 -0
  150. package/dist/{Markdown-CvtN7HnF.js → Markdown-EIBrwQrb.js} +195 -524
  151. package/dist/MediaTheme-DlLqYhDy.js +433 -0
  152. package/dist/MetadataList/index.js +1 -1
  153. package/dist/{MetadataList-B-OelQlt.js → MetadataList-DLlSLX1n.js} +15 -7
  154. package/dist/MobileNav/index.js +1 -1
  155. package/dist/{MobileNavToggle-DxGz0xKA.js → MobileNavToggle-DgJYyzT6.js} +52 -17
  156. package/dist/MoreMenu/index.d.ts +1 -1
  157. package/dist/MoreMenu/index.js +1 -1
  158. package/dist/{MoreMenu-Dlb7MLlW.js → MoreMenu-C8BEt6-O.js} +74 -61
  159. package/dist/MultiSelector/index.d.ts +1 -1
  160. package/dist/MultiSelector/index.js +1 -1
  161. package/dist/MultiSelector-C7NCAtwW.js +1456 -0
  162. package/dist/{NavDisclosure-C_fugrQ3.js → NavDisclosure-Bq9DTZLO.js} +29 -7
  163. package/dist/{NavHeadingSurface-B3yJspSN.js → NavHeadingSurface-DQXisuaX.js} +29 -26
  164. package/dist/NavItem/index.d.ts +1 -1
  165. package/dist/NavItem/index.js +2 -2
  166. package/dist/{NavItem-BBIGSvDj.js → NavItem-BPb3yfgz.js} +17 -4
  167. package/dist/NavMenu/index.d.ts +1 -1
  168. package/dist/NavMenu/index.js +3 -3
  169. package/dist/{NavMenu-ThXguZAz.js → NavMenu-BYIDzjix.js} +42 -15
  170. package/dist/{NavMenuItem-BvJNsDFC.js → NavMenuItem-D3FO90GR.js} +14 -12
  171. package/dist/NumberInput/index.d.ts +1 -1
  172. package/dist/NumberInput/index.js +1 -1
  173. package/dist/NumberInput-3u3NZWnv.js +727 -0
  174. package/dist/Outline/index.d.ts +2 -2
  175. package/dist/Outline/index.js +2 -2
  176. package/dist/{Outline-755h-lMP.js → Outline-8szj9eXu.js} +91 -6
  177. package/dist/OverflowList/index.d.ts +2 -2
  178. package/dist/OverflowList/index.js +1 -1
  179. package/dist/{OverflowList-NmrSMbxb.js → OverflowList-BizpEwH8.js} +23 -6
  180. package/dist/Pagination/index.d.ts +1 -1
  181. package/dist/Pagination/index.js +1 -1
  182. package/dist/{Pagination-DqwNQFRp.js → Pagination-Cihr1CjD.js} +2 -2
  183. package/dist/PickerWheel-CSwUYfes.js +69 -0
  184. package/dist/Popover/index.d.ts +1 -1
  185. package/dist/Popover/index.js +1 -1
  186. package/dist/{Popover-DJf8POzL.js → Popover-78dFjTb9.js} +20 -15
  187. package/dist/PowerSearch/index.d.ts +1 -1
  188. package/dist/PowerSearch/index.js +1 -1
  189. package/dist/{PowerSearch-DvjiPqMZ.js → PowerSearch-BHx91ypY.js} +778 -590
  190. package/dist/ProgressBar/index.d.ts +1 -1
  191. package/dist/ProgressBar/index.js +1 -1
  192. package/dist/{ProgressBar-CVLzdoBK.js → ProgressBar-VP4JS7vm.js} +10 -7
  193. package/dist/Radio/index.d.ts +1 -1
  194. package/dist/Radio/index.js +1 -1
  195. package/dist/{RadioGroup-Bfu6JSNV.js → RadioGroup-DeSIRrgt.js} +94 -26
  196. package/dist/RadioList/index.d.ts +1 -1
  197. package/dist/RadioList/index.js +1 -1
  198. package/dist/{RadioList-xY1cwLdZ.js → RadioList-Co2lmetC.js} +57 -8
  199. package/dist/Resizable/index.d.ts +1 -1
  200. package/dist/Resizable/index.js +1 -1
  201. package/dist/{ResizeHandle-q4nD_586.js → ResizeHandle-DjLZ2pcq.js} +103 -50
  202. package/dist/ScrollableArea/index.d.ts +1 -1
  203. package/dist/ScrollableArea/index.js +1 -1
  204. package/dist/{ScrollableArea-D4dCJv9I.js → ScrollableArea-0u6RWtGG.js} +1 -1
  205. package/dist/SegmentedControl/index.d.ts +1 -1
  206. package/dist/SegmentedControl/index.js +1 -1
  207. package/dist/{SegmentedControl-ChHmFrrC.js → SegmentedControl-D1wWGBZo.js} +11 -5
  208. package/dist/SelectableCard/index.d.ts +1 -1
  209. package/dist/SelectableCard/index.js +1 -1
  210. package/dist/{SelectableCard-Cku4dRzc.js → SelectableCard-BEqnhPaX.js} +16 -11
  211. package/dist/Selector/index.d.ts +1 -1
  212. package/dist/Selector/index.js +1 -1
  213. package/dist/Selector-swa3RNQI.js +1049 -0
  214. package/dist/SideNav/index.d.ts +1 -1
  215. package/dist/SideNav/index.js +1 -1
  216. package/dist/{SideNav-BF8mYDxl.js → SideNav-BH6XKsW2.js} +56 -42
  217. package/dist/Slider/index.d.ts +1 -1
  218. package/dist/Slider/index.js +1 -1
  219. package/dist/{Slider-DWobsPgm.js → Slider-DG2YXll8.js} +172 -46
  220. package/dist/Spinner/index.js +1 -1
  221. package/dist/Spinner-BY8iQz--.js +200 -0
  222. package/dist/Stack/index.js +2 -2
  223. package/dist/{Stack-CTsTFfar.js → Stack-Bb_h60t3.js} +1 -1
  224. package/dist/{Stack-kQlYbbL4.js → Stack-Bp-XN9J4.js} +12 -7
  225. package/dist/StatusDot/index.d.ts +1 -1
  226. package/dist/StatusDot/index.js +1 -1
  227. package/dist/{StatusDot-BPUhMOff.js → StatusDot-BS_ohXhd.js} +8 -4
  228. package/dist/Stepper/index.d.ts +1 -1
  229. package/dist/Stepper/index.js +1 -1
  230. package/dist/{Stepper-CE8dHysu.js → Stepper-FtkTq5qR.js} +127 -113
  231. package/dist/Switch/index.d.ts +1 -1
  232. package/dist/Switch/index.js +1 -1
  233. package/dist/{Switch-DaVPRxvN.js → Switch-0JKvJluV.js} +38 -22
  234. package/dist/TabList/index.d.ts +2 -2
  235. package/dist/TabList/index.js +1 -1
  236. package/dist/{TabList-DIkK9sgK.js → TabList-cpjvnbhx.js} +205 -63
  237. package/dist/Table/index.d.ts +3 -3
  238. package/dist/Table/index.js +1 -1
  239. package/dist/{Table-fecqnm7P.js → Table-fWs_ZQBF.js} +735 -461
  240. package/dist/Text/index.d.ts +1 -1
  241. package/dist/Text/index.js +1 -1
  242. package/dist/{Text-CV3LmscH.js → Text-CmTOgYXf.js} +1 -1
  243. package/dist/TextArea/index.d.ts +1 -1
  244. package/dist/TextArea/index.js +1 -1
  245. package/dist/{TextArea-Ab5Sw60T.js → TextArea-CwSfEjT1.js} +110 -50
  246. package/dist/TextInput/index.d.ts +1 -1
  247. package/dist/TextInput/index.js +1 -1
  248. package/dist/{TextInput-zFT1_qgI.js → TextInput-CavITage.js} +71 -38
  249. package/dist/Theme/index.d.ts +3 -3
  250. package/dist/Theme/index.js +3 -2
  251. package/dist/Theme-BbDT8B_C.js +2125 -0
  252. package/dist/Thumbnail/index.js +1 -1
  253. package/dist/{Thumbnail-C3NnJUFG.js → Thumbnail-DpJnaNbg.js} +17 -14
  254. package/dist/{TimeField-CoHDGmsP.js → TimeField-DefNjDIT.js} +297 -40
  255. package/dist/TimeInput/index.d.ts +1 -1
  256. package/dist/TimeInput/index.js +1 -1
  257. package/dist/{TimeInput-D2k3Ux3p.js → TimeInput-j5vzN8MG.js} +78 -9
  258. package/dist/Timer/index.js +1 -1
  259. package/dist/{Timer-avMQk5DN.js → Timer-CH7GsEVu.js} +1 -1
  260. package/dist/Timestamp/index.d.ts +1 -1
  261. package/dist/Timestamp/index.js +1 -1
  262. package/dist/{Timestamp-xpQKCk0d.js → Timestamp-dtT4yADD.js} +9 -9
  263. package/dist/Toast/index.d.ts +1 -1
  264. package/dist/Toast/index.js +1 -1
  265. package/dist/Toast-igtJYSw0.js +685 -0
  266. package/dist/ToggleButton/index.d.ts +1 -1
  267. package/dist/ToggleButton/index.js +1 -1
  268. package/dist/{ToggleButton-B-C-Q7XP.js → ToggleButton-cLjh9W-x.js} +5 -4
  269. package/dist/Token/index.d.ts +1 -1
  270. package/dist/Token/index.js +1 -1
  271. package/dist/{Token-DsntTYhQ.js → Token-DhsAtAH6.js} +32 -17
  272. package/dist/Tokenizer/index.d.ts +1 -1
  273. package/dist/Tokenizer/index.js +1 -1
  274. package/dist/{Tokenizer-B5C_qY7t.js → Tokenizer-BGdj78UK.js} +107 -23
  275. package/dist/Toolbar/index.d.ts +2 -2
  276. package/dist/Toolbar/index.js +1 -1
  277. package/dist/{Toolbar-BrgvvTCk.js → Toolbar-C0pMWL4S.js} +1 -1
  278. package/dist/Tooltip/index.d.ts +1 -1
  279. package/dist/Tooltip/index.js +1 -1
  280. package/dist/{Tooltip-C4Vaqd3G.js → Tooltip-sAM8i1eO.js} +23 -19
  281. package/dist/TopNav/index.d.ts +1 -1
  282. package/dist/TopNav/index.js +1 -1
  283. package/dist/{TopNav-Ciq0l1w7.js → TopNav-Dw0m387B.js} +23 -22
  284. package/dist/TreeList/index.d.ts +1 -1
  285. package/dist/TreeList/index.js +1 -1
  286. package/dist/{TreeList-BUz-KZJd.js → TreeList-Bunn7u3T.js} +129 -46
  287. package/dist/Typeahead/index.d.ts +1 -1
  288. package/dist/Typeahead/index.js +2 -2
  289. package/dist/{Typeahead-JP9RT87x.js → Typeahead-DRyf2HEh.js} +123 -26
  290. package/dist/{TypeaheadMenu-DBW6rHeO.js → TypeaheadMenu-BY5__sPC.js} +141 -51
  291. package/dist/{announce-Cnio10Wk.js → announce-B210eJVf.js} +17 -2
  292. package/dist/characters-rcDbGt71.d.ts +29 -0
  293. package/dist/characters-wTnzjkkR.js +58 -0
  294. package/dist/{colorMode-CBgdgDSn.js → colorMode-BxqfDP4P.js} +1 -4
  295. package/dist/composables/index.d.ts +5 -4
  296. package/dist/composables/index.js +23 -18
  297. package/dist/{composables-CbKx9C1Y.js → composables-CnsDaMuU.js} +167 -197
  298. package/dist/context-B6UElI5X.js +5 -0
  299. package/dist/context-CM-cjGg_.js +1425 -0
  300. package/dist/{context-Cfjh8te1.js → context-Cfml4jaK.js} +5 -3
  301. package/dist/context-IvbU9c3T.js +8 -0
  302. package/dist/context-pjBxaMSh.js +28 -0
  303. package/dist/fieldParts--SyRZVQG.js +44 -0
  304. package/dist/fieldParts-LXpQMKE8.d.ts +27 -0
  305. package/dist/{focus-CpficIgf.js → focus-l8jVTcqd.js} +1 -1
  306. package/dist/hoverIntent-DMHGb85c.js +115 -0
  307. package/dist/{index-ClNU2Th8.d.ts → index-3t5RAfNP.d.ts} +6 -2
  308. package/dist/{index-B9e52paP.d.ts → index-5LVG3QyV.d.ts} +1 -1
  309. package/dist/{index-CsNi1I8j.d.ts → index-B08-Uxhv.d.ts} +4 -2
  310. package/dist/{index-TXcNH86P.d.ts → index-B1eCxBCY.d.ts} +1 -1
  311. package/dist/{index-Cn-sSds-.d.ts → index-B1t1oQWH.d.ts} +24 -1
  312. package/dist/{index-BkjSF265.d.ts → index-BEZ4ezJk.d.ts} +3 -3
  313. package/dist/{index-yT1yiiww.d.ts → index-BI6jikpA.d.ts} +23 -11
  314. package/dist/{index-DeQwYJbg.d.ts → index-BNaRK-s5.d.ts} +10 -1
  315. package/dist/{index-D97pQbua.d.ts → index-BV2D2x_u.d.ts} +1 -1
  316. package/dist/{index-Crp3NFLW.d.ts → index-BZKgbyN9.d.ts} +1 -1
  317. package/dist/{index-Bu8NA2SD.d.ts → index-BaxM-pFP.d.ts} +12 -3
  318. package/dist/{index-BVKivP59.d.ts → index-Bgk1Rj2A.d.ts} +32 -3
  319. package/dist/index-BkUkm6Al.d.ts +11 -0
  320. package/dist/index-Bo-ofFyg.d.ts +166 -0
  321. package/dist/{index-B1WJxt-n.d.ts → index-C-tFz2Yx.d.ts} +17 -7
  322. package/dist/{index-DWh2WC8W.d.ts → index-C4Cjz6OK.d.ts} +2 -2
  323. package/dist/{index-CqE4Bf3Q.d.ts → index-C732aNMY.d.ts} +18 -4
  324. package/dist/{index-B7yhzGUT.d.ts → index-C7sam-SB.d.ts} +2 -2
  325. package/dist/{index-BrJzFA5X.d.ts → index-C90l2rH1.d.ts} +1 -1
  326. package/dist/{index-vP0EtrJJ.d.ts → index-C9gAlDt_.d.ts} +6 -3
  327. package/dist/index-CKUfpmFL.d.ts +375 -0
  328. package/dist/{index-CL1T2j4y.d.ts → index-CL8JvxHW.d.ts} +3 -3
  329. package/dist/{index-IBAInumL.d.ts → index-CMme-xmL.d.ts} +19 -6
  330. package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
  331. package/dist/{index-12QYAbiz.d.ts → index-CRrSHbok.d.ts} +3 -2
  332. package/dist/{index-B42oE_F-.d.ts → index-CT5OEUxd.d.ts} +17 -4
  333. package/dist/{index-DG52Bg0W.d.ts → index-CTf3SK0b.d.ts} +6 -0
  334. package/dist/{index-Cde5JvtX.d.ts → index-CUVmtB5-.d.ts} +13 -6
  335. package/dist/{index-DXpSFlPG.d.ts → index-CWaSYtk9.d.ts} +4 -4
  336. package/dist/{index-CVn0GBdB.d.ts → index-Ca8VIE4l.d.ts} +1 -1
  337. package/dist/{index-Cyb9Du5Z.d.ts → index-CfR2Z0uG.d.ts} +1 -1
  338. package/dist/{index-Byar3h1e.d.ts → index-D05JGsT3.d.ts} +6 -3
  339. package/dist/{index-hCpxKePE.d.ts → index-D5N9ikrS.d.ts} +1 -1
  340. package/dist/{index-CkKPMIeX.d.ts → index-D7XRtUTY.d.ts} +9 -0
  341. package/dist/{index-i0tNFWfz.d.ts → index-D8lv2BiD.d.ts} +3 -1
  342. package/dist/{index-TntQsADQ.d.ts → index-DEm3kRBO.d.ts} +4 -3
  343. package/dist/{index-0QGtSf3r.d.ts → index-DFLPv9io.d.ts} +4 -3
  344. package/dist/{index-C2nbK2AA.d.ts → index-DLAG3m9W.d.ts} +13 -3
  345. package/dist/{index-D41_xqjs.d.ts → index-DTuhnqHb.d.ts} +16 -9
  346. package/dist/{index-B3Fomy15.d.ts → index-DbiZvj1P.d.ts} +4 -4
  347. package/dist/{index-C5e-7Obr.d.ts → index-Dj1_1t3j.d.ts} +19 -6
  348. package/dist/{index-DIXAzTKL.d.ts → index-DxxudRgB.d.ts} +1 -1
  349. package/dist/{index-BhpAUzUr.d.ts → index-Dy746dfn.d.ts} +1 -1
  350. package/dist/{index-GI9xIV9l.d.ts → index-JL4auphT.d.ts} +2 -2
  351. package/dist/{index-DVmgNb78.d.ts → index-TA1zVibb.d.ts} +4 -4
  352. package/dist/{index-DUaLJO7l.d.ts → index-UA93Im7H.d.ts} +155 -109
  353. package/dist/{index-COgrQZIL.d.ts → index-YKCx03zD.d.ts} +2 -2
  354. package/dist/{index-XuAAcYiP.d.ts → index-f3d9cVtj.d.ts} +1 -1
  355. package/dist/{index-T2FOcOuI.d.ts → index-jOwU3YoR.d.ts} +400 -90
  356. package/dist/{index-CICeEoZV.d.ts → index-pNtfr-RW.d.ts} +1 -1
  357. package/dist/{index-B4OOtNP8.d.ts → index-pYh4gqgl.d.ts} +1 -1
  358. package/dist/index.d.ts +81 -75
  359. package/dist/index.js +150 -136
  360. package/dist/inlineSize-BNe8wggI.js +66 -0
  361. package/dist/inputPresentation-BOyHkCDr.js +62 -0
  362. package/dist/interactionModality-ACpTMhak.js +44 -0
  363. package/dist/isApplePlatform-B1ju6F5B.js +27 -0
  364. package/dist/isRenderable-BnKHIqfd.js +21 -0
  365. package/dist/layerDepth-CNDh-IHb.js +181 -0
  366. package/dist/link-DuuA2eCL.js +30 -0
  367. package/dist/loadCatalog-CsZFr9dg.js +424 -0
  368. package/dist/loadCatalog-opk5hs94.d.ts +803 -0
  369. package/dist/locale/index.d.ts +2 -2
  370. package/dist/locale/index.js +4 -3
  371. package/dist/locale-D1Z3K290.js +343 -0
  372. package/dist/modalOutlet-CUOcrhIu.js +56 -0
  373. package/dist/optionAction-Cg7xQLUA.d.ts +6 -0
  374. package/dist/{power-search-DrDfcoL1.d.ts → power-search-gHLIYXs5.d.ts} +2 -0
  375. package/dist/protocol-DHxY0NI8.js +113 -0
  376. package/dist/protocol-DwUmpC5G.d.ts +240 -0
  377. package/dist/publicParser-B6XMcsB2.d.ts +141 -0
  378. package/dist/publicParser-DWUMCx7j.js +1437 -0
  379. package/dist/resizableChannel-3vivrEcT.js +20 -0
  380. package/dist/safeUrl-CsvfcZ9m.js +54 -0
  381. package/dist/scopedProvide-C-Df7c15.js +30 -0
  382. package/dist/scrollKeyboardDelegation-D7cumnOl.js +238 -0
  383. package/dist/scrollLock-C3aT4-0z.js +102 -0
  384. package/dist/{searchResultMessage-hXXNOFJP.js → searchResultMessage-DtyScdZs.js} +5 -14
  385. package/dist/{semantic-CKH9XVqa.d.ts → semantic-BF_AjLvk.d.ts} +6 -3
  386. package/dist/slug-DAK6hdbr.js +17 -0
  387. package/dist/syntaxContext-DmIfNNtb.js +4 -0
  388. package/dist/triggerVariant-BsL8jMHs.js +16 -0
  389. package/dist/{types-0Q_SJv_F.d.ts → types-Bb7OGivY.d.ts} +6 -1
  390. package/dist/{types-CwyibrRB.d.ts → types-C5GQ2KCK.d.ts} +23 -3
  391. package/dist/{types-gKsEkk2g.d.ts → types-CsqwQkf1.d.ts} +143 -10
  392. package/dist/upstreamMap-ocuIRfI2.js +893 -0
  393. package/dist/{useAnchoredListbox-DwztMNjP.js → useAnchoredListbox-DGxxKHZb.js} +2 -2
  394. package/dist/{useAsyncSource-xpQovjV_.d.ts → useAsyncSource-aGzrvRkI.d.ts} +3 -0
  395. package/dist/{useClickableContainer-DyNpnSEa.js → useClickableContainer-CdGp_Cev.js} +1 -1
  396. package/dist/{useClipboard-BDfbEsWd.js → useClipboard-Dk8cS810.js} +1 -1
  397. package/dist/useHoverLayerDismiss-kYJ_NqL4.js +27 -0
  398. package/dist/{useIndicator-i1NORM7W.js → useIndicator-D9Y0dJsm.js} +5 -23
  399. package/dist/{useInputContainer-CpgDe2-4.js → useInputContainer-CLcYrby4.js} +1 -1
  400. package/dist/{useInputStatusIcon-DBOwxV4x.js → useInputStatusIcon-CWkCeMyX.js} +2 -2
  401. package/dist/useLayerMountTarget-BmZyeKWE.js +156 -0
  402. package/dist/{useListFocus-D0iOJl39.js → useListFocus-ChxLg0b4.js} +3 -2
  403. package/dist/{useMenuDrillIn-DzKGkTho.js → useMenuDrillIn-DhUnPvKs.js} +6 -5
  404. package/dist/useMenuHover-Djreu23i.js +170 -0
  405. package/dist/useMenuPress-8foxY8z4.js +764 -0
  406. package/dist/{useMergedRefs-CfHHlCsn.js → useMergedRefs-Cb6_w93m.js} +24 -4
  407. package/dist/{useNumberField-4-dIGVed.js → useNumberField-Dk1BE3-K.js} +3 -3
  408. package/dist/useOptionActionGrid-CkJcuvaU.js +97 -0
  409. package/dist/{usePositionedLayer-Cru9_00b.js → usePositionedLayer-B7cvG-_v.js} +43 -49
  410. package/dist/usePressFeedback-BJCpjEpv.js +319 -0
  411. package/dist/{useResizable-DDwPpPe6.d.ts → useResizable-1MHPNaRD.d.ts} +19 -1
  412. package/dist/{useResizable-B3ahKLoZ.js → useResizable-I3BCiLSL.js} +72 -40
  413. package/dist/useResolvedLabelHidden-B2rlWiaI.js +30 -0
  414. package/dist/{useRestoreFocus-Djw9RUIf.js → useRestoreFocus-XEKs5-gp.js} +49 -7
  415. package/dist/useScrollOverflow-DuMoGXmm.js +67 -0
  416. package/dist/useScrollableArea-BE8b3qm7.js +222 -0
  417. package/dist/{useTimeValue-6ufHM15W.js → useTimeValue-BJd0xBhG.js} +4 -22
  418. package/dist/useTranslator-PEXMxDpv.js +35 -0
  419. package/dist/{useTypeahead-PAK8lMYz.js → useTypeahead-BvtflkRk.js} +4 -5
  420. package/dist/utils/index.d.ts +3 -0
  421. package/dist/utils/index.js +5 -0
  422. package/dist/{utils-D33VQDnk.js → utils-ClVseK2w.js} +29 -2
  423. package/dist/utils-z3Q6BGIJ.js +819 -0
  424. package/locales/SOURCE.json +1 -1
  425. package/package.json +18 -2
  426. package/reset.css +364 -1
  427. package/styles/avatar-group.css +9 -1
  428. package/styles/badge.css +8 -5
  429. package/styles/banner.css +125 -26
  430. package/styles/blockquote.css +1 -0
  431. package/styles/bordered-control.css +1 -1
  432. package/styles/bottom-sheet.css +74 -6
  433. package/styles/breadcrumbs.css +16 -2
  434. package/styles/button-group.css +3 -1
  435. package/styles/button.css +53 -11
  436. package/styles/card.css +1 -1
  437. package/styles/chat.css +16 -6
  438. package/styles/checkbox-input.css +10 -0
  439. package/styles/clickable-card.css +10 -3
  440. package/styles/collapsible.css +12 -5
  441. package/styles/command-palette.css +29 -14
  442. package/styles/complex-selector.css +24 -5
  443. package/styles/context-menu.css +3 -3
  444. package/styles/date-input.css +111 -1
  445. package/styles/dialog-header.css +4 -1
  446. package/styles/dialog.css +7 -0
  447. package/styles/dropdown-menu.css +12 -3
  448. package/styles/field.css +5 -0
  449. package/styles/form-layout.css +1 -0
  450. package/styles/heading.css +18 -8
  451. package/styles/icon.css +9 -9
  452. package/styles/kbd.css +1 -1
  453. package/styles/layer.css +72 -0
  454. package/styles/list.css +9 -2
  455. package/styles/metadata-list.css +1 -0
  456. package/styles/mobile-nav.css +4 -1
  457. package/styles/multi-selector.css +48 -1
  458. package/styles/nav-item.css +9 -2
  459. package/styles/nav-menu.css +12 -2
  460. package/styles/number-input.css +9 -1
  461. package/styles/overflow-list.css +1 -1
  462. package/styles/popover.css +2 -1
  463. package/styles/power-search.css +5 -3
  464. package/styles/pressable.css +63 -22
  465. package/styles/progress-bar.css +15 -3
  466. package/styles/radio.css +16 -0
  467. package/styles/resize-handle.css +42 -0
  468. package/styles/segmented-control.css +12 -4
  469. package/styles/selector.css +53 -1
  470. package/styles/side-nav.css +19 -0
  471. package/styles/slider.css +4 -3
  472. package/styles/spinner.css +48 -42
  473. package/styles/stepper.css +58 -4
  474. package/styles/switch.css +26 -0
  475. package/styles/tab-list.css +132 -3
  476. package/styles/table.css +88 -11
  477. package/styles/text-area.css +7 -1
  478. package/styles/text-input.css +1 -1
  479. package/styles/text.css +6 -6
  480. package/styles/thumbnail.css +11 -3
  481. package/styles/time-input.css +8 -0
  482. package/styles/toast.css +37 -3
  483. package/styles/token.css +2 -2
  484. package/styles/tokenizer.css +1 -1
  485. package/styles/toolbar.css +4 -1
  486. package/styles/tree-list.css +1 -1
  487. package/styles/typeahead.css +34 -1
  488. package/styles.css +1 -0
  489. package/dist/Blockquote-DFqBv_oJ.js +0 -18
  490. package/dist/Breadcrumbs-DIm4figq.js +0 -141
  491. package/dist/ButtonGroup-ySQWanDP.js +0 -125
  492. package/dist/DateTimeInput-A7m2O3bg.js +0 -268
  493. package/dist/FieldIcon--NTgW5IU.js +0 -44
  494. package/dist/MultiSelector-BtAUfQ3t.js +0 -990
  495. package/dist/NumberInput-AZ9x3oja.js +0 -473
  496. package/dist/Selector-DJ2BhUTV.js +0 -677
  497. package/dist/Spinner-9cYUCnDy.js +0 -84
  498. package/dist/Theme-CtaUWo4g.js +0 -1246
  499. package/dist/Toast-BuqIZV5z.js +0 -322
  500. package/dist/context-4PuqD1Ic.js +0 -4
  501. package/dist/context-D5-MwxnN.js +0 -4
  502. package/dist/context-iABt_ueM.js +0 -976
  503. package/dist/index-BH9PzQ1F.d.ts +0 -87
  504. package/dist/link-C4_WogdF.js +0 -18
  505. package/dist/loadCatalog-BGHKG_9N.d.ts +0 -457
  506. package/dist/loadCatalog-CXKqEB9s.js +0 -877
  507. package/dist/locale-DgkZEMTn.js +0 -105
  508. package/dist/platform-B_9W_aHW.js +0 -33
  509. package/dist/scrollLock-BzIvIimL.js +0 -42
  510. package/dist/useMenuPress-D-FRNrBW.js +0 -573
  511. package/dist/useScrollableArea-DDk_CluT.js +0 -172
  512. /package/dist/{index-lgvUFSCO.d.ts → index-CryFtTT6.d.ts} +0 -0
@@ -0,0 +1,27 @@
1
+ //#region src/utils/isApplePlatform.ts
2
+ /**
3
+ * 只读 User-Agent Client Hints。
4
+ *
5
+ * 空字符串(改写过客户端标识的浏览器会给这个)和规范自己的哨兵值 `Unknown`
6
+ * 都算「没回答」,不能当成「不是苹果」。
7
+ */
8
+ function readClientHintsPlatform(userAgentData) {
9
+ const raw = userAgentData?.platform;
10
+ const named = typeof raw === "string" ? raw.trim() : "";
11
+ if (named === "" || named.toLowerCase() === "unknown") return "unknown";
12
+ return /mac/i.test(named) ? "apple" : "other";
13
+ }
14
+ /**
15
+ * 当前是不是 Apple 平台。
16
+ *
17
+ * 先看 Client Hints;它说不出来时,退回 `navigator.platform`(已废弃但到处都有)。
18
+ * 服务端没有 navigator,答 false。
19
+ */
20
+ function isApplePlatform() {
21
+ if (typeof navigator === "undefined") return false;
22
+ const hinted = readClientHintsPlatform(navigator.userAgentData);
23
+ if (hinted !== "unknown") return hinted === "apple";
24
+ return /Mac|iPhone|iPad|iPod/.test(navigator.platform ?? "");
25
+ }
26
+ //#endregion
27
+ export { isApplePlatform as t };
@@ -0,0 +1,21 @@
1
+ import { Comment, Fragment, Text } from "vue";
2
+ //#region src/Indicator/isRenderable.ts
3
+ /**
4
+ * Whether a slot or vnode should replace an indicator's own mark.
5
+ *
6
+ * Null, undefined, booleans, and the empty string do not count. An element
7
+ * does, even when that element later renders nothing. A host writes
8
+ * `v-if="busy"` around a spinner, and `false` must not delete the mark.
9
+ */
10
+ function isRenderable(value) {
11
+ if (value == null || typeof value === "boolean" || value === "") return false;
12
+ if (Array.isArray(value)) return value.some((item) => isRenderable(item));
13
+ if (typeof value !== "object") return true;
14
+ const node = value;
15
+ if (node.type === Comment) return false;
16
+ if (node.type === Text) return String(node.children ?? "").trim() !== "";
17
+ if (node.type === Fragment) return isRenderable(node.children);
18
+ return true;
19
+ }
20
+ //#endregion
21
+ export { isRenderable as t };
@@ -0,0 +1,181 @@
1
+ import { inject, provide } from "vue";
2
+ //#region src/utils/ime.ts
3
+ /**
4
+ * 输入法(IME)正在拼字时的按键判断,全库只用这一个。
5
+ *
6
+ * 中文、日文、韩文用户拼字时,按 Enter 是把候选词上屏,按 Escape 是取消拼字,
7
+ * 方向键是在候选框里挑词。浏览器会先发这个 keydown,随后才发 `compositionend`,
8
+ * 不判断的话,菜单、对话框、快捷键会把它当成命令:提交、关闭、跳转。
9
+ *
10
+ * 三个信号任一成立就算拼字中:
11
+ * - `isComposing === true`:标准信号,现在的浏览器都可靠;
12
+ * - `keyCode === 229`:浏览器表示「这个键交给输入法处理了」的老信号,部分输入法和老版 Safari
13
+ * 发拼字的 keydown 时还没把 `isComposing` 设上,只有这个;
14
+ * - `key === 'Process'`:同一件事在 `key` 上的写法。
15
+ */
16
+ const IME_PROCESSING_KEY_CODE = 229;
17
+ /** 这个按键属于输入法正在进行的拼字,不能当命令处理。 */
18
+ function isImeKeyEvent(event) {
19
+ return event.isComposing === true || event.keyCode === IME_PROCESSING_KEY_CODE || event.key === "Process";
20
+ }
21
+ //#endregion
22
+ //#region src/layer/dismissStack.ts
23
+ const entries = [];
24
+ let seqByToken = /* @__PURE__ */ new WeakMap();
25
+ let nextSeq = 0;
26
+ let isListening = false;
27
+ /**
28
+ * 按压编号。每收到一次 pointerdown 加一。
29
+ * 在一次按压里才登记进来的层(触发器按下就打开的那种)不能被这次按压自己关掉,
30
+ * 记下编号就能认出来。
31
+ */
32
+ let pressSerial = 0;
33
+ function seqFor(token) {
34
+ const existing = seqByToken.get(token);
35
+ if (existing !== void 0) return existing;
36
+ const seq = nextSeq++;
37
+ seqByToken.set(token, seq);
38
+ return seq;
39
+ }
40
+ function isPresent(entry) {
41
+ return entry.isPresent?.() ?? true;
42
+ }
43
+ /**
44
+ * 比较两层谁在上面:正数表示 `a` 在上面,负数表示在下面。
45
+ *
46
+ * 先比嵌套深度,再比 DOM 包含,最后比排位号。这是一个偏序,只能两两比较求最大值,
47
+ * 不能排序:容器包含关系只在有包含关系的那一对之间有定义。
48
+ */
49
+ function compareEntries(a, b) {
50
+ if (a.depth !== b.depth) return a.depth - b.depth;
51
+ const aEl = a.getContainer?.() ?? null;
52
+ const bEl = b.getContainer?.() ?? null;
53
+ if (aEl != null && bEl != null && aEl !== bEl) {
54
+ if (bEl.contains(aEl)) return 1;
55
+ if (aEl.contains(bEl)) return -1;
56
+ }
57
+ return a.seq - b.seq;
58
+ }
59
+ /** 屏幕上现存的层,最上面那层在前。 */
60
+ function presentEntriesTopFirst() {
61
+ const present = entries.filter(isPresent);
62
+ const ordered = [];
63
+ for (const entry of present) {
64
+ let insertAt = ordered.length;
65
+ for (let i = 0; i < ordered.length; i++) if (compareEntries(entry, ordered[i]) > 0) {
66
+ insertAt = i;
67
+ break;
68
+ }
69
+ ordered.splice(insertAt, 0, entry);
70
+ }
71
+ return ordered;
72
+ }
73
+ function topPresentEntry() {
74
+ return presentEntriesTopFirst()[0] ?? null;
75
+ }
76
+ /** `token` 是不是此刻最上面那一层。 */
77
+ function isTopLayer(token) {
78
+ return topPresentEntry()?.token === token;
79
+ }
80
+ /**
81
+ * 关掉一次按压该关掉的层。
82
+ *
83
+ * 从最上面往下找,点在某一层里面就只关它上面的层;点在所有层外面就只关最上面那一层。
84
+ * 点在栈顶自己的触发器上时什么都不关,那一下是触发器的开关动作。
85
+ */
86
+ function handlePointerDown(event) {
87
+ pressSerial += 1;
88
+ const serial = pressSerial;
89
+ const target = event.target;
90
+ if (!(target instanceof Node)) return;
91
+ const ordered = presentEntriesTopFirst().filter((entry) => entry.bornPress !== serial);
92
+ const top = ordered[0];
93
+ if (top == null) return;
94
+ const topTrigger = top.getTrigger?.() ?? null;
95
+ if (topTrigger != null && topTrigger.contains(target)) return;
96
+ for (let i = 0; i < ordered.length; i++) {
97
+ const container = ordered[i].getContainer?.() ?? null;
98
+ if (container == null || !container.contains(target)) continue;
99
+ for (let j = 0; j < i; j++) {
100
+ const above = ordered[j];
101
+ if (above.dismissOnPointerOutside) above.onDismiss();
102
+ }
103
+ return;
104
+ }
105
+ if (top.dismissOnPointerOutside) top.onDismiss();
106
+ }
107
+ /**
108
+ * 把一次 Escape 按键交给栈。
109
+ *
110
+ * 输入法拼字中的 Escape 是取消拼字,不是关层:什么都不关,但仍然吃掉这次按键。
111
+ * 不吃掉的话浏览器会自己发起一次关闭请求,同一按键照样把层关掉。
112
+ */
113
+ function handleKeyDown(event) {
114
+ if (event.key !== "Escape") return;
115
+ const top = topPresentEntry();
116
+ if (top == null) return;
117
+ if (isImeKeyEvent(event)) {
118
+ event.preventDefault();
119
+ return;
120
+ }
121
+ if (event.defaultPrevented) return;
122
+ if (top.dismissOnEscape === "ignore") return;
123
+ event.preventDefault();
124
+ if (top.dismissOnEscape === "block") return;
125
+ if (top.onEscape != null) top.onEscape();
126
+ else top.onDismiss();
127
+ }
128
+ function startListening() {
129
+ if (isListening || typeof document === "undefined") return;
130
+ isListening = true;
131
+ document.addEventListener("pointerdown", handlePointerDown, true);
132
+ document.addEventListener("keydown", handleKeyDown);
133
+ }
134
+ function stopListening() {
135
+ if (!isListening || typeof document === "undefined") return;
136
+ isListening = false;
137
+ document.removeEventListener("pointerdown", handlePointerDown, true);
138
+ document.removeEventListener("keydown", handleKeyDown);
139
+ }
140
+ /**
141
+ * 把一层登记进栈,返回「把这一层摘下来」的函数。
142
+ * 调用方负责在关闭或卸载时调用它。
143
+ */
144
+ function pushLayer(entry) {
145
+ const full = {
146
+ ...entry,
147
+ depth: entry.depth ?? 0,
148
+ seq: seqFor(entry.token),
149
+ bornPress: pressSerial
150
+ };
151
+ entries.push(full);
152
+ startListening();
153
+ return () => {
154
+ const index = entries.indexOf(full);
155
+ if (index !== -1) entries.splice(index, 1);
156
+ if (entries.length === 0) stopListening();
157
+ };
158
+ }
159
+ //#endregion
160
+ //#region src/layer/layerDepth.ts
161
+ /**
162
+ * 浮层嵌套深度。
163
+ *
164
+ * 关层时要比谁在上面。气泡经常被 Teleport 到 body,DOM 上的包含关系就断了。
165
+ * provide/inject 跟着组件树走,Teleport 切不断,所以深度从这里往下传。
166
+ * 根上是 0。每一层浮层只给自己的内容加 1,里面再开的层读到的就是更深的数字。
167
+ */
168
+ const layerDepthKey = Symbol("astryx-layer-depth");
169
+ /** 读当前子树的嵌套深度。没有外层浮层时是 0。必须在 setup 里调用。 */
170
+ function useLayerDepth() {
171
+ return inject(layerDepthKey, 0);
172
+ }
173
+ /**
174
+ * 给这一层的内容再加深一层。
175
+ * 在内容边界的 setup 里调用,不要包住触发器:触发器还在外面那一层。
176
+ */
177
+ function provideLayerDepth() {
178
+ provide(layerDepthKey, useLayerDepth() + 1);
179
+ }
180
+ //#endregion
181
+ export { isImeKeyEvent as a, pushLayer as i, useLayerDepth as n, isTopLayer as r, provideLayerDepth as t };
@@ -0,0 +1,30 @@
1
+ import { n as isSafeUrl } from "./safeUrl-CsvfcZ9m.js";
2
+ import { toRaw } from "vue";
3
+ //#region src/NavItem/link.ts
4
+ /**
5
+ * 有可用地址、而且协议允许当页面打开时,才是链接。
6
+ * 禁用,或 `javascript:`、`vbscript:`、`data:text/html`,都不是。
7
+ */
8
+ function isNavigableHref(href, isDisabled = false) {
9
+ return href != null && href !== "" && !isDisabled && isSafeUrl(href);
10
+ }
11
+ /** 能导航时原样返回地址,否则不把这个字符串写进 `href`。 */
12
+ function safeNavHref(href) {
13
+ return isNavigableHref(href) ? href : void 0;
14
+ }
15
+ /**
16
+ * 有可用地址时用链接组件,否则用按钮。禁用的地址也不走链接。
17
+ * `fallback` 是外层的默认链接组件,例如 `LinkProvider` 给的那个;`as` 写了就以 `as` 为准。
18
+ */
19
+ function resolveNavRoot(href, isDisabled, as, fallback) {
20
+ if (isNavigableHref(href, isDisabled)) {
21
+ const root = as ?? fallback;
22
+ return root == null ? "a" : toRaw(root);
23
+ }
24
+ return "button";
25
+ }
26
+ function isExternalNavTarget(target) {
27
+ return target === "_blank";
28
+ }
29
+ //#endregion
30
+ export { safeNavHref as i, isNavigableHref as n, resolveNavRoot as r, isExternalNavTarget as t };
@@ -0,0 +1,424 @@
1
+ import { c as astryxMessages } from "./context-CM-cjGg_.js";
2
+ import { t as upstreamMessageMap } from "./upstreamMap-ocuIRfI2.js";
3
+ //#region src/locale/icu.ts
4
+ const pluralRules = /* @__PURE__ */ new Map();
5
+ const ordinalRules = /* @__PURE__ */ new Map();
6
+ const numberFormats = /* @__PURE__ */ new Map();
7
+ function rulesFor(locale, ordinal) {
8
+ const cache = ordinal ? ordinalRules : pluralRules;
9
+ let rules = cache.get(locale);
10
+ if (rules == null) {
11
+ rules = new Intl.PluralRules(locale, ordinal ? { type: "ordinal" } : void 0);
12
+ cache.set(locale, rules);
13
+ }
14
+ return rules;
15
+ }
16
+ function numberFor(locale) {
17
+ let format = numberFormats.get(locale);
18
+ if (format == null) {
19
+ format = new Intl.NumberFormat(locale);
20
+ numberFormats.set(locale, format);
21
+ }
22
+ return format;
23
+ }
24
+ /**
25
+ * 解析原版目录里的 ICU MessageFormat。
26
+ * 覆盖 `{name}`、`{name, number}`、`plural`、`selectordinal` 和 `select`。
27
+ * 解析失败时抛错,调用方负责把这个键记进未映射列表。
28
+ */
29
+ function formatIcu(message, values, locale) {
30
+ return render(parseMessage(message), values, locale, void 0);
31
+ }
32
+ function icuPlaceholderNames(message) {
33
+ return Object.keys(icuArgumentKinds(message));
34
+ }
35
+ /**
36
+ * 每个占位符名字用到的写法,已排序去重。
37
+ * 译文和原文的这张表一致,说明两边收同样的值;字面文字和占位符顺序不算在内。
38
+ * 解析失败时抛错。
39
+ */
40
+ function icuArgumentKinds(message) {
41
+ const kinds = /* @__PURE__ */ new Map();
42
+ collectKinds(parseMessage(message), kinds);
43
+ return Object.fromEntries([...kinds].map(([name, set]) => [name, [...set].sort()]));
44
+ }
45
+ function collectKinds(nodes, kinds) {
46
+ for (const node of nodes) {
47
+ if (node.type === "text" || node.type === "pound") continue;
48
+ const kind = node.type === "arg" ? "argument" : node.type === "plural" && node.ordinal ? "selectordinal" : node.type;
49
+ const set = kinds.get(node.name) ?? /* @__PURE__ */ new Set();
50
+ set.add(kind);
51
+ kinds.set(node.name, set);
52
+ if (node.type === "plural" || node.type === "select") for (const option of node.options) collectKinds(option.nodes, kinds);
53
+ }
54
+ }
55
+ function render(nodes, values, locale, pound) {
56
+ let text = "";
57
+ for (const node of nodes) text += renderNode(node, values, locale, pound);
58
+ return text;
59
+ }
60
+ function renderNode(node, values, locale, pound) {
61
+ if (node.type === "text") return node.value;
62
+ if (node.type === "pound") return pound == null ? "" : numberFor(locale).format(pound);
63
+ if (node.type === "arg") return textValue(values[node.name]);
64
+ if (node.type === "number") {
65
+ const value = numericValue(values[node.name]);
66
+ return value == null ? "" : numberFor(locale).format(value);
67
+ }
68
+ if (node.type === "select") return renderChoice(node.options, selectSelector(values[node.name]), values, locale, pound);
69
+ const value = numericValue(values[node.name]);
70
+ const rounded = value == null ? void 0 : value - node.offset;
71
+ const selector = value == null ? "other" : pluralSelector(value, node.options, locale, node.ordinal);
72
+ return renderChoice(node.options, selector, values, locale, rounded);
73
+ }
74
+ function pluralSelector(value, options, locale, ordinal) {
75
+ const exact = exactSelector(value);
76
+ if (exact != null && options.some((option) => option.selector === exact)) return exact;
77
+ return rulesFor(locale, ordinal).select(value);
78
+ }
79
+ function renderChoice(options, selector, values, locale, pound) {
80
+ const match = options.find((option) => option.selector === selector) ?? options.find((option) => option.selector === "other") ?? options[0];
81
+ return match == null ? "" : render(match.nodes, values, locale, pound);
82
+ }
83
+ function textValue(value) {
84
+ if (value == null) return "";
85
+ return typeof value === "number" ? String(value) : value;
86
+ }
87
+ function numericValue(value) {
88
+ if (typeof value === "number" && Number.isFinite(value)) return value;
89
+ if (typeof value === "string" && value.trim() !== "") {
90
+ const parsed = Number(value);
91
+ if (Number.isFinite(parsed)) return parsed;
92
+ }
93
+ }
94
+ function exactSelector(value) {
95
+ return Number.isInteger(value) ? `=${value}` : void 0;
96
+ }
97
+ function selectSelector(value) {
98
+ if (value == null) return "other";
99
+ return String(value);
100
+ }
101
+ function startsQuote(next, pluralPound) {
102
+ return next === "{" || next === "}" || next === "<" || next === ">" || pluralPound && next === "#";
103
+ }
104
+ function parseMessage(input) {
105
+ let index = 0;
106
+ function parseNodes(stop, pluralPound) {
107
+ const nodes = [];
108
+ let text = "";
109
+ const flush = () => {
110
+ if (text !== "") {
111
+ nodes.push({
112
+ type: "text",
113
+ value: text
114
+ });
115
+ text = "";
116
+ }
117
+ };
118
+ while (index < input.length) {
119
+ const char = input[index];
120
+ if (char === "'") {
121
+ const next = input[index + 1];
122
+ if (next === "'") {
123
+ text += "'";
124
+ index += 2;
125
+ continue;
126
+ }
127
+ if (!startsQuote(next, pluralPound)) {
128
+ text += "'";
129
+ index += 1;
130
+ continue;
131
+ }
132
+ index += 1;
133
+ while (index < input.length) {
134
+ if (input[index] === "'") {
135
+ if (input[index + 1] === "'") {
136
+ text += "'";
137
+ index += 2;
138
+ continue;
139
+ }
140
+ index += 1;
141
+ break;
142
+ }
143
+ text += input[index];
144
+ index += 1;
145
+ }
146
+ continue;
147
+ }
148
+ if (char === "#" && pluralPound) {
149
+ flush();
150
+ nodes.push({ type: "pound" });
151
+ index += 1;
152
+ continue;
153
+ }
154
+ if (char === "{") {
155
+ flush();
156
+ index += 1;
157
+ nodes.push(parseArgument());
158
+ continue;
159
+ }
160
+ if (stop != null && char === stop) {
161
+ flush();
162
+ return nodes;
163
+ }
164
+ text += char;
165
+ index += 1;
166
+ }
167
+ if (stop != null) throw new Error("ICU 消息没有闭合");
168
+ flush();
169
+ return nodes;
170
+ }
171
+ function parseArgument() {
172
+ skipSpace();
173
+ const name = readIdentifier();
174
+ skipSpace();
175
+ if (input[index] === "}") {
176
+ index += 1;
177
+ return {
178
+ type: "arg",
179
+ name
180
+ };
181
+ }
182
+ if (input[index] !== ",") throw new Error(`ICU 参数 ${name} 格式不对`);
183
+ index += 1;
184
+ skipSpace();
185
+ const kind = readIdentifier();
186
+ skipSpace();
187
+ if (kind === "number") {
188
+ if (input[index] === ",") skipNumberStyle();
189
+ expectChar("}");
190
+ index += 1;
191
+ return {
192
+ type: "number",
193
+ name
194
+ };
195
+ }
196
+ if (kind === "plural" || kind === "selectordinal" || kind === "select") {
197
+ expectChar(",");
198
+ index += 1;
199
+ skipSpace();
200
+ let offset = 0;
201
+ if (kind !== "select" && input.startsWith("offset:", index)) {
202
+ index += 7;
203
+ skipSpace();
204
+ offset = readInteger();
205
+ skipSpace();
206
+ }
207
+ const options = [];
208
+ while (index < input.length && input[index] !== "}") {
209
+ skipSpace();
210
+ if (input[index] === "}") break;
211
+ const selector = readSelector();
212
+ skipSpace();
213
+ expectChar("{");
214
+ index += 1;
215
+ const nodes = parseNodes("}", kind !== "select");
216
+ expectChar("}");
217
+ index += 1;
218
+ options.push({
219
+ selector,
220
+ nodes
221
+ });
222
+ }
223
+ expectChar("}");
224
+ index += 1;
225
+ if (options.length === 0) throw new Error(`ICU ${kind} 没有选项`);
226
+ if (kind === "select") return {
227
+ type: "select",
228
+ name,
229
+ options
230
+ };
231
+ return {
232
+ type: "plural",
233
+ name,
234
+ offset,
235
+ ordinal: kind === "selectordinal",
236
+ options
237
+ };
238
+ }
239
+ throw new Error(`不支持的 ICU 类型 ${kind}`);
240
+ }
241
+ function skipNumberStyle() {
242
+ let depth = 0;
243
+ while (index < input.length) {
244
+ const char = input[index];
245
+ if (char === "{") depth += 1;
246
+ else if (char === "}") {
247
+ if (depth === 0) return;
248
+ depth -= 1;
249
+ }
250
+ index += 1;
251
+ }
252
+ throw new Error("ICU number 没有闭合");
253
+ }
254
+ function skipSpace() {
255
+ while (index < input.length && (input[index] === " " || input[index] === "\n" || input[index] === "\r" || input[index] === " ")) index += 1;
256
+ }
257
+ function readIdentifier() {
258
+ const start = index;
259
+ while (index < input.length && /[\w$]/.test(input[index])) index += 1;
260
+ if (start === index) throw new Error("ICU 缺少参数名");
261
+ return input.slice(start, index);
262
+ }
263
+ function readSelector() {
264
+ if (input[index] === "=") {
265
+ index += 1;
266
+ const sign = input[index] === "-" ? "-" : "";
267
+ if (sign) index += 1;
268
+ return `=${sign}${readInteger()}`;
269
+ }
270
+ return readIdentifier();
271
+ }
272
+ function readInteger() {
273
+ const start = index;
274
+ while (index < input.length && input[index] >= "0" && input[index] <= "9") index += 1;
275
+ if (start === index) throw new Error("ICU 缺少数字");
276
+ return Number(input.slice(start, index));
277
+ }
278
+ function expectChar(char) {
279
+ if (input[index] !== char) throw new Error(`ICU 期望 ${char}`);
280
+ }
281
+ return parseNodes(null, false);
282
+ }
283
+ //#endregion
284
+ //#region src/locale/loadCatalog.ts
285
+ /**
286
+ * 把一份原版 Astryx locale JSON 映射成 `AstryxMessages`。
287
+ * 内置的 `en` 和 `zh-CN` 不会被改掉。返回值要交给 `provideAstryxLocale` 的第二个参数。
288
+ * `unmapped` 列出每一个没写进文案树的键。
289
+ */
290
+ function loadAstryxCatalog(locale, catalog) {
291
+ const messages = cloneMessages(astryxMessages.en);
292
+ const tree = messages;
293
+ const assigned = /* @__PURE__ */ new Set();
294
+ const unmapped = [];
295
+ const present = /* @__PURE__ */ new Set();
296
+ for (const key of Object.keys(catalog).sort()) {
297
+ present.add(key);
298
+ const read = readMessage(catalog[key]);
299
+ if (read.message == null) {
300
+ unmapped.push({
301
+ key,
302
+ message: read.invalid,
303
+ reason: "invalid-entry"
304
+ });
305
+ continue;
306
+ }
307
+ const targets = upstreamMessageMap[key];
308
+ if (targets == null) {
309
+ unmapped.push({
310
+ key,
311
+ message: read.message,
312
+ reason: "no-slot"
313
+ });
314
+ continue;
315
+ }
316
+ if (!writeTargets(tree, assigned, targets, read.message, locale)) unmapped.push({
317
+ key,
318
+ message: read.message,
319
+ reason: failureReason(targets, assigned, read.message)
320
+ });
321
+ }
322
+ const missingKeys = Object.keys(upstreamMessageMap).filter((key) => !present.has(key)).sort();
323
+ const fallbackFields = collectLeaves(tree).filter((path) => !assigned.has(path)).sort();
324
+ unmapped.sort((a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0);
325
+ return {
326
+ locale,
327
+ messages,
328
+ unmapped,
329
+ missingKeys,
330
+ fallbackFields
331
+ };
332
+ }
333
+ function writeTargets(tree, assigned, targets, message, locale) {
334
+ let wrote = false;
335
+ let names;
336
+ try {
337
+ names = icuPlaceholderNames(message);
338
+ } catch {
339
+ return false;
340
+ }
341
+ for (const target of targets) {
342
+ if (assigned.has(target.path)) continue;
343
+ const args = target.args ?? [];
344
+ if (names.some((name) => !args.includes(name))) continue;
345
+ let value;
346
+ try {
347
+ value = target.args == null ? cleanup(formatIcu(message, {}, locale)) : bindMessage(message, target.args, locale);
348
+ } catch {
349
+ continue;
350
+ }
351
+ setPath(tree, target.path, value);
352
+ assigned.add(target.path);
353
+ wrote = true;
354
+ }
355
+ return wrote;
356
+ }
357
+ function failureReason(targets, assigned, message) {
358
+ let names;
359
+ try {
360
+ names = icuPlaceholderNames(message);
361
+ } catch {
362
+ return "unsupported-message";
363
+ }
364
+ const openTargets = targets.filter((target) => !assigned.has(target.path));
365
+ if (openTargets.length === 0) return "slot-taken";
366
+ return openTargets.some((target) => {
367
+ const args = target.args ?? [];
368
+ return names.some((name) => !args.includes(name));
369
+ }) ? "placeholder-mismatch" : "unsupported-message";
370
+ }
371
+ function bindMessage(message, args, locale) {
372
+ return (...values) => {
373
+ const bag = {};
374
+ args.forEach((name, index) => {
375
+ bag[name] = coerce(values[index]);
376
+ });
377
+ return cleanup(formatIcu(message, bag, locale));
378
+ };
379
+ }
380
+ function coerce(value) {
381
+ if (typeof value === "number" || typeof value === "string") return value;
382
+ if (value == null) return void 0;
383
+ return String(value);
384
+ }
385
+ function cleanup(text) {
386
+ return text.replace(/[ \t]{2,}/g, " ").trim();
387
+ }
388
+ function readMessage(entry) {
389
+ if (typeof entry === "string") return { message: entry };
390
+ if (entry != null && typeof entry === "object" && typeof entry.defaultMessage === "string") return { message: entry.defaultMessage };
391
+ return { invalid: JSON.stringify(entry) };
392
+ }
393
+ function cloneMessages(source) {
394
+ return cloneValue(source);
395
+ }
396
+ function cloneValue(value) {
397
+ if (typeof value === "function" || value == null || typeof value !== "object") return value;
398
+ const copy = {};
399
+ for (const [key, child] of Object.entries(value)) copy[key] = cloneValue(child);
400
+ return copy;
401
+ }
402
+ function setPath(tree, path, value) {
403
+ const parts = path.split(".");
404
+ let cursor = tree;
405
+ for (const part of parts.slice(0, -1)) {
406
+ const next = cursor[part];
407
+ if (next == null || typeof next === "function" || typeof next === "string") throw new Error(`消息路径不存在:${path}`);
408
+ cursor = next;
409
+ }
410
+ const leaf = parts[parts.length - 1];
411
+ if (leaf == null || !Object.hasOwn(cursor, leaf)) throw new Error(`消息路径不存在:${path}`);
412
+ cursor[leaf] = value;
413
+ }
414
+ function collectLeaves(tree, prefix = "") {
415
+ const paths = [];
416
+ for (const [key, value] of Object.entries(tree)) {
417
+ const path = prefix === "" ? key : `${prefix}.${key}`;
418
+ if (typeof value === "string" || typeof value === "function") paths.push(path);
419
+ else paths.push(...collectLeaves(value, path));
420
+ }
421
+ return paths;
422
+ }
423
+ //#endregion
424
+ export { formatIcu as n, icuPlaceholderNames as r, loadAstryxCatalog as t };