@astryx-vue/core 0.3.0 → 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 (505) 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.js +1 -1
  4. package/dist/{AppShell-0wTvOo3H.js → AppShell-CumzH-8z.js} +3 -3
  5. package/dist/Avatar/index.js +1 -1
  6. package/dist/{Avatar-pPZ4dI_s.js → Avatar-BW0TE8t9.js} +47 -34
  7. package/dist/AvatarGroup/index.d.ts +1 -1
  8. package/dist/AvatarGroup/index.js +1 -1
  9. package/dist/{AvatarGroup-B--NQSB3.js → AvatarGroup-DLC_FFR5.js} +57 -13
  10. package/dist/Banner/index.d.ts +1 -1
  11. package/dist/Banner/index.js +1 -1
  12. package/dist/{Banner-GbGxrqQO.js → Banner-C5VAwo4D.js} +68 -34
  13. package/dist/Blockquote/index.js +1 -1
  14. package/dist/Blockquote-DRoKdcxZ.js +27 -0
  15. package/dist/BottomSheet/index.d.ts +1 -1
  16. package/dist/BottomSheet/index.js +2 -2
  17. package/dist/{BottomSheet-pt7m4CvC.js → BottomSheet-B4sc3F1S.js} +286 -140
  18. package/dist/{BottomSheet-JYMB_Ofl.js → BottomSheet-m54uCMJN.js} +20 -4
  19. package/dist/Breadcrumbs/index.d.ts +2 -2
  20. package/dist/Breadcrumbs/index.js +2 -2
  21. package/dist/Breadcrumbs-CTaz7Kh4.js +223 -0
  22. package/dist/Button/index.d.ts +1 -1
  23. package/dist/Button/index.js +1 -1
  24. package/dist/{Button-B6Hj_O_s.js → Button-ONOoHdkg.js} +25 -15
  25. package/dist/ButtonGroup/index.d.ts +1 -1
  26. package/dist/ButtonGroup/index.js +1 -1
  27. package/dist/ButtonGroup-DnkSZ9a5.js +87 -0
  28. package/dist/{ButtonTooltip-nWWrth8j.js → ButtonTooltip-CNKOQHYR.js} +7 -4
  29. package/dist/Calendar/index.d.ts +1 -1
  30. package/dist/Calendar/index.js +1 -1
  31. package/dist/{Calendar-B7vIowKq.js → Calendar-BAqzzQm2.js} +5 -5
  32. package/dist/Card/index.d.ts +2 -2
  33. package/dist/Carousel/index.js +1 -1
  34. package/dist/{Carousel-CA8zpD9v.js → Carousel-DXC22UWq.js} +4 -4
  35. package/dist/Chat/index.d.ts +1 -1
  36. package/dist/Chat/index.js +1 -1
  37. package/dist/{Chat-Bmna9EOA.js → Chat-BdJW6IX5.js} +147 -83
  38. package/dist/CheckboxIndicator/index.js +1 -1
  39. package/dist/{CheckboxIndicator-D37cm2Rh.js → CheckboxIndicator-fH4d-JE1.js} +9 -3
  40. package/dist/CheckboxInput/index.d.ts +1 -1
  41. package/dist/CheckboxInput/index.js +1 -1
  42. package/dist/{CheckboxInput-BS9J6edf.js → CheckboxInput-DJHCbwgC.js} +19 -11
  43. package/dist/CheckboxList/index.d.ts +1 -1
  44. package/dist/CheckboxList/index.js +1 -1
  45. package/dist/{CheckboxList-CX1i_jVP.js → CheckboxList-BdZIP4_J.js} +155 -38
  46. package/dist/Citation/index.js +1 -1
  47. package/dist/{Citation-Djgwa0ko.js → Citation-DbZn2vms.js} +8 -3
  48. package/dist/ClickableCard/index.d.ts +1 -1
  49. package/dist/ClickableCard/index.js +1 -1
  50. package/dist/{ClickableCard-DUsC-j03.js → ClickableCard-ChAfiw9T.js} +9 -6
  51. package/dist/Code/index.js +3 -3
  52. package/dist/{Code-XnPuGxey.js → Code-Bg7GBdxy.js} +2 -1
  53. package/dist/{CodeBlock-D0BFubut.js → CodeBlock-Caaflp7C.js} +3 -3
  54. package/dist/Collapsible/index.d.ts +1 -1
  55. package/dist/Collapsible/index.js +1 -1
  56. package/dist/{Collapsible-Cov3Pyq5.js → Collapsible-Bdj0WYpb.js} +13 -11
  57. package/dist/CommandPalette/index.d.ts +1 -1
  58. package/dist/CommandPalette/index.js +1 -1
  59. package/dist/{CommandPalette-YHsUNg3V.js → CommandPalette-C_MClfAg.js} +143 -63
  60. package/dist/ComplexSelector/index.d.ts +1 -1
  61. package/dist/ComplexSelector/index.js +1 -1
  62. package/dist/{ComplexSelector-DWLdKPGI.js → ComplexSelector-BeVQaqRf.js} +85 -20
  63. package/dist/ContextMenu/index.d.ts +2 -2
  64. package/dist/ContextMenu/index.js +2 -2
  65. package/dist/{ContextMenu-Bq9b3Ti5.js → ContextMenu-C6hPYvYz.js} +297 -179
  66. package/dist/DateInput/index.d.ts +1 -1
  67. package/dist/DateInput/index.js +1 -1
  68. package/dist/{DateInput-DT518j5E.js → DateInput-BjLdmYor.js} +567 -76
  69. package/dist/DateRangeInput/index.d.ts +1 -1
  70. package/dist/DateRangeInput/index.js +1 -1
  71. package/dist/{DateRangeInput-Bqi5tlIA.js → DateRangeInput-Br3wVEfD.js} +85 -20
  72. package/dist/DateTimeInput/index.d.ts +1 -1
  73. package/dist/DateTimeInput/index.js +1 -1
  74. package/dist/DateTimeInput-CAZBwoRe.js +562 -0
  75. package/dist/Dialog/index.d.ts +1 -1
  76. package/dist/Dialog/index.js +2 -2
  77. package/dist/{Dialog-BiOSKQso.js → Dialog-Dce4Y97V.js} +28 -11
  78. package/dist/{Dialog-FGHfDu5M.js → Dialog-fhyxB00e.js} +32 -5
  79. package/dist/Divider/index.d.ts +1 -1
  80. package/dist/Divider/index.js +1 -1
  81. package/dist/{Divider-BtwnL18I.js → Divider-mOZ6vIQw.js} +5 -1
  82. package/dist/DropdownMenu/index.d.ts +2 -2
  83. package/dist/DropdownMenu/index.js +3 -3
  84. package/dist/{DropdownMenu-CoOQVlRp.js → DropdownMenu-BdGmQVb1.js} +85 -57
  85. package/dist/{DropdownMenu-DEb2dSSP.js → DropdownMenu-BzQrNV9C.js} +479 -264
  86. package/dist/{DropdownMenuRadioItem.vue-CXEURBcq.d.ts → DropdownMenuRadioItem.vue-Qd-8Rg4Q.d.ts} +236 -230
  87. package/dist/EmptyState/index.js +1 -1
  88. package/dist/{EmptyState-C_GH7IV5.js → EmptyState-CmOQf2SH.js} +2 -2
  89. package/dist/Field/index.d.ts +4 -3
  90. package/dist/Field/index.js +4 -3
  91. package/dist/{Field-D5gUEGw4.js → Field--OEsLBfE.js} +4 -3
  92. package/dist/{FieldInfoTip-Ds-sW_jY.js → FieldInfoTip-gxsnfkZw.js} +3 -3
  93. package/dist/{FieldLabel-BNeXRuGH.js → FieldLabel-jxIiWgLw.js} +12 -7
  94. package/dist/FieldStatus/index.d.ts +1 -1
  95. package/dist/FileInput/index.d.ts +1 -1
  96. package/dist/FileInput/index.js +1 -1
  97. package/dist/{FileInput-BpdiO1V8.js → FileInput-B_pUxB0Y.js} +106 -29
  98. package/dist/FormLayout/index.d.ts +1 -1
  99. package/dist/FormLayout/index.js +1 -1
  100. package/dist/{FormLayout-D47FjiOq.js → FormLayout-B9dUB6Ps.js} +1 -1
  101. package/dist/Heading/index.d.ts +1 -1
  102. package/dist/Heading/index.js +1 -1
  103. package/dist/{Heading-BnwWEWkp.js → Heading-BzBunfN7.js} +1 -1
  104. package/dist/HoverCard/index.js +1 -1
  105. package/dist/{HoverCard-ycY50pRN.js → HoverCard-BpJhT0sn.js} +35 -22
  106. package/dist/Icon/index.d.ts +4 -4
  107. package/dist/Icon/index.js +1 -1
  108. package/dist/{Icon-bteSId7T.js → Icon-KDnUyY7f.js} +12 -20
  109. package/dist/IconButton/index.js +1 -1
  110. package/dist/{IconButton-DDNgNl7B.js → IconButton-DI-XBbtV.js} +1 -1
  111. package/dist/Indicator/index.d.ts +2 -2
  112. package/dist/Indicator/index.js +2 -1
  113. package/dist/InputClearButton-CwXPan8c.js +40 -0
  114. package/dist/InputGroup/index.d.ts +1 -1
  115. package/dist/InputGroup/index.js +2 -2
  116. package/dist/{InputGroup-CA03Smrs.js → InputGroup-DiiocoIW.js} +2 -2
  117. package/dist/InternationalizationProvider/index.d.ts +1 -1
  118. package/dist/InternationalizationProvider/index.js +1 -1
  119. package/dist/{InternationalizationProvider-DJay_w3B.js → InternationalizationProvider-kBapgKAQ.js} +5 -9
  120. package/dist/{Item-KhFKX9St.js → Item-DWMIjN8n.js} +34 -9
  121. package/dist/Kbd/index.js +1 -1
  122. package/dist/{Kbd-BB-Dw6zE.js → Kbd-CV3LO2Ge.js} +18 -2
  123. package/dist/LayerContentBoundary-CvsKxwwm.js +27 -0
  124. package/dist/LayerProvider/index.js +1 -1
  125. package/dist/{LayerProvider-D9NsQFzL.js → LayerProvider-B6zpMBWC.js} +15 -3
  126. package/dist/Layout/index.d.ts +1 -1
  127. package/dist/Layout/index.js +2 -2
  128. package/dist/{Layout-C6RHllr-.js → Layout-JJRCG7Mf.js} +1 -1
  129. package/dist/{LayoutPanel-DXOsaeQb.js → LayoutPanel-zM5vjrKS.js} +12 -8
  130. package/dist/Lightbox/index.js +1 -1
  131. package/dist/{Lightbox-DTF9EdTG.js → Lightbox-D8wyPgMK.js} +8 -6
  132. package/dist/Link/index.js +1 -1
  133. package/dist/{Link-BqHCtiyt.js → Link-DweIpOtN.js} +29 -12
  134. package/dist/List/index.d.ts +1 -1
  135. package/dist/List/index.js +2 -2
  136. package/dist/{ListItem-8RWT8XAG.js → ListItem-BQXMu1Tb.js} +1 -1
  137. package/dist/Markdown/index.d.ts +5 -2
  138. package/dist/Markdown/index.js +5 -2
  139. package/dist/Markdown/parser/index.d.ts +4 -0
  140. package/dist/Markdown/parser/index.js +3 -0
  141. package/dist/Markdown/plugin-protocol/index.d.ts +35 -0
  142. package/dist/Markdown/plugin-protocol/index.js +107 -0
  143. package/dist/Markdown/plugin-renderer/index.d.ts +31 -0
  144. package/dist/Markdown/plugin-renderer/index.js +42 -0
  145. package/dist/{Markdown-CvtN7HnF.js → Markdown-DhVfOvXk.js} +195 -484
  146. package/dist/MediaTheme-DlLqYhDy.js +433 -0
  147. package/dist/MetadataList/index.js +1 -1
  148. package/dist/{MetadataList-B-OelQlt.js → MetadataList-CEYceIlN.js} +15 -7
  149. package/dist/MobileNav/index.js +1 -1
  150. package/dist/{MobileNavToggle-DxGz0xKA.js → MobileNavToggle-pdoJFZHx.js} +52 -17
  151. package/dist/MoreMenu/index.d.ts +1 -1
  152. package/dist/MoreMenu/index.js +1 -1
  153. package/dist/{MoreMenu-Dlb7MLlW.js → MoreMenu-CFNqSRev.js} +72 -59
  154. package/dist/MultiSelector/index.d.ts +1 -1
  155. package/dist/MultiSelector/index.js +1 -1
  156. package/dist/MultiSelector-DuVatmq5.js +1456 -0
  157. package/dist/{NavDisclosure-C_fugrQ3.js → NavDisclosure-Bq9DTZLO.js} +29 -7
  158. package/dist/{NavHeadingSurface-B3yJspSN.js → NavHeadingSurface-C4v_MtkX.js} +29 -26
  159. package/dist/NavItem/index.d.ts +1 -1
  160. package/dist/NavItem/index.js +2 -2
  161. package/dist/{NavItem-BBIGSvDj.js → NavItem-BPb3yfgz.js} +17 -4
  162. package/dist/NavMenu/index.d.ts +1 -1
  163. package/dist/NavMenu/index.js +3 -3
  164. package/dist/{NavMenu-ThXguZAz.js → NavMenu-BYIDzjix.js} +42 -15
  165. package/dist/{NavMenuItem-BvJNsDFC.js → NavMenuItem-D3FO90GR.js} +14 -12
  166. package/dist/NumberInput/index.d.ts +1 -1
  167. package/dist/NumberInput/index.js +1 -1
  168. package/dist/NumberInput-B0vzOg3N.js +727 -0
  169. package/dist/Outline/index.d.ts +2 -2
  170. package/dist/Outline/index.js +2 -2
  171. package/dist/{Outline-755h-lMP.js → Outline-CfGv2F1o.js} +91 -6
  172. package/dist/OverflowList/index.d.ts +2 -2
  173. package/dist/OverflowList/index.js +1 -1
  174. package/dist/{OverflowList-NmrSMbxb.js → OverflowList-BgRLZ3dh.js} +23 -6
  175. package/dist/Pagination/index.d.ts +1 -1
  176. package/dist/Pagination/index.js +1 -1
  177. package/dist/{Pagination-DqwNQFRp.js → Pagination-Bfe12018.js} +2 -2
  178. package/dist/PickerWheel-CSwUYfes.js +69 -0
  179. package/dist/Popover/index.d.ts +1 -1
  180. package/dist/Popover/index.js +1 -1
  181. package/dist/{Popover-DJf8POzL.js → Popover-78dFjTb9.js} +20 -15
  182. package/dist/PowerSearch/index.d.ts +1 -1
  183. package/dist/PowerSearch/index.js +1 -1
  184. package/dist/{PowerSearch-DvjiPqMZ.js → PowerSearch-BoAMdFaT.js} +774 -586
  185. package/dist/ProgressBar/index.d.ts +1 -1
  186. package/dist/ProgressBar/index.js +1 -1
  187. package/dist/{ProgressBar-CVLzdoBK.js → ProgressBar-VP4JS7vm.js} +10 -7
  188. package/dist/Radio/index.d.ts +1 -1
  189. package/dist/Radio/index.js +1 -1
  190. package/dist/{RadioGroup-Bfu6JSNV.js → RadioGroup-BIipql-L.js} +94 -26
  191. package/dist/RadioList/index.d.ts +1 -1
  192. package/dist/RadioList/index.js +1 -1
  193. package/dist/{RadioList-xY1cwLdZ.js → RadioList-GyhgBg4j.js} +57 -8
  194. package/dist/Resizable/index.d.ts +1 -1
  195. package/dist/Resizable/index.js +1 -1
  196. package/dist/{ResizeHandle-q4nD_586.js → ResizeHandle-TPlUCAHD.js} +103 -50
  197. package/dist/ScrollableArea/index.d.ts +1 -1
  198. package/dist/ScrollableArea/index.js +1 -1
  199. package/dist/{ScrollableArea-D4dCJv9I.js → ScrollableArea-0u6RWtGG.js} +1 -1
  200. package/dist/SegmentedControl/index.d.ts +1 -1
  201. package/dist/SegmentedControl/index.js +1 -1
  202. package/dist/{SegmentedControl-ChHmFrrC.js → SegmentedControl-D1wWGBZo.js} +11 -5
  203. package/dist/SelectableCard/index.d.ts +1 -1
  204. package/dist/SelectableCard/index.js +1 -1
  205. package/dist/{SelectableCard-Cku4dRzc.js → SelectableCard-BEqnhPaX.js} +16 -11
  206. package/dist/Selector/index.d.ts +1 -1
  207. package/dist/Selector/index.js +1 -1
  208. package/dist/Selector-CPISLzp7.js +1049 -0
  209. package/dist/SideNav/index.d.ts +1 -1
  210. package/dist/SideNav/index.js +1 -1
  211. package/dist/{SideNav-BF8mYDxl.js → SideNav-CN2QeAtY.js} +51 -37
  212. package/dist/Slider/index.d.ts +1 -1
  213. package/dist/Slider/index.js +1 -1
  214. package/dist/{Slider-DWobsPgm.js → Slider-pdC0jpHu.js} +172 -46
  215. package/dist/Spinner/index.js +1 -1
  216. package/dist/Spinner-DdVUadii.js +200 -0
  217. package/dist/Stack/index.d.ts +1 -1
  218. package/dist/Stack/index.js +2 -2
  219. package/dist/{Stack-CTsTFfar.js → Stack-Bb_h60t3.js} +1 -1
  220. package/dist/{Stack-kQlYbbL4.js → Stack-Bp-XN9J4.js} +12 -7
  221. package/dist/StatusDot/index.d.ts +1 -1
  222. package/dist/StatusDot/index.js +1 -1
  223. package/dist/{StatusDot-BPUhMOff.js → StatusDot-BS_ohXhd.js} +8 -4
  224. package/dist/Stepper/index.js +1 -1
  225. package/dist/{Stepper-CE8dHysu.js → Stepper-CyaSRSdu.js} +101 -79
  226. package/dist/Switch/index.d.ts +1 -1
  227. package/dist/Switch/index.js +1 -1
  228. package/dist/{Switch-DaVPRxvN.js → Switch-Z2Vfiiic.js} +38 -22
  229. package/dist/TabList/index.d.ts +2 -2
  230. package/dist/TabList/index.js +1 -1
  231. package/dist/{TabList-DIkK9sgK.js → TabList-DRqP0Hrv.js} +205 -63
  232. package/dist/Table/index.d.ts +3 -3
  233. package/dist/Table/index.js +1 -1
  234. package/dist/{Table-fecqnm7P.js → Table-BcrrylMX.js} +726 -452
  235. package/dist/Text/index.d.ts +1 -1
  236. package/dist/Text/index.js +1 -1
  237. package/dist/{Text-CV3LmscH.js → Text-CmTOgYXf.js} +1 -1
  238. package/dist/TextArea/index.d.ts +1 -1
  239. package/dist/TextArea/index.js +1 -1
  240. package/dist/{TextArea-Ab5Sw60T.js → TextArea-DA9CCG_J.js} +104 -50
  241. package/dist/TextInput/index.d.ts +1 -1
  242. package/dist/TextInput/index.js +1 -1
  243. package/dist/{TextInput-zFT1_qgI.js → TextInput-CI96einV.js} +71 -38
  244. package/dist/Theme/index.d.ts +3 -3
  245. package/dist/Theme/index.js +3 -2
  246. package/dist/Theme-BbDT8B_C.js +2125 -0
  247. package/dist/Thumbnail/index.js +1 -1
  248. package/dist/{Thumbnail-C3NnJUFG.js → Thumbnail-B2ZAY59J.js} +13 -10
  249. package/dist/{TimeField-CoHDGmsP.js → TimeField-CpAgja9D.js} +297 -40
  250. package/dist/TimeInput/index.d.ts +1 -1
  251. package/dist/TimeInput/index.js +1 -1
  252. package/dist/{TimeInput-D2k3Ux3p.js → TimeInput-Bw_lHS4M.js} +78 -9
  253. package/dist/Timer/index.d.ts +1 -1
  254. package/dist/Timer/index.js +1 -1
  255. package/dist/{Timer-avMQk5DN.js → Timer-CH7GsEVu.js} +1 -1
  256. package/dist/Timestamp/index.d.ts +1 -1
  257. package/dist/Timestamp/index.js +1 -1
  258. package/dist/{Timestamp-xpQKCk0d.js → Timestamp-BFNuoTZ0.js} +5 -5
  259. package/dist/Toast/index.d.ts +1 -1
  260. package/dist/Toast/index.js +1 -1
  261. package/dist/Toast-DwnPjx6j.js +685 -0
  262. package/dist/ToggleButton/index.d.ts +1 -1
  263. package/dist/ToggleButton/index.js +1 -1
  264. package/dist/{ToggleButton-B-C-Q7XP.js → ToggleButton-cLjh9W-x.js} +5 -4
  265. package/dist/Token/index.d.ts +1 -1
  266. package/dist/Token/index.js +1 -1
  267. package/dist/{Token-DsntTYhQ.js → Token-BfS4vi__.js} +32 -17
  268. package/dist/Tokenizer/index.d.ts +1 -1
  269. package/dist/Tokenizer/index.js +1 -1
  270. package/dist/{Tokenizer-B5C_qY7t.js → Tokenizer-Ci3E5bvP.js} +107 -23
  271. package/dist/Toolbar/index.d.ts +2 -2
  272. package/dist/Toolbar/index.js +1 -1
  273. package/dist/{Toolbar-BrgvvTCk.js → Toolbar-C0pMWL4S.js} +1 -1
  274. package/dist/Tooltip/index.d.ts +1 -1
  275. package/dist/Tooltip/index.js +1 -1
  276. package/dist/{Tooltip-C4Vaqd3G.js → Tooltip-sAM8i1eO.js} +23 -19
  277. package/dist/TopNav/index.d.ts +1 -1
  278. package/dist/TopNav/index.js +1 -1
  279. package/dist/{TopNav-Ciq0l1w7.js → TopNav-gW59zp1o.js} +16 -15
  280. package/dist/TreeList/index.d.ts +1 -1
  281. package/dist/TreeList/index.js +1 -1
  282. package/dist/{TreeList-BUz-KZJd.js → TreeList-DaoI7zaH.js} +124 -41
  283. package/dist/Typeahead/index.d.ts +1 -1
  284. package/dist/Typeahead/index.js +2 -2
  285. package/dist/{Typeahead-JP9RT87x.js → Typeahead-D4JjvjK4.js} +123 -26
  286. package/dist/{TypeaheadMenu-DBW6rHeO.js → TypeaheadMenu-BQlMrfqX.js} +141 -51
  287. package/dist/{announce-Cnio10Wk.js → announce-B210eJVf.js} +17 -2
  288. package/dist/characterReferences-BJ-jLhsR.js +65 -0
  289. package/dist/characters-rcDbGt71.d.ts +29 -0
  290. package/dist/characters-wTnzjkkR.js +58 -0
  291. package/dist/{colorMode-CBgdgDSn.js → colorMode-BxqfDP4P.js} +1 -4
  292. package/dist/composables/index.d.ts +5 -4
  293. package/dist/composables/index.js +23 -18
  294. package/dist/{composables-CbKx9C1Y.js → composables-Bc02zKAO.js} +167 -197
  295. package/dist/context-B6UElI5X.js +5 -0
  296. package/dist/{context-Cfjh8te1.js → context-Cfml4jaK.js} +5 -3
  297. package/dist/{context-iABt_ueM.js → context-DWfi56sq.js} +451 -122
  298. package/dist/context-IvbU9c3T.js +8 -0
  299. package/dist/context-pjBxaMSh.js +28 -0
  300. package/dist/fieldParts--SyRZVQG.js +44 -0
  301. package/dist/fieldParts-LXpQMKE8.d.ts +27 -0
  302. package/dist/{focus-CpficIgf.js → focus-l8jVTcqd.js} +1 -1
  303. package/dist/hoverIntent-DMHGb85c.js +115 -0
  304. package/dist/{index-Cde5JvtX.d.ts → index-B-nESNam.d.ts} +8 -7
  305. package/dist/{index-CsNi1I8j.d.ts → index-B08-Uxhv.d.ts} +4 -2
  306. package/dist/{index-Cn-sSds-.d.ts → index-B56j4eI2.d.ts} +24 -1
  307. package/dist/{index-BkjSF265.d.ts → index-BEZ4ezJk.d.ts} +3 -3
  308. package/dist/{index-DeQwYJbg.d.ts → index-BNaRK-s5.d.ts} +10 -1
  309. package/dist/{index-0QGtSf3r.d.ts → index-BO9TY87G.d.ts} +3 -2
  310. package/dist/{index-IBAInumL.d.ts → index-BQEJj72c.d.ts} +23 -10
  311. package/dist/{index-D97pQbua.d.ts → index-BV2D2x_u.d.ts} +1 -1
  312. package/dist/{index-Crp3NFLW.d.ts → index-BZKgbyN9.d.ts} +1 -1
  313. package/dist/index-BkUkm6Al.d.ts +11 -0
  314. package/dist/{index-ClNU2Th8.d.ts → index-Bn-v89Vt.d.ts} +10 -6
  315. package/dist/{index-Bu8NA2SD.d.ts → index-BnEhvmdR.d.ts} +16 -7
  316. package/dist/index-Bo-ofFyg.d.ts +166 -0
  317. package/dist/{index-i0tNFWfz.d.ts → index-BqhgeAT4.d.ts} +2 -0
  318. package/dist/{index-DWh2WC8W.d.ts → index-C4Cjz6OK.d.ts} +2 -2
  319. package/dist/{index-B7yhzGUT.d.ts → index-C7sam-SB.d.ts} +2 -2
  320. package/dist/{index-BrJzFA5X.d.ts → index-C90l2rH1.d.ts} +1 -1
  321. package/dist/{index-vP0EtrJJ.d.ts → index-C9gAlDt_.d.ts} +6 -3
  322. package/dist/{index-xrzJC4wm.d.ts → index-CJ6ajsUC.d.ts} +1 -1
  323. package/dist/{index-B9e52paP.d.ts → index-CK-Dbh0f.d.ts} +1 -1
  324. package/dist/index-CKUfpmFL.d.ts +375 -0
  325. package/dist/{index-DXpSFlPG.d.ts → index-CKgBTAzC.d.ts} +4 -4
  326. package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
  327. package/dist/{index-B4OOtNP8.d.ts → index-CPtDjmcX.d.ts} +3 -3
  328. package/dist/{index-12QYAbiz.d.ts → index-CRrSHbok.d.ts} +3 -2
  329. package/dist/{index-DG52Bg0W.d.ts → index-CTf3SK0b.d.ts} +6 -0
  330. package/dist/{index-BVKivP59.d.ts → index-CTjkJP4x.d.ts} +32 -3
  331. package/dist/{index-COgrQZIL.d.ts → index-CdvmnNMH.d.ts} +1 -1
  332. package/dist/{index-GI9xIV9l.d.ts → index-CikMzeab.d.ts} +2 -2
  333. package/dist/{index-DUaLJO7l.d.ts → index-CpNlPLBF.d.ts} +172 -126
  334. package/dist/{index-yT1yiiww.d.ts → index-Cs1xsHKi.d.ts} +24 -12
  335. package/dist/{index-Cyb9Du5Z.d.ts → index-CtTGt6Dv.d.ts} +1 -1
  336. package/dist/{index-Byar3h1e.d.ts → index-D05JGsT3.d.ts} +6 -3
  337. package/dist/{index-B3Fomy15.d.ts → index-D0_HsuC3.d.ts} +3 -3
  338. package/dist/{index-BgT6mH3U.d.ts → index-D7ShT2c-.d.ts} +1 -1
  339. package/dist/{index-CkKPMIeX.d.ts → index-D7XRtUTY.d.ts} +9 -0
  340. package/dist/{index-TntQsADQ.d.ts → index-DEm3kRBO.d.ts} +4 -3
  341. package/dist/{index-C2nbK2AA.d.ts → index-DLAG3m9W.d.ts} +13 -3
  342. package/dist/{index-DVmgNb78.d.ts → index-DRJZ-v1E.d.ts} +4 -4
  343. package/dist/{index-CL1T2j4y.d.ts → index-DY8Wph-A.d.ts} +3 -3
  344. package/dist/{index-B1WJxt-n.d.ts → index-DfC05uKG.d.ts} +17 -7
  345. package/dist/{index-C5e-7Obr.d.ts → index-Dj1_1t3j.d.ts} +19 -6
  346. package/dist/{index-D41_xqjs.d.ts → index-Dr4b_oji.d.ts} +20 -13
  347. package/dist/{index-CqE4Bf3Q.d.ts → index-Ds201-d2.d.ts} +16 -2
  348. package/dist/{index-DIXAzTKL.d.ts → index-DxxudRgB.d.ts} +1 -1
  349. package/dist/{index-B42oE_F-.d.ts → index-IfsSCj8J.d.ts} +18 -5
  350. package/dist/{index-XuAAcYiP.d.ts → index-f3d9cVtj.d.ts} +1 -1
  351. package/dist/{index-T2FOcOuI.d.ts → index-jOwU3YoR.d.ts} +400 -90
  352. package/dist/{index-CICeEoZV.d.ts → index-pNtfr-RW.d.ts} +1 -1
  353. package/dist/{index-BhpAUzUr.d.ts → index-unAZVFGz.d.ts} +2 -2
  354. package/dist/index.d.ts +80 -74
  355. package/dist/index.js +149 -134
  356. package/dist/inlineSize-BNe8wggI.js +66 -0
  357. package/dist/inputPresentation-BOyHkCDr.js +62 -0
  358. package/dist/interactionModality-ACpTMhak.js +44 -0
  359. package/dist/isApplePlatform-B1ju6F5B.js +27 -0
  360. package/dist/isRenderable-BnKHIqfd.js +21 -0
  361. package/dist/layerDepth-CNDh-IHb.js +181 -0
  362. package/dist/link-DuuA2eCL.js +30 -0
  363. package/dist/{loadCatalog-BGHKG_9N.d.ts → loadCatalog-DlLFZreI.d.ts} +281 -7
  364. package/dist/loadCatalog-eopw74qb.js +424 -0
  365. package/dist/locale/index.d.ts +2 -2
  366. package/dist/locale/index.js +4 -3
  367. package/dist/locale-CabGJlGp.js +343 -0
  368. package/dist/modalOutlet-CUOcrhIu.js +56 -0
  369. package/dist/optionAction-Cg7xQLUA.d.ts +6 -0
  370. package/dist/{power-search-DrDfcoL1.d.ts → power-search-gHLIYXs5.d.ts} +2 -0
  371. package/dist/protocol-DHxY0NI8.js +113 -0
  372. package/dist/protocol-RSeMzAN1.d.ts +238 -0
  373. package/dist/publicParser-B0MRoikr.d.ts +141 -0
  374. package/dist/publicParser-uHC_T0Fo.js +895 -0
  375. package/dist/resizableChannel-3vivrEcT.js +20 -0
  376. package/dist/safeUrl-CsvfcZ9m.js +54 -0
  377. package/dist/scopedProvide-C-Df7c15.js +30 -0
  378. package/dist/scrollKeyboardDelegation-D7cumnOl.js +238 -0
  379. package/dist/scrollLock-C3aT4-0z.js +102 -0
  380. package/dist/{searchResultMessage-hXXNOFJP.js → searchResultMessage-mCpJBvra.js} +5 -14
  381. package/dist/{semantic-CKH9XVqa.d.ts → semantic-BF_AjLvk.d.ts} +6 -3
  382. package/dist/slug-C65CUsf9.js +32 -0
  383. package/dist/syntaxContext-DmIfNNtb.js +4 -0
  384. package/dist/triggerVariant-BsL8jMHs.js +16 -0
  385. package/dist/{types-0Q_SJv_F.d.ts → types-Bb7OGivY.d.ts} +6 -1
  386. package/dist/{types-CwyibrRB.d.ts → types-C5GQ2KCK.d.ts} +23 -3
  387. package/dist/{types-gKsEkk2g.d.ts → types-CsqwQkf1.d.ts} +143 -10
  388. package/dist/upstreamMap-xr3gvREu.js +731 -0
  389. package/dist/{useAnchoredListbox-DwztMNjP.js → useAnchoredListbox-DGxxKHZb.js} +2 -2
  390. package/dist/{useAsyncSource-xpQovjV_.d.ts → useAsyncSource-aGzrvRkI.d.ts} +3 -0
  391. package/dist/{useClickableContainer-DyNpnSEa.js → useClickableContainer-CdGp_Cev.js} +1 -1
  392. package/dist/{useClipboard-BDfbEsWd.js → useClipboard-Dk8cS810.js} +1 -1
  393. package/dist/useHoverLayerDismiss-kYJ_NqL4.js +27 -0
  394. package/dist/{useIndicator-i1NORM7W.js → useIndicator-MZmfBWid.js} +5 -23
  395. package/dist/{useInputContainer-CpgDe2-4.js → useInputContainer-CLcYrby4.js} +1 -1
  396. package/dist/{useInputStatusIcon-DBOwxV4x.js → useInputStatusIcon-DAE7PExr.js} +1 -1
  397. package/dist/useLayerMountTarget-BmZyeKWE.js +156 -0
  398. package/dist/{useListFocus-D0iOJl39.js → useListFocus-ChxLg0b4.js} +3 -2
  399. package/dist/{useMenuDrillIn-DzKGkTho.js → useMenuDrillIn-DhUnPvKs.js} +6 -5
  400. package/dist/useMenuHover-Djreu23i.js +170 -0
  401. package/dist/useMenuPress-8foxY8z4.js +764 -0
  402. package/dist/{useMergedRefs-CfHHlCsn.js → useMergedRefs-Cb6_w93m.js} +24 -4
  403. package/dist/{useNumberField-4-dIGVed.js → useNumberField-Dk1BE3-K.js} +3 -3
  404. package/dist/useOptionActionGrid-CkJcuvaU.js +97 -0
  405. package/dist/{usePositionedLayer-Cru9_00b.js → usePositionedLayer-B7cvG-_v.js} +43 -49
  406. package/dist/usePressFeedback-BJCpjEpv.js +319 -0
  407. package/dist/{useResizable-DDwPpPe6.d.ts → useResizable-1MHPNaRD.d.ts} +19 -1
  408. package/dist/{useResizable-B3ahKLoZ.js → useResizable-I3BCiLSL.js} +72 -40
  409. package/dist/useResolvedLabelHidden-B2rlWiaI.js +30 -0
  410. package/dist/{useRestoreFocus-Djw9RUIf.js → useRestoreFocus-XEKs5-gp.js} +49 -7
  411. package/dist/useScrollOverflow-DuMoGXmm.js +67 -0
  412. package/dist/useScrollableArea-BE8b3qm7.js +222 -0
  413. package/dist/{useTimeValue-6ufHM15W.js → useTimeValue-BJd0xBhG.js} +4 -22
  414. package/dist/useTranslator-BmWt2BBt.js +35 -0
  415. package/dist/{useTypeahead-PAK8lMYz.js → useTypeahead-BvtflkRk.js} +4 -5
  416. package/dist/utils/index.d.ts +3 -0
  417. package/dist/utils/index.js +5 -0
  418. package/dist/{utils-D33VQDnk.js → utils-ClVseK2w.js} +29 -2
  419. package/dist/utils-z3Q6BGIJ.js +819 -0
  420. package/locales/SOURCE.json +1 -1
  421. package/package.json +18 -2
  422. package/reset.css +364 -1
  423. package/styles/avatar-group.css +9 -1
  424. package/styles/badge.css +8 -5
  425. package/styles/banner.css +124 -26
  426. package/styles/blockquote.css +1 -0
  427. package/styles/bordered-control.css +1 -1
  428. package/styles/bottom-sheet.css +74 -6
  429. package/styles/breadcrumbs.css +16 -2
  430. package/styles/button-group.css +3 -1
  431. package/styles/button.css +53 -11
  432. package/styles/card.css +1 -1
  433. package/styles/chat.css +16 -6
  434. package/styles/checkbox-input.css +10 -0
  435. package/styles/clickable-card.css +10 -3
  436. package/styles/collapsible.css +12 -5
  437. package/styles/command-palette.css +29 -14
  438. package/styles/complex-selector.css +22 -5
  439. package/styles/context-menu.css +3 -3
  440. package/styles/date-input.css +111 -1
  441. package/styles/dialog-header.css +4 -1
  442. package/styles/dialog.css +7 -0
  443. package/styles/dropdown-menu.css +12 -3
  444. package/styles/field.css +5 -0
  445. package/styles/form-layout.css +1 -0
  446. package/styles/heading.css +18 -8
  447. package/styles/icon.css +4 -0
  448. package/styles/kbd.css +1 -1
  449. package/styles/layer.css +72 -0
  450. package/styles/list.css +9 -2
  451. package/styles/metadata-list.css +1 -0
  452. package/styles/mobile-nav.css +4 -1
  453. package/styles/multi-selector.css +48 -1
  454. package/styles/nav-item.css +9 -2
  455. package/styles/nav-menu.css +12 -2
  456. package/styles/number-input.css +9 -1
  457. package/styles/overflow-list.css +1 -1
  458. package/styles/popover.css +2 -1
  459. package/styles/power-search.css +5 -3
  460. package/styles/pressable.css +63 -22
  461. package/styles/progress-bar.css +15 -3
  462. package/styles/radio.css +16 -0
  463. package/styles/resize-handle.css +42 -0
  464. package/styles/segmented-control.css +12 -4
  465. package/styles/selector.css +53 -1
  466. package/styles/side-nav.css +19 -0
  467. package/styles/slider.css +4 -3
  468. package/styles/spinner.css +48 -42
  469. package/styles/stepper.css +58 -4
  470. package/styles/switch.css +26 -0
  471. package/styles/tab-list.css +132 -3
  472. package/styles/table.css +88 -10
  473. package/styles/text-area.css +1 -1
  474. package/styles/text-input.css +1 -1
  475. package/styles/text.css +6 -6
  476. package/styles/thumbnail.css +11 -3
  477. package/styles/time-input.css +8 -0
  478. package/styles/toast.css +37 -3
  479. package/styles/token.css +2 -2
  480. package/styles/tokenizer.css +1 -1
  481. package/styles/toolbar.css +4 -1
  482. package/styles/tree-list.css +1 -1
  483. package/styles/typeahead.css +34 -1
  484. package/styles.css +1 -0
  485. package/dist/Blockquote-DFqBv_oJ.js +0 -18
  486. package/dist/Breadcrumbs-DIm4figq.js +0 -141
  487. package/dist/ButtonGroup-ySQWanDP.js +0 -125
  488. package/dist/DateTimeInput-A7m2O3bg.js +0 -268
  489. package/dist/MultiSelector-BtAUfQ3t.js +0 -990
  490. package/dist/NumberInput-AZ9x3oja.js +0 -473
  491. package/dist/Selector-DJ2BhUTV.js +0 -677
  492. package/dist/Spinner-9cYUCnDy.js +0 -84
  493. package/dist/Theme-CtaUWo4g.js +0 -1246
  494. package/dist/Toast-BuqIZV5z.js +0 -322
  495. package/dist/context-4PuqD1Ic.js +0 -4
  496. package/dist/context-D5-MwxnN.js +0 -4
  497. package/dist/index-BH9PzQ1F.d.ts +0 -87
  498. package/dist/link-C4_WogdF.js +0 -18
  499. package/dist/loadCatalog-CXKqEB9s.js +0 -877
  500. package/dist/locale-DgkZEMTn.js +0 -105
  501. package/dist/platform-B_9W_aHW.js +0 -33
  502. package/dist/scrollLock-BzIvIimL.js +0 -42
  503. package/dist/useMenuPress-D-FRNrBW.js +0 -573
  504. package/dist/useScrollableArea-DDk_CluT.js +0 -172
  505. /package/dist/{index-lgvUFSCO.d.ts → index-CryFtTT6.d.ts} +0 -0
