@astryx-vue/core 0.2.6 → 0.4.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 (524) hide show
  1. package/THIRD_PARTY_NOTICES.md +9 -0
  2. package/dist/AlertDialog/index.js +1 -1
  3. package/dist/{AlertDialog-BBhl5P1X.js → AlertDialog-C2inDZWG.js} +13 -7
  4. package/dist/AppShell/index.d.ts +1 -1
  5. package/dist/AppShell/index.js +1 -1
  6. package/dist/{AppShell-mrflO0Uy.js → AppShell-CumzH-8z.js} +3 -3
  7. package/dist/Avatar/index.d.ts +1 -1
  8. package/dist/Avatar/index.js +1 -1
  9. package/dist/{Avatar-pPZ4dI_s.js → Avatar-BW0TE8t9.js} +47 -34
  10. package/dist/AvatarGroup/index.d.ts +1 -1
  11. package/dist/AvatarGroup/index.js +1 -1
  12. package/dist/{AvatarGroup-B--NQSB3.js → AvatarGroup-DLC_FFR5.js} +57 -13
  13. package/dist/Banner/index.d.ts +1 -1
  14. package/dist/Banner/index.js +1 -1
  15. package/dist/{Banner-GbGxrqQO.js → Banner-C5VAwo4D.js} +68 -34
  16. package/dist/Blockquote/index.js +1 -1
  17. package/dist/Blockquote-DRoKdcxZ.js +27 -0
  18. package/dist/BottomSheet/index.d.ts +1 -1
  19. package/dist/BottomSheet/index.js +2 -2
  20. package/dist/{BottomSheet-eJ3FzTBD.js → BottomSheet-B4sc3F1S.js} +288 -140
  21. package/dist/{BottomSheet-DIVwbGr3.js → BottomSheet-m54uCMJN.js} +20 -4
  22. package/dist/Breadcrumbs/index.d.ts +2 -2
  23. package/dist/Breadcrumbs/index.js +2 -2
  24. package/dist/Breadcrumbs-CTaz7Kh4.js +223 -0
  25. package/dist/Button/index.d.ts +1 -1
  26. package/dist/Button/index.js +1 -1
  27. package/dist/{Button-B6Hj_O_s.js → Button-ONOoHdkg.js} +25 -15
  28. package/dist/ButtonGroup/index.d.ts +1 -1
  29. package/dist/ButtonGroup/index.js +1 -1
  30. package/dist/ButtonGroup-DnkSZ9a5.js +87 -0
  31. package/dist/{ButtonTooltip-nWWrth8j.js → ButtonTooltip-CNKOQHYR.js} +7 -4
  32. package/dist/Calendar/index.d.ts +1 -1
  33. package/dist/Calendar/index.js +1 -1
  34. package/dist/{Calendar-B7vIowKq.js → Calendar-BAqzzQm2.js} +5 -5
  35. package/dist/Card/index.d.ts +2 -2
  36. package/dist/Card/index.js +1 -1
  37. package/dist/{Card-HAjZQg2s.js → Card-B-I24X9S.js} +2 -0
  38. package/dist/Carousel/index.js +1 -1
  39. package/dist/{Carousel-DAkOa7KK.js → Carousel-DXC22UWq.js} +50 -33
  40. package/dist/Chat/index.d.ts +1 -1
  41. package/dist/Chat/index.js +1 -1
  42. package/dist/{Chat-DVoI6UOA.js → Chat-BdJW6IX5.js} +152 -83
  43. package/dist/CheckboxIndicator/index.js +1 -1
  44. package/dist/{CheckboxIndicator-D37cm2Rh.js → CheckboxIndicator-fH4d-JE1.js} +9 -3
  45. package/dist/CheckboxInput/index.d.ts +1 -1
  46. package/dist/CheckboxInput/index.js +1 -1
  47. package/dist/{CheckboxInput-BS9J6edf.js → CheckboxInput-DJHCbwgC.js} +19 -11
  48. package/dist/CheckboxList/index.d.ts +1 -1
  49. package/dist/CheckboxList/index.js +1 -1
  50. package/dist/{CheckboxList-CX1i_jVP.js → CheckboxList-BdZIP4_J.js} +155 -38
  51. package/dist/Citation/index.js +1 -1
  52. package/dist/{Citation-Djgwa0ko.js → Citation-DbZn2vms.js} +8 -3
  53. package/dist/ClickableCard/index.d.ts +1 -1
  54. package/dist/ClickableCard/index.js +1 -1
  55. package/dist/{ClickableCard-Bhds4RRe.js → ClickableCard-ChAfiw9T.js} +10 -7
  56. package/dist/Code/index.d.ts +1 -1
  57. package/dist/Code/index.js +3 -3
  58. package/dist/{Code-XnPuGxey.js → Code-Bg7GBdxy.js} +2 -1
  59. package/dist/{CodeBlock-BUM3czCS.js → CodeBlock-Caaflp7C.js} +7 -3
  60. package/dist/Collapsible/index.d.ts +1 -1
  61. package/dist/Collapsible/index.js +1 -1
  62. package/dist/{Collapsible-Cov3Pyq5.js → Collapsible-Bdj0WYpb.js} +13 -11
  63. package/dist/CommandPalette/index.d.ts +1 -1
  64. package/dist/CommandPalette/index.js +1 -1
  65. package/dist/{CommandPalette-D6wYS30d.js → CommandPalette-C_MClfAg.js} +146 -62
  66. package/dist/ComplexSelector/index.d.ts +1 -1
  67. package/dist/ComplexSelector/index.js +1 -1
  68. package/dist/{ComplexSelector-Bil81sfq.js → ComplexSelector-BeVQaqRf.js} +94 -22
  69. package/dist/ContextMenu/index.d.ts +2 -2
  70. package/dist/ContextMenu/index.js +2 -2
  71. package/dist/{ContextMenu-DdLJnxNN.js → ContextMenu-C6hPYvYz.js} +299 -179
  72. package/dist/DateInput/index.d.ts +1 -1
  73. package/dist/DateInput/index.js +1 -1
  74. package/dist/{DateInput-u2XKccpK.js → DateInput-BjLdmYor.js} +567 -76
  75. package/dist/DateRangeInput/index.d.ts +1 -1
  76. package/dist/DateRangeInput/index.js +1 -1
  77. package/dist/{DateRangeInput-u7LhH6up.js → DateRangeInput-Br3wVEfD.js} +99 -28
  78. package/dist/DateTimeInput/index.d.ts +1 -1
  79. package/dist/DateTimeInput/index.js +1 -1
  80. package/dist/DateTimeInput-CAZBwoRe.js +562 -0
  81. package/dist/Dialog/index.d.ts +1 -1
  82. package/dist/Dialog/index.js +2 -2
  83. package/dist/{Dialog-BiOSKQso.js → Dialog-Dce4Y97V.js} +28 -11
  84. package/dist/{Dialog-FGHfDu5M.js → Dialog-fhyxB00e.js} +32 -5
  85. package/dist/Divider/index.d.ts +1 -1
  86. package/dist/Divider/index.js +1 -1
  87. package/dist/{Divider-BtwnL18I.js → Divider-mOZ6vIQw.js} +5 -1
  88. package/dist/DropdownMenu/index.d.ts +2 -2
  89. package/dist/DropdownMenu/index.js +3 -3
  90. package/dist/{DropdownMenu-SM_BEOgM.js → DropdownMenu-BdGmQVb1.js} +85 -57
  91. package/dist/{DropdownMenu-BEasdJ6R.js → DropdownMenu-BzQrNV9C.js} +481 -264
  92. package/dist/{DropdownMenuRadioItem.vue-CXEURBcq.d.ts → DropdownMenuRadioItem.vue-Qd-8Rg4Q.d.ts} +236 -230
  93. package/dist/EmptyState/index.js +1 -1
  94. package/dist/{EmptyState-C_GH7IV5.js → EmptyState-CmOQf2SH.js} +2 -2
  95. package/dist/Field/index.d.ts +4 -3
  96. package/dist/Field/index.js +4 -3
  97. package/dist/{Field-D5gUEGw4.js → Field--OEsLBfE.js} +4 -3
  98. package/dist/{FieldInfoTip-Ds-sW_jY.js → FieldInfoTip-gxsnfkZw.js} +3 -3
  99. package/dist/{FieldLabel-BNeXRuGH.js → FieldLabel-jxIiWgLw.js} +12 -7
  100. package/dist/FieldStatus/index.d.ts +1 -1
  101. package/dist/FileInput/index.d.ts +1 -1
  102. package/dist/FileInput/index.js +1 -1
  103. package/dist/{FileInput-BpdiO1V8.js → FileInput-B_pUxB0Y.js} +106 -29
  104. package/dist/FormLayout/index.d.ts +1 -1
  105. package/dist/FormLayout/index.js +1 -1
  106. package/dist/{FormLayout-D47FjiOq.js → FormLayout-B9dUB6Ps.js} +1 -1
  107. package/dist/Heading/index.d.ts +1 -1
  108. package/dist/Heading/index.js +1 -1
  109. package/dist/{Heading-BnwWEWkp.js → Heading-BzBunfN7.js} +1 -1
  110. package/dist/HoverCard/index.js +1 -1
  111. package/dist/{HoverCard-ycY50pRN.js → HoverCard-BpJhT0sn.js} +35 -22
  112. package/dist/Icon/index.d.ts +4 -4
  113. package/dist/Icon/index.js +1 -1
  114. package/dist/{Icon-bteSId7T.js → Icon-KDnUyY7f.js} +12 -20
  115. package/dist/IconButton/index.js +1 -1
  116. package/dist/{IconButton-DDNgNl7B.js → IconButton-DI-XBbtV.js} +1 -1
  117. package/dist/Indicator/index.d.ts +2 -2
  118. package/dist/Indicator/index.js +2 -1
  119. package/dist/InputClearButton-CwXPan8c.js +40 -0
  120. package/dist/InputGroup/index.d.ts +1 -1
  121. package/dist/InputGroup/index.js +2 -2
  122. package/dist/{InputGroup-CA03Smrs.js → InputGroup-DiiocoIW.js} +2 -2
  123. package/dist/InternationalizationProvider/index.d.ts +1 -1
  124. package/dist/InternationalizationProvider/index.js +1 -1
  125. package/dist/{InternationalizationProvider-DJay_w3B.js → InternationalizationProvider-kBapgKAQ.js} +5 -9
  126. package/dist/{Item-KhFKX9St.js → Item-DWMIjN8n.js} +34 -9
  127. package/dist/Kbd/index.js +1 -1
  128. package/dist/{Kbd-BB-Dw6zE.js → Kbd-CV3LO2Ge.js} +18 -2
  129. package/dist/LayerContentBoundary-CvsKxwwm.js +27 -0
  130. package/dist/LayerProvider/index.js +1 -1
  131. package/dist/{LayerProvider-D9NsQFzL.js → LayerProvider-B6zpMBWC.js} +15 -3
  132. package/dist/Layout/index.d.ts +1 -1
  133. package/dist/Layout/index.js +2 -2
  134. package/dist/{Layout-9X6eCUoY.js → Layout-JJRCG7Mf.js} +1 -1
  135. package/dist/{LayoutPanel-DeOh00p5.js → LayoutPanel-zM5vjrKS.js} +15 -8
  136. package/dist/Lightbox/index.js +1 -1
  137. package/dist/{Lightbox-DTF9EdTG.js → Lightbox-D8wyPgMK.js} +8 -6
  138. package/dist/Link/index.d.ts +2 -2
  139. package/dist/Link/index.js +1 -1
  140. package/dist/{Link-BqHCtiyt.js → Link-DweIpOtN.js} +29 -12
  141. package/dist/List/index.d.ts +1 -1
  142. package/dist/List/index.js +2 -2
  143. package/dist/{ListItem-8RWT8XAG.js → ListItem-BQXMu1Tb.js} +1 -1
  144. package/dist/Markdown/index.d.ts +5 -2
  145. package/dist/Markdown/index.js +5 -2
  146. package/dist/Markdown/parser/index.d.ts +4 -0
  147. package/dist/Markdown/parser/index.js +3 -0
  148. package/dist/Markdown/plugin-protocol/index.d.ts +35 -0
  149. package/dist/Markdown/plugin-protocol/index.js +107 -0
  150. package/dist/Markdown/plugin-renderer/index.d.ts +31 -0
  151. package/dist/Markdown/plugin-renderer/index.js +42 -0
  152. package/dist/{Markdown-2CVyZDuB.js → Markdown-DhVfOvXk.js} +195 -484
  153. package/dist/MediaTheme-DlLqYhDy.js +433 -0
  154. package/dist/MetadataList/index.js +1 -1
  155. package/dist/{MetadataList-B-OelQlt.js → MetadataList-CEYceIlN.js} +15 -7
  156. package/dist/MobileNav/index.js +1 -1
  157. package/dist/{MobileNavToggle-C3dkrM98.js → MobileNavToggle-pdoJFZHx.js} +60 -19
  158. package/dist/MoreMenu/index.d.ts +1 -1
  159. package/dist/MoreMenu/index.js +1 -1
  160. package/dist/{MoreMenu-D1WFGqGU.js → MoreMenu-CFNqSRev.js} +87 -67
  161. package/dist/MultiSelector/index.d.ts +1 -1
  162. package/dist/MultiSelector/index.js +1 -1
  163. package/dist/MultiSelector-DuVatmq5.js +1456 -0
  164. package/dist/{NavDisclosure-C_fugrQ3.js → NavDisclosure-Bq9DTZLO.js} +29 -7
  165. package/dist/{NavHeadingSurface-B3yJspSN.js → NavHeadingSurface-C4v_MtkX.js} +29 -26
  166. package/dist/NavItem/index.d.ts +1 -1
  167. package/dist/NavItem/index.js +2 -2
  168. package/dist/{NavItem-BBIGSvDj.js → NavItem-BPb3yfgz.js} +17 -4
  169. package/dist/NavMenu/index.d.ts +1 -1
  170. package/dist/NavMenu/index.js +3 -3
  171. package/dist/{NavMenu-ThXguZAz.js → NavMenu-BYIDzjix.js} +42 -15
  172. package/dist/{NavMenuItem-BvJNsDFC.js → NavMenuItem-D3FO90GR.js} +14 -12
  173. package/dist/NumberInput/index.d.ts +1 -1
  174. package/dist/NumberInput/index.js +1 -1
  175. package/dist/NumberInput-B0vzOg3N.js +727 -0
  176. package/dist/Outline/index.d.ts +2 -2
  177. package/dist/Outline/index.js +2 -2
  178. package/dist/{Outline-755h-lMP.js → Outline-CfGv2F1o.js} +91 -6
  179. package/dist/OverflowList/index.d.ts +2 -2
  180. package/dist/OverflowList/index.js +1 -1
  181. package/dist/{OverflowList-NmrSMbxb.js → OverflowList-BgRLZ3dh.js} +23 -6
  182. package/dist/Pagination/index.d.ts +1 -1
  183. package/dist/Pagination/index.js +1 -1
  184. package/dist/{Pagination-Cc4BrjQg.js → Pagination-Bfe12018.js} +2 -2
  185. package/dist/PickerWheel-CSwUYfes.js +69 -0
  186. package/dist/Popover/index.d.ts +1 -1
  187. package/dist/Popover/index.js +1 -1
  188. package/dist/{Popover-CtoBfVlD.js → Popover-78dFjTb9.js} +28 -17
  189. package/dist/PowerSearch/index.d.ts +1 -1
  190. package/dist/PowerSearch/index.js +1 -1
  191. package/dist/{PowerSearch-DHoiObLn.js → PowerSearch-BoAMdFaT.js} +776 -586
  192. package/dist/ProgressBar/index.d.ts +1 -1
  193. package/dist/ProgressBar/index.js +1 -1
  194. package/dist/{ProgressBar-CVLzdoBK.js → ProgressBar-VP4JS7vm.js} +10 -7
  195. package/dist/Radio/index.d.ts +1 -1
  196. package/dist/Radio/index.js +1 -1
  197. package/dist/{RadioGroup-Bfu6JSNV.js → RadioGroup-BIipql-L.js} +94 -26
  198. package/dist/RadioList/index.d.ts +1 -1
  199. package/dist/RadioList/index.js +1 -1
  200. package/dist/{RadioList-xY1cwLdZ.js → RadioList-GyhgBg4j.js} +57 -8
  201. package/dist/Resizable/index.d.ts +1 -1
  202. package/dist/Resizable/index.js +1 -1
  203. package/dist/{ResizeHandle-q4nD_586.js → ResizeHandle-TPlUCAHD.js} +103 -50
  204. package/dist/ScrollableArea/index.d.ts +1 -1
  205. package/dist/ScrollableArea/index.js +1 -1
  206. package/dist/{ScrollableArea-CJiaALHm.js → ScrollableArea-0u6RWtGG.js} +14 -3
  207. package/dist/Scrollbars/index.d.ts +2 -0
  208. package/dist/Scrollbars/index.js +3 -0
  209. package/dist/Scrollbars-D_93hJYK.js +75 -0
  210. package/dist/SegmentedControl/index.js +1 -1
  211. package/dist/{SegmentedControl-ChHmFrrC.js → SegmentedControl-D1wWGBZo.js} +11 -5
  212. package/dist/SelectableCard/index.d.ts +1 -1
  213. package/dist/SelectableCard/index.js +1 -1
  214. package/dist/{SelectableCard-Bj5s_tIN.js → SelectableCard-BEqnhPaX.js} +17 -12
  215. package/dist/Selector/index.d.ts +1 -1
  216. package/dist/Selector/index.js +1 -1
  217. package/dist/Selector-CPISLzp7.js +1049 -0
  218. package/dist/SideNav/index.d.ts +1 -1
  219. package/dist/SideNav/index.js +1 -1
  220. package/dist/{SideNav-Dtv8eA2j.js → SideNav-CN2QeAtY.js} +64 -41
  221. package/dist/Slider/index.d.ts +1 -1
  222. package/dist/Slider/index.js +1 -1
  223. package/dist/{Slider-DWobsPgm.js → Slider-pdC0jpHu.js} +172 -46
  224. package/dist/Spinner/index.js +1 -1
  225. package/dist/Spinner-DdVUadii.js +200 -0
  226. package/dist/Stack/index.d.ts +1 -1
  227. package/dist/Stack/index.js +2 -2
  228. package/dist/{Stack-CjQEavuq.js → Stack-Bb_h60t3.js} +10 -3
  229. package/dist/{Stack-D_Bhs-3r.js → Stack-Bp-XN9J4.js} +20 -9
  230. package/dist/StatusDot/index.d.ts +1 -1
  231. package/dist/StatusDot/index.js +1 -1
  232. package/dist/{StatusDot-BPUhMOff.js → StatusDot-BS_ohXhd.js} +8 -4
  233. package/dist/Stepper/index.d.ts +1 -1
  234. package/dist/Stepper/index.js +1 -1
  235. package/dist/{Stepper-CE8dHysu.js → Stepper-CyaSRSdu.js} +101 -79
  236. package/dist/Switch/index.d.ts +1 -1
  237. package/dist/Switch/index.js +1 -1
  238. package/dist/{Switch-DaVPRxvN.js → Switch-Z2Vfiiic.js} +38 -22
  239. package/dist/TabList/index.d.ts +2 -2
  240. package/dist/TabList/index.js +1 -1
  241. package/dist/{TabList-DIkK9sgK.js → TabList-DRqP0Hrv.js} +205 -63
  242. package/dist/Table/index.d.ts +3 -3
  243. package/dist/Table/index.js +1 -1
  244. package/dist/{Table-hqZMmzfU.js → Table-BcrrylMX.js} +727 -448
  245. package/dist/Text/index.d.ts +2 -2
  246. package/dist/Text/index.js +1 -1
  247. package/dist/{Text-CV3LmscH.js → Text-CmTOgYXf.js} +1 -1
  248. package/dist/TextArea/index.d.ts +1 -1
  249. package/dist/TextArea/index.js +1 -1
  250. package/dist/{TextArea-Ab5Sw60T.js → TextArea-DA9CCG_J.js} +104 -50
  251. package/dist/TextInput/index.d.ts +1 -1
  252. package/dist/TextInput/index.js +1 -1
  253. package/dist/{TextInput-zFT1_qgI.js → TextInput-CI96einV.js} +71 -38
  254. package/dist/Theme/index.d.ts +3 -3
  255. package/dist/Theme/index.js +3 -2
  256. package/dist/Theme-BbDT8B_C.js +2125 -0
  257. package/dist/Thumbnail/index.js +1 -1
  258. package/dist/{Thumbnail-C3NnJUFG.js → Thumbnail-B2ZAY59J.js} +13 -10
  259. package/dist/{TimeField-ByiJKBRM.js → TimeField-CpAgja9D.js} +299 -40
  260. package/dist/TimeInput/index.d.ts +1 -1
  261. package/dist/TimeInput/index.js +1 -1
  262. package/dist/{TimeInput-S8n946tp.js → TimeInput-Bw_lHS4M.js} +78 -9
  263. package/dist/Timer/index.d.ts +1 -1
  264. package/dist/Timer/index.js +1 -1
  265. package/dist/{Timer-avMQk5DN.js → Timer-CH7GsEVu.js} +1 -1
  266. package/dist/Timestamp/index.d.ts +1 -1
  267. package/dist/Timestamp/index.js +1 -1
  268. package/dist/{Timestamp-xpQKCk0d.js → Timestamp-BFNuoTZ0.js} +5 -5
  269. package/dist/Toast/index.d.ts +1 -1
  270. package/dist/Toast/index.js +1 -1
  271. package/dist/Toast-DwnPjx6j.js +685 -0
  272. package/dist/ToggleButton/index.d.ts +1 -1
  273. package/dist/ToggleButton/index.js +1 -1
  274. package/dist/{ToggleButton-B-C-Q7XP.js → ToggleButton-cLjh9W-x.js} +5 -4
  275. package/dist/Token/index.d.ts +1 -1
  276. package/dist/Token/index.js +1 -1
  277. package/dist/{Token-DsntTYhQ.js → Token-BfS4vi__.js} +32 -17
  278. package/dist/Tokenizer/index.d.ts +1 -1
  279. package/dist/Tokenizer/index.js +1 -1
  280. package/dist/{Tokenizer-41p035dX.js → Tokenizer-Ci3E5bvP.js} +109 -23
  281. package/dist/Toolbar/index.d.ts +2 -2
  282. package/dist/Toolbar/index.js +1 -1
  283. package/dist/{Toolbar-BrgvvTCk.js → Toolbar-C0pMWL4S.js} +1 -1
  284. package/dist/Tooltip/index.d.ts +1 -1
  285. package/dist/Tooltip/index.js +1 -1
  286. package/dist/{Tooltip-C4Vaqd3G.js → Tooltip-sAM8i1eO.js} +23 -19
  287. package/dist/TopNav/index.d.ts +1 -1
  288. package/dist/TopNav/index.js +1 -1
  289. package/dist/{TopNav-CeSeEMX3.js → TopNav-gW59zp1o.js} +16 -15
  290. package/dist/TreeList/index.d.ts +1 -1
  291. package/dist/TreeList/index.js +1 -1
  292. package/dist/{TreeList-BUz-KZJd.js → TreeList-DaoI7zaH.js} +124 -41
  293. package/dist/Typeahead/index.d.ts +1 -1
  294. package/dist/Typeahead/index.js +2 -2
  295. package/dist/{Typeahead-k3xhFxkr.js → Typeahead-D4JjvjK4.js} +125 -26
  296. package/dist/{TypeaheadMenu-DBW6rHeO.js → TypeaheadMenu-BQlMrfqX.js} +141 -51
  297. package/dist/{announce-Cnio10Wk.js → announce-B210eJVf.js} +17 -2
  298. package/dist/characterReferences-BJ-jLhsR.js +65 -0
  299. package/dist/characters-rcDbGt71.d.ts +29 -0
  300. package/dist/characters-wTnzjkkR.js +58 -0
  301. package/dist/{colorMode-CBgdgDSn.js → colorMode-BxqfDP4P.js} +1 -4
  302. package/dist/composables/index.d.ts +5 -4
  303. package/dist/composables/index.js +23 -18
  304. package/dist/{composables-CbKx9C1Y.js → composables-Bc02zKAO.js} +167 -197
  305. package/dist/context-B6UElI5X.js +5 -0
  306. package/dist/{context-Cfjh8te1.js → context-Cfml4jaK.js} +5 -3
  307. package/dist/{context-iABt_ueM.js → context-DWfi56sq.js} +451 -122
  308. package/dist/context-IvbU9c3T.js +8 -0
  309. package/dist/context-pjBxaMSh.js +28 -0
  310. package/dist/fieldParts--SyRZVQG.js +44 -0
  311. package/dist/fieldParts-LXpQMKE8.d.ts +27 -0
  312. package/dist/{focus-CpficIgf.js → focus-l8jVTcqd.js} +1 -1
  313. package/dist/hoverIntent-DMHGb85c.js +115 -0
  314. package/dist/{index-Cde5JvtX.d.ts → index-B-nESNam.d.ts} +8 -7
  315. package/dist/{index-CsNi1I8j.d.ts → index-B08-Uxhv.d.ts} +4 -2
  316. package/dist/{index-Cn-sSds-.d.ts → index-B56j4eI2.d.ts} +24 -1
  317. package/dist/{index-BJMJ09K-.d.ts → index-BEZ4ezJk.d.ts} +1 -1
  318. package/dist/{index-DeQwYJbg.d.ts → index-BNaRK-s5.d.ts} +10 -1
  319. package/dist/{index-CQCTKjIO.d.ts → index-BO9TY87G.d.ts} +5 -4
  320. package/dist/{index-BJSxFVXH.d.ts → index-BQEJj72c.d.ts} +21 -8
  321. package/dist/{index-BXk7Wng7.d.ts → index-BULhhnGf.d.ts} +1 -1
  322. package/dist/{index-D97pQbua.d.ts → index-BV2D2x_u.d.ts} +1 -1
  323. package/dist/{index-BPYzIIYn.d.ts → index-BZKgbyN9.d.ts} +2 -2
  324. package/dist/index-BkUkm6Al.d.ts +11 -0
  325. package/dist/{index-ClNU2Th8.d.ts → index-Bn-v89Vt.d.ts} +10 -6
  326. package/dist/{index-Bu8NA2SD.d.ts → index-BnEhvmdR.d.ts} +16 -7
  327. package/dist/index-Bo-ofFyg.d.ts +166 -0
  328. package/dist/{index-i0tNFWfz.d.ts → index-BqhgeAT4.d.ts} +2 -0
  329. package/dist/{index-DWh2WC8W.d.ts → index-C4Cjz6OK.d.ts} +2 -2
  330. package/dist/{index-B7yhzGUT.d.ts → index-C7sam-SB.d.ts} +2 -2
  331. package/dist/{index-BrJzFA5X.d.ts → index-C90l2rH1.d.ts} +1 -1
  332. package/dist/{index-vP0EtrJJ.d.ts → index-C9gAlDt_.d.ts} +6 -3
  333. package/dist/{index-csA1lH_0.d.ts → index-CJ6ajsUC.d.ts} +2 -2
  334. package/dist/{index-CY-KvZ9B.d.ts → index-CK-Dbh0f.d.ts} +1 -1
  335. package/dist/index-CKUfpmFL.d.ts +375 -0
  336. package/dist/{index-DXpSFlPG.d.ts → index-CKgBTAzC.d.ts} +4 -4
  337. package/dist/{index-EFqQF2Bx.d.ts → index-CPtDjmcX.d.ts} +4 -4
  338. package/dist/{index-12QYAbiz.d.ts → index-CRrSHbok.d.ts} +3 -2
  339. package/dist/{index-DG52Bg0W.d.ts → index-CTf3SK0b.d.ts} +6 -0
  340. package/dist/{index-BNy3SW4S.d.ts → index-CTjkJP4x.d.ts} +32 -3
  341. package/dist/{index-Ca8VIE4l.d.ts → index-CVn0GBdB.d.ts} +1 -1
  342. package/dist/{index-YKCx03zD.d.ts → index-CdvmnNMH.d.ts} +1 -1
  343. package/dist/{index-BUEPz7BL.d.ts → index-CikMzeab.d.ts} +3 -3
  344. package/dist/{index-CdtZjkmG.d.ts → index-CpNlPLBF.d.ts} +183 -129
  345. package/dist/{index-N7OVZ38M.d.ts → index-Cs1xsHKi.d.ts} +28 -16
  346. package/dist/{index-Cyb9Du5Z.d.ts → index-CtTGt6Dv.d.ts} +1 -1
  347. package/dist/{index-HV6W3xCx.d.ts → index-D05JGsT3.d.ts} +5 -2
  348. package/dist/{index-CsTbMVDS.d.ts → index-D0_HsuC3.d.ts} +4 -4
  349. package/dist/{index-BgT6mH3U.d.ts → index-D7ShT2c-.d.ts} +1 -1
  350. package/dist/{index-CkKPMIeX.d.ts → index-D7XRtUTY.d.ts} +9 -0
  351. package/dist/{index-TntQsADQ.d.ts → index-DEm3kRBO.d.ts} +4 -3
  352. package/dist/{index-DamRHh1i.d.ts → index-DLAG3m9W.d.ts} +11 -1
  353. package/dist/{index-DUnDGFQE.d.ts → index-DNA2l1RN.d.ts} +1 -1
  354. package/dist/{index-WnUY4Kxu.d.ts → index-DRJZ-v1E.d.ts} +4 -4
  355. package/dist/{index-DYp2RWkM.d.ts → index-DY8Wph-A.d.ts} +3 -3
  356. package/dist/{index-B1WJxt-n.d.ts → index-DfC05uKG.d.ts} +17 -7
  357. package/dist/{index-C5e-7Obr.d.ts → index-Dj1_1t3j.d.ts} +19 -6
  358. package/dist/{index-jW-mP58D.d.ts → index-Dr4b_oji.d.ts} +22 -15
  359. package/dist/{index-uKnRGtzi.d.ts → index-Ds201-d2.d.ts} +18 -4
  360. package/dist/{index-DIXAzTKL.d.ts → index-DxxudRgB.d.ts} +1 -1
  361. package/dist/{index-DQmK3Lq_.d.ts → index-IfsSCj8J.d.ts} +19 -6
  362. package/dist/{index-B1eCxBCY.d.ts → index-TXcNH86P.d.ts} +1 -1
  363. package/dist/{index-XuAAcYiP.d.ts → index-f3d9cVtj.d.ts} +1 -1
  364. package/dist/index-fAZaRruV.d.ts +125 -0
  365. package/dist/{index-D5N9ikrS.d.ts → index-hCpxKePE.d.ts} +1 -1
  366. package/dist/{index-T2FOcOuI.d.ts → index-jOwU3YoR.d.ts} +400 -90
  367. package/dist/{index-DdGck82Y.d.ts → index-pNtfr-RW.d.ts} +2 -2
  368. package/dist/{index-BhpAUzUr.d.ts → index-unAZVFGz.d.ts} +2 -2
  369. package/dist/index.d.ts +84 -77
  370. package/dist/index.js +151 -134
  371. package/dist/inlineSize-BNe8wggI.js +66 -0
  372. package/dist/inputPresentation-BOyHkCDr.js +62 -0
  373. package/dist/interactionModality-ACpTMhak.js +44 -0
  374. package/dist/isApplePlatform-B1ju6F5B.js +27 -0
  375. package/dist/isRenderable-BnKHIqfd.js +21 -0
  376. package/dist/layerDepth-CNDh-IHb.js +181 -0
  377. package/dist/link-DuuA2eCL.js +30 -0
  378. package/dist/{loadCatalog-BGHKG_9N.d.ts → loadCatalog-DlLFZreI.d.ts} +281 -7
  379. package/dist/loadCatalog-eopw74qb.js +424 -0
  380. package/dist/locale/index.d.ts +2 -2
  381. package/dist/locale/index.js +4 -3
  382. package/dist/locale-CabGJlGp.js +343 -0
  383. package/dist/modalOutlet-CUOcrhIu.js +56 -0
  384. package/dist/optionAction-Cg7xQLUA.d.ts +6 -0
  385. package/dist/{power-search-DrDfcoL1.d.ts → power-search-gHLIYXs5.d.ts} +2 -0
  386. package/dist/protocol-DHxY0NI8.js +113 -0
  387. package/dist/protocol-RSeMzAN1.d.ts +238 -0
  388. package/dist/publicParser-B0MRoikr.d.ts +141 -0
  389. package/dist/publicParser-uHC_T0Fo.js +895 -0
  390. package/dist/resizableChannel-3vivrEcT.js +20 -0
  391. package/dist/safeUrl-CsvfcZ9m.js +54 -0
  392. package/dist/scopedProvide-C-Df7c15.js +30 -0
  393. package/dist/scrollKeyboardDelegation-D7cumnOl.js +238 -0
  394. package/dist/scrollLock-C3aT4-0z.js +102 -0
  395. package/dist/{searchResultMessage-hXXNOFJP.js → searchResultMessage-mCpJBvra.js} +5 -14
  396. package/dist/{semantic-CKH9XVqa.d.ts → semantic-BF_AjLvk.d.ts} +6 -3
  397. package/dist/slug-C65CUsf9.js +32 -0
  398. package/dist/syntaxContext-DmIfNNtb.js +4 -0
  399. package/dist/triggerVariant-BsL8jMHs.js +16 -0
  400. package/dist/{types-0Q_SJv_F.d.ts → types-Bb7OGivY.d.ts} +6 -1
  401. package/dist/{types-H4Bbbxiw.d.ts → types-BnNTzEnd.d.ts} +1 -1
  402. package/dist/{types-CwyibrRB.d.ts → types-C5GQ2KCK.d.ts} +23 -3
  403. package/dist/{types-BBWrcHMD.d.ts → types-Ckih2YJi.d.ts} +3 -2
  404. package/dist/{types-gKsEkk2g.d.ts → types-CsqwQkf1.d.ts} +143 -10
  405. package/dist/upstreamMap-xr3gvREu.js +731 -0
  406. package/dist/{useAnchoredListbox-DwztMNjP.js → useAnchoredListbox-DGxxKHZb.js} +2 -2
  407. package/dist/{useAsyncSource-xpQovjV_.d.ts → useAsyncSource-aGzrvRkI.d.ts} +3 -0
  408. package/dist/{useClickableContainer-DyNpnSEa.js → useClickableContainer-CdGp_Cev.js} +1 -1
  409. package/dist/{useClipboard-BDfbEsWd.js → useClipboard-Dk8cS810.js} +1 -1
  410. package/dist/useHoverLayerDismiss-kYJ_NqL4.js +27 -0
  411. package/dist/{useIndicator-i1NORM7W.js → useIndicator-MZmfBWid.js} +5 -23
  412. package/dist/{useInputContainer-CpgDe2-4.js → useInputContainer-CLcYrby4.js} +1 -1
  413. package/dist/{useInputStatusIcon-DBOwxV4x.js → useInputStatusIcon-DAE7PExr.js} +1 -1
  414. package/dist/useLayerMountTarget-BmZyeKWE.js +156 -0
  415. package/dist/{useListFocus-D0iOJl39.js → useListFocus-ChxLg0b4.js} +3 -2
  416. package/dist/{useMenuDrillIn-DzKGkTho.js → useMenuDrillIn-DhUnPvKs.js} +6 -5
  417. package/dist/useMenuHover-Djreu23i.js +170 -0
  418. package/dist/useMenuPress-8foxY8z4.js +764 -0
  419. package/dist/{useMergedRefs-CfHHlCsn.js → useMergedRefs-Cb6_w93m.js} +24 -4
  420. package/dist/{useNumberField-4-dIGVed.js → useNumberField-Dk1BE3-K.js} +3 -3
  421. package/dist/useOptionActionGrid-CkJcuvaU.js +97 -0
  422. package/dist/{usePositionedLayer-Cru9_00b.js → usePositionedLayer-B7cvG-_v.js} +43 -49
  423. package/dist/usePressFeedback-BJCpjEpv.js +319 -0
  424. package/dist/{useResizable-DDwPpPe6.d.ts → useResizable-1MHPNaRD.d.ts} +19 -1
  425. package/dist/{useResizable-B3ahKLoZ.js → useResizable-I3BCiLSL.js} +72 -40
  426. package/dist/useResolvedLabelHidden-B2rlWiaI.js +30 -0
  427. package/dist/{useRestoreFocus-Djw9RUIf.js → useRestoreFocus-XEKs5-gp.js} +49 -7
  428. package/dist/useScrollOverflow-DuMoGXmm.js +67 -0
  429. package/dist/useScrollableArea-BE8b3qm7.js +222 -0
  430. package/dist/useScrollbars-C2NJ6Qwq.js +43 -0
  431. package/dist/{useTimeValue-6ufHM15W.js → useTimeValue-BJd0xBhG.js} +4 -22
  432. package/dist/useTranslator-BmWt2BBt.js +35 -0
  433. package/dist/{useTypeahead-PAK8lMYz.js → useTypeahead-BvtflkRk.js} +4 -5
  434. package/dist/utils/index.d.ts +3 -0
  435. package/dist/utils/index.js +5 -0
  436. package/dist/{utils-D33VQDnk.js → utils-ClVseK2w.js} +29 -2
  437. package/dist/utils-z3Q6BGIJ.js +819 -0
  438. package/locales/SOURCE.json +1 -1
  439. package/package.json +24 -3
  440. package/reset.css +364 -1
  441. package/styles/avatar-group.css +9 -1
  442. package/styles/badge.css +8 -5
  443. package/styles/banner.css +124 -26
  444. package/styles/blockquote.css +1 -0
  445. package/styles/bordered-control.css +1 -1
  446. package/styles/bottom-sheet.css +74 -6
  447. package/styles/breadcrumbs.css +16 -2
  448. package/styles/button-group.css +3 -1
  449. package/styles/button.css +53 -11
  450. package/styles/card.css +1 -1
  451. package/styles/chat.css +16 -6
  452. package/styles/checkbox-input.css +10 -0
  453. package/styles/clickable-card.css +10 -3
  454. package/styles/collapsible.css +12 -5
  455. package/styles/command-palette.css +29 -14
  456. package/styles/complex-selector.css +22 -5
  457. package/styles/context-menu.css +3 -3
  458. package/styles/date-input.css +111 -1
  459. package/styles/dialog-header.css +4 -1
  460. package/styles/dialog.css +7 -0
  461. package/styles/dropdown-menu.css +12 -3
  462. package/styles/field.css +5 -0
  463. package/styles/form-layout.css +1 -0
  464. package/styles/heading.css +18 -8
  465. package/styles/icon.css +4 -0
  466. package/styles/kbd.css +1 -1
  467. package/styles/layer.css +72 -0
  468. package/styles/list.css +9 -2
  469. package/styles/metadata-list.css +1 -0
  470. package/styles/mobile-nav.css +4 -1
  471. package/styles/multi-selector.css +48 -1
  472. package/styles/nav-item.css +9 -2
  473. package/styles/nav-menu.css +12 -2
  474. package/styles/number-input.css +9 -1
  475. package/styles/overflow-list.css +1 -1
  476. package/styles/popover.css +2 -1
  477. package/styles/power-search.css +5 -3
  478. package/styles/pressable.css +63 -22
  479. package/styles/progress-bar.css +15 -3
  480. package/styles/radio.css +16 -0
  481. package/styles/resize-handle.css +42 -0
  482. package/styles/scrollbars.css +28 -0
  483. package/styles/segmented-control.css +12 -4
  484. package/styles/selector.css +53 -1
  485. package/styles/side-nav.css +19 -0
  486. package/styles/slider.css +4 -3
  487. package/styles/spinner.css +48 -42
  488. package/styles/stepper.css +58 -4
  489. package/styles/switch.css +26 -0
  490. package/styles/tab-list.css +132 -3
  491. package/styles/table.css +88 -10
  492. package/styles/text-area.css +1 -1
  493. package/styles/text-input.css +1 -1
  494. package/styles/text.css +6 -6
  495. package/styles/thumbnail.css +11 -3
  496. package/styles/time-input.css +8 -0
  497. package/styles/toast.css +37 -3
  498. package/styles/token.css +2 -2
  499. package/styles/tokenizer.css +1 -1
  500. package/styles/toolbar.css +4 -1
  501. package/styles/tree-list.css +1 -1
  502. package/styles/typeahead.css +34 -1
  503. package/styles.css +1 -0
  504. package/dist/Blockquote-DFqBv_oJ.js +0 -18
  505. package/dist/Breadcrumbs-DPVaziH4.js +0 -141
  506. package/dist/ButtonGroup-ySQWanDP.js +0 -125
  507. package/dist/DateTimeInput-DHp683jZ.js +0 -268
  508. package/dist/MultiSelector-BeV98x7X.js +0 -988
  509. package/dist/NumberInput-AZ9x3oja.js +0 -473
  510. package/dist/Selector-DuVozKNq.js +0 -675
  511. package/dist/Spinner-9cYUCnDy.js +0 -84
  512. package/dist/Theme-CtaUWo4g.js +0 -1246
  513. package/dist/Toast-BuqIZV5z.js +0 -322
  514. package/dist/context-4PuqD1Ic.js +0 -4
  515. package/dist/context-D5-MwxnN.js +0 -4
  516. package/dist/index-BH9PzQ1F.d.ts +0 -87
  517. package/dist/link-C4_WogdF.js +0 -18
  518. package/dist/loadCatalog-CXKqEB9s.js +0 -877
  519. package/dist/locale-DgkZEMTn.js +0 -105
  520. package/dist/platform-B_9W_aHW.js +0 -33
  521. package/dist/scrollLock-BzIvIimL.js +0 -42
  522. package/dist/useMenuPress-D-FRNrBW.js +0 -573
  523. package/dist/useScrollableArea-DDk_CluT.js +0 -172
  524. /package/dist/{index-lgvUFSCO.d.ts → index-CryFtTT6.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
- import { t as _sfc_main$1 } from "./IconButton-DDNgNl7B.js";
2
- import { o as useAstryxMessages } from "./context-iABt_ueM.js";
3
- import { t as _sfc_main$2 } from "./Icon-bteSId7T.js";
4
- import { Comment, Fragment, Text, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, unref, useSlots, watch, withCtx } from "vue";
1
+ import { t as _sfc_main$1 } from "./IconButton-DI-XBbtV.js";
2
+ import { s as useAstryxMessages } from "./context-DWfi56sq.js";
3
+ import { t as _sfc_main$2 } from "./Icon-KDnUyY7f.js";
4
+ import { Comment, Fragment, Text, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, h, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onUpdated, openBlock, ref, unref, watch, withCtx } from "vue";
5
5
  import "../styles/carousel.css";
6
6
  //#region src/Carousel/slides.ts
7
7
  function flattenSlides(nodes) {
@@ -17,14 +17,38 @@ function flattenSlides(nodes) {
17
17
  }
18
18
  return slides;
19
19
  }
20
- const CarouselSlideHost = defineComponent({
21
- name: "CarouselSlideHost",
22
- props: { node: {
23
- type: Object,
24
- required: true
25
- } },
26
- setup(props) {
27
- return () => props.node;
20
+ /**
21
+ * 在自己的渲染函数里读取轮播的默认插槽,并给每张卡片套上分组外壳。
22
+ *
23
+ * 插槽必须在渲染时调用:Vue 才能追踪插槽里用到的响应式数据,
24
+ * 父组件传下新的插槽函数时也能立刻看到最新内容。放进 `computed` 或 `watch`
25
+ * 会得到缓存的旧结果,在 `setup` 里求值还会触发 Vue 的警告。
26
+ */
27
+ const CarouselItems = defineComponent({
28
+ name: "CarouselItems",
29
+ props: {
30
+ content: {
31
+ type: Function,
32
+ default: void 0
33
+ },
34
+ label: {
35
+ type: Function,
36
+ required: true
37
+ }
38
+ },
39
+ emits: ["update"],
40
+ setup(props, { emit }) {
41
+ onUpdated(() => emit("update"));
42
+ return () => {
43
+ const slides = flattenSlides(props.content?.() ?? []);
44
+ return slides.map((slide, index) => h("div", {
45
+ "key": index,
46
+ "class": "astryx-carousel__item",
47
+ "role": "group",
48
+ "aria-roledescription": "slide",
49
+ "aria-label": props.label(index + 1, slides.length)
50
+ }, [slide]));
51
+ };
28
52
  }
29
53
  });
30
54
  //#endregion
@@ -178,13 +202,12 @@ const _hoisted_2 = [
178
202
  "data-edge-fade",
179
203
  "data-fade"
180
204
  ];
181
- const _hoisted_3 = ["aria-label"];
182
- const _hoisted_4 = {
205
+ const _hoisted_3 = {
183
206
  key: 0,
184
207
  class: "astryx-carousel__controls"
185
208
  };
209
+ const _hoisted_4 = ["data-hidden"];
186
210
  const _hoisted_5 = ["data-hidden"];
187
- const _hoisted_6 = ["data-hidden"];
188
211
  const _sfc_main = /*@__PURE__*/ defineComponent({
189
212
  name: "AstryxCarousel",
190
213
  inheritAttrs: false,
@@ -212,14 +235,12 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
212
235
  },
213
236
  setup(__props, { expose: __expose }) {
214
237
  const props = __props;
215
- const slots = useSlots();
216
238
  const messages = useAstryxMessages();
217
239
  const scroller = ref(null);
218
240
  const startButton = ref(null);
219
241
  const endButton = ref(null);
220
242
  const focusedNav = ref(null);
221
243
  const { measure, onKeyDown, overflow, scrollByDirection, scrollToIndex } = useCarouselScroller(scroller);
222
- const slides = computed(() => flattenSlides(slots.default?.() ?? []));
223
244
  const regionLabel = computed(() => props.label ?? messages.value.carousel.label);
224
245
  const canScrollStart = computed(() => props.hasLoop && overflow.value.hasOverflow ? true : overflow.value.overflowStart);
225
246
  const canScrollEnd = computed(() => props.hasLoop && overflow.value.hasOverflow ? true : overflow.value.overflowEnd);
@@ -286,9 +307,9 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
286
307
  scrollPrev,
287
308
  scrollTo: scrollToIndex
288
309
  });
289
- watch(slides, () => {
290
- nextTick(measure);
291
- });
310
+ function slideLabel(position, total) {
311
+ return messages.value.carousel.slide(position, total);
312
+ }
292
313
  return (_ctx, _cache) => {
293
314
  return openBlock(), createElementBlock("div", {
294
315
  class: normalizeClass(["astryx-carousel", _ctx.$attrs.class]),
@@ -302,7 +323,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
302
323
  createElementVNode("div", {
303
324
  ref_key: "scroller",
304
325
  ref: scroller,
305
- class: "astryx-carousel__scroller",
326
+ class: "astryx-carousel__scroller astryx-carousel-scroller",
306
327
  "data-gap": __props.gap,
307
328
  "data-padding": __props.padding,
308
329
  "data-snap": __props.hasSnap || void 0,
@@ -311,16 +332,12 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
311
332
  tabindex: "0",
312
333
  style: normalizeStyle(scrollerStyle.value),
313
334
  onKeydown: _cache[0] || (_cache[0] = ($event) => unref(onKeyDown)($event, __props.hasLoop))
314
- }, [(openBlock(true), createElementBlock(Fragment, null, renderList(slides.value, (slide, index) => {
315
- return openBlock(), createElementBlock("div", {
316
- key: index,
317
- class: "astryx-carousel__item",
318
- role: "group",
319
- "aria-roledescription": "slide",
320
- "aria-label": unref(messages).carousel.slide(index + 1, slides.value.length)
321
- }, [createVNode(unref(CarouselSlideHost), { node: slide }, null, 8, ["node"])], 8, _hoisted_3);
322
- }), 128))], 44, _hoisted_2),
323
- __props.hasButtons ? (openBlock(), createElementBlock("div", _hoisted_4, [createElementVNode("div", {
335
+ }, [createVNode(unref(CarouselItems), {
336
+ content: _ctx.$slots.default,
337
+ label: slideLabel,
338
+ onUpdate: unref(measure)
339
+ }, null, 8, ["content", "onUpdate"])], 44, _hoisted_2),
340
+ __props.hasButtons ? (openBlock(), createElementBlock("div", _hoisted_3, [createElementVNode("div", {
324
341
  class: "astryx-carousel__pill astryx-carousel__pill--start",
325
342
  "data-hidden": !canScrollStart.value || void 0
326
343
  }, [createVNode(_sfc_main$1, {
@@ -337,7 +354,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
337
354
  size: "xsm"
338
355
  })]),
339
356
  _: 1
340
- }, 8, ["label", "is-disabled"])], 8, _hoisted_5), createElementVNode("div", {
357
+ }, 8, ["label", "is-disabled"])], 8, _hoisted_4), createElementVNode("div", {
341
358
  class: "astryx-carousel__pill astryx-carousel__pill--end",
342
359
  "data-hidden": !canScrollEnd.value || void 0
343
360
  }, [createVNode(_sfc_main$1, {
@@ -354,7 +371,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
354
371
  size: "xsm"
355
372
  })]),
356
373
  _: 1
357
- }, 8, ["label", "is-disabled"])], 8, _hoisted_6)])) : createCommentVNode("v-if", true)
374
+ }, 8, ["label", "is-disabled"])], 8, _hoisted_5)])) : createCommentVNode("v-if", true)
358
375
  ], 14, _hoisted_1);
