@chenzy-design/svelte 0.1.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 (974) 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 +9 -9
  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
  501. package/src/_floating/use-floating.ts +0 -208
  502. package/src/anchor/Anchor.a11y.test.ts +0 -49
  503. package/src/anchor/Anchor.kbd.test.ts +0 -70
  504. package/src/anchor/Anchor.svelte +0 -359
  505. package/src/anchor/AnchorKbdFixture.svelte +0 -24
  506. package/src/anchor/index.ts +0 -3
  507. package/src/anchor/meta.ts +0 -70
  508. package/src/anchor/types.ts +0 -8
  509. package/src/autocomplete/AutoComplete.a11y.test.ts +0 -49
  510. package/src/autocomplete/AutoComplete.kbd.test.ts +0 -69
  511. package/src/autocomplete/AutoComplete.svelte +0 -706
  512. package/src/autocomplete/AutoCompleteKbdFixture.svelte +0 -24
  513. package/src/autocomplete/index.ts +0 -2
  514. package/src/autocomplete/meta.ts +0 -41
  515. package/src/avatar/Avatar.a11y.test.ts +0 -37
  516. package/src/avatar/Avatar.svelte +0 -315
  517. package/src/avatar/AvatarGroup.svelte +0 -142
  518. package/src/avatar/context.ts +0 -21
  519. package/src/avatar/index.ts +0 -10
  520. package/src/avatar/meta.ts +0 -73
  521. package/src/back-top/BackTop.a11y.test.ts +0 -40
  522. package/src/back-top/BackTop.svelte +0 -314
  523. package/src/back-top/index.ts +0 -2
  524. package/src/back-top/meta.ts +0 -108
  525. package/src/badge/Badge.a11y.test.ts +0 -35
  526. package/src/badge/Badge.svelte +0 -328
  527. package/src/badge/BadgeA11yFixture.svelte +0 -18
  528. package/src/badge/index.ts +0 -2
  529. package/src/badge/meta.ts +0 -62
  530. package/src/banner/Banner.a11y.test.ts +0 -48
  531. package/src/banner/Banner.svelte +0 -368
  532. package/src/banner/index.ts +0 -3
  533. package/src/banner/meta.ts +0 -121
  534. package/src/breadcrumb/Breadcrumb.a11y.test.ts +0 -35
  535. package/src/breadcrumb/Breadcrumb.kbd.test.ts +0 -45
  536. package/src/breadcrumb/Breadcrumb.svelte +0 -414
  537. package/src/breadcrumb/BreadcrumbKbdFixture.svelte +0 -23
  538. package/src/breadcrumb/Item.svelte +0 -77
  539. package/src/breadcrumb/context.ts +0 -27
  540. package/src/breadcrumb/index.ts +0 -21
  541. package/src/breadcrumb/meta.ts +0 -128
  542. package/src/breadcrumb/types.ts +0 -4
  543. package/src/button/Button.a11y.test.ts +0 -54
  544. package/src/button/Button.svelte +0 -176
  545. package/src/button/index.ts +0 -2
  546. package/src/button/meta.ts +0 -28
  547. package/src/calendar/Calendar.a11y.test.ts +0 -51
  548. package/src/calendar/Calendar.kbd.test.ts +0 -59
  549. package/src/calendar/Calendar.svelte +0 -1344
  550. package/src/calendar/CalendarKbdFixture.svelte +0 -23
  551. package/src/calendar/index.ts +0 -3
  552. package/src/calendar/meta.ts +0 -117
  553. package/src/card/Card.a11y.test.ts +0 -38
  554. package/src/card/Card.svelte +0 -341
  555. package/src/card/CardMeta.svelte +0 -60
  556. package/src/card/index.ts +0 -8
  557. package/src/card/meta.ts +0 -83
  558. package/src/carousel/Carousel.a11y.test.ts +0 -53
  559. package/src/carousel/Carousel.kbd.test.ts +0 -67
  560. package/src/carousel/Carousel.svelte +0 -806
  561. package/src/carousel/CarouselA11yFixture.svelte +0 -25
  562. package/src/carousel/CarouselKbdFixture.svelte +0 -24
  563. package/src/carousel/index.ts +0 -2
  564. package/src/carousel/meta.ts +0 -74
  565. package/src/cascader/Cascader.a11y.test.ts +0 -59
  566. package/src/cascader/Cascader.kbd.test.ts +0 -56
  567. package/src/cascader/Cascader.svelte +0 -1570
  568. package/src/cascader/CascaderKbdFixture.svelte +0 -31
  569. package/src/cascader/index.ts +0 -3
  570. package/src/cascader/meta.ts +0 -57
  571. package/src/cascader/types.ts +0 -9
  572. package/src/checkbox/Checkbox.svelte +0 -281
  573. package/src/checkbox/CheckboxGroup.a11y.test.ts +0 -43
  574. package/src/checkbox/CheckboxGroup.kbd.test.ts +0 -40
  575. package/src/checkbox/CheckboxGroup.svelte +0 -122
  576. package/src/checkbox/CheckboxGroupKbdFixture.svelte +0 -20
  577. package/src/checkbox/context.ts +0 -31
  578. package/src/checkbox/index.ts +0 -4
  579. package/src/checkbox/meta.ts +0 -67
  580. package/src/collapse/Collapse.a11y.test.ts +0 -53
  581. package/src/collapse/Collapse.kbd.test.ts +0 -89
  582. package/src/collapse/Collapse.svelte +0 -406
  583. package/src/collapse/CollapseA11yFixture.svelte +0 -27
  584. package/src/collapse/CollapseKbdFixture.svelte +0 -25
  585. package/src/collapse/CollapsePanel.svelte +0 -102
  586. package/src/collapse/context.ts +0 -54
  587. package/src/collapse/index.ts +0 -17
  588. package/src/collapse/meta.ts +0 -79
  589. package/src/collapse/types.ts +0 -5
  590. package/src/color-picker/ColorPicker.a11y.test.ts +0 -60
  591. package/src/color-picker/ColorPicker.kbd.test.ts +0 -73
  592. package/src/color-picker/ColorPicker.svelte +0 -985
  593. package/src/color-picker/ColorPickerKbdFixture.svelte +0 -25
  594. package/src/color-picker/index.ts +0 -2
  595. package/src/color-picker/meta.ts +0 -47
  596. package/src/config-provider/ConfigProvider.svelte +0 -227
  597. package/src/config-provider/context.ts +0 -29
  598. package/src/config-provider/index.ts +0 -48
  599. package/src/config-provider/meta.ts +0 -128
  600. package/src/date-picker/DatePicker.a11y.test.ts +0 -45
  601. package/src/date-picker/DatePicker.kbd.test.ts +0 -71
  602. package/src/date-picker/DatePicker.svelte +0 -1798
  603. package/src/date-picker/DatePickerKbdFixture.svelte +0 -26
  604. package/src/date-picker/RangePicker.kbd.test.ts +0 -69
  605. package/src/date-picker/RangePicker.svelte +0 -775
  606. package/src/date-picker/RangePickerKbdFixture.svelte +0 -30
  607. package/src/date-picker/index.ts +0 -4
  608. package/src/date-picker/meta.ts +0 -67
  609. package/src/date-picker/range-meta.ts +0 -44
  610. package/src/descriptions/Descriptions.a11y.test.ts +0 -33
  611. package/src/descriptions/Descriptions.svelte +0 -287
  612. package/src/descriptions/DescriptionsItem.svelte +0 -43
  613. package/src/descriptions/context.ts +0 -21
  614. package/src/descriptions/index.ts +0 -16
  615. package/src/descriptions/meta.ts +0 -45
  616. package/src/descriptions/types.ts +0 -6
  617. package/src/divider/Divider.a11y.test.ts +0 -23
  618. package/src/divider/Divider.svelte +0 -154
  619. package/src/divider/index.ts +0 -2
  620. package/src/divider/meta.ts +0 -23
  621. package/src/drawer/Drawer.a11y.test.ts +0 -41
  622. package/src/drawer/Drawer.kbd.test.ts +0 -67
  623. package/src/drawer/Drawer.svelte +0 -554
  624. package/src/drawer/DrawerKbdFixture.svelte +0 -28
  625. package/src/drawer/index.ts +0 -2
  626. package/src/drawer/meta.ts +0 -127
  627. package/src/dropdown/Dropdown.a11y.test.ts +0 -46
  628. package/src/dropdown/Dropdown.kbd.test.ts +0 -56
  629. package/src/dropdown/Dropdown.svelte +0 -573
  630. package/src/dropdown/DropdownA11yFixture.svelte +0 -24
  631. package/src/dropdown/DropdownDivider.svelte +0 -17
  632. package/src/dropdown/DropdownItem.svelte +0 -127
  633. package/src/dropdown/DropdownItemNode.svelte +0 -355
  634. package/src/dropdown/DropdownKbdFixture.svelte +0 -26
  635. package/src/dropdown/DropdownMenu.svelte +0 -24
  636. package/src/dropdown/DropdownSubMenu.svelte +0 -212
  637. package/src/dropdown/DropdownTitle.svelte +0 -34
  638. package/src/dropdown/context.ts +0 -13
  639. package/src/dropdown/index.ts +0 -36
  640. package/src/dropdown/meta.ts +0 -97
  641. package/src/dropdown/types.test.ts +0 -50
  642. package/src/dropdown/types.ts +0 -67
  643. package/src/empty/Empty.a11y.test.ts +0 -24
  644. package/src/empty/Empty.svelte +0 -304
  645. package/src/empty/index.ts +0 -2
  646. package/src/empty/meta.ts +0 -41
  647. package/src/form/Field.svelte +0 -492
  648. package/src/form/FieldArray.svelte +0 -75
  649. package/src/form/Form.a11y.test.ts +0 -39
  650. package/src/form/Form.svelte +0 -243
  651. package/src/form/FormA11yFixture.svelte +0 -31
  652. package/src/form/FormCascader.svelte +0 -82
  653. package/src/form/FormCheckbox.svelte +0 -83
  654. package/src/form/FormDatePicker.svelte +0 -80
  655. package/src/form/FormErrorMessage.svelte +0 -44
  656. package/src/form/FormInput.svelte +0 -95
  657. package/src/form/FormLabel.svelte +0 -46
  658. package/src/form/FormRadio.svelte +0 -83
  659. package/src/form/FormRating.svelte +0 -85
  660. package/src/form/FormSection.svelte +0 -45
  661. package/src/form/FormSelect.svelte +0 -96
  662. package/src/form/FormSlider.svelte +0 -95
  663. package/src/form/FormSlot.svelte +0 -51
  664. package/src/form/FormSwitch.svelte +0 -82
  665. package/src/form/FormTagInput.svelte +0 -79
  666. package/src/form/FormTreeSelect.svelte +0 -85
  667. package/src/form/FormUpload.svelte +0 -92
  668. package/src/form/context.ts +0 -47
  669. package/src/form/index.ts +0 -22
  670. package/src/form/meta.ts +0 -85
  671. package/src/grid/Col.svelte +0 -142
  672. package/src/grid/Grid.a11y.test.ts +0 -14
  673. package/src/grid/GridA11yFixture.svelte +0 -12
  674. package/src/grid/Row.svelte +0 -116
  675. package/src/grid/index.ts +0 -3
  676. package/src/grid/meta.ts +0 -72
  677. package/src/grid/use-breakpoint.svelte.ts +0 -48
  678. package/src/highlight/Highlight.a11y.test.ts +0 -25
  679. package/src/highlight/Highlight.svelte +0 -99
  680. package/src/highlight/index.ts +0 -2
  681. package/src/highlight/meta.ts +0 -80
  682. package/src/icon/Icon.svelte +0 -156
  683. package/src/icon/index.ts +0 -2
  684. package/src/icon/meta.ts +0 -41
  685. package/src/image/Image.a11y.test.ts +0 -30
  686. package/src/image/Image.svelte +0 -387
  687. package/src/image/ImagePreview.kbd.test.ts +0 -52
  688. package/src/image/ImagePreview.svelte +0 -309
  689. package/src/image/ImagePreviewGroup.svelte +0 -93
  690. package/src/image/ImagePreviewKbdFixture.svelte +0 -32
  691. package/src/image/context.ts +0 -26
  692. package/src/image/index.ts +0 -15
  693. package/src/image/meta.ts +0 -131
  694. package/src/index.ts +0 -208
  695. package/src/input/Input.a11y.test.ts +0 -58
  696. package/src/input/Input.svelte +0 -505
  697. package/src/input/index.ts +0 -2
  698. package/src/input/meta.ts +0 -40
  699. package/src/input-number/InputNumber.a11y.test.ts +0 -43
  700. package/src/input-number/InputNumber.kbd.test.ts +0 -41
  701. package/src/input-number/InputNumber.svelte +0 -674
  702. package/src/input-number/InputNumberKbdFixture.svelte +0 -15
  703. package/src/input-number/index.ts +0 -2
  704. package/src/input-number/meta.ts +0 -65
  705. package/src/layout/Content.svelte +0 -37
  706. package/src/layout/Footer.svelte +0 -49
  707. package/src/layout/Header.svelte +0 -46
  708. package/src/layout/Layout.a11y.test.ts +0 -34
  709. package/src/layout/Layout.svelte +0 -60
  710. package/src/layout/LayoutA11yFixture.svelte +0 -21
  711. package/src/layout/Sider.svelte +0 -207
  712. package/src/layout/index.ts +0 -26
  713. package/src/layout/meta.ts +0 -116
  714. package/src/list/List.a11y.test.ts +0 -69
  715. package/src/list/List.bench.ts +0 -26
  716. package/src/list/List.kbd.test.ts +0 -71
  717. package/src/list/List.svelte +0 -920
  718. package/src/list/ListA11yFixture.svelte +0 -38
  719. package/src/list/ListBenchFixture.svelte +0 -22
  720. package/src/list/ListItem.svelte +0 -175
  721. package/src/list/ListKbdFixture.svelte +0 -31
  722. package/src/list/ListMeta.svelte +0 -73
  723. package/src/list/context.ts +0 -39
  724. package/src/list/index.ts +0 -21
  725. package/src/list/meta.ts +0 -99
  726. package/src/locale-provider/LocaleProvider.svelte +0 -110
  727. package/src/locale-provider/context.ts +0 -22
  728. package/src/locale-provider/index.ts +0 -21
  729. package/src/locale-provider/meta.ts +0 -93
  730. package/src/locale-provider/use-locale.ts +0 -25
  731. package/src/lottie-icon/LottieIcon.svelte +0 -330
  732. package/src/lottie-icon/index.ts +0 -9
  733. package/src/lottie-icon/meta.ts +0 -162
  734. package/src/menu/Menu.a11y.test.ts +0 -54
  735. package/src/menu/Menu.kbd.test.ts +0 -69
  736. package/src/menu/Menu.svelte +0 -762
  737. package/src/menu/MenuKbdFixture.svelte +0 -22
  738. package/src/menu/MenuPopupNode.svelte +0 -525
  739. package/src/menu/index.ts +0 -4
  740. package/src/menu/meta.ts +0 -137
  741. package/src/menu/types.ts +0 -120
  742. package/src/meta.test.ts +0 -173
  743. package/src/modal/ConfirmModal.svelte +0 -173
  744. package/src/modal/Modal.a11y.test.ts +0 -46
  745. package/src/modal/Modal.kbd.test.ts +0 -65
  746. package/src/modal/Modal.svelte +0 -511
  747. package/src/modal/ModalKbdFixture.svelte +0 -24
  748. package/src/modal/command.svelte.ts +0 -103
  749. package/src/modal/index.ts +0 -30
  750. package/src/modal/meta.ts +0 -165
  751. package/src/modal/z-stack.ts +0 -26
  752. package/src/notification/NotificationContainer.svelte +0 -192
  753. package/src/notification/NotificationItem.a11y.test.ts +0 -73
  754. package/src/notification/NotificationItem.svelte +0 -368
  755. package/src/notification/index.ts +0 -9
  756. package/src/notification/meta.ts +0 -120
  757. package/src/notification/store.ts +0 -191
  758. package/src/overflow-list/OverflowList.a11y.test.ts +0 -46
  759. package/src/overflow-list/OverflowList.kbd.test.ts +0 -34
  760. package/src/overflow-list/OverflowList.svelte +0 -539
  761. package/src/overflow-list/OverflowListA11yFixture.svelte +0 -22
  762. package/src/overflow-list/OverflowListKbdFixture.svelte +0 -21
  763. package/src/overflow-list/index.ts +0 -2
  764. package/src/overflow-list/meta.ts +0 -138
  765. package/src/pagination/Pagination.a11y.test.ts +0 -62
  766. package/src/pagination/Pagination.kbd.test.ts +0 -66
  767. package/src/pagination/Pagination.svelte +0 -428
  768. package/src/pagination/PaginationKbdFixture.svelte +0 -15
  769. package/src/pagination/index.ts +0 -2
  770. package/src/pagination/meta.ts +0 -73
  771. package/src/popconfirm/Popconfirm.a11y.test.ts +0 -46
  772. package/src/popconfirm/Popconfirm.kbd.test.ts +0 -42
  773. package/src/popconfirm/Popconfirm.svelte +0 -724
  774. package/src/popconfirm/PopconfirmA11yFixture.svelte +0 -34
  775. package/src/popconfirm/PopconfirmKbdFixture.svelte +0 -17
  776. package/src/popconfirm/index.ts +0 -2
  777. package/src/popconfirm/meta.ts +0 -200
  778. package/src/popover/Popover.a11y.test.ts +0 -58
  779. package/src/popover/Popover.kbd.test.ts +0 -42
  780. package/src/popover/Popover.svelte +0 -643
  781. package/src/popover/PopoverA11yFixture.svelte +0 -35
  782. package/src/popover/PopoverKbdFixture.svelte +0 -18
  783. package/src/popover/index.ts +0 -2
  784. package/src/popover/meta.ts +0 -103
  785. package/src/progress/Progress.a11y.test.ts +0 -37
  786. package/src/progress/Progress.svelte +0 -423
  787. package/src/progress/index.ts +0 -3
  788. package/src/progress/meta.ts +0 -132
  789. package/src/radio/Radio.svelte +0 -330
  790. package/src/radio/RadioGroup.a11y.test.ts +0 -43
  791. package/src/radio/RadioGroup.kbd.test.ts +0 -75
  792. package/src/radio/RadioGroup.svelte +0 -199
  793. package/src/radio/RadioGroupKbdFixture.svelte +0 -21
  794. package/src/radio/context.ts +0 -42
  795. package/src/radio/index.ts +0 -4
  796. package/src/radio/meta.ts +0 -68
  797. package/src/rating/Rating.a11y.test.ts +0 -41
  798. package/src/rating/Rating.kbd.test.ts +0 -48
  799. package/src/rating/Rating.svelte +0 -407
  800. package/src/rating/RatingKbdFixture.svelte +0 -15
  801. package/src/rating/index.ts +0 -2
  802. package/src/rating/meta.ts +0 -40
  803. package/src/resize-observer/ResizeObserver.svelte +0 -169
  804. package/src/resize-observer/action.ts +0 -80
  805. package/src/resize-observer/index.ts +0 -9
  806. package/src/resize-observer/meta.ts +0 -102
  807. package/src/scroll-list/ScrollColumn.svelte +0 -592
  808. package/src/scroll-list/ScrollList.svelte +0 -257
  809. package/src/scroll-list/index.ts +0 -4
  810. package/src/scroll-list/meta.ts +0 -93
  811. package/src/scroll-list/types.ts +0 -18
  812. package/src/select/Select.a11y.test.ts +0 -59
  813. package/src/select/Select.kbd.test.ts +0 -59
  814. package/src/select/Select.svelte +0 -1155
  815. package/src/select/SelectKbdFixture.svelte +0 -29
  816. package/src/select/index.ts +0 -3
  817. package/src/select/meta.ts +0 -78
  818. package/src/select/types.ts +0 -2
  819. package/src/side-sheet/SideSheet.a11y.test.ts +0 -53
  820. package/src/side-sheet/SideSheet.kbd.test.ts +0 -63
  821. package/src/side-sheet/SideSheet.svelte +0 -659
  822. package/src/side-sheet/SideSheetKbdFixture.svelte +0 -30
  823. package/src/side-sheet/index.ts +0 -2
  824. package/src/side-sheet/meta.ts +0 -116
  825. package/src/skeleton/Skeleton.a11y.test.ts +0 -35
  826. package/src/skeleton/Skeleton.svelte +0 -131
  827. package/src/skeleton/SkeletonAvatar.svelte +0 -82
  828. package/src/skeleton/SkeletonButton.svelte +0 -90
  829. package/src/skeleton/SkeletonImage.svelte +0 -100
  830. package/src/skeleton/SkeletonParagraph.svelte +0 -103
  831. package/src/skeleton/SkeletonTitle.svelte +0 -74
  832. package/src/skeleton/context.ts +0 -11
  833. package/src/skeleton/index.ts +0 -8
  834. package/src/skeleton/meta.ts +0 -65
  835. package/src/slider/Slider.a11y.test.ts +0 -44
  836. package/src/slider/Slider.kbd.test.ts +0 -74
  837. package/src/slider/Slider.svelte +0 -716
  838. package/src/slider/SliderKbdFixture.svelte +0 -21
  839. package/src/slider/index.ts +0 -2
  840. package/src/slider/meta.ts +0 -55
  841. package/src/space/Space.a11y.test.ts +0 -22
  842. package/src/space/Space.svelte +0 -109
  843. package/src/space/SpaceA11yFixture.svelte +0 -17
  844. package/src/space/index.ts +0 -2
  845. package/src/space/meta.ts +0 -27
  846. package/src/spin/Spin.a11y.test.ts +0 -29
  847. package/src/spin/Spin.svelte +0 -293
  848. package/src/spin/SpinA11yFixture.svelte +0 -18
  849. package/src/spin/index.ts +0 -2
  850. package/src/spin/meta.ts +0 -72
  851. package/src/steps/Steps.a11y.test.ts +0 -39
  852. package/src/steps/Steps.kbd.test.ts +0 -73
  853. package/src/steps/Steps.svelte +0 -392
  854. package/src/steps/StepsKbdFixture.svelte +0 -21
  855. package/src/steps/index.ts +0 -3
  856. package/src/steps/meta.ts +0 -59
  857. package/src/steps/types.ts +0 -8
  858. package/src/switch/Switch.a11y.test.ts +0 -46
  859. package/src/switch/Switch.kbd.test.ts +0 -40
  860. package/src/switch/Switch.svelte +0 -310
  861. package/src/switch/SwitchKbdFixture.svelte +0 -22
  862. package/src/switch/index.ts +0 -2
  863. package/src/switch/meta.ts +0 -44
  864. package/src/table/Table.a11y.test.ts +0 -70
  865. package/src/table/Table.bench.ts +0 -51
  866. package/src/table/Table.kbd.test.ts +0 -94
  867. package/src/table/Table.svelte +0 -2327
  868. package/src/table/TableKbdFixture.svelte +0 -35
  869. package/src/table/grid-nav.test.ts +0 -173
  870. package/src/table/grid-nav.ts +0 -146
  871. package/src/table/index.ts +0 -13
  872. package/src/table/meta.ts +0 -121
  873. package/src/table/types.ts +0 -133
  874. package/src/tabs/TabPane.svelte +0 -92
  875. package/src/tabs/Tabs.a11y.test.ts +0 -47
  876. package/src/tabs/Tabs.kbd.test.ts +0 -74
  877. package/src/tabs/Tabs.svelte +0 -1128
  878. package/src/tabs/TabsA11yFixture.svelte +0 -20
  879. package/src/tabs/TabsKbdFixture.svelte +0 -25
  880. package/src/tabs/context.ts +0 -43
  881. package/src/tabs/index.ts +0 -14
  882. package/src/tabs/meta.ts +0 -152
  883. package/src/tabs/types.ts +0 -6
  884. package/src/tag/Tag.a11y.test.ts +0 -33
  885. package/src/tag/Tag.svelte +0 -366
  886. package/src/tag/TagA11yFixture.svelte +0 -18
  887. package/src/tag/index.ts +0 -2
  888. package/src/tag/meta.ts +0 -92
  889. package/src/tag-input/TagInput.a11y.test.ts +0 -41
  890. package/src/tag-input/TagInput.svelte +0 -544
  891. package/src/tag-input/index.ts +0 -2
  892. package/src/tag-input/meta.ts +0 -43
  893. package/src/tag-input/reorder.test.ts +0 -59
  894. package/src/tag-input/reorder.ts +0 -41
  895. package/src/test-utils/LocaleHarness.svelte +0 -29
  896. package/src/test-utils/a11y.ts +0 -108
  897. package/src/test-utils/kbd.ts +0 -52
  898. package/src/textarea/TextArea.a11y.test.ts +0 -44
  899. package/src/textarea/TextArea.svelte +0 -420
  900. package/src/textarea/index.ts +0 -2
  901. package/src/textarea/meta.ts +0 -104
  902. package/src/time-picker/TimePicker.a11y.test.ts +0 -45
  903. package/src/time-picker/TimePicker.kbd.test.ts +0 -70
  904. package/src/time-picker/TimePicker.svelte +0 -1023
  905. package/src/time-picker/TimePickerKbdFixture.svelte +0 -23
  906. package/src/time-picker/index.ts +0 -2
  907. package/src/time-picker/meta.ts +0 -64
  908. package/src/timeline/Timeline.a11y.test.ts +0 -54
  909. package/src/timeline/Timeline.svelte +0 -599
  910. package/src/timeline/TimelineItem.svelte +0 -164
  911. package/src/timeline/context.ts +0 -28
  912. package/src/timeline/index.ts +0 -16
  913. package/src/timeline/meta.ts +0 -129
  914. package/src/timeline/types.ts +0 -9
  915. package/src/toast/Toast.a11y.test.ts +0 -67
  916. package/src/toast/ToastContainer.svelte +0 -184
  917. package/src/toast/ToastItem.svelte +0 -247
  918. package/src/toast/index.ts +0 -9
  919. package/src/toast/live-region.ts +0 -78
  920. package/src/toast/meta.ts +0 -95
  921. package/src/toast/store.ts +0 -187
  922. package/src/tooltip/Tooltip.a11y.test.ts +0 -41
  923. package/src/tooltip/Tooltip.kbd.test.ts +0 -37
  924. package/src/tooltip/Tooltip.svelte +0 -416
  925. package/src/tooltip/TooltipA11yFixture.svelte +0 -31
  926. package/src/tooltip/TooltipKbdFixture.svelte +0 -16
  927. package/src/tooltip/index.ts +0 -2
  928. package/src/tooltip/meta.ts +0 -59
  929. package/src/tooltip/placement.ts +0 -6
  930. package/src/transfer/Transfer.a11y.test.ts +0 -63
  931. package/src/transfer/Transfer.kbd.test.ts +0 -75
  932. package/src/transfer/Transfer.svelte +0 -1451
  933. package/src/transfer/TransferKbdFixture.svelte +0 -23
  934. package/src/transfer/group.test.ts +0 -55
  935. package/src/transfer/group.ts +0 -61
  936. package/src/transfer/index.ts +0 -3
  937. package/src/transfer/meta.ts +0 -55
  938. package/src/transfer/reorder.test.ts +0 -52
  939. package/src/transfer/reorder.ts +0 -42
  940. package/src/transfer/tree.test.ts +0 -44
  941. package/src/transfer/tree.ts +0 -52
  942. package/src/transfer/types.ts +0 -32
  943. package/src/tree/Tree.a11y.test.ts +0 -63
  944. package/src/tree/Tree.kbd.test.ts +0 -91
  945. package/src/tree/Tree.svelte +0 -1500
  946. package/src/tree/TreeKbdFixture.svelte +0 -30
  947. package/src/tree/index.ts +0 -3
  948. package/src/tree/meta.ts +0 -152
  949. package/src/tree-select/TreeSelect.a11y.test.ts +0 -52
  950. package/src/tree-select/TreeSelect.kbd.test.ts +0 -53
  951. package/src/tree-select/TreeSelect.svelte +0 -1611
  952. package/src/tree-select/TreeSelectKbdFixture.svelte +0 -20
  953. package/src/tree-select/index.ts +0 -3
  954. package/src/tree-select/meta.ts +0 -73
  955. package/src/tree-select/types.ts +0 -11
  956. package/src/tree-select/virtual.test.ts +0 -104
  957. package/src/typography/Link.svelte +0 -120
  958. package/src/typography/Paragraph.svelte +0 -92
  959. package/src/typography/Text.svelte +0 -93
  960. package/src/typography/Title.svelte +0 -91
  961. package/src/typography/Typography.a11y.test.ts +0 -34
  962. package/src/typography/TypographyA11yFixture.svelte +0 -27
  963. package/src/typography/TypographyBase.svelte +0 -807
  964. package/src/typography/index.ts +0 -16
  965. package/src/typography/meta.ts +0 -158
  966. package/src/upload/Upload.a11y.test.ts +0 -58
  967. package/src/upload/Upload.svelte +0 -1094
  968. package/src/upload/UploadA11yFixture.svelte +0 -23
  969. package/src/upload/index.ts +0 -3
  970. package/src/upload/meta.ts +0 -64
  971. package/src/upload/types.ts +0 -16
  972. package/src/virtual-list/VirtualList.svelte +0 -401
  973. package/src/virtual-list/index.ts +0 -2
  974. package/src/virtual-list/meta.ts +0 -106