@@ -1,20 +1,24 @@
1
- import { t as _sfc_main$14 } from "./VisuallyHidden-C7NN3VEP.js";
2
- import { t as _sfc_main$15 } from "./Button-B6Hj_O_s.js";
3
- import { t as _sfc_main$16 } from "./IconButton-DDNgNl7B.js";
4
- import { o as useAstryxMessages } from "./context-iABt_ueM.js";
5
- import { t as _sfc_main$17 } from "./Tooltip-C4Vaqd3G.js";
1
+ import { t as _sfc_main$15 } from "./VisuallyHidden-C7NN3VEP.js";
2
+ import { t as _sfc_main$16 } from "./Button-ONOoHdkg.js";
3
+ import { n as useLayerTeleportTarget } from "./useLayerMountTarget-BmZyeKWE.js";
4
+ import { n as firstCharacter } from "./characters-wTnzjkkR.js";
5
+ import { s as useAstryxMessages } from "./context-DWfi56sq.js";
6
+ import { n as useCollator } from "./locale-CabGJlGp.js";
7
+ import { t as useScrollableArea } from "./useScrollableArea-BE8b3qm7.js";
8
+ import { t as _sfc_main$17 } from "./Tooltip-sAM8i1eO.js";
6
9
  import { t as useScrollbars } from "./useScrollbars-C2NJ6Qwq.js";