359
376
  };
360
377
  }
@@ -1,2 +1,2 @@
1
- import { $ as ChatComposerTokenBadge, A as _default$8, At as ChatSystemMessageProps, B as ChatComposerDrawerEmits, Bt as ChatTypingIndicatorProps, C as _default$15, Ct as ChatMessageStatus, D as _default$11, Dt as ChatSendButtonEmits, E as _default$12, Et as ChatReasoningSlots, F as _default$3, Ft as ChatToolCallItem, G as ChatComposerInputControl, H as ChatComposerDrawerSlots, I as _default$2, It as ChatToolCallStatus, J as ChatComposerInputProps, K as ChatComposerInputEmits, L as _default$1, Lt as ChatToolCallsEmits, M as _default$6, Mt as ChatSystemMessageVariant, N as _default$5, Nt as ChatTokenizedTextProps, O as _default$10, Ot as ChatSendButtonProps, P as _default$4, Pt as ChatTokenizedTextSlots, Q as ChatComposerToken, R as _default, Rt as ChatToolCallsProps, S as _default$16, St as ChatMessageSlots, T as _default$13, Tt as ChatReasoningProps, U as ChatComposerElevation, V as ChatComposerDrawerProps, Vt as ChatUnreadDividerProps, W as ChatComposerEmits, X as ChatComposerSlots, Y as ChatComposerProps, Z as ChatComposerStatus, _ as useChatComposerContext, _t as ChatMessageListSlots, a as useChatPasteAsToken, at as ChatDictationButtonProps, b as useChatMessageContext, bt as ChatMessageProps, c as SpeechRecognitionError, ct as ChatLayoutScrollButtonProps, d as useSpeechRecognition, dt as ChatMessageBubbleGroup, et as ChatComposerTokenCustom, f as TokenPortal, ft as ChatMessageBubbleProps, g as ChatComposerContextValue, gt as ChatMessageListProps, h as useChatComposerTokens, ht as ChatMessageListAlign, i as pastedTextLabel, it as ChatDensity, j as _default$7, jt as ChatSystemMessageSlots, k as _default$9, kt as ChatSendButtonSlots, l as UseSpeechRecognitionOptions, lt as ChatLayoutScrollSlotProps, m as UseChatComposerTokensReturn, mt as ChatMessageBubbleVariant, n as UseChatPasteAsTokenOptions, nt as ChatComposerTrigger, o as UseChatDictationOptions, ot as ChatLayoutProps, p as UseChatComposerTokensOptions, pt as ChatMessageBubbleSlots, q as ChatComposerInputHandle, r as UseChatPasteAsTokenReturn, rt as ChatComposerTriggerItem, s as useChatDictation, st as ChatLayoutScrollButtonEmits, t as PASTE_TOKEN_THRESHOLD, tt as ChatComposerTokenElementProps, u as UseSpeechRecognitionReturn, ut as ChatLayoutSlots, v as useChatLayoutContext, vt as ChatMessageMetadataProps, w as _default$14, wt as ChatReasoningEmits, x as _default$17, xt as ChatMessageSender, y as useChatListContext, yt as ChatMessageMetadataSlots, z as ChatComposerDensity, zt as ChatToolCallsSlots } from "../index-BJSxFVXH.js";
1
+ import { $ as ChatComposerTokenBadge, A as _default$8, At as ChatReasoningProps, B as ChatComposerDrawerEmits, Bt as ChatTypingIndicatorProps, C as _default$15, Ct as ChatMessageMetadataProps, D as _default$11, Dt as ChatMessageSlots, E as _default$12, Et as ChatMessageSender, F as _default$3, Ft as ChatToolCallItem, G as ChatComposerInputControl, H as ChatComposerDrawerSlots, I as _default$2, It as ChatToolCallStatus, J as ChatComposerInputProps, K as ChatComposerInputEmits, L as _default$1, Lt as ChatToolCallsEmits, M as _default$6, Mt as ChatSystemMessageProps, N as _default$5, Nt as ChatSystemMessageSlots, O as _default$10, Ot as ChatMessageStatus, P as _default$4, Pt as ChatSystemMessageVariant, Q as ChatComposerToken, R as _default, Rt as ChatToolCallsProps, S as _default$16, St as ChatMessageListSlots, T as _default$13, Tt as ChatMessageProps, U as ChatComposerElevation, V as ChatComposerDrawerProps, Vt as ChatUnreadDividerProps, W as ChatComposerEmits, X as ChatComposerSlots, Y as ChatComposerProps, Z as ChatComposerStatus, _ as useChatComposerContext, _t as ChatMessageBubbleProps, a as useChatPasteAsToken, at as ChatSendButtonEmits, b as useChatMessageContext, bt as ChatMessageListAlign, c as SpeechRecognitionError, ct as ChatTokenizedTextProps, d as useSpeechRecognition, dt as ChatLayoutProps, et as ChatComposerTokenCustom, f as TokenPortal, ft as ChatLayoutScrollButtonEmits, g as ChatComposerContextValue, gt as ChatMessageBubbleGroup, h as useChatComposerTokens, ht as ChatLayoutSlots, i as pastedTextLabel, it as ChatDictationButtonProps, j as _default$7, jt as ChatReasoningSlots, k as _default$9, kt as ChatReasoningEmits, l as UseSpeechRecognitionOptions, lt as ChatTokenizedTextSlots, m as UseChatComposerTokensReturn, mt as ChatLayoutScrollSlotProps, n as UseChatPasteAsTokenOptions, nt as ChatComposerTrigger, o as UseChatDictationOptions, ot as ChatSendButtonProps, p as UseChatComposerTokensOptions, pt as ChatLayoutScrollButtonProps, q as ChatComposerInputHandle, r as UseChatPasteAsTokenReturn, rt as ChatComposerTriggerItem, s as useChatDictation, st as ChatSendButtonSlots, t as PASTE_TOKEN_THRESHOLD, tt as ChatComposerTokenElementProps, u as UseSpeechRecognitionReturn, ut as ChatDensity, v as useChatLayoutContext, vt as ChatMessageBubbleSlots, w as _default$14, wt as ChatMessageMetadataSlots, x as _default$17, xt as ChatMessageListProps, y as useChatListContext, yt as ChatMessageBubbleVariant, z as ChatComposerDensity, zt as ChatToolCallsSlots } from "../index-BQEJj72c.js";
2
2
  export { _default as ChatComposer, type ChatComposerContextValue, type ChatComposerDensity, _default$1 as ChatComposerDrawer, type ChatComposerDrawerEmits, type ChatComposerDrawerProps, type ChatComposerDrawerSlots, type ChatComposerElevation, type ChatComposerEmits, _default$2 as ChatComposerInput, type ChatComposerInputControl, type ChatComposerInputEmits, type ChatComposerInputHandle, type ChatComposerInputProps, type ChatComposerProps, type ChatComposerSlots, type ChatComposerStatus, type ChatComposerToken, type ChatComposerTokenBadge, type ChatComposerTokenCustom, _default$3 as ChatComposerTokenElement, type ChatComposerTokenElementProps, type ChatComposerTrigger, type ChatComposerTriggerItem, type ChatDensity, _default$4 as ChatDictationButton, type ChatDictationButtonProps, _default$5 as ChatLayout, type ChatLayoutProps, _default$6 as ChatLayoutScrollButton, type ChatLayoutScrollButtonEmits, type ChatLayoutScrollButtonProps, type ChatLayoutScrollSlotProps, type ChatLayoutSlots, _default$7 as ChatMessage, _default$8 as ChatMessageBubble, type ChatMessageBubbleGroup, type ChatMessageBubbleProps, type ChatMessageBubbleSlots, type ChatMessageBubbleVariant, _default$9 as ChatMessageList, type ChatMessageListAlign, type ChatMessageListProps, type ChatMessageListSlots, _default$10 as ChatMessageMetadata, type ChatMessageMetadataProps, type ChatMessageMetadataSlots, type ChatMessageProps, type ChatMessageSender, type ChatMessageSlots, type ChatMessageStatus, _default$11 as ChatReasoning, type ChatReasoningEmits, type ChatReasoningProps, type ChatReasoningSlots, _default$12 as ChatSendButton, type ChatSendButtonEmits, type ChatSendButtonProps, type ChatSendButtonSlots, _default$13 as ChatSystemMessage, type ChatSystemMessageProps, type ChatSystemMessageSlots, type ChatSystemMessageVariant, _default$14 as ChatTokenizedText, type ChatTokenizedTextProps, type ChatTokenizedTextSlots, type ChatToolCallItem, type ChatToolCallStatus, _default$15 as ChatToolCalls, type ChatToolCallsEmits, type ChatToolCallsProps, type ChatToolCallsSlots, _default$16 as ChatTypingIndicator, type ChatTypingIndicatorProps, _default$17 as ChatUnreadDivider, type ChatUnreadDividerProps, PASTE_TOKEN_THRESHOLD, type SpeechRecognitionError, type TokenPortal, type UseChatComposerTokensOptions, type UseChatComposerTokensReturn, type UseChatDictationOptions, type UseChatPasteAsTokenOptions, type UseChatPasteAsTokenReturn, type UseSpeechRecognitionOptions, type UseSpeechRecognitionReturn, pastedTextLabel, useChatComposerContext, useChatComposerTokens, useChatDictation, useChatLayoutContext, useChatListContext, useChatMessageContext, useChatPasteAsToken, useSpeechRecognition };
