@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
@@ -1,53 +0,0 @@
1
- // Input a11y 试点:使用 useLocale(clear/password 按钮的 aria-label 走 i18n)。
2
- // 验证 LocaleProvider wrapper 管线:clear 按钮可访问名来自 en_US 语言包。
3
- import { describe, it, expect } from 'vitest';
4
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
5
- import Input from './Input.svelte';
6
- describe('Input a11y', () => {
7
- it('基础 input:ariaLabel 提供可访问名,无 axe violations', async () => {
8
- const { container } = renderWithLocale(Input, {
9
- props: { ariaLabel: 'Username' },
10
- });
11
- const input = container.querySelector('input');
12
- expect(input).not.toBeNull();
13
- expect(input?.getAttribute('aria-label')).toBe('Username');
14
- await expectNoAxeViolations(container);
15
- });
16
- it('error 状态:aria-invalid=true', async () => {
17
- const { container } = renderWithLocale(Input, {
18
- props: { ariaLabel: 'Email', status: 'error' },
19
- });
20
- const input = container.querySelector('input');
21
- expect(input?.getAttribute('aria-invalid')).toBe('true');
22
- await expectNoAxeViolations(container);
23
- });
24
- it('required:aria-required=true', async () => {
25
- const { container } = renderWithLocale(Input, {
26
- props: { ariaLabel: 'Name', ariaRequired: true },
27
- });
28
- const input = container.querySelector('input');
29
- expect(input?.getAttribute('aria-required')).toBe('true');
30
- await expectNoAxeViolations(container);
31
- });
32
- it('clearable:clear 按钮的 aria-label 来自 en_US locale(验证 LocaleProvider 管线)', async () => {
33
- const { container } = renderWithLocale(Input, {
34
- props: { ariaLabel: 'Search', clearable: true, defaultValue: 'hello' },
35
- });
36
- const clearBtn = container.querySelector('.cd-input__clear');
37
- expect(clearBtn).not.toBeNull();
38
- // en_US 语言包里 Input.clear 应为非空可访问名(不是空串/key 原样)。
39
- const label = clearBtn?.getAttribute('aria-label');
40
- expect(label).toBeTruthy();
41
- expect(label).not.toBe('Input.clear');
42
- await expectNoAxeViolations(container);
43
- });
44
- it('password:reveal 按钮 aria-pressed + locale 可访问名', async () => {
45
- const { container } = renderWithLocale(Input, {
46
- props: { ariaLabel: 'Password', type: 'password' },
47
- });
48
- const revealBtn = container.querySelector('.cd-input__reveal');
49
- expect(revealBtn?.getAttribute('aria-pressed')).toBe('false');
50
- expect(revealBtn?.getAttribute('aria-label')).toBeTruthy();
51
- await expectNoAxeViolations(container);
52
- });
53
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=InputNumber.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputNumber.a11y.test.d.ts","sourceRoot":"","sources":["../../src/input-number/InputNumber.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,40 +0,0 @@
1
- // InputNumber a11y:role=spinbutton + aria-valuenow/min/max;步进按钮 locale 可访问名。
2
- import { describe, it, expect } from 'vitest';
3
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
4
- import InputNumber from './InputNumber.svelte';
5
- describe('InputNumber a11y', () => {
6
- it('默认渲染:role=spinbutton + aria-valuenow/min/max,ariaLabel 提供可访问名', async () => {
7
- const { container } = renderWithLocale(InputNumber, {
8
- props: { ariaLabel: 'Quantity', defaultValue: 5, min: 0, max: 10 },
9
- });
10
- const spin = container.querySelector('[role="spinbutton"]');
11
- expect(spin).not.toBeNull();
12
- expect(spin?.getAttribute('aria-label')).toBe('Quantity');
13
- expect(spin?.getAttribute('aria-valuenow')).toBe('5');
14
- expect(spin?.getAttribute('aria-valuemin')).toBe('0');
15
- expect(spin?.getAttribute('aria-valuemax')).toBe('10');
16
- // 步进按钮可访问名来自 en_US locale(InputNumber.increase / decrease)。
17
- const inc = container.querySelector('.cd-input-number__increment');
18
- const dec = container.querySelector('.cd-input-number__decrement');
19
- expect(inc?.getAttribute('aria-label')).toBeTruthy();
20
- expect(inc?.getAttribute('aria-label')).not.toBe('InputNumber.increase');
21
- expect(dec?.getAttribute('aria-label')).toBeTruthy();
22
- await expectNoAxeViolations(container);
23
- });
24
- it('error 状态:aria-invalid=true', async () => {
25
- const { container } = renderWithLocale(InputNumber, {
26
- props: { ariaLabel: 'Amount', status: 'error' },
27
- });
28
- const spin = container.querySelector('[role="spinbutton"]');
29
- expect(spin?.getAttribute('aria-invalid')).toBe('true');
30
- await expectNoAxeViolations(container);
31
- });
32
- it('readonly + 无 controls:aria-readonly,无 axe violations', async () => {
33
- const { container } = renderWithLocale(InputNumber, {
34
- props: { ariaLabel: 'Score', defaultValue: 7, readonly: true, controls: false },
35
- });
36
- const spin = container.querySelector('[role="spinbutton"]');
37
- expect(spin?.getAttribute('aria-readonly')).toBe('true');
38
- await expectNoAxeViolations(container);
39
- });
40
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=InputNumber.kbd.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputNumber.kbd.test.d.ts","sourceRoot":"","sources":["../../src/input-number/InputNumber.kbd.test.ts"],"names":[],"mappings":""}
@@ -1,35 +0,0 @@
1
- // InputNumber 键盘 e2e(browser project / 真实 chromium)。
2
- // 焦点落在原生 <input role="spinbutton">:↑ 步进 +step、↓ -step,
3
- // PageUp/PageDown 大步进(shiftStep,默认 step*10),aria-valuenow 真实变化,
4
- // 钳到 min/max。jsdom 焦点/方向键步进合成不可靠,故在真浏览器里测。
5
- import { describe, it, expect } from 'vitest';
6
- import { page } from 'vitest/browser';
7
- import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
8
- import InputNumberKbdFixture from './InputNumberKbdFixture.svelte';
9
- function loc(el) {
10
- return page.elementLocator(el);
11
- }
12
- describe('InputNumber 键盘 e2e(role=spinbutton ↑↓ 步进)', () => {
13
- it('Tab 聚焦 + ↑↓ 步进 + PageUp/PageDown 大步进 + 钳到 max', async () => {
14
- const { baseElement } = renderKbdFixture(InputNumberKbdFixture);
15
- const spin = baseElement.querySelector('[role="spinbutton"]');
16
- expect(spin).not.toBeNull();
17
- expect(spin.getAttribute('aria-valuenow')).toBe('5');
18
- // Tab 从 before 进入,焦点落在 spinbutton。
19
- const before = baseElement.querySelector('[data-testid="before"]');
20
- before.focus();
21
- await expect.element(loc(before)).toHaveFocus();
22
- await userEvent.tab();
23
- await expect.element(loc(spin)).toHaveFocus();
24
- // ↑ +1(6),↓ -1(5)。
25
- await userEvent.keyboard('{ArrowUp}');
26
- await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '6');
27
- await userEvent.keyboard('{ArrowDown}');
28
- await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '5');
29
- // PageUp 大步进 +10(15),PageDown -10(5)。
30
- await userEvent.keyboard('{PageUp}');
31
- await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '15');
32
- await userEvent.keyboard('{PageDown}');
33
- await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '5');
34
- });
35
- });
@@ -1,15 +0,0 @@
1
- <!--
2
- 仅供 InputNumber.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- InputNumber 焦点落在原生 <input role="spinbutton">:↑ 步进 +step、↓ -step、
4
- PageUp/PageDown 大步进,aria-valuenow 真实变化(钳到 min/max)。
5
- before 按钮验证 Tab 真实聚焦到 spinbutton。
6
- -->
7
- <script lang="ts">
8
- import { LocaleProvider } from '../locale-provider/index.js';
9
- import InputNumber from './InputNumber.svelte';
10
- </script>
11
-
12
- <LocaleProvider locale="en_US">
13
- <button type="button" data-testid="before">before</button>
14
- <InputNumber defaultValue={5} min={0} max={100} step={1} ariaLabel="Quantity" />
15
- </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 InputNumberKbdFixture: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, string>;
17
- type InputNumberKbdFixture = InstanceType<typeof InputNumberKbdFixture>;
18
- export default InputNumberKbdFixture;
19
- //# sourceMappingURL=InputNumberKbdFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputNumberKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/input-number/InputNumberKbdFixture.svelte.ts"],"names":[],"mappings":"AAmBA,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,qBAAqB;;kBAA+E,CAAC;AACzF,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,eAAe,qBAAqB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Layout.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout.a11y.test.d.ts","sourceRoot":"","sources":["../../src/layout/Layout.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,32 +0,0 @@
1
- // Layout a11y:页面级布局骨架(section + header/main/footer/aside 语义元素)。
2
- // 纯布局,不引入额外 role;Sider collapsible 触发器为原生 button + aria-expanded/aria-controls/aria-label。
3
- import { describe, it, expect } from 'vitest';
4
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
5
- import LayoutFixture from './LayoutA11yFixture.svelte';
6
- describe('Layout a11y', () => {
7
- it('默认渲染:语义布局元素齐全,无 axe violations', async () => {
8
- const { container } = renderWithLocale(LayoutFixture, {});
9
- expect(container.querySelector('section.cd-layout')).not.toBeNull();
10
- expect(container.querySelector('header.cd-layout-header')).not.toBeNull();
11
- expect(container.querySelector('main.cd-layout-content')).not.toBeNull();
12
- expect(container.querySelector('footer.cd-layout-footer')).not.toBeNull();
13
- expect(container.querySelector('aside.cd-layout-sider')).not.toBeNull();
14
- await expectNoAxeViolations(container);
15
- });
16
- it('collapsible Sider:触发器 button aria-expanded/aria-controls/aria-label,无 axe violations', async () => {
17
- const { container } = renderWithLocale(LayoutFixture, {
18
- props: { collapsible: true },
19
- });
20
- const trigger = container.querySelector('button.cd-layout-sider__trigger');
21
- expect(trigger).not.toBeNull();
22
- // 展开态 aria-expanded=true。
23
- expect(trigger?.getAttribute('aria-expanded')).toBe('true');
24
- // aria-controls 指向 Sider id(不悬空)。
25
- const controls = trigger?.getAttribute('aria-controls');
26
- expect(controls).toBeTruthy();
27
- expect(container.ownerDocument.getElementById(controls)).not.toBeNull();
28
- // aria-label 来自 i18n(验证 LocaleProvider 管线)。
29
- expect(trigger?.getAttribute('aria-label')).toBeTruthy();
30
- await expectNoAxeViolations(container);
31
- });
32
- });
@@ -1,21 +0,0 @@
1
- <!--
2
- 仅供 Layout.a11y.test.ts 使用的测试夹具:Layout 根 + Header/Sider/Content/Footer。
3
- Sider collapsible 渲染原生 button 触发器(aria-expanded/aria-controls/aria-label)。
4
- -->
5
- <script lang="ts">
6
- import { Layout } from './index.js';
7
-
8
- interface Props {
9
- collapsible?: boolean;
10
- }
11
- let { collapsible = false }: Props = $props();
12
- </script>
13
-
14
- <Layout hasSider>
15
- <Layout.Sider {collapsible}>Navigation</Layout.Sider>
16
- <Layout>
17
- <Layout.Header>Page header</Layout.Header>
18
- <Layout.Content padding>Main content</Layout.Content>
19
- <Layout.Footer>Page footer</Layout.Footer>
20
- </Layout>
21
- </Layout>
@@ -1,7 +0,0 @@
1
- interface Props {
2
- collapsible?: boolean;
3
- }
4
- declare const LayoutA11yFixture: import("svelte").Component<Props, {}, "">;
5
- type LayoutA11yFixture = ReturnType<typeof LayoutA11yFixture>;
6
- export default LayoutA11yFixture;
7
- //# sourceMappingURL=LayoutA11yFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LayoutA11yFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/layout/LayoutA11yFixture.svelte.ts"],"names":[],"mappings":"AAME,UAAU,KAAK;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmBH,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=List.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"List.a11y.test.d.ts","sourceRoot":"","sources":["../../src/list/List.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,62 +0,0 @@
1
- // List a11y:列表。
2
- // 非 selectable:原生 ul/li 列表语义(role=list / listitem 隐式)。
3
- // selectable:容器 role=listbox(multiple 加 aria-multiselectable),行 role=option + aria-selected,
4
- // 行 tabindex roving(仅一行为 Tab 停靠点)。
5
- // 用数据驱动夹具(ListA11yFixture)渲染真实行。
6
- import { describe, it, expect } from 'vitest';
7
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
8
- import ListFixture from './ListA11yFixture.svelte';
9
- describe('List a11y', () => {
10
- it('默认渲染:原生 ul/li 列表语义,无 axe violations', async () => {
11
- const { container } = renderWithLocale(ListFixture, {
12
- props: { bordered: true, header: 'Users' },
13
- });
14
- const ul = container.querySelector('ul.cd-list__items');
15
- expect(ul).not.toBeNull();
16
- // 非 selectable:不设显式 role(保留原生 list 语义)。
17
- expect(ul?.getAttribute('role')).toBeNull();
18
- expect(container.querySelectorAll('li.cd-list__item').length).toBe(3);
19
- await expectNoAxeViolations(container);
20
- });
21
- // 结构断言(不含 axe):selectable 的 listbox/option/aria-selected/roving 语义确实就位。
22
- // axe 0-violation 断言因下述两个真实组件缺口被拆到 it.skip,故此处只验证 ARIA 结构。
23
- it('selectable=single:role=listbox + option + aria-selected + roving 结构', async () => {
24
- const { container } = renderWithLocale(ListFixture, {
25
- props: { selectable: 'single', defaultSelectedKeys: ['u2'] },
26
- });
27
- const listbox = container.querySelector('[role="listbox"]');
28
- expect(listbox).not.toBeNull();
29
- expect(listbox?.getAttribute('aria-multiselectable')).toBeNull();
30
- const options = container.querySelectorAll('[role="option"]');
31
- expect(options.length).toBe(3);
32
- const selected = container.querySelectorAll('[role="option"][aria-selected="true"]');
33
- expect(selected.length).toBe(1);
34
- expect(selected[0]?.textContent).toContain('Alan Turing');
35
- // roving tabindex:仅一行为 Tab 停靠点。
36
- const zero = [...options].filter((o) => o.getAttribute('tabindex') === '0');
37
- expect(zero.length).toBe(1);
38
- });
39
- it('selectable=multiple:listbox aria-multiselectable=true 结构', async () => {
40
- const { container } = renderWithLocale(ListFixture, {
41
- props: { selectable: 'multiple', defaultSelectedKeys: ['u1', 'u3'] },
42
- });
43
- const listbox = container.querySelector('[role="listbox"]');
44
- expect(listbox?.getAttribute('aria-multiselectable')).toBe('true');
45
- const selected = container.querySelectorAll('[role="option"][aria-selected="true"]');
46
- expect(selected.length).toBe(2);
47
- });
48
- // 修复后:listbox 经 aria-label(List.selectableLabel)有可访问名;option 内勾选框改纯视觉
49
- // (aria-hidden + 无 input),选中态由行 aria-selected 表达,无 nested-interactive。
50
- it('selectable=single:axe 0 violations(listbox 可访问名 + 纯视觉勾选框)', async () => {
51
- const { container } = renderWithLocale(ListFixture, {
52
- props: { selectable: 'single', defaultSelectedKeys: ['u2'] },
53
- });
54
- await expectNoAxeViolations(container);
55
- });
56
- it('selectable=multiple:axe 0 violations(listbox 可访问名 + 纯视觉勾选框)', async () => {
57
- const { container } = renderWithLocale(ListFixture, {
58
- props: { selectable: 'multiple', defaultSelectedKeys: ['u1', 'u3'] },
59
- });
60
- await expectNoAxeViolations(container);
61
- });
62
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=List.bench.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"List.bench.d.ts","sourceRoot":"","sources":["../../src/list/List.bench.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- // List 渲染基准(最小骨架,趋势参考,不接 CI 门禁)。
2
- // 在 jsdom 下真实 mount List(数据驱动 dataSource + renderItem),测挂载耗时。
3
- // 仅供观察回归趋势;硬门禁是 size-limit 体积预算(perf:size / perf:check)。
4
- import { bench, describe } from 'vitest';
5
- import { render, cleanup } from '@testing-library/svelte';
6
- import ListBenchFixture from './ListBenchFixture.svelte';
7
- describe('List render', () => {
8
- bench('mount 100 items', () => {
9
- render(ListBenchFixture, { props: { count: 100 } });
10
- cleanup();
11
- }, { time: 300 });
12
- bench('mount 500 items', () => {
13
- render(ListBenchFixture, { props: { count: 500 } });
14
- cleanup();
15
- }, { time: 500 });
16
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=List.kbd.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"List.kbd.test.d.ts","sourceRoot":"","sources":["../../src/list/List.kbd.test.ts"],"names":[],"mappings":""}
@@ -1,60 +0,0 @@
1
- // List 键盘 e2e(browser project / 真实 chromium)。
2
- // selectable="single" → role=listbox / 行 role=option,roving 单停靠点(真实焦点)。
3
- // 测真实焦点移动 + Space 选中——jsdom 测不了(命令式 focus() 不可靠):
4
- // 1. roving 单停靠点:Tab 进入只停在一行(其余 tabindex=-1,默认首行)。
5
- // 2. ↑↓ 真实移动焦点到相邻行(无 wrap:clamp,源码 Math.min/max)。
6
- // 3. Home/End 跳首/末行。
7
- // 4. Space 选中当前焦点行(aria-selected=true)。
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 ListKbdFixture from './ListKbdFixture.svelte';
14
- function loc(el) {
15
- return page.elementLocator(el);
16
- }
17
- describe('List 键盘 e2e(selectable listbox roving,真实焦点)', () => {
18
- it('Tab 单停靠点 + ↑↓ 移动焦点(clamp)+ Home/End + Space 选中', async () => {
19
- const { baseElement } = renderKbdFixture(ListKbdFixture);
20
- const listbox = baseElement.querySelector('[role="listbox"]');
21
- expect(listbox).toBeTruthy();
22
- const rows = Array.from(baseElement.querySelectorAll('[role="option"]'));
23
- expect(rows.length).toBe(3);
24
- const [alpha, bravo, charlie] = rows;
25
- // 1. roving 单停靠点:默认首行为 tabindex=0,其余 -1。
26
- expect(rows.filter((el) => el.tabIndex === 0).length).toBe(1);
27
- expect(alpha.tabIndex).toBe(0);
28
- const before = baseElement.querySelector('[data-testid="before"]');
29
- before.focus();
30
- await expect.element(loc(before)).toHaveFocus();
31
- await userEvent.tab();
32
- await expect.element(loc(alpha)).toHaveFocus();
33
- // 2. ↓ 移动焦点到下一行(真实焦点 + 停靠点同步)。
34
- await userEvent.keyboard('{ArrowDown}');
35
- await expect.element(loc(bravo)).toHaveFocus();
36
- expect(bravo.tabIndex).toBe(0);
37
- expect(alpha.tabIndex).toBe(-1);
38
- await userEvent.keyboard('{ArrowDown}');
39
- await expect.element(loc(charlie)).toHaveFocus();
40
- // 无 wrap:末行再 ↓ 停在末行(clamp)。
41
- await userEvent.keyboard('{ArrowDown}');
42
- await expect.element(loc(charlie)).toHaveFocus();
43
- // ↑ 回退;首行再 ↑ 停在首行(clamp)。
44
- await userEvent.keyboard('{ArrowUp}');
45
- await expect.element(loc(bravo)).toHaveFocus();
46
- await userEvent.keyboard('{ArrowUp}');
47
- await expect.element(loc(alpha)).toHaveFocus();
48
- await userEvent.keyboard('{ArrowUp}');
49
- await expect.element(loc(alpha)).toHaveFocus();
50
- // 3. Home/End 跳首/末。
51
- await userEvent.keyboard('{End}');
52
- await expect.element(loc(charlie)).toHaveFocus();
53
- await userEvent.keyboard('{Home}');
54
- await expect.element(loc(alpha)).toHaveFocus();
55
- // 4. Space 选中当前焦点行(aria-selected=true)。single 模式互斥。
56
- expect(alpha.getAttribute('aria-selected')).toBe('false');
57
- await userEvent.keyboard(' ');
58
- await expect.element(loc(alpha)).toHaveAttribute('aria-selected', 'true');
59
- });
60
- });
@@ -1,38 +0,0 @@
1
- <!--
2
- 仅供 List.a11y.test.ts 使用的测试夹具:数据驱动 dataSource + renderItem Snippet。
3
- selectable 时容器升级 role=listbox,行 role=option + aria-selected。
4
- -->
5
- <script lang="ts">
6
- import { List } from './index.js';
7
-
8
- interface Props {
9
- selectable?: false | 'single' | 'multiple';
10
- bordered?: boolean;
11
- header?: string;
12
- defaultSelectedKeys?: (string | number)[];
13
- }
14
- let {
15
- selectable = false,
16
- bordered = false,
17
- header = undefined,
18
- defaultSelectedKeys = [],
19
- }: Props = $props();
20
-
21
- const dataSource = [
22
- { key: 'u1', title: 'Ada Lovelace' },
23
- { key: 'u2', title: 'Alan Turing' },
24
- { key: 'u3', title: 'Grace Hopper' },
25
- ];
26
- </script>
27
-
28
- <List
29
- {dataSource}
30
- {selectable}
31
- {bordered}
32
- {defaultSelectedKeys}
33
- {...header !== undefined ? { header } : {}}
34
- >
35
- {#snippet renderItem(item)}
36
- <span>{(item as { title: string }).title}</span>
37
- {/snippet}
38
- </List>
@@ -1,10 +0,0 @@
1
- interface Props {
2
- selectable?: false | 'single' | 'multiple';
3
- bordered?: boolean;
4
- header?: string;
5
- defaultSelectedKeys?: (string | number)[];
6
- }
7
- declare const ListA11yFixture: import("svelte").Component<Props, {}, "">;
8
- type ListA11yFixture = ReturnType<typeof ListA11yFixture>;
9
- export default ListA11yFixture;
10
- //# sourceMappingURL=ListA11yFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListA11yFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/list/ListA11yFixture.svelte.ts"],"names":[],"mappings":"AAME,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3C;AA2BH,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -1,22 +0,0 @@
1
- <!--
2
- 仅供 List.bench.ts 使用的基准夹具:按 count 生成 dataSource,
3
- 用 renderItem snippet 渲染真实行。隔离 snippet(snippet 只能在 .svelte 内定义)。
4
- -->
5
- <script lang="ts">
6
- import { List } from './index.js';
7
-
8
- interface Props {
9
- count?: number;
10
- }
11
- let { count = 100 }: Props = $props();
12
-
13
- const dataSource = $derived(
14
- Array.from({ length: count }, (_, i) => ({ key: `r${i}`, title: `Item ${i}` })),
15
- );
16
- </script>
17
-
18
- <List {dataSource} bordered>
19
- {#snippet renderItem(item)}
20
- <span>{(item as { title: string }).title}</span>
21
- {/snippet}
22
- </List>
@@ -1,7 +0,0 @@
1
- interface Props {
2
- count?: number;
3
- }
4
- declare const ListBenchFixture: import("svelte").Component<Props, {}, "">;
5
- type ListBenchFixture = ReturnType<typeof ListBenchFixture>;
6
- export default ListBenchFixture;
7
- //# sourceMappingURL=ListBenchFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListBenchFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/list/ListBenchFixture.svelte.ts"],"names":[],"mappings":"AAME,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoBH,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -1,31 +0,0 @@
1
- <!--
2
- 仅供 List.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- selectable="single" → role=listbox / 行 role=option,roving 单停靠点(真实焦点)。
4
- 前后各放按钮验证 Tab 进入只停靠单行、Tab 出去落到 after。
5
- -->
6
- <script lang="ts">
7
- import { LocaleProvider } from '../locale-provider/index.js';
8
- import List from './List.svelte';
9
-
10
- type Row = { key: string; label: string };
11
- const dataSource: Row[] = [
12
- { key: 'a', label: 'Alpha' },
13
- { key: 'b', label: 'Bravo' },
14
- { key: 'c', label: 'Charlie' },
15
- ];
16
- </script>
17
-
18
- <LocaleProvider locale="en_US">
19
- <button type="button" data-testid="before">before</button>
20
- <List
21
- {dataSource}
22
- rowKey="key"
23
- selectable="single"
24
- ariaLabel="People"
25
- >
26
- {#snippet renderItem(item: Row)}
27
- <span>{item.label}</span>
28
- {/snippet}
29
- </List>
30
- <button type="button" data-testid="after">after</button>
31
- </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 ListKbdFixture: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, string>;
17
- type ListKbdFixture = InstanceType<typeof ListKbdFixture>;
18
- export default ListKbdFixture;
19
- //# sourceMappingURL=ListKbdFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/list/ListKbdFixture.svelte.ts"],"names":[],"mappings":"AA+BA,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,cAAc;;kBAA+E,CAAC;AAClF,KAAK,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,eAAe,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Menu.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Menu.a11y.test.d.ts","sourceRoot":"","sources":["../../src/menu/Menu.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,49 +0,0 @@
1
- // Menu a11y:数据驱动导航菜单。
2
- // 容器 ul[role=menu](horizontal 为 menubar),叶子 button[role=menuitem],
3
- // 单选选中项 aria-current=true,多选叶子 role=menuitemcheckbox + aria-checked。
4
- import { describe, it, expect } from 'vitest';
5
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
6
- import Menu from './Menu.svelte';
7
- const items = [
8
- { key: 'home', label: 'Home' },
9
- { key: 'profile', label: 'Profile' },
10
- { key: 'settings', label: 'Settings' },
11
- ];
12
- describe('Menu a11y', () => {
13
- it('默认渲染:role=menu + menuitem,无 axe violations', async () => {
14
- const { container } = renderWithLocale(Menu, {
15
- props: { items, ariaLabel: 'Main menu' },
16
- });
17
- const menu = container.querySelector('[role="menu"]');
18
- expect(menu).not.toBeNull();
19
- expect(menu?.getAttribute('aria-label')).toBe('Main menu');
20
- const menuitems = container.querySelectorAll('[role="menuitem"]');
21
- expect(menuitems.length).toBe(3);
22
- await expectNoAxeViolations(container);
23
- });
24
- it('单选选中态:选中叶子 aria-current=true', async () => {
25
- const { container } = renderWithLocale(Menu, {
26
- props: { items, ariaLabel: 'Nav', defaultSelectedKeys: ['profile'] },
27
- });
28
- const current = container.querySelector('[role="menuitem"][aria-current="true"]');
29
- expect(current?.textContent).toContain('Profile');
30
- await expectNoAxeViolations(container);
31
- });
32
- it('horizontal 模式:容器 role=menubar', async () => {
33
- const { container } = renderWithLocale(Menu, {
34
- props: { items, ariaLabel: 'Top', mode: 'horizontal' },
35
- });
36
- expect(container.querySelector('[role="menubar"]')).not.toBeNull();
37
- await expectNoAxeViolations(container);
38
- });
39
- it('multiple:叶子 role=menuitemcheckbox + aria-checked', async () => {
40
- const { container } = renderWithLocale(Menu, {
41
- props: { items, ariaLabel: 'Multi', multiple: true, defaultSelectedKeys: ['home'] },
42
- });
43
- const checkboxes = container.querySelectorAll('[role="menuitemcheckbox"]');
44
- expect(checkboxes.length).toBe(3);
45
- const checked = container.querySelector('[role="menuitemcheckbox"][aria-checked="true"]');
46
- expect(checked?.textContent).toContain('Home');
47
- await expectNoAxeViolations(container);
48
- });
49
- });