@chenzy-design/svelte 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/README.md +66 -0
  2. package/dist/badge/Badge.svelte +5 -2
  3. package/dist/badge/Badge.svelte.d.ts.map +1 -1
  4. package/dist/components.json +1 -1
  5. package/package.json +6 -5
  6. package/dist/anchor/Anchor.a11y.test.d.ts +0 -2
  7. package/dist/anchor/Anchor.a11y.test.d.ts.map +0 -1
  8. package/dist/anchor/Anchor.a11y.test.js +0 -44
  9. package/dist/anchor/Anchor.kbd.test.d.ts +0 -2
  10. package/dist/anchor/Anchor.kbd.test.d.ts.map +0 -1
  11. package/dist/anchor/Anchor.kbd.test.js +0 -59
  12. package/dist/anchor/AnchorKbdFixture.svelte +0 -24
  13. package/dist/anchor/AnchorKbdFixture.svelte.d.ts +0 -19
  14. package/dist/anchor/AnchorKbdFixture.svelte.d.ts.map +0 -1
  15. package/dist/autocomplete/AutoComplete.a11y.test.d.ts +0 -2
  16. package/dist/autocomplete/AutoComplete.a11y.test.d.ts.map +0 -1
  17. package/dist/autocomplete/AutoComplete.a11y.test.js +0 -45
  18. package/dist/autocomplete/AutoComplete.kbd.test.d.ts +0 -2
  19. package/dist/autocomplete/AutoComplete.kbd.test.d.ts.map +0 -1
  20. package/dist/autocomplete/AutoComplete.kbd.test.js +0 -60
  21. package/dist/autocomplete/AutoCompleteKbdFixture.svelte +0 -24
  22. package/dist/autocomplete/AutoCompleteKbdFixture.svelte.d.ts +0 -4
  23. package/dist/autocomplete/AutoCompleteKbdFixture.svelte.d.ts.map +0 -1
  24. package/dist/avatar/Avatar.a11y.test.d.ts +0 -2
  25. package/dist/avatar/Avatar.a11y.test.d.ts.map +0 -1
  26. package/dist/avatar/Avatar.a11y.test.js +0 -34
  27. package/dist/back-top/BackTop.a11y.test.d.ts +0 -2
  28. package/dist/back-top/BackTop.a11y.test.d.ts.map +0 -1
  29. package/dist/back-top/BackTop.a11y.test.js +0 -37
  30. package/dist/badge/Badge.a11y.test.d.ts +0 -2
  31. package/dist/badge/Badge.a11y.test.d.ts.map +0 -1
  32. package/dist/badge/Badge.a11y.test.js +0 -32
  33. package/dist/badge/BadgeA11yFixture.svelte +0 -18
  34. package/dist/badge/BadgeA11yFixture.svelte.d.ts +0 -7
  35. package/dist/badge/BadgeA11yFixture.svelte.d.ts.map +0 -1
  36. package/dist/banner/Banner.a11y.test.d.ts +0 -2
  37. package/dist/banner/Banner.a11y.test.d.ts.map +0 -1
  38. package/dist/banner/Banner.a11y.test.js +0 -43
  39. package/dist/breadcrumb/Breadcrumb.a11y.test.d.ts +0 -2
  40. package/dist/breadcrumb/Breadcrumb.a11y.test.d.ts.map +0 -1
  41. package/dist/breadcrumb/Breadcrumb.a11y.test.js +0 -31
  42. package/dist/breadcrumb/Breadcrumb.kbd.test.d.ts +0 -2
  43. package/dist/breadcrumb/Breadcrumb.kbd.test.d.ts.map +0 -1
  44. package/dist/breadcrumb/Breadcrumb.kbd.test.js +0 -37
  45. package/dist/breadcrumb/BreadcrumbKbdFixture.svelte +0 -23
  46. package/dist/breadcrumb/BreadcrumbKbdFixture.svelte.d.ts +0 -19
  47. package/dist/breadcrumb/BreadcrumbKbdFixture.svelte.d.ts.map +0 -1
  48. package/dist/button/Button.a11y.test.d.ts +0 -2
  49. package/dist/button/Button.a11y.test.d.ts.map +0 -1
  50. package/dist/button/Button.a11y.test.js +0 -49
  51. package/dist/calendar/Calendar.a11y.test.d.ts +0 -2
  52. package/dist/calendar/Calendar.a11y.test.d.ts.map +0 -1
  53. package/dist/calendar/Calendar.a11y.test.js +0 -46
  54. package/dist/calendar/Calendar.kbd.test.d.ts +0 -2
  55. package/dist/calendar/Calendar.kbd.test.d.ts.map +0 -1
  56. package/dist/calendar/Calendar.kbd.test.js +0 -50
  57. package/dist/calendar/CalendarKbdFixture.svelte +0 -23
  58. package/dist/calendar/CalendarKbdFixture.svelte.d.ts +0 -19
  59. package/dist/calendar/CalendarKbdFixture.svelte.d.ts.map +0 -1
  60. package/dist/card/Card.a11y.test.d.ts +0 -2
  61. package/dist/card/Card.a11y.test.d.ts.map +0 -1
  62. package/dist/card/Card.a11y.test.js +0 -35
  63. package/dist/carousel/Carousel.a11y.test.d.ts +0 -2
  64. package/dist/carousel/Carousel.a11y.test.d.ts.map +0 -1
  65. package/dist/carousel/Carousel.a11y.test.js +0 -43
  66. package/dist/carousel/Carousel.kbd.test.d.ts +0 -2
  67. package/dist/carousel/Carousel.kbd.test.d.ts.map +0 -1
  68. package/dist/carousel/Carousel.kbd.test.js +0 -51
  69. package/dist/carousel/CarouselA11yFixture.svelte +0 -25
  70. package/dist/carousel/CarouselA11yFixture.svelte.d.ts +0 -8
  71. package/dist/carousel/CarouselA11yFixture.svelte.d.ts.map +0 -1
  72. package/dist/carousel/CarouselKbdFixture.svelte +0 -24
  73. package/dist/carousel/CarouselKbdFixture.svelte.d.ts +0 -19
  74. package/dist/carousel/CarouselKbdFixture.svelte.d.ts.map +0 -1
  75. package/dist/cascader/Cascader.a11y.test.d.ts +0 -2
  76. package/dist/cascader/Cascader.a11y.test.d.ts.map +0 -1
  77. package/dist/cascader/Cascader.a11y.test.js +0 -55
  78. package/dist/cascader/Cascader.kbd.test.d.ts +0 -2
  79. package/dist/cascader/Cascader.kbd.test.d.ts.map +0 -1
  80. package/dist/cascader/Cascader.kbd.test.js +0 -47
  81. package/dist/cascader/CascaderKbdFixture.svelte +0 -31
  82. package/dist/cascader/CascaderKbdFixture.svelte.d.ts +0 -19
  83. package/dist/cascader/CascaderKbdFixture.svelte.d.ts.map +0 -1
  84. package/dist/checkbox/CheckboxGroup.a11y.test.d.ts +0 -2
  85. package/dist/checkbox/CheckboxGroup.a11y.test.d.ts.map +0 -1
  86. package/dist/checkbox/CheckboxGroup.a11y.test.js +0 -38
  87. package/dist/checkbox/CheckboxGroup.kbd.test.d.ts +0 -2
  88. package/dist/checkbox/CheckboxGroup.kbd.test.d.ts.map +0 -1
  89. package/dist/checkbox/CheckboxGroup.kbd.test.js +0 -33
  90. package/dist/checkbox/CheckboxGroupKbdFixture.svelte +0 -20
  91. package/dist/checkbox/CheckboxGroupKbdFixture.svelte.d.ts +0 -19
  92. package/dist/checkbox/CheckboxGroupKbdFixture.svelte.d.ts.map +0 -1
  93. package/dist/collapse/Collapse.a11y.test.d.ts +0 -2
  94. package/dist/collapse/Collapse.a11y.test.d.ts.map +0 -1
  95. package/dist/collapse/Collapse.a11y.test.js +0 -46
  96. package/dist/collapse/Collapse.kbd.test.d.ts +0 -2
  97. package/dist/collapse/Collapse.kbd.test.d.ts.map +0 -1
  98. package/dist/collapse/Collapse.kbd.test.js +0 -70
  99. package/dist/collapse/CollapseA11yFixture.svelte +0 -27
  100. package/dist/collapse/CollapseA11yFixture.svelte.d.ts +0 -9
  101. package/dist/collapse/CollapseA11yFixture.svelte.d.ts.map +0 -1
  102. package/dist/collapse/CollapseKbdFixture.svelte +0 -25
  103. package/dist/collapse/CollapseKbdFixture.svelte.d.ts +0 -19
  104. package/dist/collapse/CollapseKbdFixture.svelte.d.ts.map +0 -1
  105. package/dist/color-picker/ColorPicker.a11y.test.d.ts +0 -2
  106. package/dist/color-picker/ColorPicker.a11y.test.d.ts.map +0 -1
  107. package/dist/color-picker/ColorPicker.a11y.test.js +0 -54
  108. package/dist/color-picker/ColorPicker.kbd.test.d.ts +0 -2
  109. package/dist/color-picker/ColorPicker.kbd.test.d.ts.map +0 -1
  110. package/dist/color-picker/ColorPicker.kbd.test.js +0 -59
  111. package/dist/color-picker/ColorPickerKbdFixture.svelte +0 -25
  112. package/dist/color-picker/ColorPickerKbdFixture.svelte.d.ts +0 -4
  113. package/dist/color-picker/ColorPickerKbdFixture.svelte.d.ts.map +0 -1
  114. package/dist/date-picker/DatePicker.a11y.test.d.ts +0 -2
  115. package/dist/date-picker/DatePicker.a11y.test.d.ts.map +0 -1
  116. package/dist/date-picker/DatePicker.a11y.test.js +0 -42
  117. package/dist/date-picker/DatePicker.kbd.test.d.ts +0 -2
  118. package/dist/date-picker/DatePicker.kbd.test.d.ts.map +0 -1
  119. package/dist/date-picker/DatePicker.kbd.test.js +0 -59
  120. package/dist/date-picker/DatePickerKbdFixture.svelte +0 -26
  121. package/dist/date-picker/DatePickerKbdFixture.svelte.d.ts +0 -4
  122. package/dist/date-picker/DatePickerKbdFixture.svelte.d.ts.map +0 -1
  123. package/dist/date-picker/RangePicker.kbd.test.d.ts +0 -2
  124. package/dist/date-picker/RangePicker.kbd.test.d.ts.map +0 -1
  125. package/dist/date-picker/RangePicker.kbd.test.js +0 -60
  126. package/dist/date-picker/RangePickerKbdFixture.svelte +0 -30
  127. package/dist/date-picker/RangePickerKbdFixture.svelte.d.ts +0 -7
  128. package/dist/date-picker/RangePickerKbdFixture.svelte.d.ts.map +0 -1
  129. package/dist/descriptions/Descriptions.a11y.test.d.ts +0 -2
  130. package/dist/descriptions/Descriptions.a11y.test.d.ts.map +0 -1
  131. package/dist/descriptions/Descriptions.a11y.test.js +0 -31
  132. package/dist/divider/Divider.a11y.test.d.ts +0 -2
  133. package/dist/divider/Divider.a11y.test.d.ts.map +0 -1
  134. package/dist/divider/Divider.a11y.test.js +0 -21
  135. package/dist/drawer/Drawer.a11y.test.d.ts +0 -2
  136. package/dist/drawer/Drawer.a11y.test.d.ts.map +0 -1
  137. package/dist/drawer/Drawer.a11y.test.js +0 -33
  138. package/dist/drawer/Drawer.kbd.test.d.ts +0 -2
  139. package/dist/drawer/Drawer.kbd.test.d.ts.map +0 -1
  140. package/dist/drawer/Drawer.kbd.test.js +0 -53
  141. package/dist/drawer/DrawerKbdFixture.svelte +0 -28
  142. package/dist/drawer/DrawerKbdFixture.svelte.d.ts +0 -4
  143. package/dist/drawer/DrawerKbdFixture.svelte.d.ts.map +0 -1
  144. package/dist/dropdown/Dropdown.a11y.test.d.ts +0 -2
  145. package/dist/dropdown/Dropdown.a11y.test.d.ts.map +0 -1
  146. package/dist/dropdown/Dropdown.a11y.test.js +0 -39
  147. package/dist/dropdown/Dropdown.kbd.test.d.ts +0 -2
  148. package/dist/dropdown/Dropdown.kbd.test.d.ts.map +0 -1
  149. package/dist/dropdown/Dropdown.kbd.test.js +0 -47
  150. package/dist/dropdown/DropdownA11yFixture.svelte +0 -24
  151. package/dist/dropdown/DropdownA11yFixture.svelte.d.ts +0 -11
  152. package/dist/dropdown/DropdownA11yFixture.svelte.d.ts.map +0 -1
  153. package/dist/dropdown/DropdownKbdFixture.svelte +0 -26
  154. package/dist/dropdown/DropdownKbdFixture.svelte.d.ts +0 -19
  155. package/dist/dropdown/DropdownKbdFixture.svelte.d.ts.map +0 -1
  156. package/dist/dropdown/types.test.d.ts +0 -2
  157. package/dist/dropdown/types.test.d.ts.map +0 -1
  158. package/dist/dropdown/types.test.js +0 -40
  159. package/dist/empty/Empty.a11y.test.d.ts +0 -2
  160. package/dist/empty/Empty.a11y.test.d.ts.map +0 -1
  161. package/dist/empty/Empty.a11y.test.js +0 -22
  162. package/dist/form/Form.a11y.test.d.ts +0 -2
  163. package/dist/form/Form.a11y.test.d.ts.map +0 -1
  164. package/dist/form/Form.a11y.test.js +0 -36
  165. package/dist/form/FormA11yFixture.svelte +0 -31
  166. package/dist/form/FormA11yFixture.svelte.d.ts +0 -19
  167. package/dist/form/FormA11yFixture.svelte.d.ts.map +0 -1
  168. package/dist/grid/Grid.a11y.test.d.ts +0 -2
  169. package/dist/grid/Grid.a11y.test.d.ts.map +0 -1
  170. package/dist/grid/Grid.a11y.test.js +0 -13
  171. package/dist/grid/GridA11yFixture.svelte +0 -12
  172. package/dist/grid/GridA11yFixture.svelte.d.ts +0 -19
  173. package/dist/grid/GridA11yFixture.svelte.d.ts.map +0 -1
  174. package/dist/highlight/Highlight.a11y.test.d.ts +0 -2
  175. package/dist/highlight/Highlight.a11y.test.d.ts.map +0 -1
  176. package/dist/highlight/Highlight.a11y.test.js +0 -23
  177. package/dist/image/Image.a11y.test.d.ts +0 -2
  178. package/dist/image/Image.a11y.test.d.ts.map +0 -1
  179. package/dist/image/Image.a11y.test.js +0 -27
  180. package/dist/image/ImagePreview.kbd.test.d.ts +0 -2
  181. package/dist/image/ImagePreview.kbd.test.d.ts.map +0 -1
  182. package/dist/image/ImagePreview.kbd.test.js +0 -44
  183. package/dist/image/ImagePreviewKbdFixture.svelte +0 -32
  184. package/dist/image/ImagePreviewKbdFixture.svelte.d.ts +0 -4
  185. package/dist/image/ImagePreviewKbdFixture.svelte.d.ts.map +0 -1
  186. package/dist/input/Input.a11y.test.d.ts +0 -2
  187. package/dist/input/Input.a11y.test.d.ts.map +0 -1
  188. package/dist/input/Input.a11y.test.js +0 -53
  189. package/dist/input-number/InputNumber.a11y.test.d.ts +0 -2
  190. package/dist/input-number/InputNumber.a11y.test.d.ts.map +0 -1
  191. package/dist/input-number/InputNumber.a11y.test.js +0 -40
  192. package/dist/input-number/InputNumber.kbd.test.d.ts +0 -2
  193. package/dist/input-number/InputNumber.kbd.test.d.ts.map +0 -1
  194. package/dist/input-number/InputNumber.kbd.test.js +0 -35
  195. package/dist/input-number/InputNumberKbdFixture.svelte +0 -15
  196. package/dist/input-number/InputNumberKbdFixture.svelte.d.ts +0 -19
  197. package/dist/input-number/InputNumberKbdFixture.svelte.d.ts.map +0 -1
  198. package/dist/layout/Layout.a11y.test.d.ts +0 -2
  199. package/dist/layout/Layout.a11y.test.d.ts.map +0 -1
  200. package/dist/layout/Layout.a11y.test.js +0 -32
  201. package/dist/layout/LayoutA11yFixture.svelte +0 -21
  202. package/dist/layout/LayoutA11yFixture.svelte.d.ts +0 -7
  203. package/dist/layout/LayoutA11yFixture.svelte.d.ts.map +0 -1
  204. package/dist/list/List.a11y.test.d.ts +0 -2
  205. package/dist/list/List.a11y.test.d.ts.map +0 -1
  206. package/dist/list/List.a11y.test.js +0 -62
  207. package/dist/list/List.bench.d.ts +0 -2
  208. package/dist/list/List.bench.d.ts.map +0 -1
  209. package/dist/list/List.bench.js +0 -16
  210. package/dist/list/List.kbd.test.d.ts +0 -2
  211. package/dist/list/List.kbd.test.d.ts.map +0 -1
  212. package/dist/list/List.kbd.test.js +0 -60
  213. package/dist/list/ListA11yFixture.svelte +0 -38
  214. package/dist/list/ListA11yFixture.svelte.d.ts +0 -10
  215. package/dist/list/ListA11yFixture.svelte.d.ts.map +0 -1
  216. package/dist/list/ListBenchFixture.svelte +0 -22
  217. package/dist/list/ListBenchFixture.svelte.d.ts +0 -7
  218. package/dist/list/ListBenchFixture.svelte.d.ts.map +0 -1
  219. package/dist/list/ListKbdFixture.svelte +0 -31
  220. package/dist/list/ListKbdFixture.svelte.d.ts +0 -19
  221. package/dist/list/ListKbdFixture.svelte.d.ts.map +0 -1
  222. package/dist/menu/Menu.a11y.test.d.ts +0 -2
  223. package/dist/menu/Menu.a11y.test.d.ts.map +0 -1
  224. package/dist/menu/Menu.a11y.test.js +0 -49
  225. package/dist/menu/Menu.kbd.test.d.ts +0 -2
  226. package/dist/menu/Menu.kbd.test.d.ts.map +0 -1
  227. package/dist/menu/Menu.kbd.test.js +0 -56
  228. package/dist/menu/MenuKbdFixture.svelte +0 -22
  229. package/dist/menu/MenuKbdFixture.svelte.d.ts +0 -19
  230. package/dist/menu/MenuKbdFixture.svelte.d.ts.map +0 -1
  231. package/dist/meta.test.d.ts +0 -2
  232. package/dist/meta.test.d.ts.map +0 -1
  233. package/dist/meta.test.js +0 -164
  234. package/dist/modal/Modal.a11y.test.d.ts +0 -2
  235. package/dist/modal/Modal.a11y.test.d.ts.map +0 -1
  236. package/dist/modal/Modal.a11y.test.js +0 -38
  237. package/dist/modal/Modal.kbd.test.d.ts +0 -2
  238. package/dist/modal/Modal.kbd.test.d.ts.map +0 -1
  239. package/dist/modal/Modal.kbd.test.js +0 -52
  240. package/dist/modal/ModalKbdFixture.svelte +0 -24
  241. package/dist/modal/ModalKbdFixture.svelte.d.ts +0 -4
  242. package/dist/modal/ModalKbdFixture.svelte.d.ts.map +0 -1
  243. package/dist/notification/NotificationItem.a11y.test.d.ts +0 -2
  244. package/dist/notification/NotificationItem.a11y.test.d.ts.map +0 -1
  245. package/dist/notification/NotificationItem.a11y.test.js +0 -64
  246. package/dist/overflow-list/OverflowList.a11y.test.d.ts +0 -2
  247. package/dist/overflow-list/OverflowList.a11y.test.d.ts.map +0 -1
  248. package/dist/overflow-list/OverflowList.a11y.test.js +0 -41
  249. package/dist/overflow-list/OverflowList.kbd.test.d.ts +0 -2
  250. package/dist/overflow-list/OverflowList.kbd.test.d.ts.map +0 -1
  251. package/dist/overflow-list/OverflowList.kbd.test.js +0 -28
  252. package/dist/overflow-list/OverflowListA11yFixture.svelte +0 -22
  253. package/dist/overflow-list/OverflowListA11yFixture.svelte.d.ts +0 -8
  254. package/dist/overflow-list/OverflowListA11yFixture.svelte.d.ts.map +0 -1
  255. package/dist/overflow-list/OverflowListKbdFixture.svelte +0 -21
  256. package/dist/overflow-list/OverflowListKbdFixture.svelte.d.ts +0 -19
  257. package/dist/overflow-list/OverflowListKbdFixture.svelte.d.ts.map +0 -1
  258. package/dist/pagination/Pagination.a11y.test.d.ts +0 -2
  259. package/dist/pagination/Pagination.a11y.test.d.ts.map +0 -1
  260. package/dist/pagination/Pagination.a11y.test.js +0 -57
  261. package/dist/pagination/Pagination.kbd.test.d.ts +0 -2
  262. package/dist/pagination/Pagination.kbd.test.d.ts.map +0 -1
  263. package/dist/pagination/Pagination.kbd.test.js +0 -54
  264. package/dist/pagination/PaginationKbdFixture.svelte +0 -15
  265. package/dist/pagination/PaginationKbdFixture.svelte.d.ts +0 -19
  266. package/dist/pagination/PaginationKbdFixture.svelte.d.ts.map +0 -1
  267. package/dist/popconfirm/Popconfirm.a11y.test.d.ts +0 -2
  268. package/dist/popconfirm/Popconfirm.a11y.test.d.ts.map +0 -1
  269. package/dist/popconfirm/Popconfirm.a11y.test.js +0 -37
  270. package/dist/popconfirm/Popconfirm.kbd.test.d.ts +0 -2
  271. package/dist/popconfirm/Popconfirm.kbd.test.d.ts.map +0 -1
  272. package/dist/popconfirm/Popconfirm.kbd.test.js +0 -36
  273. package/dist/popconfirm/PopconfirmA11yFixture.svelte +0 -34
  274. package/dist/popconfirm/PopconfirmA11yFixture.svelte.d.ts +0 -11
  275. package/dist/popconfirm/PopconfirmA11yFixture.svelte.d.ts.map +0 -1
  276. package/dist/popconfirm/PopconfirmKbdFixture.svelte +0 -17
  277. package/dist/popconfirm/PopconfirmKbdFixture.svelte.d.ts +0 -19
  278. package/dist/popconfirm/PopconfirmKbdFixture.svelte.d.ts.map +0 -1
  279. package/dist/popover/Popover.a11y.test.d.ts +0 -2
  280. package/dist/popover/Popover.a11y.test.d.ts.map +0 -1
  281. package/dist/popover/Popover.a11y.test.js +0 -47
  282. package/dist/popover/Popover.kbd.test.d.ts +0 -2
  283. package/dist/popover/Popover.kbd.test.d.ts.map +0 -1
  284. package/dist/popover/Popover.kbd.test.js +0 -36
  285. package/dist/popover/PopoverA11yFixture.svelte +0 -35
  286. package/dist/popover/PopoverA11yFixture.svelte.d.ts +0 -11
  287. package/dist/popover/PopoverA11yFixture.svelte.d.ts.map +0 -1
  288. package/dist/popover/PopoverKbdFixture.svelte +0 -18
  289. package/dist/popover/PopoverKbdFixture.svelte.d.ts +0 -19
  290. package/dist/popover/PopoverKbdFixture.svelte.d.ts.map +0 -1
  291. package/dist/progress/Progress.a11y.test.d.ts +0 -2
  292. package/dist/progress/Progress.a11y.test.d.ts.map +0 -1
  293. package/dist/progress/Progress.a11y.test.js +0 -34
  294. package/dist/radio/RadioGroup.a11y.test.d.ts +0 -2
  295. package/dist/radio/RadioGroup.a11y.test.d.ts.map +0 -1
  296. package/dist/radio/RadioGroup.a11y.test.js +0 -38
  297. package/dist/radio/RadioGroup.kbd.test.d.ts +0 -2
  298. package/dist/radio/RadioGroup.kbd.test.d.ts.map +0 -1
  299. package/dist/radio/RadioGroup.kbd.test.js +0 -59
  300. package/dist/radio/RadioGroupKbdFixture.svelte +0 -21
  301. package/dist/radio/RadioGroupKbdFixture.svelte.d.ts +0 -19
  302. package/dist/radio/RadioGroupKbdFixture.svelte.d.ts.map +0 -1
  303. package/dist/rating/Rating.a11y.test.d.ts +0 -2
  304. package/dist/rating/Rating.a11y.test.d.ts.map +0 -1
  305. package/dist/rating/Rating.a11y.test.js +0 -38
  306. package/dist/rating/Rating.kbd.test.d.ts +0 -2
  307. package/dist/rating/Rating.kbd.test.d.ts.map +0 -1
  308. package/dist/rating/Rating.kbd.test.js +0 -41
  309. package/dist/rating/RatingKbdFixture.svelte +0 -15
  310. package/dist/rating/RatingKbdFixture.svelte.d.ts +0 -19
  311. package/dist/rating/RatingKbdFixture.svelte.d.ts.map +0 -1
  312. package/dist/select/Select.a11y.test.d.ts +0 -2
  313. package/dist/select/Select.a11y.test.d.ts.map +0 -1
  314. package/dist/select/Select.a11y.test.js +0 -53
  315. package/dist/select/Select.kbd.test.d.ts +0 -2
  316. package/dist/select/Select.kbd.test.d.ts.map +0 -1
  317. package/dist/select/Select.kbd.test.js +0 -47
  318. package/dist/select/SelectKbdFixture.svelte +0 -29
  319. package/dist/select/SelectKbdFixture.svelte.d.ts +0 -4
  320. package/dist/select/SelectKbdFixture.svelte.d.ts.map +0 -1
  321. package/dist/side-sheet/SideSheet.a11y.test.d.ts +0 -2
  322. package/dist/side-sheet/SideSheet.a11y.test.d.ts.map +0 -1
  323. package/dist/side-sheet/SideSheet.a11y.test.js +0 -46
  324. package/dist/side-sheet/SideSheet.kbd.test.d.ts +0 -2
  325. package/dist/side-sheet/SideSheet.kbd.test.d.ts.map +0 -1
  326. package/dist/side-sheet/SideSheet.kbd.test.js +0 -49
  327. package/dist/side-sheet/SideSheetKbdFixture.svelte +0 -30
  328. package/dist/side-sheet/SideSheetKbdFixture.svelte.d.ts +0 -4
  329. package/dist/side-sheet/SideSheetKbdFixture.svelte.d.ts.map +0 -1
  330. package/dist/skeleton/Skeleton.a11y.test.d.ts +0 -2
  331. package/dist/skeleton/Skeleton.a11y.test.d.ts.map +0 -1
  332. package/dist/skeleton/Skeleton.a11y.test.js +0 -32
  333. package/dist/slider/Slider.a11y.test.d.ts +0 -2
  334. package/dist/slider/Slider.a11y.test.d.ts.map +0 -1
  335. package/dist/slider/Slider.a11y.test.js +0 -40
  336. package/dist/slider/Slider.kbd.test.d.ts +0 -2
  337. package/dist/slider/Slider.kbd.test.d.ts.map +0 -1
  338. package/dist/slider/Slider.kbd.test.js +0 -63
  339. package/dist/slider/SliderKbdFixture.svelte +0 -21
  340. package/dist/slider/SliderKbdFixture.svelte.d.ts +0 -19
  341. package/dist/slider/SliderKbdFixture.svelte.d.ts.map +0 -1
  342. package/dist/space/Space.a11y.test.d.ts +0 -2
  343. package/dist/space/Space.a11y.test.d.ts.map +0 -1
  344. package/dist/space/Space.a11y.test.js +0 -20
  345. package/dist/space/SpaceA11yFixture.svelte +0 -17
  346. package/dist/space/SpaceA11yFixture.svelte.d.ts +0 -7
  347. package/dist/space/SpaceA11yFixture.svelte.d.ts.map +0 -1
  348. package/dist/spin/Spin.a11y.test.d.ts +0 -2
  349. package/dist/spin/Spin.a11y.test.d.ts.map +0 -1
  350. package/dist/spin/Spin.a11y.test.js +0 -27
  351. package/dist/spin/SpinA11yFixture.svelte +0 -18
  352. package/dist/spin/SpinA11yFixture.svelte.d.ts +0 -7
  353. package/dist/spin/SpinA11yFixture.svelte.d.ts.map +0 -1
  354. package/dist/steps/Steps.a11y.test.d.ts +0 -2
  355. package/dist/steps/Steps.a11y.test.d.ts.map +0 -1
  356. package/dist/steps/Steps.a11y.test.js +0 -35
  357. package/dist/steps/Steps.kbd.test.d.ts +0 -2
  358. package/dist/steps/Steps.kbd.test.d.ts.map +0 -1
  359. package/dist/steps/Steps.kbd.test.js +0 -59
  360. package/dist/steps/StepsKbdFixture.svelte +0 -21
  361. package/dist/steps/StepsKbdFixture.svelte.d.ts +0 -19
  362. package/dist/steps/StepsKbdFixture.svelte.d.ts.map +0 -1
  363. package/dist/switch/Switch.a11y.test.d.ts +0 -2
  364. package/dist/switch/Switch.a11y.test.d.ts.map +0 -1
  365. package/dist/switch/Switch.a11y.test.js +0 -42
  366. package/dist/switch/Switch.kbd.test.d.ts +0 -2
  367. package/dist/switch/Switch.kbd.test.d.ts.map +0 -1
  368. package/dist/switch/Switch.kbd.test.js +0 -34
  369. package/dist/switch/SwitchKbdFixture.svelte +0 -22
  370. package/dist/switch/SwitchKbdFixture.svelte.d.ts +0 -4
  371. package/dist/switch/SwitchKbdFixture.svelte.d.ts.map +0 -1
  372. package/dist/table/Table.a11y.test.d.ts +0 -2
  373. package/dist/table/Table.a11y.test.d.ts.map +0 -1
  374. package/dist/table/Table.a11y.test.js +0 -59
  375. package/dist/table/Table.bench.d.ts +0 -2
  376. package/dist/table/Table.bench.d.ts.map +0 -1
  377. package/dist/table/Table.bench.js +0 -31
  378. package/dist/table/Table.kbd.test.d.ts +0 -2
  379. package/dist/table/Table.kbd.test.d.ts.map +0 -1
  380. package/dist/table/Table.kbd.test.js +0 -74
  381. package/dist/table/TableKbdFixture.svelte +0 -35
  382. package/dist/table/TableKbdFixture.svelte.d.ts +0 -19
  383. package/dist/table/TableKbdFixture.svelte.d.ts.map +0 -1
  384. package/dist/table/grid-nav.test.d.ts +0 -2
  385. package/dist/table/grid-nav.test.d.ts.map +0 -1
  386. package/dist/table/grid-nav.test.js +0 -133
  387. package/dist/tabs/Tabs.a11y.test.d.ts +0 -2
  388. package/dist/tabs/Tabs.a11y.test.d.ts.map +0 -1
  389. package/dist/tabs/Tabs.a11y.test.js +0 -43
  390. package/dist/tabs/Tabs.kbd.test.d.ts +0 -2
  391. package/dist/tabs/Tabs.kbd.test.d.ts.map +0 -1
  392. package/dist/tabs/Tabs.kbd.test.js +0 -63
  393. package/dist/tabs/TabsA11yFixture.svelte +0 -20
  394. package/dist/tabs/TabsA11yFixture.svelte.d.ts +0 -8
  395. package/dist/tabs/TabsA11yFixture.svelte.d.ts.map +0 -1
  396. package/dist/tabs/TabsKbdFixture.svelte +0 -25
  397. package/dist/tabs/TabsKbdFixture.svelte.d.ts +0 -7
  398. package/dist/tabs/TabsKbdFixture.svelte.d.ts.map +0 -1
  399. package/dist/tag/Tag.a11y.test.d.ts +0 -2
  400. package/dist/tag/Tag.a11y.test.d.ts.map +0 -1
  401. package/dist/tag/Tag.a11y.test.js +0 -30
  402. package/dist/tag/TagA11yFixture.svelte +0 -18
  403. package/dist/tag/TagA11yFixture.svelte.d.ts +0 -8
  404. package/dist/tag/TagA11yFixture.svelte.d.ts.map +0 -1
  405. package/dist/tag-input/TagInput.a11y.test.d.ts +0 -2
  406. package/dist/tag-input/TagInput.a11y.test.d.ts.map +0 -1
  407. package/dist/tag-input/TagInput.a11y.test.js +0 -38
  408. package/dist/tag-input/reorder.test.d.ts +0 -2
  409. package/dist/tag-input/reorder.test.d.ts.map +0 -1
  410. package/dist/tag-input/reorder.test.js +0 -48
  411. package/dist/test-utils/LocaleHarness.svelte +0 -29
  412. package/dist/test-utils/LocaleHarness.svelte.d.ts +0 -11
  413. package/dist/test-utils/LocaleHarness.svelte.d.ts.map +0 -1
  414. package/dist/test-utils/a11y.d.ts +0 -36
  415. package/dist/test-utils/a11y.d.ts.map +0 -1
  416. package/dist/test-utils/a11y.js +0 -68
  417. package/dist/test-utils/kbd.d.ts +0 -26
  418. package/dist/test-utils/kbd.d.ts.map +0 -1
  419. package/dist/test-utils/kbd.js +0 -38
  420. package/dist/textarea/TextArea.a11y.test.d.ts +0 -2
  421. package/dist/textarea/TextArea.a11y.test.d.ts.map +0 -1
  422. package/dist/textarea/TextArea.a11y.test.js +0 -41
  423. package/dist/time-picker/TimePicker.a11y.test.d.ts +0 -2
  424. package/dist/time-picker/TimePicker.a11y.test.d.ts.map +0 -1
  425. package/dist/time-picker/TimePicker.a11y.test.js +0 -42
  426. package/dist/time-picker/TimePicker.kbd.test.d.ts +0 -2
  427. package/dist/time-picker/TimePicker.kbd.test.d.ts.map +0 -1
  428. package/dist/time-picker/TimePicker.kbd.test.js +0 -59
  429. package/dist/time-picker/TimePickerKbdFixture.svelte +0 -23
  430. package/dist/time-picker/TimePickerKbdFixture.svelte.d.ts +0 -4
  431. package/dist/time-picker/TimePickerKbdFixture.svelte.d.ts.map +0 -1
  432. package/dist/timeline/Timeline.a11y.test.d.ts +0 -2
  433. package/dist/timeline/Timeline.a11y.test.d.ts.map +0 -1
  434. package/dist/timeline/Timeline.a11y.test.js +0 -51
  435. package/dist/toast/Toast.a11y.test.d.ts +0 -2
  436. package/dist/toast/Toast.a11y.test.d.ts.map +0 -1
  437. package/dist/toast/Toast.a11y.test.js +0 -58
  438. package/dist/tooltip/Tooltip.a11y.test.d.ts +0 -2
  439. package/dist/tooltip/Tooltip.a11y.test.d.ts.map +0 -1
  440. package/dist/tooltip/Tooltip.a11y.test.js +0 -33
  441. package/dist/tooltip/Tooltip.kbd.test.d.ts +0 -2
  442. package/dist/tooltip/Tooltip.kbd.test.d.ts.map +0 -1
  443. package/dist/tooltip/Tooltip.kbd.test.js +0 -31
  444. package/dist/tooltip/TooltipA11yFixture.svelte +0 -31
  445. package/dist/tooltip/TooltipA11yFixture.svelte.d.ts +0 -11
  446. package/dist/tooltip/TooltipA11yFixture.svelte.d.ts.map +0 -1
  447. package/dist/tooltip/TooltipKbdFixture.svelte +0 -16
  448. package/dist/tooltip/TooltipKbdFixture.svelte.d.ts +0 -19
  449. package/dist/tooltip/TooltipKbdFixture.svelte.d.ts.map +0 -1
  450. package/dist/transfer/Transfer.a11y.test.d.ts +0 -2
  451. package/dist/transfer/Transfer.a11y.test.d.ts.map +0 -1
  452. package/dist/transfer/Transfer.a11y.test.js +0 -59
  453. package/dist/transfer/Transfer.kbd.test.d.ts +0 -2
  454. package/dist/transfer/Transfer.kbd.test.d.ts.map +0 -1
  455. package/dist/transfer/Transfer.kbd.test.js +0 -64
  456. package/dist/transfer/TransferKbdFixture.svelte +0 -23
  457. package/dist/transfer/TransferKbdFixture.svelte.d.ts +0 -4
  458. package/dist/transfer/TransferKbdFixture.svelte.d.ts.map +0 -1
  459. package/dist/transfer/group.test.d.ts +0 -2
  460. package/dist/transfer/group.test.d.ts.map +0 -1
  461. package/dist/transfer/group.test.js +0 -47
  462. package/dist/transfer/reorder.test.d.ts +0 -2
  463. package/dist/transfer/reorder.test.d.ts.map +0 -1
  464. package/dist/transfer/reorder.test.js +0 -42
  465. package/dist/transfer/tree.test.d.ts +0 -2
  466. package/dist/transfer/tree.test.d.ts.map +0 -1
  467. package/dist/transfer/tree.test.js +0 -39
  468. package/dist/tree/Tree.a11y.test.d.ts +0 -2
  469. package/dist/tree/Tree.a11y.test.d.ts.map +0 -1
  470. package/dist/tree/Tree.a11y.test.js +0 -56
  471. package/dist/tree/Tree.kbd.test.d.ts +0 -2
  472. package/dist/tree/Tree.kbd.test.d.ts.map +0 -1
  473. package/dist/tree/Tree.kbd.test.js +0 -78
  474. package/dist/tree/TreeKbdFixture.svelte +0 -30
  475. package/dist/tree/TreeKbdFixture.svelte.d.ts +0 -19
  476. package/dist/tree/TreeKbdFixture.svelte.d.ts.map +0 -1
  477. package/dist/tree-select/TreeSelect.a11y.test.d.ts +0 -2
  478. package/dist/tree-select/TreeSelect.a11y.test.d.ts.map +0 -1
  479. package/dist/tree-select/TreeSelect.a11y.test.js +0 -48
  480. package/dist/tree-select/TreeSelect.kbd.test.d.ts +0 -2
  481. package/dist/tree-select/TreeSelect.kbd.test.d.ts.map +0 -1
  482. package/dist/tree-select/TreeSelect.kbd.test.js +0 -46
  483. package/dist/tree-select/TreeSelectKbdFixture.svelte +0 -20
  484. package/dist/tree-select/TreeSelectKbdFixture.svelte.d.ts +0 -19
  485. package/dist/tree-select/TreeSelectKbdFixture.svelte.d.ts.map +0 -1
  486. package/dist/tree-select/virtual.test.d.ts +0 -2
  487. package/dist/tree-select/virtual.test.d.ts.map +0 -1
  488. package/dist/tree-select/virtual.test.js +0 -86
  489. package/dist/typography/Typography.a11y.test.d.ts +0 -2
  490. package/dist/typography/Typography.a11y.test.d.ts.map +0 -1
  491. package/dist/typography/Typography.a11y.test.js +0 -31
  492. package/dist/typography/TypographyA11yFixture.svelte +0 -27
  493. package/dist/typography/TypographyA11yFixture.svelte.d.ts +0 -9
  494. package/dist/typography/TypographyA11yFixture.svelte.d.ts.map +0 -1
  495. package/dist/upload/Upload.a11y.test.d.ts +0 -2
  496. package/dist/upload/Upload.a11y.test.d.ts.map +0 -1
  497. package/dist/upload/Upload.a11y.test.js +0 -49
  498. package/dist/upload/UploadA11yFixture.svelte +0 -23
  499. package/dist/upload/UploadA11yFixture.svelte.d.ts +0 -10
  500. package/dist/upload/UploadA11yFixture.svelte.d.ts.map +0 -1