@@ -1,2 +1,2 @@
1
- import { C as useChatLayoutContext, D as pastedTextLabel, E as PASTE_TOKEN_THRESHOLD, O as useChatPasteAsToken, S as useChatComposerContext, T as useChatMessageContext, _ as _sfc_main$1, a as _sfc_main$15, b as _sfc_main$2, c as _sfc_main$11, d as _sfc_main$8, f as _sfc_main$7, g as _sfc_main$3, h as _sfc_main$4, i as _sfc_main$16, l as _sfc_main$10, m as _sfc_main$6, n as useSpeechRecognition, o as _sfc_main$14, p as _sfc_main$5, r as _sfc_main$17, s as _sfc_main$13, t as useChatDictation, u as _sfc_main$9, v as _sfc_main, w as useChatListContext, x as useChatComposerTokens, y as _sfc_main$12 } from "../Chat-DVoI6UOA.js";
1
+ import { C as useChatLayoutContext, D as pastedTextLabel, E as PASTE_TOKEN_THRESHOLD, O as useChatPasteAsToken, S as useChatComposerContext, T as useChatMessageContext, _ as _sfc_main$1, a as _sfc_main$15, b as _sfc_main$2, c as _sfc_main$11, d as _sfc_main$8, f as _sfc_main$7, g as _sfc_main$3, h as _sfc_main$4, i as _sfc_main$16, l as _sfc_main$10, m as _sfc_main$6, n as useSpeechRecognition, o as _sfc_main$14, p as _sfc_main$5, r as _sfc_main$17, s as _sfc_main$13, t as useChatDictation, u as _sfc_main$9, v as _sfc_main, w as useChatListContext, x as useChatComposerTokens, y as _sfc_main$12 } from "../Chat-BdJW6IX5.js";
2
2
  export { _sfc_main as ChatComposer, _sfc_main$1 as ChatComposerDrawer, _sfc_main$2 as ChatComposerInput, _sfc_main$3 as ChatComposerTokenElement, _sfc_main$4 as ChatDictationButton, _sfc_main$5 as ChatLayout, _sfc_main$6 as ChatLayoutScrollButton, _sfc_main$7 as ChatMessage, _sfc_main$8 as ChatMessageBubble, _sfc_main$9 as ChatMessageList, _sfc_main$10 as ChatMessageMetadata, _sfc_main$11 as ChatReasoning, _sfc_main$12 as ChatSendButton, _sfc_main$13 as ChatSystemMessage, _sfc_main$14 as ChatTokenizedText, _sfc_main$15 as ChatToolCalls, _sfc_main$16 as ChatTypingIndicator, _sfc_main$17 as ChatUnreadDivider, PASTE_TOKEN_THRESHOLD, pastedTextLabel, useChatComposerContext, useChatComposerTokens, useChatDictation, useChatLayoutContext, useChatListContext, useChatMessageContext, useChatPasteAsToken, useSpeechRecognition };
