@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,34 +0,0 @@
1
- // Switch 键盘 e2e(browser project / 真实 chromium)。
2
- // Switch 是原生 <button role="switch">,焦点落在按钮本身:Tab 聚焦、
3
- // Space/Enter 经原生 click 触发 toggle,aria-checked 翻转。jsdom 下
4
- // 原生按钮的 Space/Enter→click 合成不可靠,故在真浏览器里验真实键盘。
5
- import { describe, it, expect } from 'vitest';
6
- import { page } from 'vitest/browser';
7
- import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
8
- import SwitchKbdFixture from './SwitchKbdFixture.svelte';
9
- function loc(el) {
10
- return page.elementLocator(el);
11
- }
12
- describe('Switch 键盘 e2e(role=switch Space/Enter 切换)', () => {
13
- it('Tab 聚焦 + Space/Enter 翻转 aria-checked', async () => {
14
- const { baseElement } = renderKbdFixture(SwitchKbdFixture);
15
- const sw = baseElement.querySelector('[role="switch"]');
16
- expect(sw).not.toBeNull();
17
- expect(sw.getAttribute('aria-checked')).toBe('false');
18
- // Tab 从 before 进入,焦点落在 switch 按钮本身。
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(sw)).toHaveFocus();
24
- // Space 切到 on(aria-checked=true,onChange 写入 true)。
25
- await userEvent.keyboard(' ');
26
- await expect.element(loc(sw)).toHaveAttribute('aria-checked', 'true');
27
- const out = baseElement.querySelector('[data-testid="value"]');
28
- expect(out.textContent).toBe(JSON.stringify(true));
29
- // Enter 切回 off。
30
- await userEvent.keyboard('{Enter}');
31
- await expect.element(loc(sw)).toHaveAttribute('aria-checked', 'false');
32
- expect(out.textContent).toBe(JSON.stringify(false));
33
- });
34
- });
@@ -1,22 +0,0 @@
1
- <!--
2
- 仅供 Switch.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- Switch 是原生 <button role="switch">,焦点落在按钮本身;Space/Enter 经原生
4
- click 触发 toggle,aria-checked 翻转。夹具暴露 onChange 写入 lastValue。
5
- -->
6
- <script lang="ts">
7
- import { LocaleProvider } from '../locale-provider/index.js';
8
- import Switch from './Switch.svelte';
9
-
10
- let lastValue = $state<unknown>(undefined);
11
- </script>
12
-
13
- <LocaleProvider locale="en_US">
14
- <button type="button" data-testid="before">before</button>
15
- <Switch
16
- ariaLabel="Toggle"
17
- onChange={(v) => {
18
- lastValue = v;
19
- }}
20
- />
21
- <output data-testid="value">{JSON.stringify(lastValue ?? null)}</output>
22
- </LocaleProvider>
@@ -1,4 +0,0 @@
1
- declare const SwitchKbdFixture: import("svelte").Component<Record<string, never>, {}, "">;
2
- type SwitchKbdFixture = ReturnType<typeof SwitchKbdFixture>;
3
- export default SwitchKbdFixture;
4
- //# sourceMappingURL=SwitchKbdFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SwitchKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/switch/SwitchKbdFixture.svelte.ts"],"names":[],"mappings":"AAwBA,QAAA,MAAM,gBAAgB,2DAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Table.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table.a11y.test.d.ts","sourceRoot":"","sources":["../../src/table/Table.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,59 +0,0 @@
1
- // Table a11y:数据表格。
2
- // 纯展示表为原生 <table>(role=table);交互态(sorter/rowSelection 等)升级为
3
- // WAI-ARIA Grid Pattern:role=grid + columnheader/row/gridcell。两种都各测一个。
4
- import { describe, it, expect } from 'vitest';
5
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
6
- import Table from './Table.svelte';
7
- const dataSource = [
8
- { key: '1', name: 'Alice', age: 30 },
9
- { key: '2', name: 'Bob', age: 25 },
10
- ];
11
- const plainColumns = [
12
- { key: 'name', dataIndex: 'name', title: 'Name' },
13
- { key: 'age', dataIndex: 'age', title: 'Age' },
14
- ];
15
- describe('Table a11y', () => {
16
- it('纯展示表:原生 table 语义(无 role=grid),无 axe violations', async () => {
17
- const { container } = renderWithLocale(Table, {
18
- props: { columns: plainColumns, dataSource, ariaLabel: 'Users' },
19
- });
20
- const table = container.querySelector('table');
21
- expect(table).not.toBeNull();
22
- // 纯展示降级:不应有 role=grid
23
- expect(table?.getAttribute('role')).toBeNull();
24
- expect(container.querySelector('[role="grid"]')).toBeNull();
25
- // 列头与数据行
26
- expect(container.querySelectorAll('th[scope="col"]').length).toBe(2);
27
- await expectNoAxeViolations(container);
28
- });
29
- it('交互态(sortable):role=grid + columnheader/gridcell + aria-rowcount', async () => {
30
- const sortableColumns = [
31
- { key: 'name', dataIndex: 'name', title: 'Name', sorter: true },
32
- { key: 'age', dataIndex: 'age', title: 'Age', sorter: true },
33
- ];
34
- const { container } = renderWithLocale(Table, {
35
- props: { columns: sortableColumns, dataSource, ariaLabel: 'Users grid' },
36
- });
37
- const grid = container.querySelector('[role="grid"]');
38
- expect(grid).not.toBeNull();
39
- expect(grid?.getAttribute('aria-rowcount')).toBeTruthy();
40
- expect(container.querySelectorAll('[role="columnheader"]').length).toBeGreaterThanOrEqual(2);
41
- expect(container.querySelectorAll('[role="row"]').length).toBeGreaterThanOrEqual(1);
42
- expect(container.querySelectorAll('[role="gridcell"]').length).toBeGreaterThanOrEqual(1);
43
- await expectNoAxeViolations(container);
44
- });
45
- it('rowSelection:交互态 role=grid + 全选 checkbox 有可访问名', async () => {
46
- const { container } = renderWithLocale(Table, {
47
- props: {
48
- columns: plainColumns,
49
- dataSource,
50
- ariaLabel: 'Selectable',
51
- rowSelection: {},
52
- },
53
- });
54
- expect(container.querySelector('[role="grid"]')).not.toBeNull();
55
- const checkbox = container.querySelector('input[type="checkbox"]');
56
- expect(checkbox?.getAttribute('aria-label')).toBeTruthy();
57
- await expectNoAxeViolations(container);
58
- });
59
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Table.bench.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table.bench.d.ts","sourceRoot":"","sources":["../../src/table/Table.bench.ts"],"names":[],"mappings":""}
@@ -1,31 +0,0 @@
1
- // Table 渲染基准(最小骨架,趋势参考,不接 CI 门禁)。
2
- // 在 jsdom 下真实 mount Table,测不同行数的挂载耗时。仅供观察回归趋势,
3
- // 数字受 jsdom/CI 机器影响,不作为硬门禁(门禁是 size-limit 体积预算)。
4
- import { bench, describe } from 'vitest';
5
- import { render, cleanup } from '@testing-library/svelte';
6
- import Table from './Table.svelte';
7
- const columns = [
8
- { key: 'name', dataIndex: 'name', title: 'Name' },
9
- { key: 'age', dataIndex: 'age', title: 'Age' },
10
- { key: 'city', dataIndex: 'city', title: 'City' },
11
- ];
12
- function makeRows(n) {
13
- return Array.from({ length: n }, (_, i) => ({
14
- key: String(i),
15
- name: `User ${i}`,
16
- age: 20 + (i % 50),
17
- city: `City ${i % 10}`,
18
- }));
19
- }
20
- describe('Table render', () => {
21
- const rows100 = makeRows(100);
22
- const rows1000 = makeRows(1000);
23
- bench('mount 100 rows', () => {
24
- render(Table, { props: { columns, dataSource: rows100 } });
25
- cleanup();
26
- }, { time: 300 });
27
- bench('mount 1000 rows', () => {
28
- render(Table, { props: { columns, dataSource: rows1000 } });
29
- cleanup();
30
- }, { time: 500 });
31
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Table.kbd.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table.kbd.test.d.ts","sourceRoot":"","sources":["../../src/table/Table.kbd.test.ts"],"names":[],"mappings":""}
@@ -1,74 +0,0 @@
1
- // Table 键盘 e2e(browser project / 真实 chromium),交互态 grid 2D 方向键漫游。
2
- // 交互态(列带 sorter)下 Table 升级为 WAI-ARIA Grid Pattern,单元格走 REAL focus
3
- // roving(cell.focus() + tabindex 0/-1),jsdom 测不了真实焦点移动:
4
- // 1. roving 单停靠点:Tab 进入 grid 只停在一个单元格(首个 columnheader,其余 -1)。
5
- // 2. ↑↓ 真实移动焦点到上/下一行单元格;←→ 移动到左/右一列单元格。
6
- // 3. Home/End 跳到行内首/末列。
7
- //
8
- // 真实焦点断言用 page locator 的 .toHaveFocus()(对真实 document.activeElement 重试断言)。
9
- import { describe, it, expect } from 'vitest';
10
- import { page } from 'vitest/browser';
11
- import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
12
- import TableKbdFixture from './TableKbdFixture.svelte';
13
- function loc(el) {
14
- return page.elementLocator(el);
15
- }
16
- describe('Table 键盘 e2e(grid 2D roving)', () => {
17
- it('Tab 单停靠点 + ↑↓ 移行 + ←→ 移列 + Home/End 行内首末', async () => {
18
- const { baseElement } = renderKbdFixture(TableKbdFixture);
19
- const grid = baseElement.querySelector('[role="grid"]');
20
- expect(grid).not.toBeNull();
21
- // 列头(columnheader)与数据单元格(gridcell)。
22
- const headers = Array.from(grid.querySelectorAll('[role="columnheader"]'));
23
- expect(headers.length).toBe(2);
24
- const [nameHeader, ageHeader] = headers;
25
- // 全部漫游单元格(header columnheader + body rowheader/gridcell)。
26
- // 交互态首列单元格为 role=rowheader(!hasSelection && !hasExpand),其余 gridcell。
27
- const allCells = Array.from(grid.querySelectorAll('[role="columnheader"],[role="rowheader"],[role="gridcell"]'));
28
- // 1. roving 单停靠点:恰有一个单元格 tabindex=0,其余 -1。
29
- const stops = allCells.filter((el) => el.tabIndex === 0);
30
- expect(stops.length).toBe(1);
31
- // 默认停靠点为首个列头(row=-1,col=0)。
32
- expect(nameHeader.tabIndex).toBe(0);
33
- expect(ageHeader.tabIndex).toBe(-1);
34
- // 从 before 按钮 Tab,焦点应落到唯一停靠点(首个 columnheader),不逐格进入。
35
- const before = baseElement.querySelector('[data-testid="before"]');
36
- before.focus();
37
- await expect.element(loc(before)).toHaveFocus();
38
- await userEvent.tab();
39
- await expect.element(loc(nameHeader)).toHaveFocus();
40
- expect(nameHeader.tabIndex).toBe(0);
41
- // 2a. ←→ 移列:→ 移到 Age 列头(同一行 header 行)。
42
- await userEvent.keyboard('{ArrowRight}');
43
- await expect.element(loc(ageHeader)).toHaveFocus();
44
- expect(ageHeader.tabIndex).toBe(0);
45
- expect(nameHeader.tabIndex).toBe(-1);
46
- // ← 回到 Name 列头。
47
- await userEvent.keyboard('{ArrowLeft}');
48
- await expect.element(loc(nameHeader)).toHaveFocus();
49
- // 2b. ↓ 移行:从 Name 列头进入首数据行首列单元格(row=0,col=0)。
50
- // 首列单元格 role=rowheader(交互态、无 selection/expand),按 aria-colindex 取。
51
- const bodyRows = Array.from(grid.querySelectorAll('tbody [role="row"]'));
52
- expect(bodyRows.length).toBe(3);
53
- const cellAt = (row, colindex) => bodyRows[row].querySelector(`[aria-colindex="${colindex}"]`);
54
- await userEvent.keyboard('{ArrowDown}');
55
- const row0Name = cellAt(0, 1);
56
- await expect.element(loc(row0Name)).toHaveFocus();
57
- expect(row0Name.textContent).toContain('Alice');
58
- // 再 ↓ 到第二数据行首列单元格(row=1,col=0)。
59
- await userEvent.keyboard('{ArrowDown}');
60
- const row1Name = cellAt(1, 1);
61
- await expect.element(loc(row1Name)).toHaveFocus();
62
- expect(row1Name.textContent).toContain('Bob');
63
- // ↑ 回到 row0 首列单元格。
64
- await userEvent.keyboard('{ArrowUp}');
65
- await expect.element(loc(row0Name)).toHaveFocus();
66
- // 3. End 跳到行内末列(Age 单元格 row=0,col=1);Home 回到行内首列。
67
- await userEvent.keyboard('{End}');
68
- const row0Age = cellAt(0, 2);
69
- await expect.element(loc(row0Age)).toHaveFocus();
70
- expect(row0Age.textContent).toContain('30');
71
- await userEvent.keyboard('{Home}');
72
- await expect.element(loc(row0Name)).toHaveFocus();
73
- });
74
- });
@@ -1,35 +0,0 @@
1
- <!--
2
- 仅供 Table.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- 交互态(列带 sorter)下 Table 升级为 WAI-ARIA Grid Pattern:role=grid +
4
- columnheader/gridcell + 单元格 roving tabindex。前后各放一个按钮,验证
5
- Tab 进入 grid 只停在单一 roving 单元格(roving 单停靠点),而非逐格进 Tab 序。
6
- -->
7
- <script lang="ts">
8
- import { LocaleProvider } from '../locale-provider/index.js';
9
- import Table from './Table.svelte';
10
-
11
- interface Row {
12
- key: string;
13
- name: string;
14
- age: number;
15
- [k: string]: unknown;
16
- }
17
-
18
- const dataSource: Row[] = [
19
- { key: '1', name: 'Alice', age: 30 },
20
- { key: '2', name: 'Bob', age: 25 },
21
- { key: '3', name: 'Carol', age: 28 },
22
- ];
23
-
24
- // 列带 sorter → isInteractive → gridEnabled,触发 grid 键盘漫游。
25
- const columns = [
26
- { key: 'name', dataIndex: 'name', title: 'Name', sorter: true },
27
- { key: 'age', dataIndex: 'age', title: 'Age', sorter: true },
28
- ];
29
- </script>
30
-
31
- <LocaleProvider locale="en_US">
32
- <button type="button" data-testid="before">before</button>
33
- <Table {columns} {dataSource} rowKey="key" ariaLabel="Users grid" />
34
- <button type="button" data-testid="after">after</button>
35
- </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 TableKbdFixture: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, string>;
17
- type TableKbdFixture = InstanceType<typeof TableKbdFixture>;
18
- export default TableKbdFixture;
19
- //# sourceMappingURL=TableKbdFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/table/TableKbdFixture.svelte.ts"],"names":[],"mappings":"AAuCA,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,eAAe;;kBAA+E,CAAC;AACnF,KAAK,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,eAAe,eAAe,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=grid-nav.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-nav.test.d.ts","sourceRoot":"","sources":["../../src/table/grid-nav.test.ts"],"names":[],"mappings":""}
@@ -1,133 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { buildGridCols, nextGridCoord, isFocusCell, rovingTabindexAt, } from './grid-nav.js';
3
- // Table 交互态 Grid Pattern 二维漫游纯逻辑用例(WAI-ARIA APG Grid)。
4
- // 渲染层把 row=-1 当表头、0..n-1 当数据行,col 索引进 buildGridCols 扁平表。
5
- // 委托键盘事件无法可靠合成(红线),故对纯坐标算法做穷尽边界测试。
6
- const params = (over = {}) => ({
7
- current: { row: 0, col: 0 },
8
- rowCount: 5,
9
- colCount: 4,
10
- pageRows: 3,
11
- ...over,
12
- });
13
- const move = (key, current, over = {}, mods = {}) => nextGridCoord(key, mods, params({ ...over, current }));
14
- describe('buildGridCols — 网格列扁平表', () => {
15
- it('仅数据列时 1:1 映射', () => {
16
- const cols = buildGridCols({ hasExpand: false, hasSelection: false, dataColumnCount: 3 });
17
- expect(cols).toEqual([
18
- { kind: 'data', dataCol: 0 },
19
- { kind: 'data', dataCol: 1 },
20
- { kind: 'data', dataCol: 2 },
21
- ]);
22
- });
23
- it('expand + selection 前置占位列在数据列之前', () => {
24
- const cols = buildGridCols({ hasExpand: true, hasSelection: true, dataColumnCount: 2 });
25
- expect(cols.map((c) => c.kind)).toEqual(['expand', 'selection', 'data', 'data']);
26
- // 第一个数据列的网格列索引 = 2(前置 2 列)
27
- expect(cols.findIndex((c) => c.kind === 'data')).toBe(2);
28
- });
29
- it('仅 selection 时占位 1 列', () => {
30
- const cols = buildGridCols({ hasExpand: false, hasSelection: true, dataColumnCount: 1 });
31
- expect(cols.map((c) => c.kind)).toEqual(['selection', 'data']);
32
- });
33
- });
34
- describe('roving tabindex — 单一 Tab 停靠点派生', () => {
35
- it('未聚焦时表头首格 (-1,0) 为唯一 tabindex=0', () => {
36
- const focus = { row: 0, col: 0, hasFocused: false };
37
- expect(isFocusCell(-1, 0, focus)).toBe(true);
38
- expect(rovingTabindexAt(-1, 0, focus)).toBe(0);
39
- // 其余全部 -1
40
- expect(rovingTabindexAt(0, 0, focus)).toBe(-1);
41
- expect(rovingTabindexAt(-1, 1, focus)).toBe(-1);
42
- expect(rovingTabindexAt(2, 3, focus)).toBe(-1);
43
- });
44
- it('聚焦后仅当前焦点坐标 tabindex=0,其余 -1', () => {
45
- const focus = { row: 2, col: 1, hasFocused: true };
46
- expect(rovingTabindexAt(2, 1, focus)).toBe(0);
47
- // 同行不同列 / 同列不同行 / 表头 均 -1(整 grid 单一停靠点)
48
- expect(rovingTabindexAt(2, 0, focus)).toBe(-1);
49
- expect(rovingTabindexAt(1, 1, focus)).toBe(-1);
50
- expect(rovingTabindexAt(-1, 0, focus)).toBe(-1);
51
- });
52
- it('聚焦后表头首格不再是停靠点', () => {
53
- const focus = { row: 0, col: 0, hasFocused: true };
54
- expect(isFocusCell(-1, 0, focus)).toBe(false);
55
- expect(isFocusCell(0, 0, focus)).toBe(true);
56
- });
57
- });
58
- describe('nextGridCoord — 行向漫游(↑↓)', () => {
59
- it('ArrowDown 逐行下移', () => {
60
- expect(move('ArrowDown', { row: 0, col: 1 })).toEqual({ row: 1, col: 1 });
61
- });
62
- it('ArrowDown 到最后一行后 clamp(不环绕)', () => {
63
- expect(move('ArrowDown', { row: 4, col: 1 })).toEqual({ row: 4, col: 1 });
64
- });
65
- it('ArrowUp 从首数据行回到表头行(-1)', () => {
66
- expect(move('ArrowUp', { row: 0, col: 2 })).toEqual({ row: -1, col: 2 });
67
- });
68
- it('ArrowUp 在表头行 clamp 到 -1(不越过表头)', () => {
69
- expect(move('ArrowUp', { row: -1, col: 2 })).toEqual({ row: -1, col: 2 });
70
- });
71
- it('ArrowDown 从表头进入首数据行', () => {
72
- expect(move('ArrowDown', { row: -1, col: 0 })).toEqual({ row: 0, col: 0 });
73
- });
74
- });
75
- describe('nextGridCoord — 列向漫游(←→)', () => {
76
- it('ArrowRight 逐列右移', () => {
77
- expect(move('ArrowRight', { row: 2, col: 0 })).toEqual({ row: 2, col: 1 });
78
- });
79
- it('ArrowRight 到末列 clamp(不环绕)', () => {
80
- expect(move('ArrowRight', { row: 2, col: 3 })).toEqual({ row: 2, col: 3 });
81
- });
82
- it('ArrowLeft 到首列 clamp(不环绕)', () => {
83
- expect(move('ArrowLeft', { row: 2, col: 0 })).toEqual({ row: 2, col: 0 });
84
- });
85
- });
86
- describe('nextGridCoord — Home / End(行内)', () => {
87
- it('Home 跳行内首列,行不变', () => {
88
- expect(move('Home', { row: 3, col: 2 })).toEqual({ row: 3, col: 0 });
89
- });
90
- it('End 跳行内末列,行不变', () => {
91
- expect(move('End', { row: 3, col: 1 })).toEqual({ row: 3, col: 3 });
92
- });
93
- });
94
- describe('nextGridCoord — Ctrl/Cmd+Home / End(表格首末)', () => {
95
- it('Ctrl+Home 跳表头首格 (-1,0)', () => {
96
- expect(move('Home', { row: 4, col: 3 }, {}, { ctrl: true })).toEqual({ row: -1, col: 0 });
97
- });
98
- it('Cmd+End 跳末数据行末格', () => {
99
- expect(move('End', { row: 0, col: 0 }, {}, { meta: true })).toEqual({ row: 4, col: 3 });
100
- });
101
- });
102
- describe('nextGridCoord — PageUp / PageDown(翻屏)', () => {
103
- it('PageDown 下翻 pageRows 行', () => {
104
- expect(move('PageDown', { row: 0, col: 1 }, { pageRows: 3 })).toEqual({ row: 3, col: 1 });
105
- });
106
- it('PageDown 越界 clamp 到末行', () => {
107
- expect(move('PageDown', { row: 3, col: 1 }, { pageRows: 3 })).toEqual({ row: 4, col: 1 });
108
- });
109
- it('PageUp 上翻 pageRows 行', () => {
110
- expect(move('PageUp', { row: 4, col: 2 }, { pageRows: 3 })).toEqual({ row: 1, col: 2 });
111
- });
112
- it('PageUp 越界 clamp 到表头行(-1)', () => {
113
- expect(move('PageUp', { row: 1, col: 2 }, { pageRows: 3 })).toEqual({ row: -1, col: 2 });
114
- });
115
- it('PageDown 从表头落到首屏末行', () => {
116
- expect(move('PageDown', { row: -1, col: 0 }, { pageRows: 3 })).toEqual({ row: 2, col: 0 });
117
- });
118
- });
119
- describe('nextGridCoord — 非漫游键 / 边界', () => {
120
- it('非漫游键返回 null(不拦截)', () => {
121
- expect(move('a', { row: 0, col: 0 })).toBeNull();
122
- expect(move('Tab', { row: 0, col: 0 })).toBeNull();
123
- expect(move('Enter', { row: 0, col: 0 })).toBeNull();
124
- });
125
- it('空数据表(rowCount=0)下移仍 clamp 到表头行', () => {
126
- expect(move('ArrowDown', { row: -1, col: 0 }, { rowCount: 0 })).toEqual({ row: -1, col: 0 });
127
- });
128
- it('不修改入参坐标对象(纯函数)', () => {
129
- const cur = { row: 0, col: 0 };
130
- nextGridCoord('ArrowDown', {}, params({ current: cur }));
131
- expect(cur).toEqual({ row: 0, col: 0 });
132
- });
133
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Tabs.a11y.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs.a11y.test.d.ts","sourceRoot":"","sources":["../../src/tabs/Tabs.a11y.test.ts"],"names":[],"mappings":""}
@@ -1,43 +0,0 @@
1
- // Tabs a11y:标签页。
2
- // 容器 role=tablist,每个标签 role=tab + aria-selected,激活标签 aria-selected=true,
3
- // 面板 role=tabpanel(aria-controls ↔ id 关联)。
4
- // 用声明式 <Tabs.Pane> 夹具(TabsA11yFixture)渲染真实面板,使 aria-controls 不悬空。
5
- import { describe, it, expect, beforeAll } from 'vitest';
6
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
7
- import TabsFixture from './TabsA11yFixture.svelte';
8
- // jsdom 无 ResizeObserver(Tabs 用其检测标签栏溢出)。仅在本测试内补一个 no-op 桩,
9
- // 不改基建/组件源码——溢出滚动行为不在静态 a11y 测试范围(留给 Playwright)。
10
- beforeAll(() => {
11
- if (!('ResizeObserver' in globalThis)) {
12
- globalThis.ResizeObserver = class {
13
- observe() { }
14
- unobserve() { }
15
- disconnect() { }
16
- };
17
- }
18
- });
19
- describe('Tabs a11y', () => {
20
- it('默认渲染:role=tablist + tab + tabpanel,无 axe violations', async () => {
21
- const { container } = renderWithLocale(TabsFixture, {});
22
- expect(container.querySelector('[role="tablist"]')).not.toBeNull();
23
- expect(container.querySelectorAll('[role="tab"]').length).toBe(3);
24
- expect(container.querySelector('[role="tabpanel"]')).not.toBeNull();
25
- await expectNoAxeViolations(container);
26
- });
27
- it('选中态:defaultValue 标签 aria-selected=true,其余 false', async () => {
28
- const { container } = renderWithLocale(TabsFixture, {
29
- props: { defaultValue: 'details' },
30
- });
31
- const selected = container.querySelectorAll('[role="tab"][aria-selected="true"]');
32
- expect(selected.length).toBe(1);
33
- expect(selected[0]?.textContent).toContain('Details');
34
- await expectNoAxeViolations(container);
35
- });
36
- it('card 类型:role 语义不变,无 axe violations', async () => {
37
- const { container } = renderWithLocale(TabsFixture, {
38
- props: { type: 'card' },
39
- });
40
- expect(container.querySelectorAll('[role="tab"]').length).toBe(3);
41
- await expectNoAxeViolations(container);
42
- });
43
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Tabs.kbd.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs.kbd.test.d.ts","sourceRoot":"","sources":["../../src/tabs/Tabs.kbd.test.ts"],"names":[],"mappings":""}
@@ -1,63 +0,0 @@
1
- // Tabs 键盘 e2e(browser project / 真实 chromium),horizontal tablist roving。
2
- // 测真实焦点移动 + 「焦点即激活」(keyboardActivation='auto' 默认)——jsdom 测不了
3
- // (焦点模型不完整、命令式 focus() 不可靠):
4
- // 1. roving 单停靠点:选中 tab 的 tabindex=0,其余 -1;Tab 从 before 进入只停在选中 tab。
5
- // 2. ←→ 真实移动焦点到相邻 tab(环绕),auto 模式下焦点移动即激活对应面板。
6
- // 3. Home/End 跳首/末 tab。
7
- // 4. Tab 离开 tablist 后落到 after 按钮(单停靠点,不困在 tablist 里)。
8
- //
9
- // 真实焦点断言用 page locator 的 .toHaveFocus()(对真实 document.activeElement 重试断言)。
10
- import { describe, it, expect } from 'vitest';
11
- import { page } from 'vitest/browser';
12
- import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
13
- import TabsKbdFixture from './TabsKbdFixture.svelte';
14
- function loc(el) {
15
- return page.elementLocator(el);
16
- }
17
- describe('Tabs 键盘 e2e(horizontal roving + auto 激活)', () => {
18
- it('roving 单停靠点 + ←→ 移动焦点即激活 + Home/End 跳首末', async () => {
19
- const { baseElement } = renderKbdFixture(TabsKbdFixture);
20
- const tabs = Array.from(baseElement.querySelectorAll('[role="tab"]'));
21
- expect(tabs.length).toBe(3);
22
- const [overview, details, history] = tabs;
23
- // 1. roving 单停靠点:默认选中首个 tab(defaultValue='overview'),其 tabindex=0,其余 -1。
24
- expect(tabs.filter((el) => el.tabIndex === 0).length).toBe(1);
25
- expect(overview.tabIndex).toBe(0);
26
- expect(overview.getAttribute('aria-selected')).toBe('true');
27
- // 从 before 按钮 Tab 进入:只停靠在选中 tab,不逐个进入。
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(overview)).toHaveFocus();
33
- // 2. → 移动焦点到下一 tab;auto 模式焦点即激活(aria-selected + 停靠点同步)。
34
- await userEvent.keyboard('{ArrowRight}');
35
- await expect.element(loc(details)).toHaveFocus();
36
- expect(details.getAttribute('aria-selected')).toBe('true');
37
- expect(details.tabIndex).toBe(0);
38
- expect(overview.tabIndex).toBe(-1);
39
- await userEvent.keyboard('{ArrowRight}');
40
- await expect.element(loc(history)).toHaveFocus();
41
- expect(history.getAttribute('aria-selected')).toBe('true');
42
- // 环绕:末项 → 回到首项。
43
- await userEvent.keyboard('{ArrowRight}');
44
- await expect.element(loc(overview)).toHaveFocus();
45
- // ← 环绕到末项。
46
- await userEvent.keyboard('{ArrowLeft}');
47
- await expect.element(loc(history)).toHaveFocus();
48
- // 3. Home/End 跳首/末。
49
- await userEvent.keyboard('{Home}');
50
- await expect.element(loc(overview)).toHaveFocus();
51
- await userEvent.keyboard('{End}');
52
- await expect.element(loc(history)).toHaveFocus();
53
- expect(history.getAttribute('aria-selected')).toBe('true');
54
- // 4. Tab 离开 tablist:单停靠点 → 焦点先到选中面板(APG tabpanel 为 tabindex=0 的 Tab 停靠点),
55
- // 再 Tab 才到 after 按钮(不困在 tablist 内逐个 tab)。
56
- const panel = baseElement.querySelector('[role="tabpanel"]');
57
- await userEvent.tab();
58
- await expect.element(loc(panel)).toHaveFocus();
59
- const after = baseElement.querySelector('[data-testid="after"]');
60
- await userEvent.tab();
61
- await expect.element(loc(after)).toHaveFocus();
62
- });
63
- });
@@ -1,20 +0,0 @@
1
- <!--
2
- 仅供 Tabs.a11y.test.ts 使用的测试夹具:声明式 <Tabs.Pane> 用法(含 role=tabpanel 面板),
3
- 使 tab 的 aria-controls 指向真实存在的面板 id(axe aria-valid-attr-value 通过)。
4
- 纯 tabList 用法不渲染面板,aria-controls 会悬空,不是 a11y-clean 路径。
5
- -->
6
- <script lang="ts">
7
- import { Tabs } from './index.js';
8
-
9
- interface Props {
10
- defaultValue?: string | number;
11
- type?: 'line' | 'card' | 'button';
12
- }
13
- let { defaultValue = 'overview', type = 'line' }: Props = $props();
14
- </script>
15
-
16
- <Tabs {defaultValue} {type}>
17
- <Tabs.Pane itemKey="overview" tab="Overview">Overview content</Tabs.Pane>
18
- <Tabs.Pane itemKey="details" tab="Details">Details content</Tabs.Pane>
19
- <Tabs.Pane itemKey="history" tab="History">History content</Tabs.Pane>
20
- </Tabs>
@@ -1,8 +0,0 @@
1
- interface Props {
2
- defaultValue?: string | number;
3
- type?: 'line' | 'card' | 'button';
4
- }
5
- declare const TabsA11yFixture: import("svelte").Component<Props, {}, "">;
6
- type TabsA11yFixture = ReturnType<typeof TabsA11yFixture>;
7
- export default TabsA11yFixture;
8
- //# sourceMappingURL=TabsA11yFixture.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsA11yFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/tabs/TabsA11yFixture.svelte.ts"],"names":[],"mappings":"AAME,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;CACnC;AAgBH,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}