@chenzy-design/svelte 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/dist/components.json +1 -1
  2. package/package.json +7 -8
  3. package/src/_floating/use-floating.ts +0 -208
  4. package/src/anchor/Anchor.a11y.test.ts +0 -49
  5. package/src/anchor/Anchor.kbd.test.ts +0 -70
  6. package/src/anchor/Anchor.svelte +0 -359
  7. package/src/anchor/AnchorKbdFixture.svelte +0 -24
  8. package/src/anchor/index.ts +0 -3
  9. package/src/anchor/meta.ts +0 -70
  10. package/src/anchor/types.ts +0 -8
  11. package/src/autocomplete/AutoComplete.a11y.test.ts +0 -49
  12. package/src/autocomplete/AutoComplete.kbd.test.ts +0 -69
  13. package/src/autocomplete/AutoComplete.svelte +0 -706
  14. package/src/autocomplete/AutoCompleteKbdFixture.svelte +0 -24
  15. package/src/autocomplete/index.ts +0 -2
  16. package/src/autocomplete/meta.ts +0 -41
  17. package/src/avatar/Avatar.a11y.test.ts +0 -37
  18. package/src/avatar/Avatar.svelte +0 -315
  19. package/src/avatar/AvatarGroup.svelte +0 -142
  20. package/src/avatar/context.ts +0 -21
  21. package/src/avatar/index.ts +0 -10
  22. package/src/avatar/meta.ts +0 -73
  23. package/src/back-top/BackTop.a11y.test.ts +0 -40
  24. package/src/back-top/BackTop.svelte +0 -314
  25. package/src/back-top/index.ts +0 -2
  26. package/src/back-top/meta.ts +0 -108
  27. package/src/badge/Badge.a11y.test.ts +0 -35
  28. package/src/badge/Badge.svelte +0 -328
  29. package/src/badge/BadgeA11yFixture.svelte +0 -18
  30. package/src/badge/index.ts +0 -2
  31. package/src/badge/meta.ts +0 -62
  32. package/src/banner/Banner.a11y.test.ts +0 -48
  33. package/src/banner/Banner.svelte +0 -368
  34. package/src/banner/index.ts +0 -3
  35. package/src/banner/meta.ts +0 -121
  36. package/src/breadcrumb/Breadcrumb.a11y.test.ts +0 -35
  37. package/src/breadcrumb/Breadcrumb.kbd.test.ts +0 -45
  38. package/src/breadcrumb/Breadcrumb.svelte +0 -414
  39. package/src/breadcrumb/BreadcrumbKbdFixture.svelte +0 -23
  40. package/src/breadcrumb/Item.svelte +0 -77
  41. package/src/breadcrumb/context.ts +0 -27
  42. package/src/breadcrumb/index.ts +0 -21
  43. package/src/breadcrumb/meta.ts +0 -128
  44. package/src/breadcrumb/types.ts +0 -4
  45. package/src/button/Button.a11y.test.ts +0 -54
  46. package/src/button/Button.svelte +0 -176
  47. package/src/button/index.ts +0 -2
  48. package/src/button/meta.ts +0 -28
  49. package/src/calendar/Calendar.a11y.test.ts +0 -51
  50. package/src/calendar/Calendar.kbd.test.ts +0 -59
  51. package/src/calendar/Calendar.svelte +0 -1344
  52. package/src/calendar/CalendarKbdFixture.svelte +0 -23
  53. package/src/calendar/index.ts +0 -3
  54. package/src/calendar/meta.ts +0 -117
  55. package/src/card/Card.a11y.test.ts +0 -38
  56. package/src/card/Card.svelte +0 -341
  57. package/src/card/CardMeta.svelte +0 -60
  58. package/src/card/index.ts +0 -8
  59. package/src/card/meta.ts +0 -83
  60. package/src/carousel/Carousel.a11y.test.ts +0 -53
  61. package/src/carousel/Carousel.kbd.test.ts +0 -67
  62. package/src/carousel/Carousel.svelte +0 -806
  63. package/src/carousel/CarouselA11yFixture.svelte +0 -25
  64. package/src/carousel/CarouselKbdFixture.svelte +0 -24
  65. package/src/carousel/index.ts +0 -2
  66. package/src/carousel/meta.ts +0 -74
  67. package/src/cascader/Cascader.a11y.test.ts +0 -59
  68. package/src/cascader/Cascader.kbd.test.ts +0 -56
  69. package/src/cascader/Cascader.svelte +0 -1570
  70. package/src/cascader/CascaderKbdFixture.svelte +0 -31
  71. package/src/cascader/index.ts +0 -3
  72. package/src/cascader/meta.ts +0 -57
  73. package/src/cascader/types.ts +0 -9
  74. package/src/checkbox/Checkbox.svelte +0 -281
  75. package/src/checkbox/CheckboxGroup.a11y.test.ts +0 -43
  76. package/src/checkbox/CheckboxGroup.kbd.test.ts +0 -40
  77. package/src/checkbox/CheckboxGroup.svelte +0 -122
  78. package/src/checkbox/CheckboxGroupKbdFixture.svelte +0 -20
  79. package/src/checkbox/context.ts +0 -31
  80. package/src/checkbox/index.ts +0 -4
  81. package/src/checkbox/meta.ts +0 -67
  82. package/src/collapse/Collapse.a11y.test.ts +0 -53
  83. package/src/collapse/Collapse.kbd.test.ts +0 -89
  84. package/src/collapse/Collapse.svelte +0 -406
  85. package/src/collapse/CollapseA11yFixture.svelte +0 -27
  86. package/src/collapse/CollapseKbdFixture.svelte +0 -25
  87. package/src/collapse/CollapsePanel.svelte +0 -102
  88. package/src/collapse/context.ts +0 -54
  89. package/src/collapse/index.ts +0 -17
  90. package/src/collapse/meta.ts +0 -79
  91. package/src/collapse/types.ts +0 -5
  92. package/src/color-picker/ColorPicker.a11y.test.ts +0 -60
  93. package/src/color-picker/ColorPicker.kbd.test.ts +0 -73
  94. package/src/color-picker/ColorPicker.svelte +0 -985
  95. package/src/color-picker/ColorPickerKbdFixture.svelte +0 -25
  96. package/src/color-picker/index.ts +0 -2
  97. package/src/color-picker/meta.ts +0 -47
  98. package/src/config-provider/ConfigProvider.svelte +0 -227
  99. package/src/config-provider/context.ts +0 -29
  100. package/src/config-provider/index.ts +0 -48
  101. package/src/config-provider/meta.ts +0 -128
  102. package/src/date-picker/DatePicker.a11y.test.ts +0 -45
  103. package/src/date-picker/DatePicker.kbd.test.ts +0 -71
  104. package/src/date-picker/DatePicker.svelte +0 -1798
  105. package/src/date-picker/DatePickerKbdFixture.svelte +0 -26
  106. package/src/date-picker/RangePicker.kbd.test.ts +0 -69
  107. package/src/date-picker/RangePicker.svelte +0 -775
  108. package/src/date-picker/RangePickerKbdFixture.svelte +0 -30
  109. package/src/date-picker/index.ts +0 -4
  110. package/src/date-picker/meta.ts +0 -67
  111. package/src/date-picker/range-meta.ts +0 -44
  112. package/src/descriptions/Descriptions.a11y.test.ts +0 -33
  113. package/src/descriptions/Descriptions.svelte +0 -287
  114. package/src/descriptions/DescriptionsItem.svelte +0 -43
  115. package/src/descriptions/context.ts +0 -21
  116. package/src/descriptions/index.ts +0 -16
  117. package/src/descriptions/meta.ts +0 -45
  118. package/src/descriptions/types.ts +0 -6
  119. package/src/divider/Divider.a11y.test.ts +0 -23
  120. package/src/divider/Divider.svelte +0 -154
  121. package/src/divider/index.ts +0 -2
  122. package/src/divider/meta.ts +0 -23
  123. package/src/drawer/Drawer.a11y.test.ts +0 -41
  124. package/src/drawer/Drawer.kbd.test.ts +0 -67
  125. package/src/drawer/Drawer.svelte +0 -554
  126. package/src/drawer/DrawerKbdFixture.svelte +0 -28
  127. package/src/drawer/index.ts +0 -2
  128. package/src/drawer/meta.ts +0 -127
  129. package/src/dropdown/Dropdown.a11y.test.ts +0 -46
  130. package/src/dropdown/Dropdown.kbd.test.ts +0 -56
  131. package/src/dropdown/Dropdown.svelte +0 -573
  132. package/src/dropdown/DropdownA11yFixture.svelte +0 -24
  133. package/src/dropdown/DropdownDivider.svelte +0 -17
  134. package/src/dropdown/DropdownItem.svelte +0 -127
  135. package/src/dropdown/DropdownItemNode.svelte +0 -355
  136. package/src/dropdown/DropdownKbdFixture.svelte +0 -26
  137. package/src/dropdown/DropdownMenu.svelte +0 -24
  138. package/src/dropdown/DropdownSubMenu.svelte +0 -212
  139. package/src/dropdown/DropdownTitle.svelte +0 -34
  140. package/src/dropdown/context.ts +0 -13
  141. package/src/dropdown/index.ts +0 -36
  142. package/src/dropdown/meta.ts +0 -97
  143. package/src/dropdown/types.test.ts +0 -50
  144. package/src/dropdown/types.ts +0 -67
  145. package/src/empty/Empty.a11y.test.ts +0 -24
  146. package/src/empty/Empty.svelte +0 -304
  147. package/src/empty/index.ts +0 -2
  148. package/src/empty/meta.ts +0 -41
  149. package/src/form/Field.svelte +0 -492
  150. package/src/form/FieldArray.svelte +0 -75
  151. package/src/form/Form.a11y.test.ts +0 -39
  152. package/src/form/Form.svelte +0 -243
  153. package/src/form/FormA11yFixture.svelte +0 -31
  154. package/src/form/FormCascader.svelte +0 -82
  155. package/src/form/FormCheckbox.svelte +0 -83
  156. package/src/form/FormDatePicker.svelte +0 -80
  157. package/src/form/FormErrorMessage.svelte +0 -44
  158. package/src/form/FormInput.svelte +0 -95
  159. package/src/form/FormLabel.svelte +0 -46
  160. package/src/form/FormRadio.svelte +0 -83
  161. package/src/form/FormRating.svelte +0 -85
  162. package/src/form/FormSection.svelte +0 -45
  163. package/src/form/FormSelect.svelte +0 -96
  164. package/src/form/FormSlider.svelte +0 -95
  165. package/src/form/FormSlot.svelte +0 -51
  166. package/src/form/FormSwitch.svelte +0 -82
  167. package/src/form/FormTagInput.svelte +0 -79
  168. package/src/form/FormTreeSelect.svelte +0 -85
  169. package/src/form/FormUpload.svelte +0 -92
  170. package/src/form/context.ts +0 -47
  171. package/src/form/index.ts +0 -22
  172. package/src/form/meta.ts +0 -85
  173. package/src/grid/Col.svelte +0 -142
  174. package/src/grid/Grid.a11y.test.ts +0 -14
  175. package/src/grid/GridA11yFixture.svelte +0 -12
  176. package/src/grid/Row.svelte +0 -116
  177. package/src/grid/index.ts +0 -3
  178. package/src/grid/meta.ts +0 -72
  179. package/src/grid/use-breakpoint.svelte.ts +0 -48
  180. package/src/highlight/Highlight.a11y.test.ts +0 -25
  181. package/src/highlight/Highlight.svelte +0 -99
  182. package/src/highlight/index.ts +0 -2
  183. package/src/highlight/meta.ts +0 -80
  184. package/src/icon/Icon.svelte +0 -156
  185. package/src/icon/index.ts +0 -2
  186. package/src/icon/meta.ts +0 -41
  187. package/src/image/Image.a11y.test.ts +0 -30
  188. package/src/image/Image.svelte +0 -387
  189. package/src/image/ImagePreview.kbd.test.ts +0 -52
  190. package/src/image/ImagePreview.svelte +0 -309
  191. package/src/image/ImagePreviewGroup.svelte +0 -93
  192. package/src/image/ImagePreviewKbdFixture.svelte +0 -32
  193. package/src/image/context.ts +0 -26
  194. package/src/image/index.ts +0 -15
  195. package/src/image/meta.ts +0 -131
  196. package/src/index.ts +0 -208
  197. package/src/input/Input.a11y.test.ts +0 -58
  198. package/src/input/Input.svelte +0 -505
  199. package/src/input/index.ts +0 -2
  200. package/src/input/meta.ts +0 -40
  201. package/src/input-number/InputNumber.a11y.test.ts +0 -43
  202. package/src/input-number/InputNumber.kbd.test.ts +0 -41
  203. package/src/input-number/InputNumber.svelte +0 -674
  204. package/src/input-number/InputNumberKbdFixture.svelte +0 -15
  205. package/src/input-number/index.ts +0 -2
  206. package/src/input-number/meta.ts +0 -65
  207. package/src/layout/Content.svelte +0 -37
  208. package/src/layout/Footer.svelte +0 -49
  209. package/src/layout/Header.svelte +0 -46
  210. package/src/layout/Layout.a11y.test.ts +0 -34
  211. package/src/layout/Layout.svelte +0 -60
  212. package/src/layout/LayoutA11yFixture.svelte +0 -21
  213. package/src/layout/Sider.svelte +0 -207
  214. package/src/layout/index.ts +0 -26
  215. package/src/layout/meta.ts +0 -116
  216. package/src/list/List.a11y.test.ts +0 -69
  217. package/src/list/List.bench.ts +0 -26
  218. package/src/list/List.kbd.test.ts +0 -71
  219. package/src/list/List.svelte +0 -920
  220. package/src/list/ListA11yFixture.svelte +0 -38
  221. package/src/list/ListBenchFixture.svelte +0 -22
  222. package/src/list/ListItem.svelte +0 -175
  223. package/src/list/ListKbdFixture.svelte +0 -31
  224. package/src/list/ListMeta.svelte +0 -73
  225. package/src/list/context.ts +0 -39
  226. package/src/list/index.ts +0 -21
  227. package/src/list/meta.ts +0 -99
  228. package/src/locale-provider/LocaleProvider.svelte +0 -110
  229. package/src/locale-provider/context.ts +0 -22
  230. package/src/locale-provider/index.ts +0 -21
  231. package/src/locale-provider/meta.ts +0 -93
  232. package/src/locale-provider/use-locale.ts +0 -25
  233. package/src/lottie-icon/LottieIcon.svelte +0 -330
  234. package/src/lottie-icon/index.ts +0 -9
  235. package/src/lottie-icon/meta.ts +0 -162
  236. package/src/menu/Menu.a11y.test.ts +0 -54
  237. package/src/menu/Menu.kbd.test.ts +0 -69
  238. package/src/menu/Menu.svelte +0 -762
  239. package/src/menu/MenuKbdFixture.svelte +0 -22
  240. package/src/menu/MenuPopupNode.svelte +0 -525
  241. package/src/menu/index.ts +0 -4
  242. package/src/menu/meta.ts +0 -137
  243. package/src/menu/types.ts +0 -120
  244. package/src/meta.test.ts +0 -173
  245. package/src/modal/ConfirmModal.svelte +0 -173
  246. package/src/modal/Modal.a11y.test.ts +0 -46
  247. package/src/modal/Modal.kbd.test.ts +0 -65
  248. package/src/modal/Modal.svelte +0 -511
  249. package/src/modal/ModalKbdFixture.svelte +0 -24
  250. package/src/modal/command.svelte.ts +0 -103
  251. package/src/modal/index.ts +0 -30
  252. package/src/modal/meta.ts +0 -165
  253. package/src/modal/z-stack.ts +0 -26
  254. package/src/notification/NotificationContainer.svelte +0 -192
  255. package/src/notification/NotificationItem.a11y.test.ts +0 -73
  256. package/src/notification/NotificationItem.svelte +0 -368
  257. package/src/notification/index.ts +0 -9
  258. package/src/notification/meta.ts +0 -120
  259. package/src/notification/store.ts +0 -191
  260. package/src/overflow-list/OverflowList.a11y.test.ts +0 -46
  261. package/src/overflow-list/OverflowList.kbd.test.ts +0 -34
  262. package/src/overflow-list/OverflowList.svelte +0 -539
  263. package/src/overflow-list/OverflowListA11yFixture.svelte +0 -22
  264. package/src/overflow-list/OverflowListKbdFixture.svelte +0 -21
  265. package/src/overflow-list/index.ts +0 -2
  266. package/src/overflow-list/meta.ts +0 -138
  267. package/src/pagination/Pagination.a11y.test.ts +0 -62
  268. package/src/pagination/Pagination.kbd.test.ts +0 -66
  269. package/src/pagination/Pagination.svelte +0 -428
  270. package/src/pagination/PaginationKbdFixture.svelte +0 -15
  271. package/src/pagination/index.ts +0 -2
  272. package/src/pagination/meta.ts +0 -73
  273. package/src/popconfirm/Popconfirm.a11y.test.ts +0 -46
  274. package/src/popconfirm/Popconfirm.kbd.test.ts +0 -42
  275. package/src/popconfirm/Popconfirm.svelte +0 -724
  276. package/src/popconfirm/PopconfirmA11yFixture.svelte +0 -34
  277. package/src/popconfirm/PopconfirmKbdFixture.svelte +0 -17
  278. package/src/popconfirm/index.ts +0 -2
  279. package/src/popconfirm/meta.ts +0 -200
  280. package/src/popover/Popover.a11y.test.ts +0 -58
  281. package/src/popover/Popover.kbd.test.ts +0 -42
  282. package/src/popover/Popover.svelte +0 -643
  283. package/src/popover/PopoverA11yFixture.svelte +0 -35
  284. package/src/popover/PopoverKbdFixture.svelte +0 -18
  285. package/src/popover/index.ts +0 -2
  286. package/src/popover/meta.ts +0 -103
  287. package/src/progress/Progress.a11y.test.ts +0 -37
  288. package/src/progress/Progress.svelte +0 -423
  289. package/src/progress/index.ts +0 -3
  290. package/src/progress/meta.ts +0 -132
  291. package/src/radio/Radio.svelte +0 -330
  292. package/src/radio/RadioGroup.a11y.test.ts +0 -43
  293. package/src/radio/RadioGroup.kbd.test.ts +0 -75
  294. package/src/radio/RadioGroup.svelte +0 -199
  295. package/src/radio/RadioGroupKbdFixture.svelte +0 -21
  296. package/src/radio/context.ts +0 -42
  297. package/src/radio/index.ts +0 -4
  298. package/src/radio/meta.ts +0 -68
  299. package/src/rating/Rating.a11y.test.ts +0 -41
  300. package/src/rating/Rating.kbd.test.ts +0 -48
  301. package/src/rating/Rating.svelte +0 -407
  302. package/src/rating/RatingKbdFixture.svelte +0 -15
  303. package/src/rating/index.ts +0 -2
  304. package/src/rating/meta.ts +0 -40
  305. package/src/resize-observer/ResizeObserver.svelte +0 -169
  306. package/src/resize-observer/action.ts +0 -80
  307. package/src/resize-observer/index.ts +0 -9
  308. package/src/resize-observer/meta.ts +0 -102
  309. package/src/scroll-list/ScrollColumn.svelte +0 -592
  310. package/src/scroll-list/ScrollList.svelte +0 -257
  311. package/src/scroll-list/index.ts +0 -4
  312. package/src/scroll-list/meta.ts +0 -93
  313. package/src/scroll-list/types.ts +0 -18
  314. package/src/select/Select.a11y.test.ts +0 -59
  315. package/src/select/Select.kbd.test.ts +0 -59
  316. package/src/select/Select.svelte +0 -1155
  317. package/src/select/SelectKbdFixture.svelte +0 -29
  318. package/src/select/index.ts +0 -3
  319. package/src/select/meta.ts +0 -78
  320. package/src/select/types.ts +0 -2
  321. package/src/side-sheet/SideSheet.a11y.test.ts +0 -53
  322. package/src/side-sheet/SideSheet.kbd.test.ts +0 -63
  323. package/src/side-sheet/SideSheet.svelte +0 -659
  324. package/src/side-sheet/SideSheetKbdFixture.svelte +0 -30
  325. package/src/side-sheet/index.ts +0 -2
  326. package/src/side-sheet/meta.ts +0 -116
  327. package/src/skeleton/Skeleton.a11y.test.ts +0 -35
  328. package/src/skeleton/Skeleton.svelte +0 -131
  329. package/src/skeleton/SkeletonAvatar.svelte +0 -82
  330. package/src/skeleton/SkeletonButton.svelte +0 -90
  331. package/src/skeleton/SkeletonImage.svelte +0 -100
  332. package/src/skeleton/SkeletonParagraph.svelte +0 -103
  333. package/src/skeleton/SkeletonTitle.svelte +0 -74
  334. package/src/skeleton/context.ts +0 -11
  335. package/src/skeleton/index.ts +0 -8
  336. package/src/skeleton/meta.ts +0 -65
  337. package/src/slider/Slider.a11y.test.ts +0 -44
  338. package/src/slider/Slider.kbd.test.ts +0 -74
  339. package/src/slider/Slider.svelte +0 -716
  340. package/src/slider/SliderKbdFixture.svelte +0 -21
  341. package/src/slider/index.ts +0 -2
  342. package/src/slider/meta.ts +0 -55
  343. package/src/space/Space.a11y.test.ts +0 -22
  344. package/src/space/Space.svelte +0 -109
  345. package/src/space/SpaceA11yFixture.svelte +0 -17
  346. package/src/space/index.ts +0 -2
  347. package/src/space/meta.ts +0 -27
  348. package/src/spin/Spin.a11y.test.ts +0 -29
  349. package/src/spin/Spin.svelte +0 -293
  350. package/src/spin/SpinA11yFixture.svelte +0 -18
  351. package/src/spin/index.ts +0 -2
  352. package/src/spin/meta.ts +0 -72
  353. package/src/steps/Steps.a11y.test.ts +0 -39
  354. package/src/steps/Steps.kbd.test.ts +0 -73
  355. package/src/steps/Steps.svelte +0 -392
  356. package/src/steps/StepsKbdFixture.svelte +0 -21
  357. package/src/steps/index.ts +0 -3
  358. package/src/steps/meta.ts +0 -59
  359. package/src/steps/types.ts +0 -8
  360. package/src/switch/Switch.a11y.test.ts +0 -46
  361. package/src/switch/Switch.kbd.test.ts +0 -40
  362. package/src/switch/Switch.svelte +0 -310
  363. package/src/switch/SwitchKbdFixture.svelte +0 -22
  364. package/src/switch/index.ts +0 -2
  365. package/src/switch/meta.ts +0 -44
  366. package/src/table/Table.a11y.test.ts +0 -70
  367. package/src/table/Table.bench.ts +0 -51
  368. package/src/table/Table.kbd.test.ts +0 -94
  369. package/src/table/Table.svelte +0 -2327
  370. package/src/table/TableKbdFixture.svelte +0 -35
  371. package/src/table/grid-nav.test.ts +0 -173
  372. package/src/table/grid-nav.ts +0 -146
  373. package/src/table/index.ts +0 -13
  374. package/src/table/meta.ts +0 -121
  375. package/src/table/types.ts +0 -133
  376. package/src/tabs/TabPane.svelte +0 -92
  377. package/src/tabs/Tabs.a11y.test.ts +0 -47
  378. package/src/tabs/Tabs.kbd.test.ts +0 -74
  379. package/src/tabs/Tabs.svelte +0 -1128
  380. package/src/tabs/TabsA11yFixture.svelte +0 -20
  381. package/src/tabs/TabsKbdFixture.svelte +0 -25
  382. package/src/tabs/context.ts +0 -43
  383. package/src/tabs/index.ts +0 -14
  384. package/src/tabs/meta.ts +0 -152
  385. package/src/tabs/types.ts +0 -6
  386. package/src/tag/Tag.a11y.test.ts +0 -33
  387. package/src/tag/Tag.svelte +0 -366
  388. package/src/tag/TagA11yFixture.svelte +0 -18
  389. package/src/tag/index.ts +0 -2
  390. package/src/tag/meta.ts +0 -92
  391. package/src/tag-input/TagInput.a11y.test.ts +0 -41
  392. package/src/tag-input/TagInput.svelte +0 -544
  393. package/src/tag-input/index.ts +0 -2
  394. package/src/tag-input/meta.ts +0 -43
  395. package/src/tag-input/reorder.test.ts +0 -59
  396. package/src/tag-input/reorder.ts +0 -41
  397. package/src/test-utils/LocaleHarness.svelte +0 -29
  398. package/src/test-utils/a11y.ts +0 -108
  399. package/src/test-utils/kbd.ts +0 -52
  400. package/src/textarea/TextArea.a11y.test.ts +0 -44
  401. package/src/textarea/TextArea.svelte +0 -420
  402. package/src/textarea/index.ts +0 -2
  403. package/src/textarea/meta.ts +0 -104
  404. package/src/time-picker/TimePicker.a11y.test.ts +0 -45
  405. package/src/time-picker/TimePicker.kbd.test.ts +0 -70
  406. package/src/time-picker/TimePicker.svelte +0 -1023
  407. package/src/time-picker/TimePickerKbdFixture.svelte +0 -23
  408. package/src/time-picker/index.ts +0 -2
  409. package/src/time-picker/meta.ts +0 -64
  410. package/src/timeline/Timeline.a11y.test.ts +0 -54
  411. package/src/timeline/Timeline.svelte +0 -599
  412. package/src/timeline/TimelineItem.svelte +0 -164
  413. package/src/timeline/context.ts +0 -28
  414. package/src/timeline/index.ts +0 -16
  415. package/src/timeline/meta.ts +0 -129
  416. package/src/timeline/types.ts +0 -9
  417. package/src/toast/Toast.a11y.test.ts +0 -67
  418. package/src/toast/ToastContainer.svelte +0 -184
  419. package/src/toast/ToastItem.svelte +0 -247
  420. package/src/toast/index.ts +0 -9
  421. package/src/toast/live-region.ts +0 -78
  422. package/src/toast/meta.ts +0 -95
  423. package/src/toast/store.ts +0 -187
  424. package/src/tooltip/Tooltip.a11y.test.ts +0 -41
  425. package/src/tooltip/Tooltip.kbd.test.ts +0 -37
  426. package/src/tooltip/Tooltip.svelte +0 -416
  427. package/src/tooltip/TooltipA11yFixture.svelte +0 -31
  428. package/src/tooltip/TooltipKbdFixture.svelte +0 -16
  429. package/src/tooltip/index.ts +0 -2
  430. package/src/tooltip/meta.ts +0 -59
  431. package/src/tooltip/placement.ts +0 -6
  432. package/src/transfer/Transfer.a11y.test.ts +0 -63
  433. package/src/transfer/Transfer.kbd.test.ts +0 -75
  434. package/src/transfer/Transfer.svelte +0 -1451
  435. package/src/transfer/TransferKbdFixture.svelte +0 -23
  436. package/src/transfer/group.test.ts +0 -55
  437. package/src/transfer/group.ts +0 -61
  438. package/src/transfer/index.ts +0 -3
  439. package/src/transfer/meta.ts +0 -55
  440. package/src/transfer/reorder.test.ts +0 -52
  441. package/src/transfer/reorder.ts +0 -42
  442. package/src/transfer/tree.test.ts +0 -44
  443. package/src/transfer/tree.ts +0 -52
  444. package/src/transfer/types.ts +0 -32
  445. package/src/tree/Tree.a11y.test.ts +0 -63
  446. package/src/tree/Tree.kbd.test.ts +0 -91
  447. package/src/tree/Tree.svelte +0 -1500
  448. package/src/tree/TreeKbdFixture.svelte +0 -30
  449. package/src/tree/index.ts +0 -3
  450. package/src/tree/meta.ts +0 -152
  451. package/src/tree-select/TreeSelect.a11y.test.ts +0 -52
  452. package/src/tree-select/TreeSelect.kbd.test.ts +0 -53
  453. package/src/tree-select/TreeSelect.svelte +0 -1611
  454. package/src/tree-select/TreeSelectKbdFixture.svelte +0 -20
  455. package/src/tree-select/index.ts +0 -3
  456. package/src/tree-select/meta.ts +0 -73
  457. package/src/tree-select/types.ts +0 -11
  458. package/src/tree-select/virtual.test.ts +0 -104
  459. package/src/typography/Link.svelte +0 -120
  460. package/src/typography/Paragraph.svelte +0 -92
  461. package/src/typography/Text.svelte +0 -93
  462. package/src/typography/Title.svelte +0 -91
  463. package/src/typography/Typography.a11y.test.ts +0 -34
  464. package/src/typography/TypographyA11yFixture.svelte +0 -27
  465. package/src/typography/TypographyBase.svelte +0 -807
  466. package/src/typography/index.ts +0 -16
  467. package/src/typography/meta.ts +0 -158
  468. package/src/upload/Upload.a11y.test.ts +0 -58
  469. package/src/upload/Upload.svelte +0 -1094
  470. package/src/upload/UploadA11yFixture.svelte +0 -23
  471. package/src/upload/index.ts +0 -3
  472. package/src/upload/meta.ts +0 -64
  473. package/src/upload/types.ts +0 -16
  474. package/src/virtual-list/VirtualList.svelte +0 -401
  475. package/src/virtual-list/index.ts +0 -2
  476. package/src/virtual-list/meta.ts +0 -106