@@ -1,15 +1,20 @@
1
+ import { n as readLayerScoped, t as defineLayerScopedKey } from "./scopedProvide-C-Df7c15.js";
1
2
  import { t as _sfc_main$24 } from "./VisuallyHidden-C7NN3VEP.js";
2
- import { t as _sfc_main$25 } from "./Button-B6Hj_O_s.js";
3
- import { t as useAnnounce } from "./announce-Cnio10Wk.js";
3
+ import { t as _sfc_main$25 } from "./Button-ONOoHdkg.js";
4
+ import { t as useAnnounce } from "./announce-B210eJVf.js";
4
5
  import { r as useChatNewMessages, t as useChatStreamScroll } from "./useChatStreamScroll-oDfybEos.js";
5
- import { n as useDismiss, t as usePositionedLayer } from "./usePositionedLayer-Cru9_00b.js";
6
- import { a as useAstryxLocale, o as useAstryxMessages } from "./context-iABt_ueM.js";
6
+ import { a as isImeKeyEvent } from "./layerDepth-CNDh-IHb.js";
7
+ import { n as useDismiss, t as usePositionedLayer } from "./usePositionedLayer-B7cvG-_v.js";
8
+ import { n as isKeyboardModality, r as trackInteractionModality } from "./interactionModality-ACpTMhak.js";
9
+ import { o as useAstryxLocale, s as useAstryxMessages } from "./context-DWfi56sq.js";
10
+ import { t as useScrollbars } from "./useScrollbars-C2NJ6Qwq.js";
7
11
  import { t as _sfc_main$26 } from "./Badge-CjDQPF5g.js";