7
- import { t as _sfc_main$18 } from "./Icon-bteSId7T.js";
8
- import { t as _sfc_main$19 } from "./CheckboxInput-BS9J6edf.js";
9
- import { t as _sfc_main$20 } from "./Popover-DJf8POzL.js";
10
- import { t as _sfc_main$21 } from "./DateInput-DT518j5E.js";
11
- import { t as _sfc_main$22 } from "./MultiSelector-BtAUfQ3t.js";
12
- import { t as _sfc_main$23 } from "./NumberInput-AZ9x3oja.js";
13
- import { t as _sfc_main$24 } from "./Pagination-DqwNQFRp.js";
14
- import { t as _sfc_main$25 } from "./Selector-DJ2BhUTV.js";
15
- import { t as _sfc_main$26 } from "./TextInput-zFT1_qgI.js";
16
- import { t as _sfc_main$27 } from "./Toolbar-BrgvvTCk.js";
17
- import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, h, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, openBlock, ref, renderList, renderSlot, toDisplayString, toValue, unref, useTemplateRef, watch, withCtx, withModifiers } from "vue";
10
+ import { t as _sfc_main$18 } from "./Icon-KDnUyY7f.js";
11
+ import { t as _sfc_main$19 } from "./CheckboxInput-DJHCbwgC.js";
12
+ import { t as _sfc_main$20 } from "./Popover-78dFjTb9.js";
13
+ import { t as _sfc_main$21 } from "./DateInput-BjLdmYor.js";
14
+ import { t as _sfc_main$22 } from "./MultiSelector-DuVatmq5.js";
15
+ import { t as _sfc_main$23 } from "./NumberInput-B0vzOg3N.js";
16
+ import { t as _sfc_main$24 } from "./Pagination-Bfe12018.js";
17
+ import { t as _sfc_main$25 } from "./Selector-CPISLzp7.js";
18
+ import { t as _sfc_main$26 } from "./TextInput-CI96einV.js";
19
+ import { t as _sfc_main$27 } from "./Toolbar-C0pMWL4S.js";
20
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, h, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, openBlock, ref, renderList, renderSlot, shallowRef, toDisplayString, toValue, unref, useAttrs, watch, withCtx, withModifiers } from "vue";
21
+ import "../styles/layer.css";
18
22
  import "../styles/table.css";