@@ -1,40 +0,0 @@
1
- // BackTop a11y:回到顶部悬浮按钮。
2
- // - button[type=button] 带可访问名(ariaLabel 或 locale BackTop.ariaLabel)。
3
- // - announceOnArrive 时渲染视觉隐藏的 role=status / aria-live=polite live region。
4
- // jsdom 只断言静态 ARIA + axe(scroll 显隐 / 回顶动画留给真实浏览器)。
5
- import { describe, it, expect } from 'vitest';
6
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
7
- import BackTop from './BackTop.svelte';
8
-
9
- describe('BackTop a11y', () => {
10
- it('默认渲染:button 有 locale 可访问名,无 axe violations', async () => {
11
- const { container } = renderWithLocale(BackTop, {});
12
- const btn = container.querySelector('button.cd-backtop');
13
- expect(btn).not.toBeNull();
14
- expect(btn?.getAttribute('type')).toBe('button');
15
- // 缺省走 locale,应为非空可访问名(不是 key 原样)。
16
- const label = btn?.getAttribute('aria-label');
17
- expect(label).toBeTruthy();
18
- expect(label).not.toBe('BackTop.ariaLabel');
19
- await expectNoAxeViolations(container);
20
- });
21
-
22
- it('自定义 ariaLabel 覆盖可访问名', async () => {
23
- const { container } = renderWithLocale(BackTop, {
24
- props: { ariaLabel: 'Scroll to top' },
25
- });
26
- const btn = container.querySelector('button.cd-backtop');
27
- expect(btn?.getAttribute('aria-label')).toBe('Scroll to top');
28
- await expectNoAxeViolations(container);
29
- });
30
-
31
- it('announceOnArrive:渲染 role=status / aria-live=polite live region', async () => {
32
- const { container } = renderWithLocale(BackTop, {
33
- props: { announceOnArrive: true },
34
- });
35
- const live = container.querySelector('.cd-sr-only');
36
- expect(live?.getAttribute('role')).toBe('status');
37
- expect(live?.getAttribute('aria-live')).toBe('polite');
38
- await expectNoAxeViolations(container);
39
- });
40
- });
@@ -1,314 +0,0 @@
1
- <!--
2
- BackTop — 回到顶部悬浮按钮。
3
- 支持:自定义 target 滚动容器 / window + 阈值显隐 + 受控 visible + 平滑缓动回顶
4
- + announceOnArrive 到顶播报 + 三尺寸。
5
-
6
- ⚠️ 死循环红线:
7
- - 滚动监听用 $effect 内命令式 addEventListener('scroll', ..., {passive:true})
8
- + rAF 节流,cleanup 时 removeEventListener + cancelAnimationFrame;target 变化时重绑。
9
- - autoVisible 仅在 scroll 回调(非 render 期)写入本地 $state。
10
- - render 期只读派生的 visible(受控值或 autoVisible),绝不读 scrollTop 几何。
11
- - 受控 visible:仅读 prop + 触发 onVisibleChange 回调,绝不回写。
12
- - 回顶动画亦为命令式 rAF 循环;卸载时在 $effect cleanup 中 cancel。
13
- -->
14
- <script lang="ts">
15
- import type { Snippet } from 'svelte';
16
- import { isAboveThreshold, scrollPositionAt } from '@chenzy-design/core';
17
- import { useLocale } from '../locale-provider/index.js';
18
-
19
- type Size = 'small' | 'default' | 'large';
20
-
21
- interface Props {
22
- /**
23
- * 监听并回顶的滚动容器。返回 HTMLElement | CSS 选择器字符串 | null。
24
- * 不传或返回 null/window 时监听 window(默认行为,向后兼容)。
25
- */
26
- target?: () => HTMLElement | string | Window | null;
27
- /**
28
- * 受控显隐:传入时由外部决定按钮显隐(内部阈值判定仅用于触发 onVisibleChange);
29
- * 不传则内部按 visibilityHeight 阈值自动显隐。
30
- */
31
- visible?: boolean;
32
- /** 回到顶部后用 ARIA live region 播报(文案经 locale BackTop.arrived)。 */
33
- announceOnArrive?: boolean;
34
- /** 滚动超过此高度(px)显示按钮 */
35
- visibilityHeight?: number;
36
- /** 回顶动画时长(ms),0 表示瞬时 */
37
- duration?: number;
38
- /** 距底偏移,number → px */
39
- bottom?: number | string;
40
- /** 距 inline-end 偏移,number → px */
41
- right?: number | string;
42
- size?: Size;
43
- ariaLabel?: string;
44
- /** 替换图标(保留圆形按钮外壳) */
45
- icon?: Snippet<[{ size: Size }]>;
46
- /** 完全自定义按钮内容 */
47
- children?: Snippet<[{ visible: boolean }]>;
48
- onClick?: (e: MouseEvent) => void;
49
- onVisibleChange?: (info: { visible: boolean }) => void;
50
- onScrollEnd?: () => void;
51
- class?: string;
52
- }
53
-
54
- let {
55
- target,
56
- visible: controlledVisible,
57
- announceOnArrive = false,
58
- visibilityHeight = 400,
59
- duration = 450,
60
- bottom = 40,
61
- right = 40,
62
- size = 'default',
63
- ariaLabel,
64
- icon,
65
- children,
66
- onClick,
67
- onVisibleChange,
68
- onScrollEnd,
69
- class: className = '',
70
- }: Props = $props();
71
-
72
- const loc = useLocale();
73
-
74
- // 本地响应式状态:仅由命令式 scroll 回调写入,render 期只读(非受控时驱动显隐)。
75
- let autoVisible = $state(false);
76
-
77
- // 派生显隐(红线 #2 纯函数):受控时取 prop,否则取内部阈值态。render 期只读。
78
- const visible = $derived(controlledVisible ?? autoVisible);
79
-
80
- // 到顶播报文案(live region 命令式写入,初始为空)。
81
- let announceText = $state('');
82
-
83
- // 偏移样式:number → px。
84
- const bottomPx = $derived(typeof bottom === 'number' ? `${bottom}px` : bottom);
85
- const rightPx = $derived(typeof right === 'number' ? `${right}px` : right);
86
-
87
- /**
88
- * 把 target 原始返回值规整为「滚动元素 | window」。null 视为 window;
89
- * 选择器字符串经 querySelector 解析,解析失败回退 window。
90
- */
91
- function normalizeScroller(raw: HTMLElement | string | Window | null | undefined): HTMLElement | Window {
92
- if (raw == null || raw === window) return window;
93
- if (typeof raw === 'string') {
94
- if (typeof document === 'undefined') return window;
95
- return (document.querySelector<HTMLElement>(raw)) ?? window;
96
- }
97
- return raw;
98
- }
99
-
100
- /**
101
- * 响应式解析的滚动容器:在 $derived 内调用 target?.(),使其依赖被追踪——
102
- * target 通常 `() => someBoundEl`,bind:this 在挂载后才赋值,借此让监听 $effect
103
- * 在元素就绪后重新求值并重绑(红线 #3)。无 target 时恒为 window。
104
- */
105
- const scroller = $derived(normalizeScroller(target?.()));
106
-
107
- /** scrollToTop 等命令式路径用:即时解析(不依赖响应式快照)。 */
108
- function resolveScroller(): HTMLElement | Window {
109
- return normalizeScroller(target?.());
110
- }
111
-
112
- /** 读取某滚动容器当前 scrollTop(window 走 scrollY)。命令式,仅回调期调用。 */
113
- function getScrollTop(scroller: HTMLElement | Window): number {
114
- return scroller === window ? window.scrollY : (scroller as HTMLElement).scrollTop;
115
- }
116
-
117
- // 减弱动效偏好(命令式读取,仅 client)。
118
- const reduced =
119
- typeof window !== 'undefined' &&
120
- window.matchMedia?.('(prefers-reduced-motion: reduce)').matches === true;
121
-
122
- // 滚动监听(命令式 + rAF 节流 + cleanup)。$effect 仅 client 运行,SSR 安全。
123
- // 依赖 scroller(含 target 求值)/ visibilityHeight:变化时 cleanup 旧绑定并重绑(红线 #3)。
124
- $effect(() => {
125
- const node = scroller; // 响应式:容器(或 window)变化时重绑
126
- const threshold = visibilityHeight; // 追踪阈值
127
- let rafId = 0;
128
-
129
- function onScroll() {
130
- if (rafId) return; // rAF 节流
131
- rafId = requestAnimationFrame(() => {
132
- rafId = 0;
133
- // scrollTop 读取发生在回调中(非 render 期)。
134
- const top = getScrollTop(node);
135
- const next = isAboveThreshold(top, threshold);
136
- // 内部阈值态:受控时不驱动 render,但仍维护以触发 onVisibleChange。
137
- if (next !== autoVisible) {
138
- autoVisible = next;
139
- onVisibleChange?.({ visible: next });
140
- }
141
- });
142
- }
143
-
144
- node.addEventListener('scroll', onScroll, { passive: true });
145
- onScroll(); // 初始判定一次
146
- return () => {
147
- node.removeEventListener('scroll', onScroll);
148
- if (rafId) cancelAnimationFrame(rafId);
149
- };
150
- });
151
-
152
- // 回顶动画的 rAF 句柄(组件级,供卸载 cleanup 取消)。
153
- let scrollRaf = 0;
154
-
155
- $effect(() => {
156
- // 仅注册卸载时取消未完成的回顶动画。
157
- return () => {
158
- if (scrollRaf) cancelAnimationFrame(scrollRaf);
159
- };
160
- });
161
-
162
- /** 把容器/window 滚到指定 y(命令式)。 */
163
- function scrollToY(scroller: HTMLElement | Window, y: number) {
164
- if (scroller === window) window.scrollTo(0, y);
165
- else (scroller as HTMLElement).scrollTop = y;
166
- }
167
-
168
- /** 到顶后写入 live region 播报(announceOnArrive 开启时)。先清空确保重复可重播。 */
169
- function announceArrived() {
170
- if (!announceOnArrive) return;
171
- announceText = '';
172
- // 微任务后再写入,确保 DOM 先清空再赋值,触发 AT 重新播报。
173
- queueMicrotask(() => {
174
- announceText = loc().t('BackTop.arrived');
175
- });
176
- }
177
-
178
- function finishScroll() {
179
- scrollRaf = 0;
180
- onScrollEnd?.();
181
- announceArrived();
182
- }
183
-
184
- function scrollToTop(e: MouseEvent) {
185
- onClick?.(e);
186
- const scroller = resolveScroller();
187
- const from = getScrollTop(scroller);
188
- if (duration <= 0 || reduced) {
189
- scrollToY(scroller, 0);
190
- finishScroll();
191
- return;
192
- }
193
- if (scrollRaf) cancelAnimationFrame(scrollRaf);
194
- const start = performance.now();
195
- const step = (now: number) => {
196
- const elapsed = now - start;
197
- scrollToY(scroller, scrollPositionAt(from, elapsed, duration));
198
- if (elapsed < duration) {
199
- scrollRaf = requestAnimationFrame(step);
200
- } else {
201
- finishScroll();
202
- }
203
- };
204
- scrollRaf = requestAnimationFrame(step);
205
- }
206
- </script>
207
-
208
- <button
209
- type="button"
210
- class="cd-backtop cd-backtop--{size} {className}"
211
- class:cd-backtop--visible={visible}
212
- aria-label={ariaLabel ?? loc().t('BackTop.ariaLabel')}
213
- aria-hidden={!visible}
214
- tabindex={visible ? 0 : -1}
215
- style="--cd-backtop-offset-bottom:{bottomPx}; --cd-backtop-offset-inline-end:{rightPx}"
216
- onclick={scrollToTop}
217
- >
218
- {#if children}
219
- {@render children({ visible })}
220
- {:else if icon}
221
- {@render icon({ size })}
222
- {:else}
223
- <svg class="cd-backtop__icon" viewBox="0 0 24 24" aria-hidden="true">
224
- <path
225
- fill="none"
226
- stroke="currentColor"
227
- stroke-width="2"
228
- stroke-linecap="round"
229
- stroke-linejoin="round"
230
- d="M12 19V5M5 12l7-7 7 7"
231
- />
232
- </svg>
233
- {/if}
234
- </button>
235
-
236
- {#if announceOnArrive}
237
- <!-- 到顶播报 live region:视觉隐藏,仅供辅助技术读取(红线 #2:render 期只读 $state)。 -->
238
- <div class="cd-sr-only" role="status" aria-live="polite" aria-atomic="true">
239
- {announceText}
240
- </div>
241
- {/if}
242
-
243
- <style>
244
- .cd-backtop {
245
- position: fixed;
246
- inset-block-end: var(--cd-backtop-offset-bottom, 40px);
247
- inset-inline-end: var(--cd-backtop-offset-inline-end, 40px);
248
- inline-size: var(--cd-backtop-size);
249
- block-size: var(--cd-backtop-size);
250
- display: inline-flex;
251
- align-items: center;
252
- justify-content: center;
253
- padding: 0;
254
- border: 1px solid transparent;
255
- border-radius: var(--cd-backtop-radius);
256
- background: var(--cd-backtop-bg);
257
- color: var(--cd-backtop-color);
258
- box-shadow: var(--cd-backtop-shadow);
259
- cursor: pointer;
260
- z-index: var(--cd-backtop-z);
261
- /* 隐藏态(默认) */
262
- opacity: 0;
263
- visibility: hidden;
264
- pointer-events: none;
265
- transform: translateY(8px);
266
- transition:
267
- opacity var(--cd-backtop-motion-duration) ease,
268
- transform var(--cd-backtop-motion-duration) ease,
269
- visibility var(--cd-backtop-motion-duration) ease;
270
- }
271
-
272
- .cd-backtop--visible {
273
- opacity: 1;
274
- visibility: visible;
275
- pointer-events: auto;
276
- transform: translateY(0);
277
- }
278
-
279
- .cd-backtop--small {
280
- inline-size: var(--cd-backtop-size-small);
281
- block-size: var(--cd-backtop-size-small);
282
- }
283
-
284
- .cd-backtop--large {
285
- inline-size: var(--cd-backtop-size-large);
286
- block-size: var(--cd-backtop-size-large);
287
- }
288
-
289
- .cd-backtop:hover {
290
- background: var(--cd-backtop-bg-hover);
291
- }
292
-
293
- .cd-backtop:active {
294
- background: var(--cd-backtop-bg-active);
295
- }
296
-
297
- .cd-backtop:focus-visible {
298
- outline: 2px solid var(--cd-backtop-focus-ring);
299
- outline-offset: 2px;
300
- }
301
-
302
- .cd-backtop__icon {
303
- inline-size: 50%;
304
- block-size: 50%;
305
- }
306
-
307
- /* 到顶播报 live region 复用 tokens.css 全局 .cd-sr-only:视觉隐藏但 AT 可读。 */
308
-
309
- @media (prefers-reduced-motion: reduce) {
310
- .cd-backtop {
311
- transition: none;
312
- }
313
- }
314
- </style>
@@ -1,2 +0,0 @@
1
- export { default as BackTop } from './BackTop.svelte';
2
- export { meta as backTopMeta } from './meta.js';
@@ -1,108 +0,0 @@
1
- /**
2
- * Machine-readable component metadata for AI/docs consumption.
3
- * BackTop — see specs/components/other/BackTop.spec.md
4
- */
5
- export const meta = {
6
- name: 'BackTop',
7
- category: 'other',
8
- description:
9
- '回到顶部悬浮按钮:滚动超阈值显隐 + 平滑缓动(easeInOutCubic)回顶,三尺寸(small/default/large),原生 button 支持 Enter/Space,prefers-reduced-motion 下瞬时回顶,RTL 友好(inset-inline-end)。默认监听 window 滚动,可经 target 指定自定义滚动容器;支持受控 visible 与 announceOnArrive 到顶 ARIA live 播报。',
10
- exports: ['BackTop'],
11
- props: [
12
- {
13
- name: 'target',
14
- type: '() => HTMLElement | string | Window | null',
15
- default: 'undefined',
16
- desc: '监听并回顶的滚动容器,返回元素/CSS 选择器/window;不传监听 window',
17
- },
18
- {
19
- name: 'visible',
20
- type: 'boolean',
21
- default: 'undefined',
22
- desc: '受控显隐:传入则由外部控制按钮显隐(仅读不回写),不传按 visibilityHeight 自动',
23
- },
24
- {
25
- name: 'announceOnArrive',
26
- type: 'boolean',
27
- default: 'false',
28
- desc: '回到顶部后经 ARIA live region 播报(文案取 locale BackTop.arrived)',
29
- },
30
- {
31
- name: 'visibilityHeight',
32
- type: 'number',
33
- default: '400',
34
- desc: '滚动超过此高度(px)显示按钮',
35
- },
36
- { name: 'duration', type: 'number', default: '450', desc: '回顶动画时长(ms),0 瞬时' },
37
- { name: 'bottom', type: 'number|string', default: '40', desc: '距底偏移,number→px' },
38
- {
39
- name: 'right',
40
- type: 'number|string',
41
- default: '40',
42
- desc: '距 inline-end 偏移,number→px',
43
- },
44
- { name: 'size', type: "'small'|'default'|'large'", default: "'default'" },
45
- { name: 'ariaLabel', type: 'string', default: "'回到顶部'", desc: '无障碍标签' },
46
- {
47
- name: 'icon',
48
- type: 'Snippet<[{ size }]>',
49
- default: 'undefined',
50
- desc: '替换图标(保留圆形按钮外壳)',
51
- },
52
- {
53
- name: 'children',
54
- type: 'Snippet<[{ visible }]>',
55
- default: 'undefined',
56
- desc: '完全自定义按钮内容',
57
- },
58
- { name: 'onClick', type: '(e: MouseEvent) => void', default: 'undefined' },
59
- {
60
- name: 'onVisibleChange',
61
- type: '(info: { visible: boolean }) => void',
62
- default: 'undefined',
63
- desc: '显隐切换通知',
64
- },
65
- {
66
- name: 'onScrollEnd',
67
- type: '() => void',
68
- default: 'undefined',
69
- desc: '回顶动画结束通知',
70
- },
71
- { name: 'class', type: 'string', default: "''" },
72
- ],
73
- events: [
74
- { name: 'onClick', desc: '按钮点击' },
75
- { name: 'onVisibleChange', desc: '显隐切换' },
76
- { name: 'onScrollEnd', desc: '回顶动画结束' },
77
- ],
78
- slots: [
79
- { name: 'children', desc: '完全自定义按钮内容,入参 { visible }' },
80
- { name: 'icon', desc: '替换默认图标,入参 { size },保留圆形按钮外壳' },
81
- ],
82
- a11y: {
83
- hasRole: true,
84
- focusable: true,
85
- note: '原生 button 自带 button role + Enter/Space 触发;aria-label 文本;隐藏态 aria-hidden=true + tabindex=-1 移出 Tab 序与 a11y 树;focus-visible 焦点环。',
86
- },
87
- tokens: [
88
- '--cd-backtop-size',
89
- '--cd-backtop-size-small',
90
- '--cd-backtop-size-large',
91
- '--cd-backtop-bg',
92
- '--cd-backtop-bg-hover',
93
- '--cd-backtop-bg-active',
94
- '--cd-backtop-color',
95
- '--cd-backtop-border',
96
- '--cd-backtop-shadow',
97
- '--cd-backtop-radius',
98
- '--cd-backtop-z',
99
- '--cd-backtop-focus-ring',
100
- '--cd-backtop-motion-duration',
101
- ],
102
- responsive: false,
103
- examples: [
104
- { title: '基础', code: '<BackTop />' },
105
- { title: '小尺寸', code: '<BackTop size="small" />' },
106
- { title: '自定义偏移', code: '<BackTop bottom={80} right={24} />' },
107
- ],
108
- } as const;
@@ -1,35 +0,0 @@
1
- // Badge a11y:独立状态点 role=status;count 模式 <sup aria-label>。
2
- // 经 BadgeA11yFixture(不注入 children,使 standalone 形态生效;harness 会恒注入空 children)。
3
- import { describe, it, expect } from 'vitest';
4
- import { render } from '@testing-library/svelte';
5
- import { expectNoAxeViolations } from '../test-utils/a11y.js';
6
- import BadgeA11yFixture from './BadgeA11yFixture.svelte';
7
-
8
- describe('Badge a11y', () => {
9
- it('独立状态点:role=status,无 axe violations', async () => {
10
- const { container } = render(BadgeA11yFixture, {
11
- props: { props: { status: 'success', count: 'Online' } },
12
- });
13
- const root = container.querySelector('.cd-badge--status');
14
- expect(root?.getAttribute('role')).toBe('status');
15
- await expectNoAxeViolations(container);
16
- });
17
-
18
- it('count 角标:sup 带 aria-label(计数文本),无 axe violations', async () => {
19
- const { container } = render(BadgeA11yFixture, {
20
- props: { props: { count: 5 } },
21
- });
22
- const sup = container.querySelector('.cd-badge__sup');
23
- expect(sup?.getAttribute('aria-label')).toBe('5');
24
- await expectNoAxeViolations(container);
25
- });
26
-
27
- it('overflow 角标:超出 overflowCount 显示 99+,无 axe violations', async () => {
28
- const { container } = render(BadgeA11yFixture, {
29
- props: { props: { count: 200, overflowCount: 99 } },
30
- });
31
- const sup = container.querySelector('.cd-badge__sup');
32
- expect(sup?.getAttribute('aria-label')).toBe('99+');
33
- await expectNoAxeViolations(container);
34
- });
35
- });