8
- import { t as _sfc_main$27 } from "./Icon-bteSId7T.js";
9
- import { t as _sfc_main$28 } from "./Divider-BtwnL18I.js";
10
- import { t as _sfc_main$29 } from "./HoverCard-ycY50pRN.js";
11
- import { t as _sfc_main$30 } from "./Spinner-9cYUCnDy.js";
12
+ import { t as _sfc_main$27 } from "./Icon-KDnUyY7f.js";
13
+ import { t as _sfc_main$28 } from "./Divider-mOZ6vIQw.js";
14
+ import { t as _sfc_main$29 } from "./HoverCard-BpJhT0sn.js";
15
+ import { t as _sfc_main$30 } from "./Spinner-DdVUadii.js";
12
16
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, getCurrentInstance, inject, mergeModels, mergeProps, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, openBlock, provide, reactive, ref, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toValue, unref, useId, useModel, useSlots, useTemplateRef, vShow, watch, withCtx, withDirectives } from "vue";
17
+ import "../styles/layer.css";
13
18
  import "../styles/popover.css";
14
19
  import "../styles/chat.css";
15
20
  //#region src/Chat/useChatPasteAsToken.ts
@@ -157,6 +162,10 @@ function groupSearchItems(items) {
157
162
  items: ungrouped
158
163
  }] : named;