@@ -1,920 +0,0 @@
1
- <!--
2
- List — see specs/components/show/List.spec.md
3
- 基础子集:dataSource + renderItem、header/footer(string|Snippet)、bordered/split、
4
- loading(骨架/spinner)、empty、loadMore(内置按钮/自定义)、grid 网格布局。
5
- pagination:复用 Pagination 组件,对 dataSource 切片渲染当页(受控 current 不回写,红线 #1)。
6
- 进阶子集:
7
- - 虚拟化(virtualized):大数据只渲染视口内行,复用 core fixedRange/dynamicRange/
8
- scrollOffsetForIndex(与 VirtualList 同一套区间数学)。命令式滚动监听 + rAF 节流 +
9
- cleanup(红线 #3);区间/总高纯 $derived,仅依赖本地 $state(红线 #2)。virtualized
10
- 与 grid/pagination 互斥(优先生效,对全量 dataSource 虚拟化)。
11
- - selectable('single'|'multiple'):行可选,选中态受控 selectedKeys + onSelectionChange,
12
- 不回写仅回调(红线 #1)。容器 role=listbox(multiple 时 aria-multiselectable),
13
- 行 role=option + aria-selected。shift 连选(multiple)。
14
- - 声明式 List.Item / List.Item.Meta:不传 dataSource 时渲染 children(内嵌 <List.Item>),
15
- 通过 context 暴露 selectable 状态给子项(getter 保持响应性,子项不写 $state,避免
16
- effect 自循环——红线 #2)。
17
- -->
18
- <script lang="ts" generics="T">
19
- import { untrack, type Snippet } from 'svelte';
20
- import {
21
- fixedRange,
22
- buildOffsets,
23
- totalFromOffsets,
24
- dynamicRange,
25
- scrollOffsetForIndex,
26
- toggleSelection,
27
- rangeSelection,
28
- useLiveAnnouncer,
29
- type ScrollAlign,
30
- type ListKey,
31
- } from '@chenzy-design/core';
32
- import Empty from '../empty/Empty.svelte';
33
- import { Button } from '../button/index.js';
34
- import { Pagination } from '../pagination/index.js';
35
- import { useLocale } from '../locale-provider/index.js';
36
- import { setListContext } from './context.js';
37
-
38
- type ListSize = 'small' | 'default' | 'large';
39
- type GridConfig = number | { column?: number; gutter?: number };
40
- type SelectableMode = false | 'single' | 'multiple';
41
- type VirtualConfig = {
42
- /** 行高(px),默认 40;传 'auto' 启用动态测高。 */
43
- itemSize?: number | 'auto';
44
- /** 动态测高初始估算行高(px)。 */
45
- estimatedItemSize?: number;
46
- /** 视口高度(px 数字,或 CSS 字符串如 '60vh')。 */
47
- height: number | string;
48
- /** 上下缓冲行数,默认 3。 */
49
- overscan?: number;
50
- };
51
-
52
- // 泛型组件 props 用内联类型而非具名 interface Props:在 declaration:true 下,
53
- // 引用泛型参数 T 的具名 interface 会被当作私有名泄漏进生成的 .d.ts 公共签名而报错。
54
- let {
55
- dataSource = [],
56
- renderItem,
57
- rowKey = 'key',
58
- size = 'default',
59
- bordered = false,
60
- split = true,
61
- header,
62
- footer,
63
- loading = false,
64
- loadingSkeleton = false,
65
- skeletonCount = 3,
66
- emptyContent,
67
- grid,
68
- loadMore,
69
- onLoadMore,
70
- loadingMore = false,
71
- hasMore = false,
72
- pagination,
73
- virtualized = false,
74
- selectable = false,
75
- selectedKeys,
76
- defaultSelectedKeys = [],
77
- onSelectionChange,
78
- ariaLabel,
79
- children,
80
- layout = 'vertical',
81
- onListScroll,
82
- class: className = '',
83
- }: {
84
- dataSource?: T[];
85
- renderItem?: Snippet<[item: T, index: number]>;
86
- rowKey?: string | ((item: T) => string | number);
87
- size?: ListSize;
88
- bordered?: boolean;
89
- split?: boolean;
90
- header?: string | Snippet;
91
- footer?: string | Snippet;
92
- loading?: boolean;
93
- loadingSkeleton?: boolean;
94
- skeletonCount?: number;
95
- emptyContent?: string | Snippet;
96
- /** 网格布局:列数或 { column, gutter } */
97
- grid?: GridConfig;
98
- /** 自定义底部加载区(优先于内置按钮) */
99
- loadMore?: Snippet;
100
- /** 内置「加载更多」按钮回调 */
101
- onLoadMore?: () => void;
102
- /** 内置按钮 loading 态 */
103
- loadingMore?: boolean;
104
- /** 是否还有更多(控制内置按钮显隐) */
105
- hasMore?: boolean;
106
- /** 分页:复用 Pagination,对 dataSource 切片渲染当页(与 loadMore 互斥,优先生效) */
107
- pagination?:
108
- | false
109
- | {
110
- pageSize?: number;
111
- current?: number;
112
- defaultCurrent?: number;
113
- onChange?: (page: number) => void;
114
- };
115
- /** 虚拟化:大数据只渲染视口内行(与 grid/pagination 互斥,优先生效)。 */
116
- virtualized?: false | VirtualConfig;
117
- /** 行可选:'single' 单选 / 'multiple' 多选。 */
118
- selectable?: SelectableMode;
119
- /** 受控选中 key 集合(不回写,仅 onSelectionChange 回调,红线 #1)。 */
120
- selectedKeys?: ListKey[];
121
- /** 非受控初始选中 key 集合。 */
122
- defaultSelectedKeys?: ListKey[];
123
- /** 选中态变更回调(受控/非受控均触发)。 */
124
- onSelectionChange?: (
125
- keys: ListKey[],
126
- info: { item: T | undefined; key: ListKey; selected: boolean },
127
- ) => void;
128
- /** selectable 模式 listbox 容器可访问名(缺省回退 i18n List.selectableLabel)。 */
129
- ariaLabel?: string;
130
- /** 声明式用法:内嵌 <List.Item>(不传 dataSource 时生效)。 */
131
- children?: Snippet;
132
- /** 整体布局方向:'vertical'(默认)每 item 内容纵向排列;'horizontal' 横向排列。 */
133
- layout?: 'horizontal' | 'vertical';
134
- /** 列表容器滚动事件。 */
135
- onListScroll?: (e: Event) => void;
136
- class?: string;
137
- } = $props();
138
-
139
- const loc = useLocale();
140
- // 单例 live region(polite):selectable 模式选中/取消时播报(红线 #3:命令式)。
141
- const announcer = useLiveAnnouncer();
142
-
143
- function isSnippet(v: unknown): v is Snippet {
144
- return typeof v === 'function';
145
- }
146
-
147
- function keyOf(item: T, index: number): string | number {
148
- if (typeof rowKey === 'function') return rowKey(item);
149
- const rec = item as unknown as Record<string, unknown>;
150
- const k = rec?.[rowKey];
151
- if (typeof k === 'string' || typeof k === 'number') return k;
152
- return index;
153
- }
154
-
155
- // 声明式用法:未传 dataSource 且存在 children(内嵌 <List.Item>)。优先级低于 dataSource。
156
- const useDeclarative = $derived(dataSource.length === 0 && children != null);
157
-
158
- const isEmpty = $derived(!loading && !useDeclarative && dataSource.length === 0);
159
- const skeletonRows = $derived(Array.from({ length: Math.max(0, skeletonCount) }, (_, i) => i));
160
-
161
- // --- selectable 选中态:受控 selectedKeys 不回写,本地 inner 兜底(红线 #1) ---
162
- const selectMode = $derived<'single' | 'multiple' | null>(
163
- selectable === 'single' || selectable === 'multiple' ? selectable : null,
164
- );
165
- const isSelectControlled = $derived(selectedKeys !== undefined);
166
- let innerSelected = $state<ListKey[]>(untrack(() => [...defaultSelectedKeys]));
167
- // 当前选中集合(受控优先);用 Set 做 O(1) 命中判定(红线 #2:纯派生)。
168
- const selectedSet = $derived<ReadonlySet<ListKey>>(
169
- new Set(selectedKeys !== undefined ? selectedKeys : innerSelected),
170
- );
171
- // shift 连选锚点(普通簿记变量,不参与 render 响应式)。
172
- let anchorIndex = -1;
173
-
174
- function keyToItem(key: ListKey): T | undefined {
175
- for (let i = 0; i < dataSource.length; i += 1) {
176
- const it = dataSource[i]!;
177
- if (keyOf(it, i) === key) return it;
178
- }
179
- return undefined;
180
- }
181
-
182
- // 命令式选中切换:算出下一集合 → 仅回调 onSelectionChange(受控不回写,红线 #1)。
183
- function toggleKey(key: ListKey, shiftKey: boolean): void {
184
- if (!selectMode) return;
185
- let next: Set<ListKey>;
186
- if (shiftKey && selectMode === 'multiple' && anchorIndex >= 0) {
187
- const orderedKeys = dataSource.map((it, i) => keyOf(it, i));
188
- const targetIndex = orderedKeys.indexOf(key);
189
- next = rangeSelection(selectedSet, orderedKeys, anchorIndex, targetIndex);
190
- } else {
191
- next = toggleSelection(selectedSet, key, selectMode);
192
- // 仅非 shift 单击更新锚点。
193
- if (selectMode === 'multiple') {
194
- anchorIndex = dataSource.findIndex((it, i) => keyOf(it, i) === key);
195
- }
196
- }
197
- const selected = next.has(key);
198
- if (!isSelectControlled) innerSelected = [...next];
199
- onSelectionChange?.([...next], { item: keyToItem(key), key, selected });
200
- // polite 播报当前操作项的选中/取消状态。label 取常见文本字段,回退到 key。
201
- const label = selectionLabel(key);
202
- announcer.announce(
203
- loc().t(selected ? 'List.selectAnnounce' : 'List.deselectAnnounce', { label }),
204
- );
205
- }
206
-
207
- // 选中播报用可读名:优先 item 的字符串本体或 label/title/name 字段,回退到 key。
208
- function selectionLabel(key: ListKey): string {
209
- const item = keyToItem(key);
210
- if (typeof item === 'string' || typeof item === 'number') return String(item);
211
- const rec = item as unknown as Record<string, unknown> | undefined;
212
- const text = rec?.label ?? rec?.title ?? rec?.name;
213
- if (typeof text === 'string' || typeof text === 'number') return String(text);
214
- return String(key);
215
- }
216
-
217
- // 向声明式 <List.Item> 暴露 selectable 状态(getter 保持响应性;红线 #2:子项不写 $state)。
218
- setListContext({
219
- getSelectable: () => selectable,
220
- isSelected: (key) => selectedSet.has(key),
221
- toggle: (key, shiftKey) => toggleKey(key, shiftKey),
222
- getSize: () => size,
223
- rowTabindex: (key) => itemTabindex(key),
224
- onRowKeydown: (e, key) => onItemKeydown(e, key),
225
- onRowFocus: (key) => onRowFocus(key),
226
- });
227
-
228
- // --- 虚拟化几何(复用 core 区间数学;红线 #2/#3) ---
229
- const virtualOn = $derived(virtualized !== false && virtualized !== undefined);
230
- const vCfg = $derived<VirtualConfig>(
231
- virtualized && virtualized !== undefined
232
- ? virtualized
233
- : { height: 400 },
234
- );
235
- const vDynamic = $derived(virtualOn && vCfg.itemSize === 'auto');
236
- const vItemSize = $derived(typeof vCfg.itemSize === 'number' ? vCfg.itemSize : 40);
237
- const vEstimated = $derived(vCfg.estimatedItemSize ?? 40);
238
- const vOverscan = $derived(vCfg.overscan ?? 3);
239
- const vHeightStyle = $derived(
240
- typeof vCfg.height === 'number' ? `${vCfg.height}px` : vCfg.height,
241
- );
242
-
243
- // viewport 元素普通引用(bind:this),不参与响应式几何读取。
244
- let viewportEl = $state<HTMLDivElement | null>(null);
245
- // 本地响应式状态:仅由命令式回调 / ResizeObserver 写入,render 期只读。
246
- let vScrollTop = $state(0);
247
- let vMeasuredH = $state(0);
248
- let vHeights = $state<Record<number, number>>({});
249
- let vRafId = 0;
250
-
251
- // 有效视口高:number 直接用,字符串用测量值。
252
- const vViewportH = $derived(
253
- typeof vCfg.height === 'number' ? vCfg.height : vMeasuredH,
254
- );
255
-
256
- // dynamic:合并实测/估算每项高度 → 前缀和 offsets(render-safe,仅依赖 $state)。
257
- const vOffsets = $derived.by(() => {
258
- if (!vDynamic) return [] as number[];
259
- const arr = new Array<number>(dataSource.length);
260
- for (let i = 0; i < dataSource.length; i += 1) arr[i] = vHeights[i] ?? vEstimated;
261
- return buildOffsets(arr);
262
- });
263
- const vTotalHeight = $derived(
264
- vDynamic ? totalFromOffsets(vOffsets) : dataSource.length * vItemSize,
265
- );
266
- const vRange = $derived(
267
- vDynamic
268
- ? dynamicRange(vOffsets, vScrollTop, vViewportH, vOverscan)
269
- : fixedRange(vScrollTop, vViewportH, vItemSize, dataSource.length, vOverscan),
270
- );
271
- const vStart = $derived(vRange.startIndex);
272
- const vEnd = $derived(vRange.endIndex);
273
- const vVisible = $derived(dataSource.slice(vStart, vEnd));
274
-
275
- function vItemOffset(index: number): number {
276
- if (vDynamic) return vOffsets[index] ?? index * vEstimated;
277
- return index * vItemSize;
278
- }
279
- function vItemMainSize(index: number): number {
280
- if (vDynamic) return vHeights[index] ?? vEstimated;
281
- return vItemSize;
282
- }
283
- function vItemStyle(index: number): string {
284
- const off = vItemOffset(index);
285
- if (vDynamic) return `transform:translateY(${off}px)`;
286
- return `transform:translateY(${off}px); block-size:${vItemSize}px`;
287
- }
288
-
289
- /**
290
- * 命令式滚动到指定索引项(红线 #3:直接写 DOM scrollTop,非 render 期)。
291
- */
292
- export function scrollToIndex(
293
- index: number,
294
- opts?: { align?: ScrollAlign },
295
- ): void {
296
- const el = viewportEl;
297
- if (!el || !virtualOn || dataSource.length === 0) return;
298
- const i = Math.max(0, Math.min(dataSource.length - 1, Math.floor(index)));
299
- const totalMain = vDynamic ? totalFromOffsets(vOffsets) : dataSource.length * vItemSize;
300
- const target = scrollOffsetForIndex(
301
- vItemOffset(i),
302
- vItemMainSize(i),
303
- el.clientHeight,
304
- totalMain,
305
- opts?.align ?? 'start',
306
- );
307
- el.scrollTop = target;
308
- vScrollTop = target;
309
- }
310
-
311
- // 虚拟化滚动监听(命令式 + rAF 节流 + cleanup;红线 #3)。
312
- $effect(() => {
313
- const el = viewportEl;
314
- if (!el || !virtualOn) return;
315
- function onScroll() {
316
- if (vRafId) return;
317
- vRafId = requestAnimationFrame(() => {
318
- vRafId = 0;
319
- if (el) vScrollTop = el.scrollTop;
320
- });
321
- }
322
- el.addEventListener('scroll', onScroll, { passive: true });
323
- return () => {
324
- el.removeEventListener('scroll', onScroll);
325
- if (vRafId) {
326
- cancelAnimationFrame(vRafId);
327
- vRafId = 0;
328
- }
329
- };
330
- });
331
-
332
- // 视口高度测量:仅 height 非数字(字符串)时启用 ResizeObserver。
333
- $effect(() => {
334
- const el = viewportEl;
335
- if (!el || !virtualOn || typeof vCfg.height === 'number') return;
336
- vMeasuredH = el.clientHeight;
337
- const ro = new ResizeObserver((entries) => {
338
- for (const entry of entries) vMeasuredH = entry.contentRect.height;
339
- });
340
- ro.observe(el);
341
- return () => ro.disconnect();
342
- });
343
-
344
- // dynamic 行高实测 + 偏移补偿(命令式 ResizeObserver,cleanup disconnect;红线 #2/#3)。
345
- $effect(() => {
346
- const el = viewportEl;
347
- if (!el || !virtualOn || !vDynamic) return;
348
- void vVisible; // 依赖渲染行集合变化重建 observer。
349
-
350
- function measure(node: Element) {
351
- const idx = Number((node as HTMLElement).dataset.vindex);
352
- if (Number.isNaN(idx)) return;
353
- const h = (node as HTMLElement).getBoundingClientRect().height;
354
- if (h <= 0) return;
355
- const prev = vHeights[idx];
356
- if (prev !== undefined && Math.abs(prev - h) < 0.5) return;
357
- const before = prev ?? vEstimated;
358
- const delta = h - before;
359
- vHeights[idx] = h;
360
- if (delta !== 0 && el && vItemOffset(idx) < vScrollTop) {
361
- el.scrollTop += delta;
362
- vScrollTop = el.scrollTop;
363
- }
364
- }
365
-
366
- const ro = new ResizeObserver((entries) => {
367
- for (const entry of entries) measure(entry.target);
368
- });
369
- const rows = el.querySelectorAll<HTMLElement>('[data-vindex]');
370
- rows.forEach((node) => {
371
- measure(node);
372
- ro.observe(node);
373
- });
374
- return () => ro.disconnect();
375
- });
376
-
377
- // selectable 行点击/键盘(dataSource 模式用;声明式由 List.Item 自身处理)。
378
- function onRowActivate(item: T, index: number, shiftKey: boolean): void {
379
- toggleKey(keyOf(item, index), shiftKey);
380
- }
381
-
382
- // --- roving tabindex(a11y §6 / Listbox APG):selectable 行组为单一 Tab 停靠点。 ---
383
- // rootEl 普通引用(bind:this),命令式 focus() 用,非 render 期读 DOM;
384
- // 声明式 / 虚拟化 / 普通三种渲染路径的行都带 data-list-key,统一按 DOM 顺序漫游
385
- // (红线 #2:不用 $state 数组收集子项,避免 effect 自循环)。
386
- let rootEl = $state<HTMLElement | null>(null);
387
- // 当前焦点行的 key;null = 尚无焦点 -> 首行作为 Tab 停靠点。
388
- let focusedRowKey = $state<ListKey | null>(null);
389
-
390
- // selectable 模式下行的有序 key 列表(用于 roving 首末 / PageUp/Down 计算)。
391
- const rowKeys = $derived<ListKey[]>(
392
- selectMode ? dataSource.map((it, i) => keyOf(it, i)) : [],
393
- );
394
-
395
- // 纯派生 tabindex:焦点行(或无焦点时首行)为 0,其余 -1(红线 #2:render 期只读)。
396
- function rowTabindex(key: ListKey): 0 | -1 {
397
- if (!selectMode) return 0;
398
- return (focusedRowKey ?? rowKeys[0]) === key ? 0 : -1;
399
- }
400
-
401
- function focusRowByKey(key: ListKey): void {
402
- rootEl
403
- ?.querySelector<HTMLElement>(
404
- `[data-list-key="${CSS.escape(String(key))}"]`,
405
- )
406
- ?.focus();
407
- }
408
-
409
- // DOM 顺序的行 key 列表(声明式 <List.Item> 用:行不在 dataSource 内,按 DOM 漫游)。
410
- function domRowKeys(): string[] {
411
- if (!rootEl) return [];
412
- return [...rootEl.querySelectorAll<HTMLElement>('[data-list-key]')].map(
413
- (el) => el.dataset.listKey ?? '',
414
- );
415
- }
416
-
417
- // 翻一屏的行数(虚拟化按可视区估算,否则固定 10 行兜底)。
418
- function pageStep(): number {
419
- if (virtualOn && vItemSize > 0) {
420
- return Math.max(1, Math.floor(vViewportH / vItemSize));
421
- }
422
- return 10;
423
- }
424
-
425
- // 行 keydown:↑↓ roving、Home/End 跳首末、PageUp/Down 翻屏、Space/Enter 激活。
426
- // Shift+↑↓(multiple)连选。命令式 focus() 在事件回调(非 render 期)。
427
- function onRowKeydown(e: KeyboardEvent, item: T, index: number): void {
428
- const key = keyOf(item, index);
429
- if (e.key === ' ' || e.key === 'Enter') {
430
- e.preventDefault();
431
- onRowActivate(item, index, e.shiftKey);
432
- return;
433
- }
434
- if (!selectMode) return;
435
- const keys = rowKeys;
436
- if (keys.length === 0) return;
437
- const cur = keys.indexOf(key);
438
- let target = -1;
439
- if (e.key === 'ArrowDown') target = Math.min(keys.length - 1, cur + 1);
440
- else if (e.key === 'ArrowUp') target = Math.max(0, cur - 1);
441
- else if (e.key === 'Home') target = 0;
442
- else if (e.key === 'End') target = keys.length - 1;
443
- else if (e.key === 'PageDown') target = Math.min(keys.length - 1, cur + pageStep());
444
- else if (e.key === 'PageUp') target = Math.max(0, cur - pageStep());
445
- else return;
446
- e.preventDefault();
447
- const targetKey = keys[target];
448
- if (targetKey == null) return;
449
- focusedRowKey = targetKey;
450
- // multiple 模式 Shift+方向键:移动焦点同时连选(范围以锚点为基准)。
451
- if (e.shiftKey && selectMode === 'multiple') {
452
- toggleKey(targetKey, true);
453
- }
454
- focusRowByKey(targetKey);
455
- }
456
- function onRowFocus(key: ListKey): void {
457
- focusedRowKey = key;
458
- }
459
-
460
- // 声明式 <List.Item> keydown:按 DOM 顺序 roving(行不在 dataSource 内)。
461
- // Space/Enter 由 List.Item 自身的 activate 处理,这里只管方向键 / Home/End / PageUp/Down。
462
- function onItemKeydown(e: KeyboardEvent, key: ListKey): void {
463
- if (!selectMode) return;
464
- const keys = domRowKeys();
465
- if (keys.length === 0) return;
466
- const cur = keys.indexOf(String(key));
467
- if (cur < 0) return;
468
- let target = -1;
469
- if (e.key === 'ArrowDown') target = Math.min(keys.length - 1, cur + 1);
470
- else if (e.key === 'ArrowUp') target = Math.max(0, cur - 1);
471
- else if (e.key === 'Home') target = 0;
472
- else if (e.key === 'End') target = keys.length - 1;
473
- else if (e.key === 'PageDown') target = Math.min(keys.length - 1, cur + pageStep());
474
- else if (e.key === 'PageUp') target = Math.max(0, cur - pageStep());
475
- else return;
476
- e.preventDefault();
477
- const targetKey = keys[target];
478
- if (targetKey == null) return;
479
- focusedRowKey = targetKey;
480
- if (e.shiftKey && selectMode === 'multiple') toggleKey(targetKey, true);
481
- focusRowByKey(targetKey);
482
- }
483
- // 声明式行 tabindex:焦点行 / 首个 DOM 行为 0,其余 -1(红线 #2:render 期只读)。
484
- // 挂载前 rootEl 为空、DOM 顺序未知,回退为 0 保证可 Tab 进入;挂载后由 DOM 查询收敛为单一停靠点。
485
- function itemTabindex(key: ListKey): 0 | -1 {
486
- if (!selectMode) return 0;
487
- if (focusedRowKey != null) return focusedRowKey === key ? 0 : -1;
488
- const keys = domRowKeys();
489
- if (keys.length === 0) return 0;
490
- return keys[0] === String(key) ? 0 : -1;
491
- }
492
-
493
- // --- 分页:受控 current 不回写 (红线 #1),本地 inner 兜底 ---
494
- const paginationOn = $derived(pagination !== undefined && pagination !== false);
495
- const pageSize = $derived(pagination ? (pagination.pageSize ?? 10) : 10);
496
- const isPageControlled = $derived(!!pagination && pagination.current !== undefined);
497
- let innerPage = $state(untrack(() => (pagination ? (pagination.defaultCurrent ?? 1) : 1)));
498
- const currentPage = $derived(
499
- pagination && pagination.current !== undefined ? pagination.current : innerPage,
500
- );
501
- // 当前页切片数据;未分页时为全量。
502
- const pagedData = $derived.by<T[]>(() => {
503
- if (!paginationOn) return dataSource;
504
- const start = (currentPage - 1) * pageSize;
505
- return dataSource.slice(start, start + pageSize);
506
- });
507
- function onPageChange(page: number) {
508
- if (!isPageControlled) innerPage = page;
509
- if (pagination) pagination.onChange?.(page);
510
- }
511
-
512
- // grid 布局:解析列数/间距,生成 inline CSS(CSS grid)。
513
- const gridOn = $derived(grid !== undefined);
514
- const gridColumn = $derived(
515
- typeof grid === 'number' ? grid : (grid?.column ?? 4),
516
- );
517
- const gridGutter = $derived(
518
- typeof grid === 'object' ? (grid.gutter ?? 16) : 16,
519
- );
520
- const gridStyle = $derived(
521
- gridOn
522
- ? `display:grid;grid-template-columns:repeat(${gridColumn},minmax(0,1fr));gap:${gridGutter}px`
523
- : undefined,
524
- );
525
-
526
- const cls = $derived(
527
- [
528
- 'cd-list',
529
- `cd-list--${size}`,
530
- bordered && 'cd-list--bordered',
531
- split && 'cd-list--split',
532
- selectMode && 'cd-list--selectable',
533
- layout === 'horizontal' && 'cd-list--horizontal',
534
- className,
535
- ]
536
- .filter(Boolean)
537
- .join(' '),
538
- );
539
-
540
- // selectable 列表语义:role=listbox(multiple 时 aria-multiselectable),否则原生 list。
541
- const itemsRole = $derived(selectMode ? 'listbox' : undefined);
542
- const itemsMultiselect = $derived(selectMode === 'multiple' ? true : undefined);
543
- // listbox 可访问名(aria-input-field-name):缺省回退 i18n。非 selectable 时不设。
544
- const itemsLabel = $derived(
545
- selectMode ? (ariaLabel ?? loc().t('List.selectableLabel')) : undefined,
546
- );
547
- </script>
548
-
549
- <!--
550
- selectable 行的勾选指示器:纯视觉(aria-hidden + 无 input),避免 option 内嵌可聚焦控件
551
- 导致 axe nested-interactive。选中态由行 aria-selected 表达,勾选/取消走行的 Space/Enter。
552
- -->
553
- {#snippet selectorMark(sel: boolean)}
554
- <span class="cd-list__item-selector" aria-hidden="true">
555
- <span class="cd-list__check" class:cd-list__check--on={sel}>
556
- {#if sel}
557
- <svg viewBox="0 0 16 16" width="10" height="10" focusable="false">
558
- <path
559
- fill="none"
560
- stroke="currentColor"
561
- stroke-width="2"
562
- stroke-linecap="round"
563
- stroke-linejoin="round"
564
- d="M3.5 8.5 6.5 11.5 12.5 4.5"
565
- />
566
- </svg>
567
- {/if}
568
- </span>
569
- </span>
570
- {/snippet}
571
-
572
- <div class={cls} aria-busy={loading || undefined} bind:this={rootEl} onscroll={onListScroll}>
573
- {#if header !== undefined}
574
- <div class="cd-list__header">
575
- {#if isSnippet(header)}{@render header()}{:else}{header}{/if}
576
- </div>
577
- {/if}
578
-
579
- <div class="cd-list__body">
580
- {#if loading && loadingSkeleton}
581
- <ul class="cd-list__items" aria-hidden="true">
582
- {#each skeletonRows as i (i)}
583
- <li class="cd-list__item cd-list__item--skeleton">
584
- <span class="cd-list__skeleton-bar"></span>
585
- </li>
586
- {/each}
587
- </ul>
588
- {:else if loading}
589
- <div class="cd-list__spinner-wrap">
590
- <span class="cd-list__spinner" aria-hidden="true"></span>
591
- </div>
592
- {:else if isEmpty}
593
- <div class="cd-list__empty">
594
- {#if isSnippet(emptyContent)}
595
- {@render emptyContent()}
596
- {:else if emptyContent !== undefined}
597
- {emptyContent}
598
- {:else}
599
- <Empty image="noData" />
600
- {/if}
601
- </div>
602
- {:else if useDeclarative}
603
- <!-- 声明式:渲染内嵌 <List.Item>(selectable 状态经 context 下发)。 -->
604
- <ul
605
- class="cd-list__items"
606
- role={itemsRole}
607
- aria-multiselectable={itemsMultiselect}
608
- aria-label={itemsLabel}
609
- >
610
- {@render children?.()}
611
- </ul>
612
- {:else if virtualOn}
613
- <!-- 虚拟化:仅渲染视口内行,复用 core 区间数学;命令式滚动监听(红线 #2/#3)。 -->
614
- <div
615
- class="cd-list__virtual"
616
- bind:this={viewportEl}
617
- role={itemsRole ?? 'list'}
618
- aria-multiselectable={itemsMultiselect}
619
- aria-label={itemsLabel}
620
- style={`block-size:${vHeightStyle}; overflow:auto`}
621
- >
622
- <div class="cd-list__virtual-spacer" style={`block-size:${vTotalHeight}px`}>
623
- {#each vVisible as item, i (keyOf(item, vStart + i))}
624
- {@const index = vStart + i}
625
- {@const k = keyOf(item, index)}
626
- {@const sel = selectMode ? selectedSet.has(k) : false}
627
- <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
628
- <div
629
- class="cd-list__item cd-list__virtual-item"
630
- class:cd-list__item--selectable={!!selectMode}
631
- class:cd-list__item--selected={sel}
632
- data-vindex={index}
633
- data-list-key={selectMode ? k : undefined}
634
- role={selectMode ? 'option' : 'listitem'}
635
- aria-selected={selectMode ? sel : undefined}
636
- aria-setsize={dataSource.length}
637
- aria-posinset={index + 1}
638
- tabindex={selectMode ? rowTabindex(k) : undefined}
639
- style={vItemStyle(index)}
640
- onclick={selectMode ? (e) => onRowActivate(item, index, e.shiftKey) : undefined}
641
- onkeydown={selectMode ? (e) => onRowKeydown(e, item, index) : undefined}
642
- onfocus={selectMode ? () => onRowFocus(k) : undefined}
643
- >
644
- {#if selectMode}
645
- {@render selectorMark(sel)}
646
- {/if}
647
- <div class="cd-list__item-content">
648
- {#if renderItem}{@render renderItem(item, index)}{/if}
649
- </div>
650
- </div>
651
- {/each}
652
- </div>
653
- </div>
654
- {:else}
655
- <ul
656
- class="cd-list__items"
657
- class:cd-list__items--grid={gridOn}
658
- style={gridStyle}
659
- role={itemsRole}
660
- aria-multiselectable={itemsMultiselect}
661
- aria-label={itemsLabel}
662
- >
663
- {#each pagedData as item, index (keyOf(item, index))}
664
- {@const realIndex = paginationOn ? (currentPage - 1) * pageSize + index : index}
665
- {@const k = keyOf(item, realIndex)}
666
- {@const sel = selectMode ? selectedSet.has(k) : false}
667
- {#if selectMode}
668
- <li
669
- class="cd-list__item cd-list__item--selectable"
670
- class:cd-list__item--selected={sel}
671
- class:cd-list__item--grid={gridOn}
672
- data-list-key={k}
673
- role="option"
674
- aria-selected={sel}
675
- tabindex={rowTabindex(k)}
676
- onclick={(e) => onRowActivate(item, realIndex, e.shiftKey)}
677
- onkeydown={(e) => onRowKeydown(e, item, realIndex)}
678
- onfocus={() => onRowFocus(k)}
679
- >
680
- {@render selectorMark(sel)}
681
- <div class="cd-list__item-content">
682
- {#if renderItem}{@render renderItem(item, realIndex)}{/if}
683
- </div>
684
- </li>
685
- {:else}
686
- <li class="cd-list__item" class:cd-list__item--grid={gridOn}>
687
- {#if renderItem}{@render renderItem(item, realIndex)}{/if}
688
- </li>
689
- {/if}
690
- {/each}
691
- </ul>
692
-
693
- {#if paginationOn}
694
- <div class="cd-list__pagination">
695
- <Pagination
696
- total={dataSource.length}
697
- currentPage={currentPage}
698
- {pageSize}
699
- size={size === 'large' ? 'default' : size}
700
- onChange={onPageChange}
701
- />
702
- </div>
703
- {:else if loadMore}
704
- <div class="cd-list__load-more">{@render loadMore()}</div>
705
- {:else if onLoadMore !== undefined && (hasMore || loadingMore)}
706
- <div class="cd-list__load-more">
707
- <Button
708
- loading={loadingMore}
709
- disabled={!hasMore && !loadingMore}
710
- onclick={() => onLoadMore?.()}
711
- >
712
- {loc().t('List.loadMore')}
713
- </Button>
714
- </div>
715
- {/if}
716
- {/if}
717
- </div>
718
-
719
- {#if footer !== undefined}
720
- <div class="cd-list__footer">
721
- {#if isSnippet(footer)}{@render footer()}{:else}{footer}{/if}
722
- </div>
723
- {/if}
724
- </div>
725
-
726
- <style>
727
- .cd-list {
728
- background: var(--cd-list-bg);
729
- color: var(--cd-list-item-color);
730
- --cd-list-pad-y: var(--cd-list-item-padding);
731
- }
732
- .cd-list--small {
733
- --cd-list-pad-y: var(--cd-list-item-padding-small);
734
- }
735
- .cd-list--bordered {
736
- border: 1px solid var(--cd-list-border);
737
- border-radius: var(--cd-list-radius);
738
- overflow: hidden;
739
- }
740
-
741
- /* horizontal layout: item 内容横向排列 */
742
- .cd-list--horizontal .cd-list__item {
743
- display: flex;
744
- flex-direction: row;
745
- align-items: flex-start;
746
- gap: var(--cd-spacing-3, 12px);
747
- }
748
-
749
- .cd-list__header {
750
- padding-block: var(--cd-list-pad-y);
751
- padding-inline: var(--cd-list-item-padding);
752
- color: var(--cd-list-header-color);
753
- border-block-end: 1px solid var(--cd-list-split-color);
754
- }
755
- .cd-list__footer {
756
- padding-block: var(--cd-list-pad-y);
757
- padding-inline: var(--cd-list-item-padding);
758
- border-block-start: 1px solid var(--cd-list-split-color);
759
- }
760
-
761
- .cd-list__items {
762
- margin: 0;
763
- padding: 0;
764
- list-style: none;
765
- }
766
- .cd-list__item {
767
- padding-block: var(--cd-list-pad-y);
768
- padding-inline: var(--cd-list-item-padding);
769
- }
770
- .cd-list--split .cd-list__item + .cd-list__item {
771
- border-block-start: 1px solid var(--cd-list-split-color);
772
- }
773
- /* grid 模式:取消 split 分隔线与行内边距,由 grid gap 控制间距 */
774
- .cd-list__items--grid {
775
- padding-block: var(--cd-list-pad-y);
776
- }
777
- .cd-list--split .cd-list__item--grid + .cd-list__item--grid {
778
- border-block-start: none;
779
- }
780
- .cd-list__item--grid {
781
- padding: 0;
782
- }
783
-
784
- /* selectable 行:内置 checkbox + 主内容横向布局,选中/hover/focus 强调。 */
785
- .cd-list__item--selectable {
786
- display: flex;
787
- align-items: flex-start;
788
- gap: var(--cd-spacing-2, 8px);
789
- cursor: pointer;
790
- outline: none;
791
- }
792
- .cd-list__item--selectable:hover {
793
- background: var(--cd-color-fill-0, rgba(0, 0, 0, 0.03));
794
- }
795
- .cd-list__item--selectable:focus-visible {
796
- box-shadow: inset 0 0 0 2px var(--cd-color-primary, #0066ff);
797
- }
798
- .cd-list__item--selected {
799
- background: var(--cd-color-primary-light-default, rgba(0, 102, 255, 0.1));
800
- }
801
- .cd-list__item-selector {
802
- flex: none;
803
- display: flex;
804
- align-items: center;
805
- pointer-events: none;
806
- }
807
- /* 纯视觉勾选框(无 input;选中态走行 aria-selected,避免 nested-interactive)。 */
808
- .cd-list__check {
809
- display: inline-flex;
810
- align-items: center;
811
- justify-content: center;
812
- flex: none;
813
- inline-size: 16px;
814
- block-size: 16px;
815
- border: 1px solid var(--cd-color-border);
816
- border-radius: var(--cd-radius-small, 4px);
817
- color: var(--cd-color-bg-0, #fff);
818
- background: var(--cd-color-bg-0, #fff);
819
- }
820
- .cd-list__check--on {
821
- background: var(--cd-color-primary, #0066ff);
822
- border-color: var(--cd-color-primary, #0066ff);
823
- }
824
- .cd-list__item-content {
825
- flex: 1;
826
- min-inline-size: 0;
827
- }
828
-
829
- /* 虚拟化:视口自身滚动,撑高占位 + 绝对定位行。 */
830
- .cd-list__virtual {
831
- position: relative;
832
- inline-size: 100%;
833
- scrollbar-color: var(--cd-virtual-list-scrollbar, currentColor) transparent;
834
- }
835
- .cd-list__virtual-spacer {
836
- position: relative;
837
- inline-size: 100%;
838
- }
839
- .cd-list__virtual-item {
840
- position: absolute;
841
- inset-block-start: 0;
842
- inset-inline: 0;
843
- }
844
-
845
- .cd-list__load-more {
846
- display: flex;
847
- justify-content: center;
848
- padding-block: var(--cd-list-item-padding);
849
- }
850
- .cd-list__pagination {
851
- display: flex;
852
- justify-content: flex-end;
853
- padding-block: var(--cd-list-item-padding);
854
- padding-inline: var(--cd-list-item-padding);
855
- }
856
-
857
- .cd-list__empty {
858
- padding-block: var(--cd-list-item-padding);
859
- display: flex;
860
- justify-content: center;
861
- }
862
-
863
- .cd-list__spinner-wrap {
864
- display: flex;
865
- align-items: center;
866
- justify-content: center;
867
- padding-block: calc(var(--cd-list-item-padding) * 2);
868
- }
869
- .cd-list__spinner {
870
- inline-size: 1.5em;
871
- block-size: 1.5em;
872
- border: 2px solid var(--cd-list-split-color);
873
- border-block-start-color: var(--cd-color-primary, currentColor);
874
- border-radius: var(--cd-radius-full);
875
- animation: cd-list-spin 0.7s linear infinite;
876
- }
877
-
878
- .cd-list__skeleton-bar {
879
- display: block;
880
- block-size: 1em;
881
- inline-size: 100%;
882
- border-radius: var(--cd-radius-small);
883
- background: var(--cd-list-split-color);
884
- position: relative;
885
- overflow: hidden;
886
- }
887
- .cd-list__skeleton-bar::after {
888
- content: '';
889
- position: absolute;
890
- inset: 0;
891
- transform: translateX(-100%);
892
- background: linear-gradient(
893
- 90deg,
894
- transparent,
895
- var(--cd-list-bg),
896
- transparent
897
- );
898
- animation: cd-list-shimmer 1.2s ease-in-out infinite;
899
- }
900
-
901
- @keyframes cd-list-spin {
902
- to {
903
- transform: rotate(360deg);
904
- }
905
- }
906
- @keyframes cd-list-shimmer {
907
- 100% {
908
- transform: translateX(100%);
909
- }
910
- }
911
-
912
- @media (prefers-reduced-motion: reduce) {
913
- .cd-list__spinner {
914
- animation: none;
915
- }
916
- .cd-list__skeleton-bar::after {
917
- animation: none;
918
- }
919
- }
920
- </style>