package/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # @chenzy-design/svelte
2
+
3
+ 基于 Svelte 5 的企业级组件库,对标 Semi Design。69 个组件,无障碍 · 主题化 · i18n · 性能基准。
4
+
5
+ 📖 文档站:<https://chenzylab.github.io/chenzy-design/>
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ pnpm add @chenzy-design/svelte @chenzy-design/tokens
11
+ ```
12
+
13
+ > `@chenzy-design/core` / `@chenzy-design/locale` 会作为依赖自动安装。`@chenzy-design/tokens` 需显式安装,因为它提供组件所需的 CSS 变量(见下)。
14
+
15
+ ## 快速开始
16
+
17
+ ### 1. 引入设计令牌 CSS(必须)
18
+
19
+ 组件的颜色、间距、圆角等都基于 CSS 变量(`--cd-*`)。**不引入 `tokens.css` 组件将没有任何样式。** 在应用入口引入一次即可:
20
+
21
+ ```svelte
22
+ <!-- src/routes/+layout.svelte(SvelteKit)或应用根组件 -->
23
+ <script>
24
+ import '@chenzy-design/tokens/tokens.css';
25
+ let { children } = $props();
26
+ </script>
27
+
28
+ {@render children()}
29
+ ```
30
+
31
+ ### 2. 使用组件
32
+
33
+ ```svelte
34
+ <script lang="ts">
35
+ import { Button, Input, Switch } from '@chenzy-design/svelte';
36
+
37
+ let text = $state('');
38
+ let on = $state(false);
39
+ </script>
40
+
41
+ <Button type="primary" onclick={() => alert('clicked')}>主要按钮</Button>
42
+ <Input bind:value={text} placeholder="请输入" />
43
+ <Switch bind:value={on} />
44
+ ```
45
+
46
+ ## 暗色模式
47
+
48
+ `tokens.css` 内置暗色变量。给 `<html>` 设置 `data-theme="dark"` 即可切换:
49
+
50
+ ```js
51
+ document.documentElement.setAttribute('data-theme', 'dark'); // 暗色
52
+ document.documentElement.setAttribute('data-theme', 'light'); // 亮色
53
+ ```
54
+
55
+ ## 要求
56
+
57
+ - **Svelte 5**(使用 runes,`peerDependency: svelte >= 5.0.0`)
58
+ - 任意支持 Svelte 的打包器(Vite / SvelteKit 等)
59
+
60
+ ## 组件清单
61
+
62
+ 69 个组件,覆盖基础 / 输入 / 导航 / 展示 / 反馈 / 其他六大类。完整 API、设计文档与在线演示见 [文档站](https://chenzylab.github.io/chenzy-design/)。
63
+
64
+ ## 许可
65
+
66
+ MIT
@@ -50,9 +50,12 @@
50
50
  countContent,
51
51
  }: Props = $props();
52
52
 
53
- // count 变化时触发滚动动画
53
+ // count 变化时触发滚动动画。
54
+ // 注意:prevDisplayCount 不能在声明处用 $state(displayCount) 预填——displayCount
55
+ // 是下方声明的 $derived,提前读会触发 TDZ(Cannot access 'displayCount' before
56
+ // initialization)。改为 undefined 起始,首个 effect 跑时再 seed。
54
57
  let motionActive = $state(false);
55
- let prevDisplayCount = $state(displayCount);
58
+ let prevDisplayCount = $state<string | number | undefined>(undefined);
56
59
 
57
60
  $effect(() => {
58
61
  const current = displayCount;
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.svelte.d.ts","sourceRoot":"","sources":["../../src/badge/Badge.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,KAAK,SAAS,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AACb,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AACpC,KAAK,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;AAC/E,KAAK,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AACrC,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9E,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAkIH,QAAA,MAAM,KAAK,2CAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Badge.svelte.d.ts","sourceRoot":"","sources":["../../src/badge/Badge.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,KAAK,SAAS,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AACb,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AACpC,KAAK,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;AAC/E,KAAK,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AACrC,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9E,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAqIH,QAAA,MAAM,KAAK,2CAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "1",
3
3
  "generatedFrom": "@chenzy-design/svelte component meta.ts files",
4
- "generatedAt": "2026-06-27T13:56:13.779Z",
4
+ "generatedAt": "2026-06-27T14:57:18.183Z",
5
5
  "count": 69,
6
6
  "components": {
7
7
  "Button": {
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@chenzy-design/svelte",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
+ "license": "MIT",
4
5
  "type": "module",
5
6
  "sideEffects": [
6
7
  "*.css",
@@ -23,9 +24,9 @@
23
24
  "dist"
24
25
  ],
25
26
  "dependencies": {
26
- "@chenzy-design/core": "0.2.0",
27
- "@chenzy-design/locale": "0.2.0",
28
- "@chenzy-design/tokens": "0.2.0"
27
+ "@chenzy-design/core": "0.2.1",
28
+ "@chenzy-design/locale": "0.2.1",
29
+ "@chenzy-design/tokens": "0.2.1"
29
30
  },
30
31
  "devDependencies": {
31
32
  "tsx": "^4.19.2"
@@ -34,7 +35,7 @@
34
35
  "svelte": ">=5.0.0"
35
36
  },
36
37
  "scripts": {
37
- "build": "svelte-package -i src -o dist && pnpm build:meta",
38
+ "build": "svelte-package -i src -o dist && node scripts/clean-dist.mjs && pnpm build:meta",
38
39
  "build:meta": "tsx scripts/build-components-json.ts",
39
40
  "typecheck": "svelte-check --tsconfig ./tsconfig.json"
40
41
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Anchor.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Anchor.a11y.test.d.ts","sourceRoot":"","sources":["../../src/anchor/Anchor.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,44 +0,0 @@
1
- // Anchor a11y:导航锚点列表。
2
- // - nav[aria-label] 包裹原生 <a> 链接列表;激活链接 aria-current(这里值为 'location')。
3
- // - 嵌套 links.children 形成 ul/li 树。
4
- // jsdom 只断言静态 ARIA + axe(scroll-spy / roving 键盘留给真实浏览器)。
5
- import { describe, it, expect } from 'vitest';
6
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
7
- import Anchor from './Anchor.svelte';
8
- const links = [
9
- { key: 'intro', href: '#intro', title: 'Intro' },
10
- { key: 'usage', href: '#usage', title: 'Usage' },
11
- ];
12
- describe('Anchor a11y', () => {
13
- it('默认渲染:nav[aria-label] + 链接列表,无 axe violations', async () => {
14
- const { container } = renderWithLocale(Anchor, { props: { links } });
15
- const nav = container.querySelector('nav.cd-anchor');
16
- expect(nav).not.toBeNull();
17
- // ariaLabel 缺省走 locale,应为非空可访问名。
18
- expect(nav?.getAttribute('aria-label')).toBeTruthy();
19
- expect(container.querySelectorAll('a.cd-anchor__link')).toHaveLength(2);
20
- await expectNoAxeViolations(container);
21
- });
22
- it('激活链接带 aria-current(首个默认激活)', async () => {
23
- const { container } = renderWithLocale(Anchor, {
24
- props: { links, defaultValue: 'usage' },
25
- });
26
- const current = container.querySelector('a[aria-current]');
27
- expect(current?.textContent?.trim()).toBe('Usage');
28
- await expectNoAxeViolations(container);
29
- });
30
- it('嵌套链接:渲染嵌套 ul/li 树,无 axe violations', async () => {
31
- const nested = [
32
- {
33
- key: 'a',
34
- href: '#a',
35
- title: 'A',
36
- children: [{ key: 'a1', href: '#a1', title: 'A1' }],
37
- },
38
- ];
39
- const { container } = renderWithLocale(Anchor, { props: { links: nested } });
40
- // 顶层 ul 内含子 ul(嵌套树)。
41
- expect(container.querySelector('.cd-anchor__list .cd-anchor__list')).not.toBeNull();
42
- await expectNoAxeViolations(container);
43
- });
44
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Anchor.kbd.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Anchor.kbd.test.d.ts","sourceRoot":"","sources":["../../src/anchor/Anchor.kbd.test.ts"],"names":[],"mappings":""}
@@ -1,59 +0,0 @@
1
- // Anchor 键盘 e2e(browser project / 真实 chromium)。
2
- // 链接列表为单一 Tab 停靠点,roving(真实焦点)。
3
- // 测真实焦点移动 + Space 激活——jsdom 测不了(命令式 focus() 不可靠):
4
- // 1. roving 单停靠点:Tab 进入只停在一个链接(其余 tabindex=-1,默认首个)。
5
- // 2. ↑↓/←→ 真实移动焦点到相邻链接(无 wrap:clamp,源码 nextRovingIndex(...,false))。
6
- // 3. Home/End 跳首/末链接。
7
- // 4. Space 激活当前焦点链接(aria-current=location)。
8
- //
9
- // 真实焦点断言用 page locator 的 .toHaveFocus()。
10
- import { describe, it, expect } from 'vitest';
11
- import { page } from 'vitest/browser';
12
- import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
13
- import AnchorKbdFixture from './AnchorKbdFixture.svelte';
14
- function loc(el) {
15
- return page.elementLocator(el);
16
- }
17
- describe('Anchor 键盘 e2e(链接 roving,真实焦点)', () => {
18
- it('Tab 单停靠点 + 方向键移动焦点(clamp)+ Home/End + Space 激活', async () => {
19
- const { baseElement } = renderKbdFixture(AnchorKbdFixture);
20
- const links = Array.from(baseElement.querySelectorAll('a[data-anchor-key]'));
21
- expect(links.length).toBe(3);
22
- const [one, two, three] = links;
23
- // 1. roving 单停靠点:默认首链接为 tabindex=0,其余 -1。
24
- expect(links.filter((el) => el.tabIndex === 0).length).toBe(1);
25
- expect(one.tabIndex).toBe(0);
26
- const before = baseElement.querySelector('[data-testid="before"]');
27
- before.focus();
28
- await expect.element(loc(before)).toHaveFocus();
29
- await userEvent.tab();
30
- await expect.element(loc(one)).toHaveFocus();
31
- // 2. ↓ 移动焦点到下一链接(真实焦点 + 停靠点同步)。
32
- await userEvent.keyboard('{ArrowDown}');
33
- await expect.element(loc(two)).toHaveFocus();
34
- expect(two.tabIndex).toBe(0);
35
- expect(one.tabIndex).toBe(-1);
36
- await userEvent.keyboard('{ArrowDown}');
37
- await expect.element(loc(three)).toHaveFocus();
38
- // 无 wrap:末项再 ↓ 停在末项(clamp)。
39
- await userEvent.keyboard('{ArrowDown}');
40
- await expect.element(loc(three)).toHaveFocus();
41
- // ↑ 回退;首项再 ↑ 停在首项(clamp)。
42
- await userEvent.keyboard('{ArrowUp}');
43
- await expect.element(loc(two)).toHaveFocus();
44
- await userEvent.keyboard('{ArrowUp}');
45
- await expect.element(loc(one)).toHaveFocus();
46
- await userEvent.keyboard('{ArrowUp}');
47
- await expect.element(loc(one)).toHaveFocus();
48
- // 3. Home/End 跳首/末。
49
- await userEvent.keyboard('{End}');
50
- await expect.element(loc(three)).toHaveFocus();
51
- await userEvent.keyboard('{Home}');
52
- await expect.element(loc(one)).toHaveFocus();
53
- // 4. Space 激活当前焦点链接(aria-current=location)。
54
- await userEvent.keyboard('{ArrowDown}');
55
- await expect.element(loc(two)).toHaveFocus();
56
- await userEvent.keyboard(' ');
57
- await expect.element(loc(two)).toHaveAttribute('aria-current', 'location');
58
- });
59
- });
@@ -1,24 +0,0 @@
1
- <!--
2
- 仅供 Anchor.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- 链接列表为单一 Tab 停靠点(roving,真实焦点)。带对应 section 目标。
4
- 前后各放按钮验证 Tab 进入只停靠单个链接、Tab 出去落到 after。
5
- -->
6
- <script lang="ts">
7
- import { LocaleProvider } from '../locale-provider/index.js';
8
- import Anchor from './Anchor.svelte';
9
-
10
- const links = [
11
- { key: 'one', href: '#sec-one', title: 'Section One' },
12
- { key: 'two', href: '#sec-two', title: 'Section Two' },
13
- { key: 'three', href: '#sec-three', title: 'Section Three' },
14
- ];
15
- </script>
16
-
17
- <LocaleProvider locale="en_US">
18
- <button type="button" data-testid="before">before</button>
19
- <Anchor {links} ariaLabel="On this page" />
20
- <button type="button" data-testid="after">after</button>
21
- <section id="sec-one">one</section>
22
- <section id="sec-two">two</section>
23
- <section id="sec-three">three</section>
24
- </LocaleProvider>
@@ -1,19 +0,0 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const AnchorKbdFixture: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, string>;
17
- type AnchorKbdFixture = InstanceType<typeof AnchorKbdFixture>;
18
- export default AnchorKbdFixture;
19
- //# sourceMappingURL=AnchorKbdFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnchorKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/anchor/AnchorKbdFixture.svelte.ts"],"names":[],"mappings":"AA6BA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,gBAAgB;;kBAA+E,CAAC;AACpF,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,eAAe,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AutoComplete.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoComplete.a11y.test.d.ts","sourceRoot":"","sources":["../../src/autocomplete/AutoComplete.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,45 +0,0 @@
1
- // AutoComplete a11y:combobox 文本输入 + 内联 listbox/option 下拉(非 portal)。
2
- // 只断言静态 ARIA + axe,不测真实键盘/焦点(jsdom 限制)。下拉内联在 root 子树,扫 container。
3
- //
4
- // 修复记录:input role="combobox" 现经 ariaLabel/ariaLabelledby prop 或
5
- // placeholder(非空) / locale AutoComplete.ariaLabel 回退获可访问名,
6
- // 打开态 axe aria-input-field-name 消除。
7
- import { describe, it, expect } from 'vitest';
8
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
9
- import AutoComplete from './AutoComplete.svelte';
10
- const data = [
11
- { label: 'alpha', value: 'alpha' },
12
- { label: 'alphabet', value: 'alphabet' },
13
- { label: 'beta', value: 'beta' },
14
- ];
15
- describe('AutoComplete a11y', () => {
16
- it('关闭态:input role=combobox / aria-autocomplete=list,无 axe violations', async () => {
17
- const { container } = renderWithLocale(AutoComplete, {
18
- props: { data, placeholder: 'Type to search' },
19
- });
20
- const combobox = container.querySelector('[role="combobox"]');
21
- expect(combobox).not.toBeNull();
22
- expect(combobox?.getAttribute('aria-autocomplete')).toBe('list');
23
- expect(combobox?.getAttribute('aria-expanded')).toBe('false');
24
- await expectNoAxeViolations(container);
25
- });
26
- it('打开态:listbox + option 内联渲染 + aria-controls 指向 listbox(结构断言)', () => {
27
- const { container } = renderWithLocale(AutoComplete, {
28
- props: { data, defaultOpen: true, defaultValue: 'a' },
29
- });
30
- const combobox = container.querySelector('[role="combobox"]');
31
- const listbox = container.querySelector('[role="listbox"]');
32
- expect(listbox).not.toBeNull();
33
- expect(container.querySelectorAll('[role="option"]').length).toBeGreaterThan(0);
34
- expect(combobox?.getAttribute('aria-expanded')).toBe('true');
35
- expect(combobox?.getAttribute('aria-controls')).toBe(listbox?.getAttribute('id'));
36
- });
37
- // combobox input 可访问名缺省走 locale AutoComplete.ariaLabel(placeholder 此处为空)。
38
- it('打开态:axe 0 violations(combobox input 经 locale 获可访问名)', async () => {
39
- const { container } = renderWithLocale(AutoComplete, {
40
- props: { data, defaultOpen: true, defaultValue: 'a' },
41
- });
42
- expect(container.querySelector('[role="combobox"]')?.getAttribute('aria-label')).toBeTruthy();
43
- await expectNoAxeViolations(container);
44
- });
45
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AutoComplete.kbd.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoComplete.kbd.test.d.ts","sourceRoot":"","sources":["../../src/autocomplete/AutoComplete.kbd.test.ts"],"names":[],"mappings":""}
@@ -1,60 +0,0 @@
1
- // AutoComplete 键盘 e2e(browser project / 真实 chromium)。
2
- // 输入框 role=combobox,焦点始终留在 input 上;高亮走 aria-activedescendant
3
- // 指向当前 option id(options tabindex=-1,从不真实聚焦)——故断言
4
- // activedescendant 变化,而非 toHaveFocus。
5
- // 1. 输入后浮层打开(aria-expanded=true),defaultActiveFirstOption 高亮首项。
6
- // 2. ↓ 移高亮到下一项,↑ 回上一项(activedescendant 变化)。
7
- // 3. Enter 选中当前高亮项(onSelect 写入夹具 output),浮层关闭。
8
- // 4. Esc 关闭浮层。
9
- import { describe, it, expect, vi } from 'vitest';
10
- import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
11
- import AutoCompleteKbdFixture from './AutoCompleteKbdFixture.svelte';
12
- describe('AutoComplete 键盘 e2e(combobox aria-activedescendant 浮层导航)', () => {
13
- it('输入打开 + ↑↓ 移高亮 + Enter 选中 + Esc 关闭', async () => {
14
- renderKbdFixture(AutoCompleteKbdFixture);
15
- const combobox = document.querySelector('[role="combobox"]');
16
- expect(combobox).not.toBeNull();
17
- expect(combobox.getAttribute('aria-expanded')).toBe('false');
18
- // 1. 聚焦后输入 "Ap",过滤到 Apple / Apricot,浮层打开并高亮首项。
19
- combobox.focus();
20
- await userEvent.keyboard('Ap');
21
- // 浮层经 Svelte 响应式渲染,poll 等其出现(aria-expanded → true)。
22
- await vi.waitFor(() => {
23
- expect(document.querySelector('[role="listbox"]')).not.toBeNull();
24
- });
25
- const listbox = document.querySelector('[role="listbox"]');
26
- const listId = listbox.id;
27
- expect(listId).toBeTruthy();
28
- expect(combobox.getAttribute('aria-expanded')).toBe('true');
29
- const options = Array.from(listbox.querySelectorAll('[role="option"]'));
30
- expect(options.length).toBe(2);
31
- // option 不可真实聚焦(tabindex=-1)。
32
- expect(options.every((o) => o.tabIndex === -1)).toBe(true);
33
- // defaultActiveFirstOption:高亮落在首项(opt-0)。
34
- expect(combobox.getAttribute('aria-activedescendant')).toBe(`${listId}-opt-0`);
35
- // 2. ↓ 移到 opt-1,↑ 回 opt-0。
36
- await userEvent.keyboard('{ArrowDown}');
37
- expect(combobox.getAttribute('aria-activedescendant')).toBe(`${listId}-opt-1`);
38
- await userEvent.keyboard('{ArrowUp}');
39
- expect(combobox.getAttribute('aria-activedescendant')).toBe(`${listId}-opt-0`);
40
- // 3. Enter 选中当前高亮(opt-0 = Apple),onSelect 写入夹具;浮层关闭。
41
- await userEvent.keyboard('{Enter}');
42
- const out = document.querySelector('[data-testid="selected"]');
43
- expect(out.textContent).toBe(JSON.stringify('Apple'));
44
- await vi.waitFor(() => {
45
- expect(document.querySelector('[role="listbox"]')).toBeNull();
46
- });
47
- expect(combobox.getAttribute('aria-expanded')).toBe('false');
48
- // 4. 清空后重新输入打开浮层,再 Esc 关闭。
49
- // 选中后 value="Apple"(5 字符),全选删除再输入 "Ba" 过滤到 Banana。
50
- await userEvent.keyboard('{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}');
51
- await userEvent.keyboard('Ba');
52
- await vi.waitFor(() => {
53
- expect(document.querySelector('[role="listbox"]')).not.toBeNull();
54
- });
55
- await userEvent.keyboard('{Escape}');
56
- await vi.waitFor(() => {
57
- expect(document.querySelector('[role="listbox"]')).toBeNull();
58
- });
59
- });
60
- });
@@ -1,24 +0,0 @@
1
- <!--
2
- 仅供 AutoComplete.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- AutoComplete 输入框 role=combobox,焦点始终留在 input 上;建议浮层渲染在
4
- .cd-autocomplete 内(非 portal),高亮走 aria-activedescendant 指向 option id。
5
- 夹具暴露 onSelect 写入 lastSelected,供测试断言 Enter 选中。
6
- -->
7
- <script lang="ts">
8
- import { LocaleProvider } from '../locale-provider/index.js';
9
- import AutoComplete from './AutoComplete.svelte';
10
-
11
- const data = ['Apple', 'Apricot', 'Banana'];
12
- let lastSelected = $state<unknown>(undefined);
13
- </script>
14
-
15
- <LocaleProvider locale="en_US">
16
- <AutoComplete
17
- {data}
18
- ariaLabel="Fruit"
19
- onSelect={(v) => {
20
- lastSelected = v;
21
- }}
22
- />
23
- <output data-testid="selected">{JSON.stringify(lastSelected ?? null)}</output>
24
- </LocaleProvider>
@@ -1,4 +0,0 @@
1
- declare const AutoCompleteKbdFixture: import("svelte").Component<Record<string, never>, {}, "">;
2
- type AutoCompleteKbdFixture = ReturnType<typeof AutoCompleteKbdFixture>;
3
- export default AutoCompleteKbdFixture;
4
- //# sourceMappingURL=AutoCompleteKbdFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoCompleteKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/autocomplete/AutoCompleteKbdFixture.svelte.ts"],"names":[],"mappings":"AAwBA,QAAA,MAAM,sBAAsB,2DAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Avatar.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.a11y.test.d.ts","sourceRoot":"","sources":["../../src/avatar/Avatar.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,34 +0,0 @@
1
- // Avatar a11y:展示原子,含可交互态(href→<a> / onClick→role=button)。
2
- // 文字头像取 role=img + aria-label(来自 alt),避免逐字读缩写。
3
- import { describe, it, expect } from 'vitest';
4
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
5
- import Avatar from './Avatar.svelte';
6
- describe('Avatar a11y', () => {
7
- it('图片头像:img 带 alt,无 axe violations', async () => {
8
- const { container } = renderWithLocale(Avatar, {
9
- props: { src: 'https://example.com/a.png', alt: 'Jane Doe' },
10
- });
11
- const img = container.querySelector('img');
12
- expect(img?.getAttribute('alt')).toBe('Jane Doe');
13
- await expectNoAxeViolations(container);
14
- });
15
- it('文字头像:role=img + aria-label,无 axe violations', async () => {
16
- const { container } = renderWithLocale(Avatar, {
17
- props: { alt: 'Kim Lee' },
18
- });
19
- const root = container.querySelector('.cd-avatar');
20
- expect(root?.getAttribute('role')).toBe('img');
21
- expect(root?.getAttribute('aria-label')).toBe('Kim Lee');
22
- await expectNoAxeViolations(container);
23
- });
24
- it('可交互(onClick):role=button + tabindex=0 + aria-label,无 axe violations', async () => {
25
- const { container } = renderWithLocale(Avatar, {
26
- props: { alt: 'Settings', onClick: () => { } },
27
- });
28
- const root = container.querySelector('.cd-avatar');
29
- expect(root?.getAttribute('role')).toBe('button');
30
- expect(root?.getAttribute('tabindex')).toBe('0');
31
- expect(root?.getAttribute('aria-label')).toBe('Settings');
32
- await expectNoAxeViolations(container);
33
- });
34
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=BackTop.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackTop.a11y.test.d.ts","sourceRoot":"","sources":["../../src/back-top/BackTop.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,37 +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
- describe('BackTop a11y', () => {
9
- it('默认渲染:button 有 locale 可访问名,无 axe violations', async () => {
10
- const { container } = renderWithLocale(BackTop, {});
11
- const btn = container.querySelector('button.cd-backtop');
12
- expect(btn).not.toBeNull();
13
- expect(btn?.getAttribute('type')).toBe('button');
14
- // 缺省走 locale,应为非空可访问名(不是 key 原样)。
15
- const label = btn?.getAttribute('aria-label');
16
- expect(label).toBeTruthy();
17
- expect(label).not.toBe('BackTop.ariaLabel');
18
- await expectNoAxeViolations(container);
19
- });
20
- it('自定义 ariaLabel 覆盖可访问名', async () => {
21
- const { container } = renderWithLocale(BackTop, {
22
- props: { ariaLabel: 'Scroll to top' },
23
- });
24
- const btn = container.querySelector('button.cd-backtop');
25
- expect(btn?.getAttribute('aria-label')).toBe('Scroll to top');
26
- await expectNoAxeViolations(container);
27
- });
28
- it('announceOnArrive:渲染 role=status / aria-live=polite live region', async () => {
29
- const { container } = renderWithLocale(BackTop, {
30
- props: { announceOnArrive: true },
31
- });
32
- const live = container.querySelector('.cd-sr-only');
33
- expect(live?.getAttribute('role')).toBe('status');
34
- expect(live?.getAttribute('aria-live')).toBe('polite');
35
- await expectNoAxeViolations(container);
36
- });
37
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Badge.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.a11y.test.d.ts","sourceRoot":"","sources":["../../src/badge/Badge.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,32 +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
- describe('Badge a11y', () => {
8
- it('独立状态点:role=status,无 axe violations', async () => {
9
- const { container } = render(BadgeA11yFixture, {
10
- props: { props: { status: 'success', count: 'Online' } },
11
- });
12
- const root = container.querySelector('.cd-badge--status');
13
- expect(root?.getAttribute('role')).toBe('status');
14
- await expectNoAxeViolations(container);
15
- });
16
- it('count 角标:sup 带 aria-label(计数文本),无 axe violations', async () => {
17
- const { container } = render(BadgeA11yFixture, {
18
- props: { props: { count: 5 } },
19
- });
20
- const sup = container.querySelector('.cd-badge__sup');
21
- expect(sup?.getAttribute('aria-label')).toBe('5');
22
- await expectNoAxeViolations(container);
23
- });
24
- it('overflow 角标:超出 overflowCount 显示 99+,无 axe violations', async () => {
25
- const { container } = render(BadgeA11yFixture, {
26
- props: { props: { count: 200, overflowCount: 99 } },
27
- });
28
- const sup = container.querySelector('.cd-badge__sup');
29
- expect(sup?.getAttribute('aria-label')).toBe('99+');
30
- await expectNoAxeViolations(container);
31
- });
32
- });
@@ -1,18 +0,0 @@
1
- <!--
2
- Badge a11y 测试夹具:不注入 children,使独立状态点(standalone)形态生效。
3
- (renderWithLocale 的 harness 恒注入空 children snippet,会让 Badge 走 count 角标形态。)
4
- 自带 LocaleProvider,故测试直接 render 本夹具。
5
- -->
6
- <script lang="ts">
7
- import { LocaleProvider } from '../locale-provider/index.js';
8
- import Badge from './Badge.svelte';
9
-
10
- interface Props {
11
- props?: Record<string, unknown>;
12
- }
13
- let { props = {} }: Props = $props();
14
- </script>
15
-
16
- <LocaleProvider locale="en_US">
17
- <Badge {...props} />
18
- </LocaleProvider>
@@ -1,7 +0,0 @@
1
- interface Props {
2
- props?: Record<string, unknown>;
3
- }
4
- declare const BadgeA11yFixture: import("svelte").Component<Props, {}, "">;
5
- type BadgeA11yFixture = ReturnType<typeof BadgeA11yFixture>;
6
- export default BadgeA11yFixture;
7
- //# sourceMappingURL=BadgeA11yFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BadgeA11yFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/badge/BadgeA11yFixture.svelte.ts"],"names":[],"mappings":"AAOE,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAeH,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Banner.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Banner.a11y.test.d.ts","sourceRoot":"","sources":["../../src/banner/Banner.a11y.test.ts"],"names":[],"mappings":""}