159
164
  }
165
+ /** Same order as the rendered options: named groups first, ungrouped last. */
166
+ function flattenSearchItems(items) {
167
+ return groupSearchItems(items).flatMap((group) => group.items);
168
+ }
160
169
  //#endregion
161
170
  //#region src/Chat/ChatTriggerMenu.vue
162
171
  const _hoisted_1$18 = ["id", "aria-label"];
@@ -249,7 +258,7 @@ const _sfc_main$21 = /*@__PURE__*/ defineComponent({
249
258
  container: surfaceRef,
250
259
  trigger: anchorWritable,
251
260
  isEnabled: open,
252
- enableEscape: computed(() => false),
261
+ dismissOnEscape: "ignore",
253
262
  onDismiss: () => emit("dismiss")
254
263
  });
255
264
  const groups = computed(() => groupSearchItems(props.items));
@@ -287,6 +296,8 @@ const _sfc_main$21 = /*@__PURE__*/ defineComponent({
287
296
  if (!props.open || !props.keyboardMove || index < 0) return;
288
297
  document.getElementById(optionId(index))?.scrollIntoView({ block: "nearest" });
289
298
  });
299
+ const listEl = useTemplateRef("list");
300
+ useScrollbars(listEl);
290
301
  function onSelect(item, event) {
291
302
  event.preventDefault();
292
303
  emit("select", item);
@@ -300,6 +311,7 @@ const _sfc_main$21 = /*@__PURE__*/ defineComponent({
300
311
  style: normalizeStyle(style.value)
301
312
  }, [createElementVNode("div", {
302
313
  id: __props.listboxId,
314
+ ref: "list",
303
315
  class: "astryx-chat-trigger__list",
304
316
  role: "listbox",
305
317
  "aria-label": __props.label
@@ -347,13 +359,13 @@ const _sfc_main$21 = /*@__PURE__*/ defineComponent({
347
359
  });
348
360
  //#endregion
349
361
  //#region src/Chat/context.ts
350
- const chatMessageContextKey = Symbol("astryx-chat-message");
362
+ const chatMessageContextKey = defineLayerScopedKey("astryx-chat-message", void 0);
351
363
  function useChatMessageContext() {
352
- return inject(chatMessageContextKey, void 0);
364
+ return readLayerScoped(chatMessageContextKey);
353
365
  }
354
- const chatListContextKey = Symbol("astryx-chat-list");
366
+ const chatListContextKey = defineLayerScopedKey("astryx-chat-list", void 0);
355
367
  function useChatListContext() {
356
- return inject(chatListContextKey, void 0);
368
+ return readLayerScoped(chatListContextKey);
357
369
  }
358
370
  const chatLayoutContextKey = Symbol("astryx-chat-layout");
359
371
  function useChatLayoutContext() {
@@ -385,16 +397,6 @@ function wasPropPassed(name) {
385
397
  return Object.hasOwn(props, kebab);
386
398
  }
387
399
  //#endregion
388
- //#region src/Chat/ime.ts
389
- const IME_PROCESSING_KEY_CODE = 229;
390
- /**
391
- * Enter and Escape during an IME composition commit the candidate. They are not
392
- * composer commands. `keyCode` 229 covers engines that have not set `isComposing` yet.
393
- */
394
- function isImeKeyEvent(event) {
395
- return event.isComposing === true || event.keyCode === IME_PROCESSING_KEY_CODE;
396
- }
397
- //#endregion
398
400
  //#region src/Chat/selection.ts
399
401
  /**
400
402
  * Caret helpers for the contenteditable composer.
@@ -691,8 +693,6 @@ function useComposerHistory(options) {
691
693
  onKeyDown
692
694
  };
693
695
  }
694
- //#endregion
695
- //#region src/Chat/useTriggerMenu.ts
696
696
  function textBeforeCursor(editable) {
697
697
  const selection = window.getSelection();
698
698
  if (!selection || selection.rangeCount === 0 || !selection.getRangeAt(0).collapsed) return null;
@@ -700,22 +700,59 @@ function textBeforeCursor(editable) {
700
700
  if (!editable.contains(range.startContainer) || range.startContainer.nodeType !== Node.TEXT_NODE) return null;
701
701
  return (range.startContainer.textContent ?? "").slice(0, range.startOffset);
702
702
  }
703
- function findActiveTrigger(text, triggers) {
704
- for (let index = text.length - 1; index >= 0; index -= 1) {
705
- const char = text[index];
706
- if (char === " " || char === "\n") return null;
707
- for (const trigger of triggers) {
708
- if (char !== trigger.character) continue;
709
- const previous = index > 0 ? text[index - 1] : null;
710
- if (previous === null || previous === " " || previous === "\n") return {
711
- trigger,
712
- query: text.slice(index + 1),
713
- triggerStart: index
714
- };
703
+ function caretTextNode(editable) {
704
+ const selection = window.getSelection();
705
+ if (!selection || selection.rangeCount === 0) return null;
706
+ const node = selection.getRangeAt(0).startContainer;
707
+ return node.nodeType === Node.TEXT_NODE && editable.contains(node) ? node : null;
708
+ }
709
+ function isTriggerBoundary(char) {
710
+ return char === null || char === " " || char === " " || char === "\n";
711
+ }
712
+ /**
713
+ * The caret's trigger query.
714
+ * A trigger character starts the text or follows a space, a tab, or a line break.
715
+ * A single-token query ends at a space, a tab, or a line break.
716
+ * A multi-word query ends at a line break, past the length bound, or where the
717
+ * same trigger character starts again. Another trigger's character stays text.
718
+ */
719
+ function findActiveTrigger(textBefore, triggers) {
720
+ let active = null;
721
+ for (let index = 0; index < textBefore.length; index += 1) {
722
+ const char = textBefore[index];
723
+ if (char === "\n") {
724
+ active = null;
725
+ continue;
726
+ }
727
+ if (active && !active.trigger.hasMultiWordQuery) {
728
+ if (char === " " || char === " ") active = null;
729
+ continue;
715
730
  }
731
+ if (active && index - active.triggerStart > 64) active = null;
732
+ if (!isTriggerBoundary(index > 0 ? textBefore[index - 1] : null)) continue;
733
+ const trigger = triggers.find((item) => item.character === char);
734
+ if (!trigger) continue;
735
+ if (active && trigger.character !== active.trigger.character) continue;
736
+ active = {
737
+ trigger,
738
+ triggerStart: index
739
+ };
716
740
  }
717
- return null;
741
+ if (!active) return null;
742
+ const query = textBefore.slice(active.triggerStart + 1);
743
+ if (active.trigger.hasMultiWordQuery && query.length > 64) return null;
744
+ return {
745
+ trigger: active.trigger,
746
+ query,
747
+ triggerStart: active.triggerStart
748
+ };
749
+ }
750
+ /** An unmatched multi-word query hides the menu unless the caller wrote an empty message. */
751
+ function isUnmatchedMultiWordQuery(trigger, items, isLoading) {
752
+ return trigger?.hasMultiWordQuery === true && trigger.emptySearchText == null && items.length === 0 && !isLoading;
718
753
  }
754
+ //#endregion
755
+ //#region src/Chat/useTriggerMenu.ts
719
756
  function deleteTriggerText(triggerStart) {
720
757
  const selection = window.getSelection();
721
758
  if (!selection || selection.rangeCount === 0) return;
@@ -735,6 +772,8 @@ function isPromise(value) {
735
772
  }
736
773
  /**
737
774
  * Opens a suggestion list when a trigger character is typed at a word boundary.
775
+ * A trigger may opt into a multi-word query. Results apply only while that
776
+ * query is still the one at the caret.
738
777
  */
739
778
  function useTriggerMenu(options) {
740
779
  const listboxId = useId();
@@ -744,16 +783,18 @@ function useTriggerMenu(options) {
744
783
  query: "",
745
784
  items: [],
746
785
  highlightedIndex: 0,
747
- isLoading: false
786
+ isLoading: false,
787
+ isHidden: false
748
788
  });
749
789
  const anchor = ref(null);
750
790
  const keyboardMove = ref(false);
751
791
  let triggerStart = -1;
752
792
  let timer;
753
793
  let requestId = 0;
794
+ let dismissed = null;
754
795
  const asyncSources = /* @__PURE__ */ new WeakSet();
755
796
  function removeAnchor() {
756
- anchor.value?.remove();
797
+ if (anchor.value?.getAttribute("data-astryx-trigger-anchor") != null) anchor.value.remove();
757
798
  anchor.value = null;
758
799
  }
759
800
  function placeAnchor() {
@@ -788,40 +829,53 @@ function useTriggerMenu(options) {
788
829
  document.body.append(span);
789
830
  anchor.value = span;
790
831
  }
791
- function applyItems(items, captured) {
792
- if (captured !== requestId) return;
832
+ function queryStillCurrent(captured, trigger) {
833
+ if (captured !== requestId) return false;
834
+ const editable = options.editable.value;
835
+ const before = editable ? textBeforeCursor(editable) : null;
836
+ const triggers = options.triggers.value;
837
+ const found = before == null || !triggers ? null : findActiveTrigger(before, triggers);
838
+ if (found?.trigger.character !== trigger.character || found.triggerStart !== triggerStart) {
839
+ reset();
840
+ return false;
841
+ }
842
+ return true;
843
+ }
844
+ function applyItems(items, captured, trigger) {
845
+ if (!queryStillCurrent(captured, trigger)) return;
793
846
  state.items = items;
794
847
  state.highlightedIndex = items.length > 0 ? 0 : -1;
795
848
  state.isLoading = false;
849
+ state.isHidden = isUnmatchedMultiWordQuery(trigger, items, false);
796
850
  }
797
- function runSearch(trigger, query) {
851
+ function runSearch(trigger, query, captured) {
798
852
  const source = trigger.searchSource;
799
- source.cancel?.();
800
- const captured = ++requestId;
801
853
  state.isLoading = true;
802
854
  const result = source.search(query);
803
855
  if (isPromise(result)) {
804
856
  asyncSources.add(source);
805
- result.then((items) => applyItems(items, captured), () => applyItems([], captured));
857
+ result.then((items) => applyItems(items, captured, trigger), () => applyItems([], captured, trigger));
806
858
  return;
807
859
  }
808
- applyItems(result, captured);
860
+ applyItems(result, captured, trigger);
809
861
  }
810
862
  function searchItems(trigger, query) {
811
863
  if (timer !== void 0) {
812
864
  clearTimeout(timer);
813
865
  timer = void 0;
814
866
  }
867
+ const captured = ++requestId;
868
+ trigger.searchSource.cancel?.();
815
869
  const delay = options.debounceMs?.value ?? 150;
816
870
  if (asyncSources.has(trigger.searchSource) && delay > 0) {
817
871
  state.isLoading = true;
818
872
  timer = setTimeout(() => {
819
873
  timer = void 0;
820
- runSearch(trigger, query);
874
+ runSearch(trigger, query, captured);
821
875
  }, delay);
822
876
  return;
823
877
  }
824
- runSearch(trigger, query);
878
+ runSearch(trigger, query, captured);
825
879
  }
826
880
  function reset() {
827
881
  if (timer !== void 0) {
@@ -832,12 +886,14 @@ function useTriggerMenu(options) {
832
886
  requestId += 1;
833
887
  removeAnchor();
834
888
  triggerStart = -1;
889
+ dismissed = null;
835
890
  state.isActive = false;
836
891
  state.activeTrigger = null;
837
892
  state.query = "";
838
893
  state.items = [];
839
894
  state.highlightedIndex = 0;
840
895
  state.isLoading = false;
896
+ state.isHidden = false;
841
897
  }
842
898
  function selectItem(item) {
843
899
  const trigger = state.activeTrigger;
@@ -857,20 +913,28 @@ function useTriggerMenu(options) {
857
913
  if (!triggers || triggers.length === 0 || !editable) return;
858
914
  const before = textBeforeCursor(editable);
859
915
  if (before === null) {
916
+ dismissed = null;
860
917
  if (state.isActive) reset();
861
918
  return;
862
919
  }
863
920
  const found = findActiveTrigger(before, triggers);
864
921
  if (!found) {
922
+ dismissed = null;
865
923
  if (state.isActive) reset();
866
924
  return;
867
925
  }
868
- if (!state.isActive || state.activeTrigger !== found.trigger) {
926
+ const remembered = dismissed;
927
+ if (remembered && remembered.character === found.trigger.character && remembered.triggerStart === found.triggerStart && remembered.textNode !== null && remembered.textNode.isConnected && remembered.textNode === caretTextNode(editable)) {
928
+ if (found.query.startsWith(remembered.dismissedQuery)) return;
929
+ dismissed = null;
930
+ } else dismissed = null;
931
+ if (!state.isActive || state.activeTrigger?.character !== found.trigger.character || triggerStart !== found.triggerStart) {
869
932
  triggerStart = found.triggerStart;
870
933
  state.isActive = true;
871
934
  state.activeTrigger = found.trigger;
872
935
  state.query = found.query;
873
936
  state.highlightedIndex = 0;
937
+ state.isHidden = false;
874
938
  placeAnchor();
875
939
  searchItems(found.trigger, found.query);
876
940
  return;
@@ -884,8 +948,33 @@ function useTriggerMenu(options) {
884
948
  keyboardMove.value = true;
885
949
  state.highlightedIndex = next;
886
950
  }
951
+ function highlightedItem() {
952
+ return flattenSearchItems(state.items)[state.highlightedIndex];
953
+ }
954
+ const isMenuVisible = computed(() => state.isActive && !state.isHidden);
887
955
  function handleKeyDown(event) {
888
- if (!state.isActive) return false;
956
+ if (isImeKeyEvent(event)) return false;
957
+ if (!isMenuVisible.value) return false;
958
+ if (event.key === "Escape") {
959
+ event.preventDefault();
960
+ const editable = options.editable.value;
961
+ const nextDismissed = state.activeTrigger ? {
962
+ character: state.activeTrigger.character,
963
+ triggerStart,
964
+ dismissedQuery: state.query,
965
+ textNode: editable ? caretTextNode(editable) : null
966
+ } : null;
967
+ reset();
968
+ dismissed = nextDismissed;
969
+ return true;
970
+ }
971
+ const hasPickableRows = !state.isLoading && state.items.length > 0;
972
+ if (!hasPickableRows && (event.key === "ArrowDown" || event.key === "ArrowUp")) {
973
+ event.preventDefault();
974
+ return true;
975
+ }
976
+ if (!hasPickableRows) return false;
977
+ if (event.key === "Enter" && event.shiftKey) return false;
889
978
  const last = state.items.length - 1;
890
979
  if (event.key === "ArrowDown") {
891
980
  event.preventDefault();
@@ -898,17 +987,12 @@ function useTriggerMenu(options) {
898
987
  return true;
899
988
  }
900
989
  if (event.key === "Enter" || event.key === "Tab") {
901
- const item = state.items[state.highlightedIndex];
990
+ const item = highlightedItem();
902
991
  if (!item) return false;
903
992
  event.preventDefault();
904
993
  selectItem(item);
905
994
  return true;
906
995
  }
907
- if (event.key === "Escape") {
908
- event.preventDefault();
909
- reset();
910
- return true;
911
- }
912
996
  return false;
913
997
  }
914
998
  function highlightOnHover(index) {
@@ -926,6 +1010,7 @@ function useTriggerMenu(options) {
926
1010
  anchor,
927
1011
  keyboardMove,
928
1012
  hasTriggers,
1013
+ isMenuVisible,
929
1014
  handleInput,
930
1015
  handleKeyDown,
931
1016
  selectItem,
@@ -1085,8 +1170,9 @@ const _sfc_main$20 = /*@__PURE__*/ defineComponent({
1085
1170
  getValue: readValue
1086
1171
  };
1087
1172
  self.value = handle;
1173
+ const menuOpen = computed(() => menu.isMenuVisible.value);
1088
1174
  const activeDescendant = computed(() => {
1089
- if (!menu.state.isActive || menu.state.highlightedIndex < 0) return void 0;
1175
+ if (!menuOpen.value || menu.state.highlightedIndex < 0) return void 0;
1090
1176
  return `${menu.listboxId}-option-${menu.state.highlightedIndex}`;
1091
1177
  });
1092
1178
  const menuLabel = computed(() => menu.state.activeTrigger?.menuLabel ?? messages.value.chat.suggestions);
@@ -1122,6 +1208,7 @@ const _sfc_main$20 = /*@__PURE__*/ defineComponent({
1122
1208
  tokens.clearPortals();
1123
1209
  editable.textContent = "";
1124
1210
  isEmpty.value = true;
1211
+ menu.reset();
1125
1212
  publish("");
1126
1213
  return;
1127
1214
  }
@@ -1178,6 +1265,7 @@ const _sfc_main$20 = /*@__PURE__*/ defineComponent({
1178
1265
  editable.textContent = next;
1179
1266
  if (focused) placeCaretAtEnd(editable);
1180
1267
  isEmpty.value = next.length === 0;
1268
+ menu.handleInput();
1181
1269
  } else pendingEcho.value = void 0;
1182
1270
  });
1183
1271
  onMounted(() => {
@@ -1210,9 +1298,9 @@ const _sfc_main$20 = /*@__PURE__*/ defineComponent({
1210
1298
  "aria-disabled": disabled.value ? "true" : void 0,
1211
1299
  role: unref(menu).hasTriggers.value ? "combobox" : "textbox",
1212
1300
  "aria-multiline": unref(menu).hasTriggers.value ? void 0 : "true",
1213
- "aria-expanded": unref(menu).hasTriggers.value ? unref(menu).state.isActive : void 0,
1214
- "aria-controls": unref(menu).hasTriggers.value && unref(menu).state.isActive ? unref(menu).listboxId : void 0,
1215
- "aria-activedescendant": unref(menu).hasTriggers.value && unref(menu).state.isActive ? activeDescendant.value : void 0,
1301
+ "aria-expanded": unref(menu).hasTriggers.value ? menuOpen.value : void 0,
1302
+ "aria-controls": unref(menu).hasTriggers.value && menuOpen.value ? unref(menu).listboxId : void 0,
1303
+ "aria-activedescendant": unref(menu).hasTriggers.value && menuOpen.value ? activeDescendant.value : void 0,
1216
1304
  "aria-haspopup": unref(menu).hasTriggers.value ? "listbox" : void 0,
1217
1305
  onInput,
1218
1306
  onKeydown: onKeyDown,
@@ -1221,7 +1309,7 @@ const _sfc_main$20 = /*@__PURE__*/ defineComponent({
1221
1309
  onDrop
1222
1310
  }, null, 44, _hoisted_3$10),
1223
1311
  createVNode(_sfc_main$21, {
1224
- open: unref(menu).state.isActive,
1312
+ open: menuOpen.value,
1225
1313
  anchor: unref(menu).anchor.value,
1226
1314
  "listbox-id": unref(menu).listboxId,
1227
1315
  label: menuLabel.value,
@@ -1328,26 +1416,6 @@ const _sfc_main$19 = /*@__PURE__*/ defineComponent({
1328
1416
  }
1329
1417
  });
1330
1418
  //#endregion
1331
- //#region src/Chat/modality.ts
1332
- let modality = "keyboard";
1333
- let listening = false;
1334
- /** Pointer focus must not draw the keyboard ring. `:focus-visible` is not enough: programmatic focus matches it too. */
1335
- function trackInteractionModality() {
1336
- if (listening || typeof document === "undefined") return;
1337
- listening = true;
1338
- document.addEventListener("pointerdown", () => {
1339
- modality = "pointer";
1340
- }, true);
1341
- document.addEventListener("keydown", (event) => {
1342
- if (event.metaKey || event.altKey || event.ctrlKey) return;
1343
- modality = "keyboard";
1344
- }, true);
1345
- }
1346
- function isKeyboardModality() {
1347
- trackInteractionModality();
1348
- return modality === "keyboard";
1349
- }
1350
- //#endregion
1351
1419
  //#region src/Chat/ChatComposer.vue
1352
1420
  const _hoisted_1$16 = ["data-disabled", "data-density"];
1353
1421
  const _hoisted_2$11 = ["data-type", "role"];
@@ -1783,6 +1851,7 @@ const _sfc_main$13 = /*@__PURE__*/ defineComponent({
1783
1851
  const root = useTemplateRef("root");
1784
1852
  const scrollTarget = computed(() => props.scrollRef ?? root.value);
1785
1853
  const isSelfScrolling = computed(() => props.scrollRef == null);
1854
+ useScrollbars(root, { enabled: isSelfScrolling });
1786
1855
  const scroll = useChatStreamScroll({ scrollRef: scrollTarget });
1787
1856
  const newMessages = useChatNewMessages({
1788
1857
  isLocked: scroll.isLocked,
@@ -2173,7 +2242,7 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
2173
2242
  return props.status ? labels[props.status] : "";
2174
2243
  });
2175
2244
  const spokenStatus = computed(() => {
2176
- if (locale.value === "en") return statusLabel.value.toLowerCase();
2245
+ if (locale.value.split("-")[0] === "en") return statusLabel.value.toLowerCase();
2177
2246
  return statusLabel.value;
2178
2247
  });
2179
2248
  const hasContent = computed(() => Boolean(props.timestamp) || Boolean(slots.timestamp) || Boolean(props.footer) || Boolean(slots.footer) || props.status != null);
@@ -1,2 +1,2 @@
1
- import { t as _sfc_main } from "../CheckboxIndicator-D37cm2Rh.js";
1
+ import { t as _sfc_main } from "../CheckboxIndicator-fH4d-JE1.js";
2
2
  export { _sfc_main as CheckboxIndicator };