19
23
  function proportional(value = 1, options) {
20
24
  return {
@@ -75,6 +79,118 @@ function resolveColumnFloorWidths(columns) {
75
79
  }
76
80
  return widths;
77
81
  }
82
+ const MAX_COMPATIBLE_FUNCTION = /^(?:calc|min|max|clamp|var)\(/i;
83
+ const PX_LENGTH = /^(\d+(?:\.\d+)?)px$/i;
84
+ const LENGTH_UNITS = /* @__PURE__ */ new Set([
85
+ "px",
86
+ "em",
87
+ "rem",
88
+ "lh",
89
+ "rlh",
90
+ "ex",
91
+ "rex",
92
+ "ch",
93
+ "rch",
94
+ "cap",
95
+ "rcap",
96
+ "ic",
97
+ "ric",
98
+ "vw",
99
+ "vh",
100
+ "vi",
101
+ "vb",
102
+ "vmin",
103
+ "vmax",
104
+ "svw",
105
+ "svh",
106
+ "svi",
107
+ "svb",
108
+ "svmin",
109
+ "svmax",
110
+ "lvw",
111
+ "lvh",
112
+ "lvi",
113
+ "lvb",
114
+ "lvmin",
115
+ "lvmax",
116
+ "dvw",
117
+ "dvh",
118
+ "dvi",
119
+ "dvb",
120
+ "dvmin",
121
+ "dvmax",
122
+ "cqw",
123
+ "cqh",
124
+ "cqi",
125
+ "cqb",
126
+ "cqmin",
127
+ "cqmax",
128
+ "cm",
129
+ "mm",
130
+ "q",
131
+ "in",
132
+ "pt",
133
+ "pc",
134
+ "%"
135
+ ]);
136
+ function isZeroLength(value) {
137
+ const magnitude = value.trim().replace(/[a-z%]+$/i, "");
138
+ if (!/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/.test(magnitude)) return false;
139
+ return Number(magnitude) === 0;
140
+ }
141
+ function isCssMaxLength(value) {
142
+ if (value.endsWith("%")) return /^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/.test(value.slice(0, -1));
143
+ const unit = value.match(/[a-z]+$/i)?.[0]?.toLowerCase();
144
+ if (unit == null || !LENGTH_UNITS.has(unit)) return false;
145
+ return /^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/.test(value.slice(0, -unit.length));
146
+ }
147
+ /**
148
+ * 数据表的内联最小宽度:列宽下限和调用方写的 `minWidth` 里较大的那个。
149
+ *
150
+ * 数字、0 和 px 直接比较。其它长度、百分比、`calc()` / `var()` 交给 CSS `max()`。
151
+ * `auto`、`max-content` 这类关键字不能放进 `max()`,这时列宽下限胜出。
152
+ */
153
+ function resolveTableMinWidth(consumer, floorPx) {
154
+ const floor = `${floorPx}px`;
155
+ if (consumer == null) return floor;
156
+ if (typeof consumer === "number") return `${Math.max(consumer, floorPx)}px`;
157
+ const value = consumer.trim();
158
+ if (value === "" || isZeroLength(value)) return floor;
159
+ const px = PX_LENGTH.exec(value);
160
+ if (px) return `${Math.max(Number(px[1]), floorPx)}px`;
161
+ if (isCssMaxLength(value) || MAX_COMPATIBLE_FUNCTION.test(value)) return `max(${value}, ${floor})`;
162
+ return floor;
163
+ }
164
+ /** 把样式里的 `minWidth` 拆出来,剩下的继续留给滚动容器。字符串样式拆不开,原样返回。 */
165
+ function splitStyleMinWidth(style) {
166
+ if (style == null || typeof style === "string") return {
167
+ minWidth: void 0,
168
+ style
169
+ };
170
+ if (Array.isArray(style)) {
171
+ let minWidth;
172
+ const next = style.map((item) => {
173
+ const split = splitStyleMinWidth(item);
174
+ if (split.minWidth != null) minWidth = split.minWidth;
175
+ return split.style;
176
+ });
177
+ return {
178
+ minWidth,
179
+ style: next
180
+ };
181
+ }
182
+ if (typeof style === "object") {
183
+ const { minWidth, ...rest } = style;
184
+ return {
185
+ minWidth,
186
+ style: rest
187
+ };
188
+ }
189
+ return {
190
+ minWidth: void 0,
191
+ style
192
+ };
193
+ }
78
194
  function resolveColumnWidths(columns) {
79
195
  const { totalProportion, pixelTotal, maxProportionalSpace } = planColumnSpace(columns);
80
196
  const result = /* @__PURE__ */ new Map();
@@ -98,7 +214,8 @@ function resolveColumnWidths(columns) {
98
214
  }
99
215
  function capitalize(value) {
100
216
  if (value.length === 0) return value;
101
- return value.charAt(0).toUpperCase() + value.slice(1);
217
+ const first = firstCharacter(value);
218
+ return first.toUpperCase() + value.slice(first.length);
102
219
  }
103
220
  function cellText(value) {
104
221
  if (value == null) return "";
@@ -140,7 +257,7 @@ function generateColumns(data) {
140
257
  };
141
258
  });
142
259
  }
143
- function sortRows(rows, sort, columns = []) {
260
+ function sortRows(rows, sort, columns = [], collator) {
144
261
  if (sort.length === 0) return [...rows];
145
262
  const comparators = /* @__PURE__ */ new Map();
146
263
  for (const column of columns) {
@@ -152,19 +269,21 @@ function sortRows(rows, sort, columns = []) {
152
269
  copy.sort((a, b) => {
153
270
  for (const entry of sort) {
154
271
  const custom = comparators.get(entry.sortKey);
155
- const result = custom ? custom(a, b) : compareValues(a[entry.sortKey], b[entry.sortKey]);
272
+ const result = custom ? custom(a, b) : compareValues(a[entry.sortKey], b[entry.sortKey], collator);
156
273
  if (result !== 0) return entry.direction === "ascending" ? result : -result;
157
274
  }
158
275
  return 0;
159
276
  });
160
277
  return copy;
161
278
  }
162
- function compareValues(a, b) {
279
+ function compareValues(a, b, collator) {
163
280
  if (a == null && b == null) return 0;
164
281
  if (a == null) return 1;
165
282
  if (b == null) return -1;
166
283
  if (typeof a === "number" && typeof b === "number") return a - b;
167
- return String(a).localeCompare(String(b));
284
+ const left = String(a);
285
+ const right = String(b);
286
+ return collator ? collator.compare(left, right) : left.localeCompare(right);
168
287
  }
169
288
  //#endregion
170
289
  //#region src/Table/plugins/columnResize.ts
@@ -588,8 +707,8 @@ function useTablePagination(config) {
588
707
  }
589
708
  //#endregion
590
709
  //#region src/Table/TableExpansionChevron.vue
591
- const _hoisted_1$10 = ["aria-expanded", "aria-label"];
592
- const _sfc_main$13 = /*@__PURE__*/ defineComponent({
710
+ const _hoisted_1$11 = ["aria-expanded", "aria-label"];
711
+ const _sfc_main$14 = /*@__PURE__*/ defineComponent({
593
712
  name: "AstryxTableExpansionChevron",
594
713
  __name: "TableExpansionChevron",
595
714
  props: { expanded: { type: Boolean } },
@@ -607,7 +726,7 @@ const _sfc_main$13 = /*@__PURE__*/ defineComponent({
607
726
  }, [createElementVNode("span", { class: normalizeClass(["astryx-table__chevron-icon", { "is-expanded": __props.expanded }]) }, [createVNode(_sfc_main$18, {
608
727
  icon: "chevronRight",
609
728
  size: "xsm"
610
- })], 2)], 8, _hoisted_1$10);
729
+ })], 2)], 8, _hoisted_1$11);
611
730
  };
612
731
  }
613
732
  });
@@ -628,7 +747,7 @@ function useTableRowExpansion(config) {
628
747
  const current = toValue(config);
629
748
  if (!(current.getIsItemExpandable?.(item) ?? true)) return null;
630
749
  const key = current.getRowKey(item);
631
- return h(_sfc_main$13, {
750
+ return h(_sfc_main$14, {
632
751
  expanded: current.expandedKeys.has(key),
633
752
  onToggle: () => current.onToggle(key)
634
753
  });
@@ -871,9 +990,10 @@ function useTableSelection(config) {
871
990
  //#endregion
872
991
  //#region src/Table/plugins/sortable.ts
873
992
  function useTableSortableState(options) {
874
- const sort = ref(options.defaultSort ?? []);
993
+ const sort = ref(toValue(options.defaultSort) ?? []);
994
+ const collator = useCollator({ numeric: true });
875
995
  return {
876
- sortedData: computed(() => sortRows(toValue(options.data), sort.value, toValue(options.columns) ?? [])),
996
+ sortedData: computed(() => sortRows(toValue(options.data), sort.value, toValue(options.columns) ?? [], collator.value)),
877
997
  sort,
878
998
  sortConfig: {
879
999
  get sort() {
@@ -1053,13 +1173,13 @@ function selectColumn() {
1053
1173
  }
1054
1174
  //#endregion
1055
1175
  //#region src/Table/TableTreeCell.vue
1056
- const _hoisted_1$9 = ["aria-expanded", "aria-label"];
1057
- const _hoisted_2$4 = {
1176
+ const _hoisted_1$10 = ["aria-expanded", "aria-label"];
1177
+ const _hoisted_2$3 = {
1058
1178
  key: 1,
1059
1179
  class: "astryx-table__tree-spacer"
1060
1180
  };
1061
1181
  const _hoisted_3$3 = { class: "astryx-table__tree-label" };
1062
- const _sfc_main$12 = /*@__PURE__*/ defineComponent({
1182
+ const _sfc_main$13 = /*@__PURE__*/ defineComponent({
1063
1183
  name: "AstryxTableTreeCell",
1064
1184
  __name: "TableTreeCell",
1065
1185
  props: {
@@ -1096,12 +1216,19 @@ const _sfc_main$12 = /*@__PURE__*/ defineComponent({
1096
1216
  }, [createElementVNode("span", { class: normalizeClass(["astryx-table__chevron-icon", { "is-expanded": __props.expanded }]) }, [createVNode(_sfc_main$18, {
1097
1217
  icon: "chevronRight",
1098
1218
  size: "xsm"
1099
- })], 2)], 8, _hoisted_1$9)) : (openBlock(), createElementBlock("span", _hoisted_2$4)), createElementVNode("span", _hoisted_3$3, [renderSlot(_ctx.$slots, "default")])], 4);
1219
+ })], 2)], 8, _hoisted_1$10)) : (openBlock(), createElementBlock("span", _hoisted_2$3)), createElementVNode("span", _hoisted_3$3, [renderSlot(_ctx.$slots, "default")])], 4);
1100
1220
  };
1101
1221
  }
1102
1222
  });
1103
1223
  //#endregion
1104
1224
  //#region src/Table/plugins/tree.ts
1225
+ /**
1226
+ * config 本身和里面的字段都可能是 ref 或 getter,两层都要解开。
1227
+ * 只解数据类字段:`idKey` 这类回调字段是函数,`toValue` 会把它当 getter 调用掉。
1228
+ */
1229
+ function fieldValue(value) {
1230
+ return value === void 0 ? void 0 : toValue(value);
1231
+ }
1105
1232
  function itemId(item, idKey) {
1106
1233
  return typeof idKey === "function" ? String(idKey(item)) : String(item[idKey]);
1107
1234
  }
@@ -1125,7 +1252,7 @@ function flattenTree(config, expandedIds) {
1125
1252
  expandablePath.delete(id);
1126
1253
  }
1127
1254
  };
1128
- walkAll(config.data);
1255
+ walkAll(fieldValue(config.data) ?? []);
1129
1256
  const path = /* @__PURE__ */ new Set();
1130
1257
  const walk = (items, level) => {
1131
1258
  const siblings = config.sortSiblings ? config.sortSiblings([...items]) : items;
@@ -1148,7 +1275,7 @@ function flattenTree(config, expandedIds) {
1148
1275
  }
1149
1276
  }
1150
1277
  };
1151
- walk(config.data, 0);
1278
+ walk(fieldValue(config.data) ?? [], 0);
1152
1279
  return {
1153
1280
  rows,
1154
1281
  meta,
@@ -1185,7 +1312,7 @@ function useTableTreeData(config) {
1185
1312
  const meta = live.getRowMeta(item);
1186
1313
  const body = original?.(item, index) ?? cellText(item[column.key]);
1187
1314
  if (meta == null) return body;
1188
- return h(_sfc_main$12, {
1315
+ return h(_sfc_main$13, {
1189
1316
  level: meta.level,
1190
1317
  hasChildren: meta.hasChildren,
1191
1318
  expanded: meta.isExpanded,
@@ -1238,8 +1365,8 @@ function useTableTreeData(config) {
1238
1365
  }
1239
1366
  function useTableTreeState(config) {
1240
1367
  const initial = toValue(config);
1241
- const internal = ref(new Set(initial.defaultExpandedIds ?? []));
1242
- const expandedIds = computed(() => toValue(config).expandedIds ?? internal.value);
1368
+ const internal = ref(new Set(fieldValue(initial.defaultExpandedIds) ?? []));
1369
+ const expandedIds = computed(() => fieldValue(toValue(config).expandedIds) ?? internal.value);
1243
1370
  const flat = computed(() => flattenTree(toValue(config), expandedIds.value));
1244
1371
  const isAllExpanded = computed(() => expansionState(flat.value.expandableIds, expandedIds.value));
1245
1372
  function commit(next) {
@@ -1284,6 +1411,72 @@ function useTableTreeState(config) {
1284
1411
  };
1285
1412
  }
1286
1413
  //#endregion
1414
+ //#region src/Table/rowPatch.ts
1415
+ /**
1416
+ * 把多个插件的行事件合成一个处理器,按插件顺序依次调用。
1417
+ * 每个事件单独合并,插件只给其中一个事件时其余事件不受影响。
1418
+ */
1419
+ function mergeListeners(sources) {
1420
+ if (sources.length === 0) return void 0;
1421
+ const enters = sources.map((source) => source.onMouseenter).filter((handler) => handler != null);
1422
+ const leaves = sources.map((source) => source.onMouseleave).filter((handler) => handler != null);
1423
+ const focuses = sources.map((source) => source.onFocus).filter((handler) => handler != null);
1424
+ const blurs = sources.map((source) => source.onBlur).filter((handler) => handler != null);
1425
+ const merged = {};
1426
+ if (enters.length > 0) merged.onMouseenter = (event) => {
1427
+ for (const handler of enters) handler(event);
1428
+ };
1429
+ if (leaves.length > 0) merged.onMouseleave = (event) => {
1430
+ for (const handler of leaves) handler(event);
1431
+ };
1432
+ if (focuses.length > 0) merged.onFocus = (event) => {
1433
+ for (const handler of focuses) handler(event);
1434
+ };
1435
+ if (blurs.length > 0) merged.onBlur = (event) => {
1436
+ for (const handler of blurs) handler(event);
1437
+ };
1438
+ return merged;
1439
+ }
1440
+ /**
1441
+ * 收集所有插件对这一行的贡献。分组头、展开面板、是否参与选择这类二选一的字段以第一个给出
1442
+ * 结果的插件为准,类名、属性、事件、行元素回调、右键菜单则依次叠加。
1443
+ */
1444
+ function mergeRowPatches(plugins, row, index, columnCount) {
1445
+ const classes = [];
1446
+ const clicks = [];
1447
+ const refs = [];
1448
+ const menus = [];
1449
+ const listeners = [];
1450
+ const merged = {};
1451
+ for (const plugin of plugins) {
1452
+ const patch = plugin.rowPatch?.(row, index, columnCount);
1453
+ if (patch == null) continue;
1454
+ if (patch.group && merged.group == null) merged.group = patch.group;
1455
+ if (patch.panel && merged.panel == null) merged.panel = patch.panel;
1456
+ if (patch.suppressSelection) merged.suppressSelection = true;
1457
+ if (patch.skipRowIndex) merged.skipRowIndex = true;
1458
+ if (patch.class) classes.push(patch.class);
1459
+ if (patch.attrs) merged.attrs = {
1460
+ ...merged.attrs,
1461
+ ...patch.attrs
1462
+ };
1463
+ if (patch.onClick) clicks.push(patch.onClick);
1464
+ if (patch.ref) refs.push(patch.ref);
1465
+ if (patch.listeners) listeners.push(patch.listeners);
1466
+ if (patch.menu) menus.push(...patch.menu);
1467
+ }
1468
+ merged.class = classes.join(" ") || void 0;
1469
+ merged.menu = menus;
1470
+ merged.listeners = mergeListeners(listeners);
1471
+ if (clicks.length > 0) merged.onClick = (event) => {
1472
+ for (const click of clicks) click(event);
1473
+ };
1474
+ if (refs.length > 0) merged.ref = (element) => {
1475
+ for (const callback of refs) callback(element);
1476
+ };
1477
+ return merged;
1478
+ }
1479
+ //#endregion
1287
1480
  //#region src/Table/TableDataRenderers.ts
1288
1481
  /**
1289
1482
  * 渲染单元格内容:优先走列自己的 renderCell,没给就回退成纯文本。
@@ -1378,10 +1571,11 @@ const PluginFooter = defineComponent({
1378
1571
  });
1379
1572
  //#endregion
1380
1573
  //#region src/Table/TableFilterControl.vue
1381
- const _hoisted_1$8 = ["data-variant"];
1382
- const _hoisted_2$3 = { class: "astryx-table__filter-popover" };
1383
- const _hoisted_3$2 = { class: "astryx-table__filter-actions" };
1384
- const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1574
+ const _hoisted_1$9 = ["data-variant"];
1575
+ const _hoisted_2$2 = ["aria-label", "data-active"];
1576
+ const _hoisted_3$2 = { class: "astryx-table__filter-popover" };
1577
+ const _hoisted_4$2 = { class: "astryx-table__filter-actions" };
1578
+ const _sfc_main$12 = /*@__PURE__*/ defineComponent({
1385
1579
  __name: "TableFilterControl",
1386
1580
  props: { filter: {} },
1387
1581
  setup(__props) {
@@ -1389,6 +1583,11 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1389
1583
  const messages = useAstryxMessages();
1390
1584
  const draft = ref(props.filter.value);
1391
1585
  const isCompact = computed(() => props.filter.variant === "inline-compact");
1586
+ /** 有生效的筛选值时漏斗用强调色,一眼看出这一列被筛过。 */
1587
+ const hasValue = computed(() => {
1588
+ const value = props.filter.value;
1589
+ return value != null && value !== "" && !(Array.isArray(value) && value.length === 0);
1590
+ });
1392
1591
  watch(() => props.filter.value, (value) => {
1393
1592
  draft.value = value;
1394
1593
  });
@@ -1522,7 +1721,7 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1522
1721
  "has-close-button": false,
1523
1722
  width: 240
1524
1723
  }, {
1525
- content: withCtx(() => [createElementVNode("div", _hoisted_2$3, [__props.filter.field.type === "string" ? (openBlock(), createBlock(_sfc_main$26, {
1724
+ content: withCtx(() => [createElementVNode("div", _hoisted_3$2, [__props.filter.field.type === "string" ? (openBlock(), createBlock(_sfc_main$26, {
1526
1725
  key: 0,
1527
1726
  "model-value": textValue(draft.value),
1528
1727
  label: __props.filter.field.label,
@@ -1595,7 +1794,7 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1595
1794
  "label",
1596
1795
  "placeholder",
1597
1796
  "options"
1598
- ])), createElementVNode("div", _hoisted_3$2, [createVNode(_sfc_main$15, {
1797
+ ])), createElementVNode("div", _hoisted_4$2, [createVNode(_sfc_main$16, {
1599
1798
  variant: "ghost",
1600
1799
  size: "sm",
1601
1800
  label: unref(messages).table.reset,
@@ -1606,7 +1805,7 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1606
1805
  }, {
1607
1806
  default: withCtx(() => [createTextVNode(toDisplayString(unref(messages).table.reset), 1)]),
1608
1807
  _: 1
1609
- }, 8, ["label"]), createVNode(_sfc_main$15, {
1808
+ }, 8, ["label"]), createVNode(_sfc_main$16, {
1610
1809
  variant: "primary",
1611
1810
  size: "sm",
1612
1811
  label: unref(messages).table.apply,
@@ -1615,33 +1814,32 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1615
1814
  default: withCtx(() => [createTextVNode(toDisplayString(unref(messages).table.apply), 1)]),
1616
1815
  _: 1
1617
1816
  }, 8, ["label"])])])]),
1618
- default: withCtx(() => [createVNode(_sfc_main$16, {
1619
- variant: "ghost",
1620
- size: "sm",
1621
- label: __props.filter.field.label
1622
- }, {
1623
- default: withCtx(() => [createVNode(_sfc_main$18, {
1624
- icon: "funnel",
1625
- size: "sm"
1626
- })]),
1627
- _: 1
1628
- }, 8, ["label"])]),
1817
+ default: withCtx(() => [createElementVNode("button", {
1818
+ type: "button",
1819
+ class: "astryx-table__filter-trigger",
1820
+ "aria-label": __props.filter.field.label,
1821
+ "data-active": hasValue.value || void 0
1822
+ }, [createVNode(_sfc_main$18, {
1823
+ icon: "funnel",
1824
+ size: "xsm",
1825
+ color: hasValue.value ? "accent" : "secondary"
1826
+ }, null, 8, ["color"])], 8, _hoisted_2$2)]),
1629
1827
  _: 1
1630
- }, 8, ["label"]))], 8, _hoisted_1$8);
1828
+ }, 8, ["label"]))], 8, _hoisted_1$9);
1631
1829
  };
1632
1830
  }
1633
1831
  });
1634
1832
  //#endregion
1635
1833
  //#region src/Table/TableGroupHeader.vue
1636
- const _hoisted_1$7 = ["data-pinned"];
1637
- const _hoisted_2$2 = [
1834
+ const _hoisted_1$8 = ["data-pinned"];
1835
+ const _hoisted_2$1 = [
1638
1836
  "data-pinned",
1639
1837
  "aria-expanded",
1640
1838
  "aria-label"
1641
1839
  ];
1642
1840
  const _hoisted_3$1 = { class: "astryx-table__group-label" };
1643
1841
  const _hoisted_4$1 = { class: "astryx-table__group-count" };
1644
- const _sfc_main$10 = /*@__PURE__*/ defineComponent({
1842
+ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1645
1843
  name: "AstryxTableGroupHeader",
1646
1844
  __name: "TableGroupHeader",
1647
1845
  props: {
@@ -1668,19 +1866,19 @@ const _sfc_main$10 = /*@__PURE__*/ defineComponent({
1668
1866
  }, [createElementVNode("span", { class: normalizeClass(["astryx-table__chevron-icon", { "is-expanded": !__props.collapsed }]) }, [createVNode(_sfc_main$18, {
1669
1867
  icon: "chevronRight",
1670
1868
  size: "sm"
1671
- })], 2)], 8, _hoisted_2$2), renderSlot(_ctx.$slots, "default", {}, () => [createElementVNode("span", _hoisted_3$1, [createTextVNode(toDisplayString(__props.groupKey) + " ", 1), createElementVNode("span", _hoisted_4$1, "(" + toDisplayString(__props.count) + ")", 1)])])], 8, _hoisted_1$7);
1869
+ })], 2)], 8, _hoisted_2$1), renderSlot(_ctx.$slots, "default", {}, () => [createElementVNode("span", _hoisted_3$1, [createTextVNode(toDisplayString(__props.groupKey) + " ", 1), createElementVNode("span", _hoisted_4$1, "(" + toDisplayString(__props.count) + ")", 1)])])], 8, _hoisted_1$8);
1672
1870
  };
1673
1871
  }
1674
1872
  });
1675
1873
  //#endregion
1676
1874
  //#region src/Table/TableRowMenu.vue
1677
- const _hoisted_1$6 = [
1875
+ const _hoisted_1$7 = [
1678
1876
  "tabindex",
1679
1877
  "onClick",
1680
1878
  "onFocusin",
1681
1879
  "onMouseenter"
1682
1880
  ];
1683
- const _sfc_main$9 = /*@__PURE__*/ defineComponent({
1881
+ const _sfc_main$10 = /*@__PURE__*/ defineComponent({
1684
1882
  name: "AstryxTableRowMenu",
1685
1883
  __name: "TableRowMenu",
1686
1884
  props: {
@@ -1692,6 +1890,7 @@ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
1692
1890
  setup(__props, { emit: __emit }) {
1693
1891
  const props = __props;
1694
1892
  const emit = __emit;
1893
+ const teleportTarget = useLayerTeleportTarget();
1695
1894
  const root = ref(null);
1696
1895
  const active = ref(0);
1697
1896
  function focusItem(index) {
@@ -1739,10 +1938,10 @@ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
1739
1938
  document.removeEventListener("pointerdown", onPointerDown);
1740
1939
  });
1741
1940
  return (_ctx, _cache) => {
1742
- return openBlock(), createElementBlock("div", {
1941
+ return openBlock(), createBlock(Teleport, { to: unref(teleportTarget) }, [createElementVNode("div", {
1743
1942
  ref_key: "root",
1744
1943
  ref: root,
1745
- class: "astryx-table-menu",
1944
+ class: "astryx-table-menu astryx-layer",
1746
1945
  role: "menu",
1747
1946
  tabindex: "-1",
1748
1947
  style: normalizeStyle({
@@ -1764,15 +1963,208 @@ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
1764
1963
  key: 0,
1765
1964
  icon: item.icon,
1766
1965
  size: "xsm"
1767
- }, null, 8, ["icon"])) : createCommentVNode("v-if", true), createElementVNode("span", null, toDisplayString(item.label), 1)], 40, _hoisted_1$6);
1768
- }), 128))], 36);
1966
+ }, null, 8, ["icon"])) : createCommentVNode("v-if", true), createElementVNode("span", null, toDisplayString(item.label), 1)], 40, _hoisted_1$7);
1967
+ }), 128))], 36)], 8, ["to"]);
1769
1968
  };
1770
1969
  }
1771
1970
  });
1772
1971
  //#endregion
1972
+ //#region src/Table/TableScroll.vue
1973
+ const _hoisted_1$6 = ["aria-label", "tabindex"];
1974
+ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
1975
+ inheritAttrs: false,
1976
+ __name: "TableScroll",
1977
+ props: { label: {} },
1978
+ emits: ["viewport"],
1979
+ setup(__props, { emit: __emit }) {
1980
+ const emit = __emit;
1981
+ const attrs = useAttrs();
1982
+ const scroll = useScrollableArea({
1983
+ axis: "inline",
1984
+ overscroll: "contain",
1985
+ keyboardAccess: { owner: "content" }
1986
+ });
1987
+ const viewportEl = shallowRef(null);
1988
+ function bindViewport(element) {
1989
+ scroll.viewport(element);
1990
+ const node = element instanceof HTMLElement ? element : null;
1991
+ viewportEl.value = node;
1992
+ emit("viewport", node);
1993
+ }
1994
+ useScrollbars(viewportEl);
1995
+ const tabindex = computed(() => scroll.state.value.inline.isScrollable ? 0 : void 0);
1996
+ const rootClass = computed(() => ["astryx-table-scroll", attrs.class]);
1997
+ const rootStyle = computed(() => [attrs.style, scroll.viewportStyle.value]);
1998
+ return (_ctx, _cache) => {
1999
+ return openBlock(), createElementBlock("div", mergeProps({
2000
+ ref: bindViewport,
2001
+ class: rootClass.value,
2002
+ role: "group",
2003
+ "aria-label": __props.label,
2004
+ tabindex: tabindex.value
2005
+ }, unref(scroll).viewportAttrs.value, { style: rootStyle.value }), [createElementVNode("div", {
2006
+ ref: unref(scroll).content,
2007
+ "data-scroll-content": ""
2008
+ }, [renderSlot(_ctx.$slots, "default")], 512)], 16, _hoisted_1$6);
2009
+ };
2010
+ }
2011
+ });
2012
+ //#endregion
2013
+ //#region src/Table/useTableColumnResizeSession.ts
2014
+ /**
2015
+ * 表头列宽把手的指针拖动和键盘步进。
2016
+ * 宽度怎么分给相邻列由 `resizeColumnWidths` 决定,这里只负责会话和预览。
2017
+ */
2018
+ function useTableColumnResizeSession(options) {
2019
+ function buildResizeState(cell, column) {
2020
+ const row = cell.parentElement;
2021
+ if (row == null) return null;
2022
+ const table = cell.closest("table");
2023
+ const contributions = options.contributions();
2024
+ const dragged = contributions.get(column.key);
2025
+ const snapshots = [];
2026
+ const elements = /* @__PURE__ */ new Map();
2027
+ for (const child of Array.from(row.children)) {
2028
+ if (!(child instanceof HTMLElement)) continue;
2029
+ const key = child.dataset.column;
2030
+ if (key == null) continue;
2031
+ const contribution = contributions.get(key);
2032
+ if (contribution == null) continue;
2033
+ const measured = child.getBoundingClientRect().width;
2034
+ snapshots.push({
2035
+ key,
2036
+ initialWidth: contribution.currentWidth ?? (measured > 0 ? measured : 0),
2037
+ minWidth: contribution.minWidth,
2038
+ maxWidth: contribution.maxWidth
2039
+ });
2040
+ elements.set(key, child);
2041
+ }
2042
+ const resizeIndex = snapshots.findIndex((item) => item.key === column.key);
2043
+ if (resizeIndex < 0) return null;
2044
+ return {
2045
+ snapshots,
2046
+ resizeIndex,
2047
+ neighborIndex: dragged?.neighborKey == null ? null : snapshots.findIndex((item) => item.key === dragged.neighborKey),
2048
+ tableWidth: table?.getBoundingClientRect().width ?? 0,
2049
+ direction: columnResizeDirectionSign(getComputedStyle(cell).direction),
2050
+ elements
2051
+ };
2052
+ }
2053
+ function applyResize(widths, state) {
2054
+ state.snapshots.forEach((snapshot, index) => {
2055
+ const element = state.elements.get(snapshot.key);
2056
+ const width = widths[index];
2057
+ if (element == null || width == null) return;
2058
+ const pixels = `${width}px`;
2059
+ element.style.width = pixels;
2060
+ element.style.minWidth = pixels;
2061
+ element.style.maxWidth = pixels;
2062
+ });
2063
+ }
2064
+ function resetResizeStyles(state) {
2065
+ for (const element of state.elements.values()) {
2066
+ element.style.width = "";
2067
+ element.style.minWidth = "";
2068
+ element.style.maxWidth = "";
2069
+ }
2070
+ }
2071
+ /** 算一次拖动结果:先把预览写到表头,再把变了的列交给插件。 */
2072
+ function commitResize(state, delta) {
2073
+ const widths = resizeColumnWidths(state, delta);
2074
+ applyResize(widths, state);
2075
+ const last = state.snapshots.length - 1;
2076
+ const updates = {};
2077
+ state.snapshots.forEach((snapshot, index) => {
2078
+ const width = widths[index];
2079
+ if (index !== last && width != null) updates[snapshot.key] = width;
2080
+ });
2081
+ if (Object.keys(updates).length === 0) return;
2082
+ for (const plugin of options.plugins()) plugin.onColumnResizeEnd?.(updates);
2083
+ }
2084
+ function resizeLabel(column) {
2085
+ const header = typeof column.header === "string" && column.header.length > 0 ? column.header : column.key;
2086
+ return options.resizeColumnLabel(header);
2087
+ }
2088
+ function resizeMax(contribution) {
2089
+ const max = contribution?.maxWidth;
2090
+ return max == null || !Number.isFinite(max) ? void 0 : max;
2091
+ }
2092
+ function startResize(event, column) {
2093
+ const target = event.currentTarget;
2094
+ if (!(target instanceof HTMLElement) || event.button !== 0) return;
2095
+ const cell = target.closest("th");
2096
+ const state = cell == null ? null : buildResizeState(cell, column);
2097
+ if (state == null || cell == null) return;
2098
+ event.preventDefault();
2099
+ const pointerId = event.pointerId;
2100
+ const startX = event.clientX;
2101
+ const table = cell.closest("table");
2102
+ const previousUserSelect = table?.style.userSelect ?? "";
2103
+ if (table != null) table.style.userSelect = "none";
2104
+ target.setAttribute("data-resizing", "true");
2105
+ target.setPointerCapture(pointerId);
2106
+ const listeners = new AbortController();
2107
+ const move = (moveEvent) => {
2108
+ if (moveEvent.pointerId !== pointerId) return;
2109
+ applyResize(resizeColumnWidths(state, (moveEvent.clientX - startX) * state.direction), state);
2110
+ };
2111
+ const finish = () => {
2112
+ listeners.abort();
2113
+ target.removeAttribute("data-resizing");
2114
+ if (target.hasPointerCapture(pointerId)) target.releasePointerCapture(pointerId);
2115
+ if (table != null) table.style.userSelect = previousUserSelect;
2116
+ };
2117
+ const stop = (upEvent) => {
2118
+ if (upEvent.pointerId !== pointerId) return;
2119
+ finish();
2120
+ commitResize(state, (upEvent.clientX - startX) * state.direction);
2121
+ };
2122
+ const cancel = (cancelEvent) => {
2123
+ if (cancelEvent.pointerId !== pointerId) return;
2124
+ finish();
2125
+ resetResizeStyles(state);
2126
+ };
2127
+ const listenerOptions = { signal: listeners.signal };
2128
+ target.addEventListener("pointermove", move, listenerOptions);
2129
+ target.addEventListener("pointerup", stop, listenerOptions);
2130
+ target.addEventListener("pointercancel", cancel, listenerOptions);
2131
+ }
2132
+ function onResizeKeydown(event, column) {
2133
+ const handle = event.currentTarget;
2134
+ if (!(handle instanceof HTMLElement)) return;
2135
+ const cell = handle.closest("th");
2136
+ const state = cell == null ? null : buildResizeState(cell, column);
2137
+ if (state == null) return;
2138
+ const self = state.snapshots[state.resizeIndex];
2139
+ if (self == null) return;
2140
+ const step = columnResizeStep(event.shiftKey);
2141
+ let delta = null;
2142
+ switch (event.key) {
2143
+ case "ArrowRight":
2144
+ delta = step * state.direction;
2145
+ break;
2146
+ case "ArrowLeft":
2147
+ delta = -step * state.direction;
2148
+ break;
2149
+ case "Home":
2150
+ delta = self.minWidth - self.initialWidth;
2151
+ break;
2152
+ case "End": if (Number.isFinite(self.maxWidth)) delta = self.maxWidth - self.initialWidth;
2153
+ }
2154
+ if (delta == null) return;
2155
+ event.preventDefault();
2156
+ commitResize(state, delta);
2157
+ }
2158
+ return {
2159
+ startResize,
2160
+ onResizeKeydown,
2161
+ resizeLabel,
2162
+ resizeMax
2163
+ };
2164
+ }
2165
+ //#endregion
1773
2166
  //#region src/Table/TableData.vue
1774
- const _hoisted_1$5 = ["aria-label"];
1775
- const _hoisted_2$1 = [
2167
+ const _hoisted_1$5 = [
1776
2168
  "data-density",
1777
2169
  "data-dividers",
1778
2170
  "data-striped",
@@ -1782,26 +2174,26 @@ const _hoisted_2$1 = [
1782
2174
  "data-row-highlight",
1783
2175
  "aria-rowcount"
1784
2176
  ];
1785
- const _hoisted_3 = [
2177
+ const _hoisted_2 = [
1786
2178
  "data-column",
1787
2179
  "data-align",
1788
2180
  "aria-sort"
1789
2181
  ];
1790
- const _hoisted_4 = { class: "astryx-table__header" };
1791
- const _hoisted_5 = { class: "astryx-table__header-line" };
1792
- const _hoisted_6 = [
2182
+ const _hoisted_3 = { class: "astryx-table__header" };
2183
+ const _hoisted_4 = { class: "astryx-table__header-line" };
2184
+ const _hoisted_5 = [
1793
2185
  "data-align",
1794
2186
  "aria-label",
1795
2187
  "onClick"
1796
2188
  ];
1797
- const _hoisted_7 = { key: 1 };
1798
- const _hoisted_8 = ["data-active"];
1799
- const _hoisted_9 = {
2189
+ const _hoisted_6 = { key: 1 };
2190
+ const _hoisted_7 = ["data-active"];
2191
+ const _hoisted_8 = {
1800
2192
  key: 2,
1801
2193
  class: "astryx-table__sort-rank"
1802
2194
  };
1803
- const _hoisted_10 = { key: 2 };
1804
- const _hoisted_11 = [
2195
+ const _hoisted_9 = { key: 2 };
2196
+ const _hoisted_10 = [
1805
2197
  "aria-label",
1806
2198
  "aria-valuenow",
1807
2199
  "aria-valuemin",
@@ -1809,20 +2201,24 @@ const _hoisted_11 = [
1809
2201
  "onPointerdown",
1810
2202
  "onKeydown"
1811
2203
  ];
1812
- const _hoisted_12 = { key: 0 };
1813
- const _hoisted_13 = ["colspan"];
1814
- const _hoisted_14 = [
2204
+ const _hoisted_11 = { key: 0 };
2205
+ const _hoisted_12 = ["colspan"];
2206
+ const _hoisted_13 = [
1815
2207
  "aria-selected",
1816
2208
  "aria-rowindex",
2209
+ "onBlur",
1817
2210
  "onClick",
1818
- "onContextmenu"
2211
+ "onContextmenu",
2212
+ "onFocus",
2213
+ "onMouseenter",
2214
+ "onMouseleave"
1819
2215
  ];
1820
- const _hoisted_15 = ["colspan"];
1821
- const _hoisted_16 = ["data-column", "data-align"];
1822
- const _hoisted_17 = ["data-variant"];
1823
- const _hoisted_18 = ["colspan"];
1824
- /** 收集这一行表头的宽度快照,用来算拖动后的宽度。 */
2216
+ const _hoisted_14 = ["colspan"];
2217
+ const _hoisted_15 = ["data-column", "data-align"];
2218
+ const _hoisted_16 = ["data-variant"];
2219
+ const _hoisted_17 = ["colspan"];
1825
2220
  const _sfc_main$8 = /*@__PURE__*/ defineComponent({
2221
+ inheritAttrs: false,
1826
2222
  __name: "TableData",
1827
2223
  props: {
1828
2224
  rows: {},
@@ -1837,15 +2233,15 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
1837
2233
  textOverflow: {},
1838
2234
  verticalAlign: {},
1839
2235
  rowIndexStart: {},
1840
- rowCount: {},
1841
- minWidth: {}
2236
+ rowCount: {}
1842
2237
  },
1843
2238
  setup(__props) {
1844
2239
  const props = __props;
2240
+ const attrs = useAttrs();
1845
2241
  const messages = useAstryxMessages();
1846
2242
  const scrollRoot = ref(null);
1847
- useScrollbars(scrollRoot);
1848
2243
  const menu = ref(null);
2244
+ const scrollStyle = computed(() => splitStyleMinWidth(attrs.style).style);
1849
2245
  const resolvedColumns = computed(() => props.plugins.reduce((columns, plugin) => plugin.transformColumns?.(columns) ?? columns, [...props.columns]));
1850
2246
  const widths = computed(() => resolveColumnWidths(resolvedColumns.value));
1851
2247
  const selection = computed(() => props.plugins.find((plugin) => plugin.selection)?.selection);
@@ -1868,6 +2264,12 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
1868
2264
  };
1869
2265
  }
1870
2266
  const resizeContributions = computed(() => new Map(resolvedColumns.value.map((column) => [column.key, resizeContribution(column)])));
2267
+ const { startResize, onResizeKeydown, resizeLabel, resizeMax } = useTableColumnResizeSession({
2268
+ plugins: () => props.plugins,
2269
+ contributions: () => resizeContributions.value,
2270
+ resizeColumnLabel: (header) => messages.value.table.resizeColumn(header)
2271
+ });
2272
+ const tableStyle = computed(() => ({ minWidth: resolveTableMinWidth(splitStyleMinWidth(attrs.style).minWidth, widths.value.tableMinWidth) }));
1871
2273
  const layoutColumns = computed(() => selection.value ? [selectColumn(), ...resolvedColumns.value] : resolvedColumns.value);
1872
2274
  const columnCount = computed(() => layoutColumns.value.length);
1873
2275
  const trackRows = computed(() => props.rowCount != null || props.rowIndexStart != null);
@@ -1878,10 +2280,12 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
1878
2280
  function bindScroll(element) {
1879
2281
  for (const plugin of props.plugins) plugin.bindScrollRoot?.(element);
1880
2282
  }
1881
- watch(scrollRoot, (element, previous) => {
1882
- if (previous) bindScroll(null);
1883
- if (element) bindScroll(element);
1884
- });
2283
+ function onViewport(element) {
2284
+ if (scrollRoot.value === element) return;
2285
+ if (scrollRoot.value != null) bindScroll(null);
2286
+ scrollRoot.value = element;
2287
+ if (element != null) bindScroll(element);
2288
+ }
1885
2289
  onBeforeUnmount(() => {
1886
2290
  bindScroll(null);
1887
2291
  });
@@ -1908,6 +2312,16 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
1908
2312
  }
1909
2313
  return null;
1910
2314
  }
2315
+ const filterContributions = computed(() => new Map(resolvedColumns.value.map((column) => [column.key, filterFor(column)])));
2316
+ /**
2317
+ * 取某一列落在指定位置的筛选控件。
2318
+ * `popover` 是一个漏斗按钮,跟标题、排序图标同一行;`inline` 系列是输入框,垫在标题下面。
2319
+ */
2320
+ function filterAt(column, place) {
2321
+ const filter = filterContributions.value.get(column.key) ?? null;
2322
+ if (filter == null) return null;
2323
+ return (filter.variant === "popover" ? "line" : "below") === place ? filter : null;
2324
+ }
1911
2325
  function rowKey(row, index) {
1912
2326
  if (typeof props.idKey === "function") return props.idKey(row);
1913
2327
  const id = row[props.idKey];
@@ -1946,38 +2360,19 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
1946
2360
  if (column.verticalAlign) style.verticalAlign = column.verticalAlign;
1947
2361
  return style;
1948
2362
  }
1949
- function mergeRow(row, index) {
1950
- const classes = [];
1951
- const clicks = [];
1952
- const menus = [];
1953
- const merged = {};
1954
- for (const plugin of props.plugins) {
1955
- const patch = plugin.rowPatch?.(row, index, columnCount.value);
1956
- if (patch == null) continue;
1957
- if (patch.group && merged.group == null) merged.group = patch.group;
1958
- if (patch.panel && merged.panel == null) merged.panel = patch.panel;
1959
- if (patch.suppressSelection) merged.suppressSelection = true;
1960
- if (patch.skipRowIndex) merged.skipRowIndex = true;
1961
- if (patch.class) classes.push(patch.class);
1962
- if (patch.attrs) merged.attrs = {
1963
- ...merged.attrs,
1964
- ...patch.attrs
1965
- };
1966
- if (patch.onClick) clicks.push(patch.onClick);
1967
- if (patch.menu) menus.push(...patch.menu);
1968
- }
1969
- merged.class = classes.join(" ") || void 0;
1970
- merged.menu = menus;
1971
- if (clicks.length > 0) merged.onClick = (event) => {
1972
- for (const click of clicks) click(event);
2363
+ /** Vue 的 ref 回调拿到的是更宽的 `Element`,收窄成 `<tr>` 再交给插件。 */
2364
+ function rowRefBinding(patch) {
2365
+ const callback = patch.ref;
2366
+ if (callback == null) return void 0;
2367
+ return (element) => {
2368
+ callback(element);
1973
2369
  };
1974
- return merged;
1975
2370
  }
1976
2371
  const entries = computed(() => {
1977
2372
  let ordinal = 0;
1978
2373
  const start = props.rowIndexStart ?? 1;
1979
2374
  return props.rows.map((row, index) => {
1980
- const patch = mergeRow(row, index);
2375
+ const patch = mergeRowPatches(props.plugins, row, index, columnCount.value);
1981
2376
  let rowIndex;
1982
2377
  if (trackRows.value && !patch.skipRowIndex) {
1983
2378
  rowIndex = start + ordinal;
@@ -1988,6 +2383,7 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
1988
2383
  row,
1989
2384
  index,
1990
2385
  patch,
2386
+ ref: rowRefBinding(patch),
1991
2387
  rowIndex
1992
2388
  };
1993
2389
  });
@@ -2001,144 +2397,6 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
2001
2397
  items
2002
2398
  };
2003
2399
  }
2004
- function buildResizeState(cell, column) {
2005
- const row = cell.parentElement;
2006
- if (row == null) return null;
2007
- const table = cell.closest("table");
2008
- const dragged = resizeContributions.value.get(column.key);
2009
- const snapshots = [];
2010
- const elements = /* @__PURE__ */ new Map();
2011
- for (const child of Array.from(row.children)) {
2012
- if (!(child instanceof HTMLElement)) continue;
2013
- const key = child.dataset.column;
2014
- if (key == null) continue;
2015
- const contribution = resizeContributions.value.get(key);
2016
- if (contribution == null) continue;
2017
- const measured = child.getBoundingClientRect().width;
2018
- snapshots.push({
2019
- key,
2020
- initialWidth: contribution.currentWidth ?? (measured > 0 ? measured : 0),
2021
- minWidth: contribution.minWidth,
2022
- maxWidth: contribution.maxWidth
2023
- });
2024
- elements.set(key, child);
2025
- }
2026
- const resizeIndex = snapshots.findIndex((item) => item.key === column.key);
2027
- if (resizeIndex < 0) return null;
2028
- return {
2029
- snapshots,
2030
- resizeIndex,
2031
- neighborIndex: dragged?.neighborKey == null ? null : snapshots.findIndex((item) => item.key === dragged.neighborKey),
2032
- tableWidth: table?.getBoundingClientRect().width ?? 0,
2033
- direction: columnResizeDirectionSign(getComputedStyle(cell).direction),
2034
- elements
2035
- };
2036
- }
2037
- function applyResize(widths, state) {
2038
- state.snapshots.forEach((snapshot, index) => {
2039
- const element = state.elements.get(snapshot.key);
2040
- const width = widths[index];
2041
- if (element == null || width == null) return;
2042
- const pixels = `${width}px`;
2043
- element.style.width = pixels;
2044
- element.style.minWidth = pixels;
2045
- element.style.maxWidth = pixels;
2046
- });
2047
- }
2048
- function resetResizeStyles(state) {
2049
- for (const element of state.elements.values()) {
2050
- element.style.width = "";
2051
- element.style.minWidth = "";
2052
- element.style.maxWidth = "";
2053
- }
2054
- }
2055
- /** 算一次拖动结果:先把预览写到表头,再把变了的列交给插件。 */
2056
- function commitResize(state, delta) {
2057
- const widths = resizeColumnWidths(state, delta);
2058
- applyResize(widths, state);
2059
- const last = state.snapshots.length - 1;
2060
- const updates = {};
2061
- state.snapshots.forEach((snapshot, index) => {
2062
- const width = widths[index];
2063
- if (index !== last && width != null) updates[snapshot.key] = width;
2064
- });
2065
- if (Object.keys(updates).length === 0) return;
2066
- for (const plugin of props.plugins) plugin.onColumnResizeEnd?.(updates);
2067
- }
2068
- function resizeLabel(column) {
2069
- const header = typeof column.header === "string" && column.header.length > 0 ? column.header : column.key;
2070
- return messages.value.table.resizeColumn(header);
2071
- }
2072
- function resizeMax(contribution) {
2073
- const max = contribution?.maxWidth;
2074
- return max == null || !Number.isFinite(max) ? void 0 : max;
2075
- }
2076
- function startResize(event, column) {
2077
- const target = event.currentTarget;
2078
- if (!(target instanceof HTMLElement) || event.button !== 0) return;
2079
- const cell = target.closest("th");
2080
- const state = cell == null ? null : buildResizeState(cell, column);
2081
- if (state == null || cell == null) return;
2082
- event.preventDefault();
2083
- const pointerId = event.pointerId;
2084
- const startX = event.clientX;
2085
- const table = cell.closest("table");
2086
- const previousUserSelect = table?.style.userSelect ?? "";
2087
- if (table != null) table.style.userSelect = "none";
2088
- target.setAttribute("data-resizing", "true");
2089
- target.setPointerCapture(pointerId);
2090
- const listeners = new AbortController();
2091
- const move = (moveEvent) => {
2092
- if (moveEvent.pointerId !== pointerId) return;
2093
- applyResize(resizeColumnWidths(state, (moveEvent.clientX - startX) * state.direction), state);
2094
- };
2095
- const finish = () => {
2096
- listeners.abort();
2097
- target.removeAttribute("data-resizing");
2098
- if (target.hasPointerCapture(pointerId)) target.releasePointerCapture(pointerId);
2099
- if (table != null) table.style.userSelect = previousUserSelect;
2100
- };
2101
- const stop = (upEvent) => {
2102
- if (upEvent.pointerId !== pointerId) return;
2103
- finish();
2104
- commitResize(state, (upEvent.clientX - startX) * state.direction);
2105
- };
2106
- const cancel = (cancelEvent) => {
2107
- if (cancelEvent.pointerId !== pointerId) return;
2108
- finish();
2109
- resetResizeStyles(state);
2110
- };
2111
- const options = { signal: listeners.signal };
2112
- target.addEventListener("pointermove", move, options);
2113
- target.addEventListener("pointerup", stop, options);
2114
- target.addEventListener("pointercancel", cancel, options);
2115
- }
2116
- function onResizeKeydown(event, column) {
2117
- const handle = event.currentTarget;
2118
- if (!(handle instanceof HTMLElement)) return;
2119
- const cell = handle.closest("th");
2120
- const state = cell == null ? null : buildResizeState(cell, column);
2121
- if (state == null) return;
2122
- const self = state.snapshots[state.resizeIndex];
2123
- if (self == null) return;
2124
- const step = columnResizeStep(event.shiftKey);
2125
- let delta = null;
2126
- switch (event.key) {
2127
- case "ArrowRight":
2128
- delta = step * state.direction;
2129
- break;
2130
- case "ArrowLeft":
2131
- delta = -step * state.direction;
2132
- break;
2133
- case "Home":
2134
- delta = self.minWidth - self.initialWidth;
2135
- break;
2136
- case "End": if (Number.isFinite(self.maxWidth)) delta = self.maxWidth - self.initialWidth;
2137
- }
2138
- if (delta == null) return;
2139
- event.preventDefault();
2140
- commitResize(state, delta);
2141
- }
2142
2400
  function selectCellPatch(kind, row) {
2143
2401
  return mergeCell(selectColumn(), row, kind);
2144
2402
  }
@@ -2149,197 +2407,215 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
2149
2407
  return selection.value?.isEnabled?.(row) ?? true;
2150
2408
  }
2151
2409
  return (_ctx, _cache) => {
2152
- return openBlock(), createElementBlock("div", {
2153
- ref_key: "scrollRoot",
2154
- ref: scrollRoot,
2155
- class: "astryx-table-scroll",
2156
- role: "group",
2157
- "aria-label": __props.label
2158
- }, [
2159
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins.filter((item) => item.above), (plugin, index) => {
2160
- return openBlock(), createBlock(unref(PluginFooter), {
2161
- key: `above-${index}`,
2162
- plugin,
2163
- place: "above"
2164
- }, null, 8, ["plugin"]);
2165
- }), 128)),
2166
- createElementVNode("table", {
2167
- class: "astryx-table",
2168
- "data-density": __props.density,
2169
- "data-dividers": __props.dividers,
2170
- "data-striped": __props.isStriped || void 0,
2171
- "data-hover": __props.hasHover || void 0,
2172
- "data-overflow": __props.textOverflow,
2173
- "data-valign": __props.verticalAlign,
2174
- "data-row-highlight": selection.value?.hasRowHighlight === false ? "off" : void 0,
2175
- "aria-rowcount": ariaRowCount.value,
2176
- style: normalizeStyle(__props.minWidth ? { minWidth: `${Math.max(__props.minWidth, widths.value.tableMinWidth)}px` } : { minWidth: `${widths.value.tableMinWidth}px` })
2177
- }, [createElementVNode("thead", null, [createElementVNode("tr", null, [selection.value ? (openBlock(), createElementBlock("th", mergeProps({
2178
- key: 0,
2179
- class: ["astryx-table__select", selectCellPatch("header", null).class],
2180
- scope: "col"
2181
- }, selectCellPatch("header", null).attrs, { style: selectCellPatch("header", null).style }), [createVNode(_sfc_main$19, {
2182
- "model-value": selection.value.isIndeterminate() ? "indeterminate" : selection.value.isAllSelected(),
2183
- label: unref(messages).table.selectAllRows,
2184
- "is-label-hidden": "",
2185
- size: "sm",
2186
- "onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => selection.value?.selectAll(value === true))
2187
- }, null, 8, ["model-value", "label"])], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
2188
- return openBlock(), createElementBlock("th", mergeProps({
2189
- key: column.key,
2190
- scope: "col",
2191
- "data-column": column.key,
2192
- "data-align": column.align,
2193
- class: mergeCell(column, null, "header").class
2194
- }, { ref_for: true }, mergeCell(column, null, "header").attrs, {
2195
- style: headerStyle(column),
2196
- "aria-sort": sortFor(column)?.direction ?? void 0
2197
- }), [
2198
- createElementVNode("div", _hoisted_4, [createElementVNode("div", _hoisted_5, [createVNode(unref(HeaderAddon), {
2199
- column,
2200
- plugins: __props.plugins
2201
- }, null, 8, ["column", "plugins"]), sortFor(column) ? (openBlock(), createElementBlock("button", {
2202
- key: 0,
2203
- type: "button",
2204
- class: "astryx-table__sort",
2205
- "data-align": column.align,
2206
- "aria-label": sortFor(column)?.label,
2207
- onClick: ($event) => sortFor(column)?.onClick($event)
2208
- }, [
2209
- column.headerHidden ? (openBlock(), createBlock(_sfc_main$14, { key: 0 }, {
2210
- default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
2211
- _: 2
2212
- }, 1024)) : (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(column.header ?? column.key), 1)),
2213
- createElementVNode("span", {
2214
- class: "astryx-table__sort-icon",
2215
- "data-active": sortFor(column)?.direction != null || void 0
2216
- }, [createVNode(_sfc_main$18, {
2217
- icon: sortFor(column)?.direction === "descending" ? "arrowDown" : "arrowUp",
2218
- size: "sm"
2219
- }, null, 8, ["icon"])], 8, _hoisted_8),
2220
- sortFor(column)?.rank ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(sortFor(column)?.rank), 1)) : createCommentVNode("v-if", true)
2221
- ], 8, _hoisted_6)) : column.headerHidden ? (openBlock(), createBlock(_sfc_main$14, { key: 1 }, {
2222
- default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
2223
- _: 2
2224
- }, 1024)) : (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(column.header ?? column.key), 1))]), filterFor(column) ? (openBlock(), createBlock(_sfc_main$11, {
2225
- key: 0,
2226
- filter: filterFor(column)
2227
- }, null, 8, ["filter"])) : createCommentVNode("v-if", true)]),
2228
- createCommentVNode(" eslint-disable-next-line vue-a11y/no-static-element-interactions -- role=\"separator\" 是 WAI-ARIA 的分隔条:自己可聚焦,方向键也归它处理。 "),
2229
- resizeContributions.value.get(column.key)?.hasHandle ? (openBlock(), createElementBlock("span", {
2230
- key: 0,
2231
- class: "astryx-table__resize",
2232
- role: "separator",
2233
- "aria-orientation": "vertical",
2234
- "aria-label": resizeLabel(column),
2235
- "aria-valuenow": resizeContributions.value.get(column.key)?.currentWidth ?? resizeContributions.value.get(column.key)?.minWidth,
2236
- "aria-valuemin": resizeContributions.value.get(column.key)?.minWidth,
2237
- "aria-valuemax": resizeMax(resizeContributions.value.get(column.key)),
2238
- tabindex: "0",
2239
- onPointerdown: ($event) => startResize($event, column),
2240
- onKeydown: ($event) => onResizeKeydown($event, column)
2241
- }, null, 40, _hoisted_11)) : createCommentVNode("v-if", true)
2242
- ], 16, _hoisted_3);
2243
- }), 128))])]), createElementVNode("tbody", null, [__props.rows.length === 0 ? (openBlock(), createElementBlock("tr", _hoisted_12, [createElementVNode("td", {
2244
- class: "astryx-table__empty",
2245
- colspan: columnCount.value
2246
- }, [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(unref(messages).table.noData), 1)])], 8, _hoisted_13)])) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(entries.value, (entry) => {
2247
- return openBlock(), createElementBlock(Fragment, { key: entry.key }, [createElementVNode("tr", mergeProps({
2248
- "aria-selected": !entry.patch.group && isSelected(entry.row) ? "true" : void 0,
2249
- "aria-rowindex": entry.rowIndex,
2250
- class: entry.patch.class
2251
- }, { ref_for: true }, entry.patch.attrs, {
2252
- onClick: ($event) => entry.patch.onClick?.($event),
2253
- onContextmenu: ($event) => openMenu($event, entry.patch.menu)
2254
- }), [entry.patch.group ? (openBlock(), createElementBlock("td", {
2255
- key: 0,
2256
- class: "astryx-table__group",
2257
- colspan: columnCount.value
2258
- }, [createVNode(_sfc_main$10, {
2259
- "group-key": entry.patch.group.groupKey,
2260
- count: entry.patch.group.count,
2261
- collapsed: entry.patch.group.collapsed,
2262
- custom: entry.patch.group.render != null,
2263
- onToggle: ($event) => entry.patch.group.onToggle()
2264
- }, {
2265
- default: withCtx(() => [entry.patch.group.render ? (openBlock(), createBlock(unref(RenderFn), {
2266
- key: 0,
2267
- render: entry.patch.group.render
2268
- }, null, 8, ["render"])) : createCommentVNode("v-if", true)]),
2269
- _: 2
2270
- }, 1032, [
2271
- "group-key",
2272
- "count",
2273
- "collapsed",
2274
- "custom",
2275
- "onToggle"
2276
- ])], 8, _hoisted_15)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [selection.value && !entry.patch.suppressSelection ? (openBlock(), createElementBlock("td", mergeProps({
2277
- key: 0,
2278
- class: ["astryx-table__select", selectCellPatch("body", entry.row).class]
2279
- }, { ref_for: true }, selectCellPatch("body", entry.row).attrs, { style: selectCellPatch("body", entry.row).style }), [selection.value.isSelectable?.(entry.row) !== false ? (openBlock(), createBlock(_sfc_main$19, {
2410
+ return openBlock(), createBlock(_sfc_main$9, {
2411
+ class: normalizeClass(unref(attrs).class),
2412
+ style: normalizeStyle(scrollStyle.value),
2413
+ label: __props.label,
2414
+ onViewport
2415
+ }, {
2416
+ default: withCtx(() => [
2417
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins.filter((item) => item.above), (plugin, index) => {
2418
+ return openBlock(), createBlock(unref(PluginFooter), {
2419
+ key: `above-${index}`,
2420
+ plugin,
2421
+ place: "above"
2422
+ }, null, 8, ["plugin"]);
2423
+ }), 128)),
2424
+ createElementVNode("table", {
2425
+ class: "astryx-table",
2426
+ "data-density": __props.density,
2427
+ "data-dividers": __props.dividers,
2428
+ "data-striped": __props.isStriped || void 0,
2429
+ "data-hover": __props.hasHover || void 0,
2430
+ "data-overflow": __props.textOverflow,
2431
+ "data-valign": __props.verticalAlign,
2432
+ "data-row-highlight": selection.value?.hasRowHighlight === false ? "off" : void 0,
2433
+ "aria-rowcount": ariaRowCount.value,
2434
+ style: normalizeStyle(tableStyle.value)
2435
+ }, [createElementVNode("thead", null, [createElementVNode("tr", null, [selection.value ? (openBlock(), createElementBlock("th", mergeProps({
2280
2436
  key: 0,
2281
- "model-value": selection.value.isSelected(entry.row),
2282
- label: selection.value.rowLabel?.(entry.row) ? unref(messages).table.selectRowNamed(selection.value.rowLabel(entry.row)) : unref(messages).table.selectRow,
2437
+ class: ["astryx-table__select", selectCellPatch("header", null).class],
2438
+ scope: "col"
2439
+ }, selectCellPatch("header", null).attrs, { style: selectCellPatch("header", null).style }), [createVNode(_sfc_main$19, {
2440
+ "model-value": selection.value.isIndeterminate() ? "indeterminate" : selection.value.isAllSelected(),
2441
+ label: unref(messages).table.selectAllRows,
2283
2442
  "is-label-hidden": "",
2284
2443
  size: "sm",
2285
- "is-disabled": !isEnabled(entry.row),
2286
- "onUpdate:modelValue": (value) => selection.value?.selectRow(entry.row, value === true)
2287
- }, null, 8, [
2288
- "model-value",
2289
- "label",
2290
- "is-disabled",
2291
- "onUpdate:modelValue"
2292
- ])) : createCommentVNode("v-if", true)], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
2293
- return openBlock(), createElementBlock("td", mergeProps({
2444
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => selection.value?.selectAll(value === true))
2445
+ }, null, 8, ["model-value", "label"])], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
2446
+ return openBlock(), createElementBlock("th", mergeProps({
2294
2447
  key: column.key,
2448
+ scope: "col",
2295
2449
  "data-column": column.key,
2296
2450
  "data-align": column.align,
2297
- class: mergeCell(column, entry.row, "body").class
2298
- }, { ref_for: true }, mergeCell(column, entry.row, "body").attrs, { style: bodyStyle(column, entry.row) }), [createVNode(unref(CellContent), {
2299
- column,
2300
- row: entry.row,
2301
- index: entry.index
2451
+ class: mergeCell(column, null, "header").class
2452
+ }, { ref_for: true }, mergeCell(column, null, "header").attrs, {
2453
+ style: headerStyle(column),
2454
+ "aria-sort": sortFor(column)?.direction ?? void 0
2455
+ }), [
2456
+ createElementVNode("div", _hoisted_3, [createElementVNode("div", _hoisted_4, [
2457
+ createVNode(unref(HeaderAddon), {
2458
+ column,
2459
+ plugins: __props.plugins
2460
+ }, null, 8, ["column", "plugins"]),
2461
+ sortFor(column) ? (openBlock(), createElementBlock("button", {
2462
+ key: 0,
2463
+ type: "button",
2464
+ class: "astryx-table__sort",
2465
+ "data-align": column.align,
2466
+ "aria-label": sortFor(column)?.label,
2467
+ onClick: ($event) => sortFor(column)?.onClick($event)
2468
+ }, [
2469
+ column.headerHidden ? (openBlock(), createBlock(_sfc_main$15, { key: 0 }, {
2470
+ default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
2471
+ _: 2
2472
+ }, 1024)) : (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(column.header ?? column.key), 1)),
2473
+ createElementVNode("span", {
2474
+ class: "astryx-table__sort-icon",
2475
+ "data-active": sortFor(column)?.direction != null || void 0
2476
+ }, [createVNode(_sfc_main$18, {
2477
+ icon: sortFor(column)?.direction === "descending" ? "arrowDown" : "arrowUp",
2478
+ size: "sm"
2479
+ }, null, 8, ["icon"])], 8, _hoisted_7),
2480
+ sortFor(column)?.rank ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(sortFor(column)?.rank), 1)) : createCommentVNode("v-if", true)
2481
+ ], 8, _hoisted_5)) : column.headerHidden ? (openBlock(), createBlock(_sfc_main$15, { key: 1 }, {
2482
+ default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
2483
+ _: 2
2484
+ }, 1024)) : (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(column.header ?? column.key), 1)),
2485
+ filterAt(column, "line") ? (openBlock(), createBlock(_sfc_main$12, {
2486
+ key: 3,
2487
+ filter: filterAt(column, "line")
2488
+ }, null, 8, ["filter"])) : createCommentVNode("v-if", true)
2489
+ ]), filterAt(column, "below") ? (openBlock(), createBlock(_sfc_main$12, {
2490
+ key: 0,
2491
+ filter: filterAt(column, "below")
2492
+ }, null, 8, ["filter"])) : createCommentVNode("v-if", true)]),
2493
+ createCommentVNode(" eslint-disable-next-line vue-a11y/no-static-element-interactions -- role=\"separator\" 是 WAI-ARIA 的分隔条:自己可聚焦,方向键也归它处理。 "),
2494
+ resizeContributions.value.get(column.key)?.hasHandle ? (openBlock(), createElementBlock("span", {
2495
+ key: 0,
2496
+ class: "astryx-table__resize",
2497
+ role: "separator",
2498
+ "aria-orientation": "vertical",
2499
+ "aria-label": unref(resizeLabel)(column),
2500
+ "aria-valuenow": resizeContributions.value.get(column.key)?.currentWidth ?? resizeContributions.value.get(column.key)?.minWidth,
2501
+ "aria-valuemin": resizeContributions.value.get(column.key)?.minWidth,
2502
+ "aria-valuemax": unref(resizeMax)(resizeContributions.value.get(column.key)),
2503
+ tabindex: "0",
2504
+ onPointerdown: ($event) => unref(startResize)($event, column),
2505
+ onKeydown: ($event) => unref(onResizeKeydown)($event, column)
2506
+ }, null, 40, _hoisted_10)) : createCommentVNode("v-if", true)
2507
+ ], 16, _hoisted_2);
2508
+ }), 128))])]), createElementVNode("tbody", null, [__props.rows.length === 0 ? (openBlock(), createElementBlock("tr", _hoisted_11, [createElementVNode("td", {
2509
+ class: "astryx-table__empty",
2510
+ colspan: columnCount.value
2511
+ }, [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(unref(messages).table.noData), 1)])], 8, _hoisted_12)])) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(entries.value, (entry) => {
2512
+ return openBlock(), createElementBlock(Fragment, { key: entry.key }, [createElementVNode("tr", mergeProps({
2513
+ ref_for: true,
2514
+ ref: entry.ref,
2515
+ "aria-selected": !entry.patch.group && isSelected(entry.row) ? "true" : void 0,
2516
+ "aria-rowindex": entry.rowIndex,
2517
+ class: entry.patch.class
2518
+ }, { ref_for: true }, entry.patch.attrs, {
2519
+ onBlur: ($event) => entry.patch.listeners?.onBlur?.($event),
2520
+ onClick: ($event) => entry.patch.onClick?.($event),
2521
+ onContextmenu: ($event) => openMenu($event, entry.patch.menu),
2522
+ onFocus: ($event) => entry.patch.listeners?.onFocus?.($event),
2523
+ onMouseenter: ($event) => entry.patch.listeners?.onMouseenter?.($event),
2524
+ onMouseleave: ($event) => entry.patch.listeners?.onMouseleave?.($event)
2525
+ }), [entry.patch.group ? (openBlock(), createElementBlock("td", {
2526
+ key: 0,
2527
+ class: "astryx-table__group",
2528
+ colspan: columnCount.value
2529
+ }, [createVNode(_sfc_main$11, {
2530
+ "group-key": entry.patch.group.groupKey,
2531
+ count: entry.patch.group.count,
2532
+ collapsed: entry.patch.group.collapsed,
2533
+ custom: entry.patch.group.render != null,
2534
+ onToggle: ($event) => entry.patch.group.onToggle()
2535
+ }, {
2536
+ default: withCtx(() => [entry.patch.group.render ? (openBlock(), createBlock(unref(RenderFn), {
2537
+ key: 0,
2538
+ render: entry.patch.group.render
2539
+ }, null, 8, ["render"])) : createCommentVNode("v-if", true)]),
2540
+ _: 2
2541
+ }, 1032, [
2542
+ "group-key",
2543
+ "count",
2544
+ "collapsed",
2545
+ "custom",
2546
+ "onToggle"
2547
+ ])], 8, _hoisted_14)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [selection.value && !entry.patch.suppressSelection ? (openBlock(), createElementBlock("td", mergeProps({
2548
+ key: 0,
2549
+ class: ["astryx-table__select", selectCellPatch("body", entry.row).class]
2550
+ }, { ref_for: true }, selectCellPatch("body", entry.row).attrs, { style: selectCellPatch("body", entry.row).style }), [selection.value.isSelectable?.(entry.row) !== false ? (openBlock(), createBlock(_sfc_main$19, {
2551
+ key: 0,
2552
+ "model-value": selection.value.isSelected(entry.row),
2553
+ label: selection.value.rowLabel?.(entry.row) ? unref(messages).table.selectRowNamed(selection.value.rowLabel(entry.row)) : unref(messages).table.selectRow,
2554
+ "is-label-hidden": "",
2555
+ size: "sm",
2556
+ "is-disabled": !isEnabled(entry.row),
2557
+ "onUpdate:modelValue": (value) => selection.value?.selectRow(entry.row, value === true)
2302
2558
  }, null, 8, [
2303
- "column",
2304
- "row",
2305
- "index"
2306
- ])], 16, _hoisted_16);
2307
- }), 128))], 64))], 16, _hoisted_14), entry.patch.panel ? (openBlock(), createElementBlock("tr", {
2559
+ "model-value",
2560
+ "label",
2561
+ "is-disabled",
2562
+ "onUpdate:modelValue"
2563
+ ])) : createCommentVNode("v-if", true)], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
2564
+ return openBlock(), createElementBlock("td", mergeProps({
2565
+ key: column.key,
2566
+ "data-column": column.key,
2567
+ "data-align": column.align,
2568
+ class: mergeCell(column, entry.row, "body").class
2569
+ }, { ref_for: true }, mergeCell(column, entry.row, "body").attrs, { style: bodyStyle(column, entry.row) }), [createVNode(unref(CellContent), {
2570
+ column,
2571
+ row: entry.row,
2572
+ index: entry.index
2573
+ }, null, 8, [
2574
+ "column",
2575
+ "row",
2576
+ "index"
2577
+ ])], 16, _hoisted_15);
2578
+ }), 128))], 64))], 16, _hoisted_13), entry.patch.panel ? (openBlock(), createElementBlock("tr", {
2579
+ key: 0,
2580
+ "data-expansion-panel": "",
2581
+ class: "astryx-table__panel-row",
2582
+ "data-variant": entry.patch.panel.variant
2583
+ }, [createElementVNode("td", {
2584
+ class: "astryx-table__panel",
2585
+ colspan: columnCount.value
2586
+ }, [createVNode(unref(RenderFn), { render: entry.patch.panel.render }, null, 8, ["render"])], 8, _hoisted_17)], 8, _hoisted_16)) : createCommentVNode("v-if", true)], 64);
2587
+ }), 128))])], 12, _hoisted_1$5),
2588
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins.filter((item) => item.below), (plugin, index) => {
2589
+ return openBlock(), createBlock(unref(PluginFooter), {
2590
+ key: `below-${index}`,
2591
+ plugin,
2592
+ place: "below"
2593
+ }, null, 8, ["plugin"]);
2594
+ }), 128)),
2595
+ menu.value ? (openBlock(), createBlock(_sfc_main$10, {
2308
2596
  key: 0,
2309
- "data-expansion-panel": "",
2310
- class: "astryx-table__panel-row",
2311
- "data-variant": entry.patch.panel.variant
2312
- }, [createElementVNode("td", {
2313
- class: "astryx-table__panel",
2314
- colspan: columnCount.value
2315
- }, [createVNode(unref(RenderFn), { render: entry.patch.panel.render }, null, 8, ["render"])], 8, _hoisted_18)], 8, _hoisted_17)) : createCommentVNode("v-if", true)], 64);
2316
- }), 128))])], 12, _hoisted_2$1),
2317
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins.filter((item) => item.below), (plugin, index) => {
2318
- return openBlock(), createBlock(unref(PluginFooter), {
2319
- key: `below-${index}`,
2320
- plugin,
2321
- place: "below"
2322
- }, null, 8, ["plugin"]);
2323
- }), 128)),
2324
- (openBlock(), createBlock(Teleport, { to: "body" }, [menu.value ? (openBlock(), createBlock(_sfc_main$9, {
2325
- key: 0,
2326
- x: menu.value.x,
2327
- y: menu.value.y,
2328
- items: menu.value.items,
2329
- onClose: _cache[1] || (_cache[1] = ($event) => menu.value = null)
2330
- }, null, 8, [
2331
- "x",
2332
- "y",
2333
- "items"
2334
- ])) : createCommentVNode("v-if", true)]))
2335
- ], 8, _hoisted_1$5);
2597
+ x: menu.value.x,
2598
+ y: menu.value.y,
2599
+ items: menu.value.items,
2600
+ onClose: _cache[1] || (_cache[1] = ($event) => menu.value = null)
2601
+ }, null, 8, [
2602
+ "x",
2603
+ "y",
2604
+ "items"
2605
+ ])) : createCommentVNode("v-if", true)
2606
+ ]),
2607
+ _: 3
2608
+ }, 8, [
2609
+ "class",
2610
+ "style",
2611
+ "label"
2612
+ ]);
2336
2613
  };
2337
2614
  }
2338
2615
  });
2339
2616
  //#endregion
2340
2617
  //#region src/Table/Table.vue
2341
- const _hoisted_1$4 = ["aria-label"];
2342
- const _hoisted_2 = [
2618
+ const _hoisted_1$4 = [
2343
2619
  "data-density",
2344
2620
  "data-dividers",
2345
2621
  "data-striped",
@@ -2386,8 +2662,6 @@ const _sfc_main$7 = /*@__PURE__*/ defineComponent({
2386
2662
  const plugins = computed(() => Object.values(props.plugins ?? {}).filter((plugin) => plugin != null));
2387
2663
  const dataMode = computed(() => props.data != null);
2388
2664
  const columns = computed(() => props.columns ?? []);
2389
- const scrollEl = useTemplateRef("scroll");
2390
- useScrollbars(scrollEl);
2391
2665
  return (_ctx, _cache) => {
2392
2666
  return dataMode.value ? (openBlock(), createBlock(_sfc_main$8, {
2393
2667
  key: 0,
@@ -2426,22 +2700,22 @@ const _sfc_main$7 = /*@__PURE__*/ defineComponent({
2426
2700
  "vertical-align",
2427
2701
  "row-index-start",
2428
2702
  "row-count"
2429
- ])) : (openBlock(), createElementBlock("div", {
2703
+ ])) : (openBlock(), createBlock(_sfc_main$9, {
2430
2704
  key: 1,
2431
- ref: "scroll",
2432
- class: "astryx-table-scroll",
2433
- role: "group",
2434
- "aria-label": __props.label ?? unref(messages).table.label
2435
- }, [createElementVNode("table", {
2436
- class: normalizeClass(["astryx-table", _ctx.$attrs.class]),
2437
- style: normalizeStyle(_ctx.$attrs.style),
2438
- "data-density": __props.density,
2439
- "data-dividers": __props.dividers,
2440
- "data-striped": __props.isStriped || void 0,
2441
- "data-hover": __props.hasHover || void 0,
2442
- "data-overflow": __props.textOverflow,
2443
- "data-valign": __props.verticalAlign
2444
- }, [renderSlot(_ctx.$slots, "default")], 14, _hoisted_2)], 8, _hoisted_1$4));
2705
+ label: __props.label ?? unref(messages).table.label
2706
+ }, {
2707
+ default: withCtx(() => [createElementVNode("table", {
2708
+ class: normalizeClass(["astryx-table", _ctx.$attrs.class]),
2709
+ style: normalizeStyle(_ctx.$attrs.style),
2710
+ "data-density": __props.density,
2711
+ "data-dividers": __props.dividers,
2712
+ "data-striped": __props.isStriped || void 0,
2713
+ "data-hover": __props.hasHover || void 0,
2714
+ "data-overflow": __props.textOverflow,
2715
+ "data-valign": __props.verticalAlign
2716
+ }, [renderSlot(_ctx.$slots, "default")], 14, _hoisted_1$4)]),
2717
+ _: 3
2718
+ }, 8, ["label"]));
2445
2719
  };
2446
2720
  }
2447
2721
  });
@@ -2586,7 +2860,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
2586
2860
  size: __props.size,
2587
2861
  variant: toolbarVariant.value
2588
2862
  }, createSlots({
2589
- end: withCtx(() => [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "label", { count: effectiveCount.value }, () => [createTextVNode(toDisplayString(resolvedCountLabel.value), 1)])]), createVNode(_sfc_main$15, {
2863
+ end: withCtx(() => [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "label", { count: effectiveCount.value }, () => [createTextVNode(toDisplayString(resolvedCountLabel.value), 1)])]), createVNode(_sfc_main$16, {
2590
2864
  class: "astryx-table-selection-toolbar__clear",
2591
2865
  label: resolvedClearLabel.value,
2592
2866
  size: __props.size,