@chenzy-design/svelte 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/dist/components.json +1 -1
  2. package/package.json +7 -8
  3. package/src/_floating/use-floating.ts +0 -208
  4. package/src/anchor/Anchor.a11y.test.ts +0 -49
  5. package/src/anchor/Anchor.kbd.test.ts +0 -70
  6. package/src/anchor/Anchor.svelte +0 -359
  7. package/src/anchor/AnchorKbdFixture.svelte +0 -24
  8. package/src/anchor/index.ts +0 -3
  9. package/src/anchor/meta.ts +0 -70
  10. package/src/anchor/types.ts +0 -8
  11. package/src/autocomplete/AutoComplete.a11y.test.ts +0 -49
  12. package/src/autocomplete/AutoComplete.kbd.test.ts +0 -69
  13. package/src/autocomplete/AutoComplete.svelte +0 -706
  14. package/src/autocomplete/AutoCompleteKbdFixture.svelte +0 -24
  15. package/src/autocomplete/index.ts +0 -2
  16. package/src/autocomplete/meta.ts +0 -41
  17. package/src/avatar/Avatar.a11y.test.ts +0 -37
  18. package/src/avatar/Avatar.svelte +0 -315
  19. package/src/avatar/AvatarGroup.svelte +0 -142
  20. package/src/avatar/context.ts +0 -21
  21. package/src/avatar/index.ts +0 -10
  22. package/src/avatar/meta.ts +0 -73
  23. package/src/back-top/BackTop.a11y.test.ts +0 -40
  24. package/src/back-top/BackTop.svelte +0 -314
  25. package/src/back-top/index.ts +0 -2
  26. package/src/back-top/meta.ts +0 -108
  27. package/src/badge/Badge.a11y.test.ts +0 -35
  28. package/src/badge/Badge.svelte +0 -328
  29. package/src/badge/BadgeA11yFixture.svelte +0 -18
  30. package/src/badge/index.ts +0 -2
  31. package/src/badge/meta.ts +0 -62
  32. package/src/banner/Banner.a11y.test.ts +0 -48
  33. package/src/banner/Banner.svelte +0 -368
  34. package/src/banner/index.ts +0 -3
  35. package/src/banner/meta.ts +0 -121
  36. package/src/breadcrumb/Breadcrumb.a11y.test.ts +0 -35
  37. package/src/breadcrumb/Breadcrumb.kbd.test.ts +0 -45
  38. package/src/breadcrumb/Breadcrumb.svelte +0 -414
  39. package/src/breadcrumb/BreadcrumbKbdFixture.svelte +0 -23
  40. package/src/breadcrumb/Item.svelte +0 -77
  41. package/src/breadcrumb/context.ts +0 -27
  42. package/src/breadcrumb/index.ts +0 -21
  43. package/src/breadcrumb/meta.ts +0 -128
  44. package/src/breadcrumb/types.ts +0 -4
  45. package/src/button/Button.a11y.test.ts +0 -54
  46. package/src/button/Button.svelte +0 -176
  47. package/src/button/index.ts +0 -2
  48. package/src/button/meta.ts +0 -28
  49. package/src/calendar/Calendar.a11y.test.ts +0 -51
  50. package/src/calendar/Calendar.kbd.test.ts +0 -59
  51. package/src/calendar/Calendar.svelte +0 -1344
  52. package/src/calendar/CalendarKbdFixture.svelte +0 -23
  53. package/src/calendar/index.ts +0 -3
  54. package/src/calendar/meta.ts +0 -117
  55. package/src/card/Card.a11y.test.ts +0 -38
  56. package/src/card/Card.svelte +0 -341
  57. package/src/card/CardMeta.svelte +0 -60
  58. package/src/card/index.ts +0 -8
  59. package/src/card/meta.ts +0 -83
  60. package/src/carousel/Carousel.a11y.test.ts +0 -53
  61. package/src/carousel/Carousel.kbd.test.ts +0 -67
  62. package/src/carousel/Carousel.svelte +0 -806
  63. package/src/carousel/CarouselA11yFixture.svelte +0 -25
  64. package/src/carousel/CarouselKbdFixture.svelte +0 -24
  65. package/src/carousel/index.ts +0 -2
  66. package/src/carousel/meta.ts +0 -74
  67. package/src/cascader/Cascader.a11y.test.ts +0 -59
  68. package/src/cascader/Cascader.kbd.test.ts +0 -56
  69. package/src/cascader/Cascader.svelte +0 -1570
  70. package/src/cascader/CascaderKbdFixture.svelte +0 -31
  71. package/src/cascader/index.ts +0 -3
  72. package/src/cascader/meta.ts +0 -57
  73. package/src/cascader/types.ts +0 -9
  74. package/src/checkbox/Checkbox.svelte +0 -281
  75. package/src/checkbox/CheckboxGroup.a11y.test.ts +0 -43
  76. package/src/checkbox/CheckboxGroup.kbd.test.ts +0 -40
  77. package/src/checkbox/CheckboxGroup.svelte +0 -122
  78. package/src/checkbox/CheckboxGroupKbdFixture.svelte +0 -20
  79. package/src/checkbox/context.ts +0 -31
  80. package/src/checkbox/index.ts +0 -4
  81. package/src/checkbox/meta.ts +0 -67
  82. package/src/collapse/Collapse.a11y.test.ts +0 -53
  83. package/src/collapse/Collapse.kbd.test.ts +0 -89
  84. package/src/collapse/Collapse.svelte +0 -406
  85. package/src/collapse/CollapseA11yFixture.svelte +0 -27
  86. package/src/collapse/CollapseKbdFixture.svelte +0 -25
  87. package/src/collapse/CollapsePanel.svelte +0 -102
  88. package/src/collapse/context.ts +0 -54
  89. package/src/collapse/index.ts +0 -17
  90. package/src/collapse/meta.ts +0 -79
  91. package/src/collapse/types.ts +0 -5
  92. package/src/color-picker/ColorPicker.a11y.test.ts +0 -60
  93. package/src/color-picker/ColorPicker.kbd.test.ts +0 -73
  94. package/src/color-picker/ColorPicker.svelte +0 -985
  95. package/src/color-picker/ColorPickerKbdFixture.svelte +0 -25
  96. package/src/color-picker/index.ts +0 -2
  97. package/src/color-picker/meta.ts +0 -47
  98. package/src/config-provider/ConfigProvider.svelte +0 -227
  99. package/src/config-provider/context.ts +0 -29
  100. package/src/config-provider/index.ts +0 -48
  101. package/src/config-provider/meta.ts +0 -128
  102. package/src/date-picker/DatePicker.a11y.test.ts +0 -45
  103. package/src/date-picker/DatePicker.kbd.test.ts +0 -71
  104. package/src/date-picker/DatePicker.svelte +0 -1798
  105. package/src/date-picker/DatePickerKbdFixture.svelte +0 -26
  106. package/src/date-picker/RangePicker.kbd.test.ts +0 -69
  107. package/src/date-picker/RangePicker.svelte +0 -775
  108. package/src/date-picker/RangePickerKbdFixture.svelte +0 -30
  109. package/src/date-picker/index.ts +0 -4
  110. package/src/date-picker/meta.ts +0 -67
  111. package/src/date-picker/range-meta.ts +0 -44
  112. package/src/descriptions/Descriptions.a11y.test.ts +0 -33
  113. package/src/descriptions/Descriptions.svelte +0 -287
  114. package/src/descriptions/DescriptionsItem.svelte +0 -43
  115. package/src/descriptions/context.ts +0 -21
  116. package/src/descriptions/index.ts +0 -16
  117. package/src/descriptions/meta.ts +0 -45
  118. package/src/descriptions/types.ts +0 -6
  119. package/src/divider/Divider.a11y.test.ts +0 -23
  120. package/src/divider/Divider.svelte +0 -154
  121. package/src/divider/index.ts +0 -2
  122. package/src/divider/meta.ts +0 -23
  123. package/src/drawer/Drawer.a11y.test.ts +0 -41
  124. package/src/drawer/Drawer.kbd.test.ts +0 -67
  125. package/src/drawer/Drawer.svelte +0 -554
  126. package/src/drawer/DrawerKbdFixture.svelte +0 -28
  127. package/src/drawer/index.ts +0 -2
  128. package/src/drawer/meta.ts +0 -127
  129. package/src/dropdown/Dropdown.a11y.test.ts +0 -46
  130. package/src/dropdown/Dropdown.kbd.test.ts +0 -56
  131. package/src/dropdown/Dropdown.svelte +0 -573
  132. package/src/dropdown/DropdownA11yFixture.svelte +0 -24
  133. package/src/dropdown/DropdownDivider.svelte +0 -17
  134. package/src/dropdown/DropdownItem.svelte +0 -127
  135. package/src/dropdown/DropdownItemNode.svelte +0 -355
  136. package/src/dropdown/DropdownKbdFixture.svelte +0 -26
  137. package/src/dropdown/DropdownMenu.svelte +0 -24
  138. package/src/dropdown/DropdownSubMenu.svelte +0 -212
  139. package/src/dropdown/DropdownTitle.svelte +0 -34
  140. package/src/dropdown/context.ts +0 -13
  141. package/src/dropdown/index.ts +0 -36
  142. package/src/dropdown/meta.ts +0 -97
  143. package/src/dropdown/types.test.ts +0 -50
  144. package/src/dropdown/types.ts +0 -67
  145. package/src/empty/Empty.a11y.test.ts +0 -24
  146. package/src/empty/Empty.svelte +0 -304
  147. package/src/empty/index.ts +0 -2
  148. package/src/empty/meta.ts +0 -41
  149. package/src/form/Field.svelte +0 -492
  150. package/src/form/FieldArray.svelte +0 -75
  151. package/src/form/Form.a11y.test.ts +0 -39
  152. package/src/form/Form.svelte +0 -243
  153. package/src/form/FormA11yFixture.svelte +0 -31
  154. package/src/form/FormCascader.svelte +0 -82
  155. package/src/form/FormCheckbox.svelte +0 -83
  156. package/src/form/FormDatePicker.svelte +0 -80
  157. package/src/form/FormErrorMessage.svelte +0 -44
  158. package/src/form/FormInput.svelte +0 -95
  159. package/src/form/FormLabel.svelte +0 -46
  160. package/src/form/FormRadio.svelte +0 -83
  161. package/src/form/FormRating.svelte +0 -85
  162. package/src/form/FormSection.svelte +0 -45
  163. package/src/form/FormSelect.svelte +0 -96
  164. package/src/form/FormSlider.svelte +0 -95
  165. package/src/form/FormSlot.svelte +0 -51
  166. package/src/form/FormSwitch.svelte +0 -82
  167. package/src/form/FormTagInput.svelte +0 -79
  168. package/src/form/FormTreeSelect.svelte +0 -85
  169. package/src/form/FormUpload.svelte +0 -92
  170. package/src/form/context.ts +0 -47
  171. package/src/form/index.ts +0 -22
  172. package/src/form/meta.ts +0 -85
  173. package/src/grid/Col.svelte +0 -142
  174. package/src/grid/Grid.a11y.test.ts +0 -14
  175. package/src/grid/GridA11yFixture.svelte +0 -12
  176. package/src/grid/Row.svelte +0 -116
  177. package/src/grid/index.ts +0 -3
  178. package/src/grid/meta.ts +0 -72
  179. package/src/grid/use-breakpoint.svelte.ts +0 -48
  180. package/src/highlight/Highlight.a11y.test.ts +0 -25
  181. package/src/highlight/Highlight.svelte +0 -99
  182. package/src/highlight/index.ts +0 -2
  183. package/src/highlight/meta.ts +0 -80
  184. package/src/icon/Icon.svelte +0 -156
  185. package/src/icon/index.ts +0 -2
  186. package/src/icon/meta.ts +0 -41
  187. package/src/image/Image.a11y.test.ts +0 -30
  188. package/src/image/Image.svelte +0 -387
  189. package/src/image/ImagePreview.kbd.test.ts +0 -52
  190. package/src/image/ImagePreview.svelte +0 -309
  191. package/src/image/ImagePreviewGroup.svelte +0 -93
  192. package/src/image/ImagePreviewKbdFixture.svelte +0 -32
  193. package/src/image/context.ts +0 -26
  194. package/src/image/index.ts +0 -15
  195. package/src/image/meta.ts +0 -131
  196. package/src/index.ts +0 -208
  197. package/src/input/Input.a11y.test.ts +0 -58
  198. package/src/input/Input.svelte +0 -505
  199. package/src/input/index.ts +0 -2
  200. package/src/input/meta.ts +0 -40
  201. package/src/input-number/InputNumber.a11y.test.ts +0 -43
  202. package/src/input-number/InputNumber.kbd.test.ts +0 -41
  203. package/src/input-number/InputNumber.svelte +0 -674
  204. package/src/input-number/InputNumberKbdFixture.svelte +0 -15
  205. package/src/input-number/index.ts +0 -2
  206. package/src/input-number/meta.ts +0 -65
  207. package/src/layout/Content.svelte +0 -37
  208. package/src/layout/Footer.svelte +0 -49
  209. package/src/layout/Header.svelte +0 -46
  210. package/src/layout/Layout.a11y.test.ts +0 -34
  211. package/src/layout/Layout.svelte +0 -60
  212. package/src/layout/LayoutA11yFixture.svelte +0 -21
  213. package/src/layout/Sider.svelte +0 -207
  214. package/src/layout/index.ts +0 -26
  215. package/src/layout/meta.ts +0 -116
  216. package/src/list/List.a11y.test.ts +0 -69
  217. package/src/list/List.bench.ts +0 -26
  218. package/src/list/List.kbd.test.ts +0 -71
  219. package/src/list/List.svelte +0 -920
  220. package/src/list/ListA11yFixture.svelte +0 -38
  221. package/src/list/ListBenchFixture.svelte +0 -22
  222. package/src/list/ListItem.svelte +0 -175
  223. package/src/list/ListKbdFixture.svelte +0 -31
  224. package/src/list/ListMeta.svelte +0 -73
  225. package/src/list/context.ts +0 -39
  226. package/src/list/index.ts +0 -21
  227. package/src/list/meta.ts +0 -99
  228. package/src/locale-provider/LocaleProvider.svelte +0 -110
  229. package/src/locale-provider/context.ts +0 -22
  230. package/src/locale-provider/index.ts +0 -21
  231. package/src/locale-provider/meta.ts +0 -93
  232. package/src/locale-provider/use-locale.ts +0 -25
  233. package/src/lottie-icon/LottieIcon.svelte +0 -330
  234. package/src/lottie-icon/index.ts +0 -9
  235. package/src/lottie-icon/meta.ts +0 -162
  236. package/src/menu/Menu.a11y.test.ts +0 -54
  237. package/src/menu/Menu.kbd.test.ts +0 -69
  238. package/src/menu/Menu.svelte +0 -762
  239. package/src/menu/MenuKbdFixture.svelte +0 -22
  240. package/src/menu/MenuPopupNode.svelte +0 -525
  241. package/src/menu/index.ts +0 -4
  242. package/src/menu/meta.ts +0 -137
  243. package/src/menu/types.ts +0 -120
  244. package/src/meta.test.ts +0 -173
  245. package/src/modal/ConfirmModal.svelte +0 -173
  246. package/src/modal/Modal.a11y.test.ts +0 -46
  247. package/src/modal/Modal.kbd.test.ts +0 -65
  248. package/src/modal/Modal.svelte +0 -511
  249. package/src/modal/ModalKbdFixture.svelte +0 -24
  250. package/src/modal/command.svelte.ts +0 -103
  251. package/src/modal/index.ts +0 -30
  252. package/src/modal/meta.ts +0 -165
  253. package/src/modal/z-stack.ts +0 -26
  254. package/src/notification/NotificationContainer.svelte +0 -192
  255. package/src/notification/NotificationItem.a11y.test.ts +0 -73
  256. package/src/notification/NotificationItem.svelte +0 -368
  257. package/src/notification/index.ts +0 -9
  258. package/src/notification/meta.ts +0 -120
  259. package/src/notification/store.ts +0 -191
  260. package/src/overflow-list/OverflowList.a11y.test.ts +0 -46
  261. package/src/overflow-list/OverflowList.kbd.test.ts +0 -34
  262. package/src/overflow-list/OverflowList.svelte +0 -539
  263. package/src/overflow-list/OverflowListA11yFixture.svelte +0 -22
  264. package/src/overflow-list/OverflowListKbdFixture.svelte +0 -21
  265. package/src/overflow-list/index.ts +0 -2
  266. package/src/overflow-list/meta.ts +0 -138
  267. package/src/pagination/Pagination.a11y.test.ts +0 -62
  268. package/src/pagination/Pagination.kbd.test.ts +0 -66
  269. package/src/pagination/Pagination.svelte +0 -428
  270. package/src/pagination/PaginationKbdFixture.svelte +0 -15
  271. package/src/pagination/index.ts +0 -2
  272. package/src/pagination/meta.ts +0 -73
  273. package/src/popconfirm/Popconfirm.a11y.test.ts +0 -46
  274. package/src/popconfirm/Popconfirm.kbd.test.ts +0 -42
  275. package/src/popconfirm/Popconfirm.svelte +0 -724
  276. package/src/popconfirm/PopconfirmA11yFixture.svelte +0 -34
  277. package/src/popconfirm/PopconfirmKbdFixture.svelte +0 -17
  278. package/src/popconfirm/index.ts +0 -2
  279. package/src/popconfirm/meta.ts +0 -200
  280. package/src/popover/Popover.a11y.test.ts +0 -58
  281. package/src/popover/Popover.kbd.test.ts +0 -42
  282. package/src/popover/Popover.svelte +0 -643
  283. package/src/popover/PopoverA11yFixture.svelte +0 -35
  284. package/src/popover/PopoverKbdFixture.svelte +0 -18
  285. package/src/popover/index.ts +0 -2
  286. package/src/popover/meta.ts +0 -103
  287. package/src/progress/Progress.a11y.test.ts +0 -37
  288. package/src/progress/Progress.svelte +0 -423
  289. package/src/progress/index.ts +0 -3
  290. package/src/progress/meta.ts +0 -132
  291. package/src/radio/Radio.svelte +0 -330
  292. package/src/radio/RadioGroup.a11y.test.ts +0 -43
  293. package/src/radio/RadioGroup.kbd.test.ts +0 -75
  294. package/src/radio/RadioGroup.svelte +0 -199
  295. package/src/radio/RadioGroupKbdFixture.svelte +0 -21
  296. package/src/radio/context.ts +0 -42
  297. package/src/radio/index.ts +0 -4
  298. package/src/radio/meta.ts +0 -68
  299. package/src/rating/Rating.a11y.test.ts +0 -41
  300. package/src/rating/Rating.kbd.test.ts +0 -48
  301. package/src/rating/Rating.svelte +0 -407
  302. package/src/rating/RatingKbdFixture.svelte +0 -15
  303. package/src/rating/index.ts +0 -2
  304. package/src/rating/meta.ts +0 -40
  305. package/src/resize-observer/ResizeObserver.svelte +0 -169
  306. package/src/resize-observer/action.ts +0 -80
  307. package/src/resize-observer/index.ts +0 -9
  308. package/src/resize-observer/meta.ts +0 -102
  309. package/src/scroll-list/ScrollColumn.svelte +0 -592
  310. package/src/scroll-list/ScrollList.svelte +0 -257
  311. package/src/scroll-list/index.ts +0 -4
  312. package/src/scroll-list/meta.ts +0 -93
  313. package/src/scroll-list/types.ts +0 -18
  314. package/src/select/Select.a11y.test.ts +0 -59
  315. package/src/select/Select.kbd.test.ts +0 -59
  316. package/src/select/Select.svelte +0 -1155
  317. package/src/select/SelectKbdFixture.svelte +0 -29
  318. package/src/select/index.ts +0 -3
  319. package/src/select/meta.ts +0 -78
  320. package/src/select/types.ts +0 -2
  321. package/src/side-sheet/SideSheet.a11y.test.ts +0 -53
  322. package/src/side-sheet/SideSheet.kbd.test.ts +0 -63
  323. package/src/side-sheet/SideSheet.svelte +0 -659
  324. package/src/side-sheet/SideSheetKbdFixture.svelte +0 -30
  325. package/src/side-sheet/index.ts +0 -2
  326. package/src/side-sheet/meta.ts +0 -116
  327. package/src/skeleton/Skeleton.a11y.test.ts +0 -35
  328. package/src/skeleton/Skeleton.svelte +0 -131
  329. package/src/skeleton/SkeletonAvatar.svelte +0 -82
  330. package/src/skeleton/SkeletonButton.svelte +0 -90
  331. package/src/skeleton/SkeletonImage.svelte +0 -100
  332. package/src/skeleton/SkeletonParagraph.svelte +0 -103
  333. package/src/skeleton/SkeletonTitle.svelte +0 -74
  334. package/src/skeleton/context.ts +0 -11
  335. package/src/skeleton/index.ts +0 -8
  336. package/src/skeleton/meta.ts +0 -65
  337. package/src/slider/Slider.a11y.test.ts +0 -44
  338. package/src/slider/Slider.kbd.test.ts +0 -74
  339. package/src/slider/Slider.svelte +0 -716
  340. package/src/slider/SliderKbdFixture.svelte +0 -21
  341. package/src/slider/index.ts +0 -2
  342. package/src/slider/meta.ts +0 -55
  343. package/src/space/Space.a11y.test.ts +0 -22
  344. package/src/space/Space.svelte +0 -109
  345. package/src/space/SpaceA11yFixture.svelte +0 -17
  346. package/src/space/index.ts +0 -2
  347. package/src/space/meta.ts +0 -27
  348. package/src/spin/Spin.a11y.test.ts +0 -29
  349. package/src/spin/Spin.svelte +0 -293
  350. package/src/spin/SpinA11yFixture.svelte +0 -18
  351. package/src/spin/index.ts +0 -2
  352. package/src/spin/meta.ts +0 -72
  353. package/src/steps/Steps.a11y.test.ts +0 -39
  354. package/src/steps/Steps.kbd.test.ts +0 -73
  355. package/src/steps/Steps.svelte +0 -392
  356. package/src/steps/StepsKbdFixture.svelte +0 -21
  357. package/src/steps/index.ts +0 -3
  358. package/src/steps/meta.ts +0 -59
  359. package/src/steps/types.ts +0 -8
  360. package/src/switch/Switch.a11y.test.ts +0 -46
  361. package/src/switch/Switch.kbd.test.ts +0 -40
  362. package/src/switch/Switch.svelte +0 -310
  363. package/src/switch/SwitchKbdFixture.svelte +0 -22
  364. package/src/switch/index.ts +0 -2
  365. package/src/switch/meta.ts +0 -44
  366. package/src/table/Table.a11y.test.ts +0 -70
  367. package/src/table/Table.bench.ts +0 -51
  368. package/src/table/Table.kbd.test.ts +0 -94
  369. package/src/table/Table.svelte +0 -2327
  370. package/src/table/TableKbdFixture.svelte +0 -35
  371. package/src/table/grid-nav.test.ts +0 -173
  372. package/src/table/grid-nav.ts +0 -146
  373. package/src/table/index.ts +0 -13
  374. package/src/table/meta.ts +0 -121
  375. package/src/table/types.ts +0 -133
  376. package/src/tabs/TabPane.svelte +0 -92
  377. package/src/tabs/Tabs.a11y.test.ts +0 -47
  378. package/src/tabs/Tabs.kbd.test.ts +0 -74
  379. package/src/tabs/Tabs.svelte +0 -1128
  380. package/src/tabs/TabsA11yFixture.svelte +0 -20
  381. package/src/tabs/TabsKbdFixture.svelte +0 -25
  382. package/src/tabs/context.ts +0 -43
  383. package/src/tabs/index.ts +0 -14
  384. package/src/tabs/meta.ts +0 -152
  385. package/src/tabs/types.ts +0 -6
  386. package/src/tag/Tag.a11y.test.ts +0 -33
  387. package/src/tag/Tag.svelte +0 -366
  388. package/src/tag/TagA11yFixture.svelte +0 -18
  389. package/src/tag/index.ts +0 -2
  390. package/src/tag/meta.ts +0 -92
  391. package/src/tag-input/TagInput.a11y.test.ts +0 -41
  392. package/src/tag-input/TagInput.svelte +0 -544
  393. package/src/tag-input/index.ts +0 -2
  394. package/src/tag-input/meta.ts +0 -43
  395. package/src/tag-input/reorder.test.ts +0 -59
  396. package/src/tag-input/reorder.ts +0 -41
  397. package/src/test-utils/LocaleHarness.svelte +0 -29
  398. package/src/test-utils/a11y.ts +0 -108
  399. package/src/test-utils/kbd.ts +0 -52
  400. package/src/textarea/TextArea.a11y.test.ts +0 -44
  401. package/src/textarea/TextArea.svelte +0 -420
  402. package/src/textarea/index.ts +0 -2
  403. package/src/textarea/meta.ts +0 -104
  404. package/src/time-picker/TimePicker.a11y.test.ts +0 -45
  405. package/src/time-picker/TimePicker.kbd.test.ts +0 -70
  406. package/src/time-picker/TimePicker.svelte +0 -1023
  407. package/src/time-picker/TimePickerKbdFixture.svelte +0 -23
  408. package/src/time-picker/index.ts +0 -2
  409. package/src/time-picker/meta.ts +0 -64
  410. package/src/timeline/Timeline.a11y.test.ts +0 -54
  411. package/src/timeline/Timeline.svelte +0 -599
  412. package/src/timeline/TimelineItem.svelte +0 -164
  413. package/src/timeline/context.ts +0 -28
  414. package/src/timeline/index.ts +0 -16
  415. package/src/timeline/meta.ts +0 -129
  416. package/src/timeline/types.ts +0 -9
  417. package/src/toast/Toast.a11y.test.ts +0 -67
  418. package/src/toast/ToastContainer.svelte +0 -184
  419. package/src/toast/ToastItem.svelte +0 -247
  420. package/src/toast/index.ts +0 -9
  421. package/src/toast/live-region.ts +0 -78
  422. package/src/toast/meta.ts +0 -95
  423. package/src/toast/store.ts +0 -187
  424. package/src/tooltip/Tooltip.a11y.test.ts +0 -41
  425. package/src/tooltip/Tooltip.kbd.test.ts +0 -37
  426. package/src/tooltip/Tooltip.svelte +0 -416
  427. package/src/tooltip/TooltipA11yFixture.svelte +0 -31
  428. package/src/tooltip/TooltipKbdFixture.svelte +0 -16
  429. package/src/tooltip/index.ts +0 -2
  430. package/src/tooltip/meta.ts +0 -59
  431. package/src/tooltip/placement.ts +0 -6
  432. package/src/transfer/Transfer.a11y.test.ts +0 -63
  433. package/src/transfer/Transfer.kbd.test.ts +0 -75
  434. package/src/transfer/Transfer.svelte +0 -1451
  435. package/src/transfer/TransferKbdFixture.svelte +0 -23
  436. package/src/transfer/group.test.ts +0 -55
  437. package/src/transfer/group.ts +0 -61
  438. package/src/transfer/index.ts +0 -3
  439. package/src/transfer/meta.ts +0 -55
  440. package/src/transfer/reorder.test.ts +0 -52
  441. package/src/transfer/reorder.ts +0 -42
  442. package/src/transfer/tree.test.ts +0 -44
  443. package/src/transfer/tree.ts +0 -52
  444. package/src/transfer/types.ts +0 -32
  445. package/src/tree/Tree.a11y.test.ts +0 -63
  446. package/src/tree/Tree.kbd.test.ts +0 -91
  447. package/src/tree/Tree.svelte +0 -1500
  448. package/src/tree/TreeKbdFixture.svelte +0 -30
  449. package/src/tree/index.ts +0 -3
  450. package/src/tree/meta.ts +0 -152
  451. package/src/tree-select/TreeSelect.a11y.test.ts +0 -52
  452. package/src/tree-select/TreeSelect.kbd.test.ts +0 -53
  453. package/src/tree-select/TreeSelect.svelte +0 -1611
  454. package/src/tree-select/TreeSelectKbdFixture.svelte +0 -20
  455. package/src/tree-select/index.ts +0 -3
  456. package/src/tree-select/meta.ts +0 -73
  457. package/src/tree-select/types.ts +0 -11
  458. package/src/tree-select/virtual.test.ts +0 -104
  459. package/src/typography/Link.svelte +0 -120
  460. package/src/typography/Paragraph.svelte +0 -92
  461. package/src/typography/Text.svelte +0 -93
  462. package/src/typography/Title.svelte +0 -91
  463. package/src/typography/Typography.a11y.test.ts +0 -34
  464. package/src/typography/TypographyA11yFixture.svelte +0 -27
  465. package/src/typography/TypographyBase.svelte +0 -807
  466. package/src/typography/index.ts +0 -16
  467. package/src/typography/meta.ts +0 -158
  468. package/src/upload/Upload.a11y.test.ts +0 -58
  469. package/src/upload/Upload.svelte +0 -1094
  470. package/src/upload/UploadA11yFixture.svelte +0 -23
  471. package/src/upload/index.ts +0 -3
  472. package/src/upload/meta.ts +0 -64
  473. package/src/upload/types.ts +0 -16
  474. package/src/virtual-list/VirtualList.svelte +0 -401
  475. package/src/virtual-list/index.ts +0 -2
  476. package/src/virtual-list/meta.ts +0 -106
@@ -1,199 +0,0 @@
1
- <!--
2
- RadioGroup — see specs/components/input/Radio.spec.md
3
- WAI-ARIA radiogroup pattern: roving tabindex + arrow-key navigation.
4
- -->
5
- <script lang="ts">
6
- import type { Snippet } from 'svelte';
7
- import { useId } from '@chenzy-design/core';
8
- import Radio from './Radio.svelte';
9
- import {
10
- setRadioGroupContext,
11
- type RadioValue,
12
- type RadioSize,
13
- type RadioStatus,
14
- type RadioType,
15
- type RadioRegistration,
16
- } from './context.js';
17
-
18
- type OptionObject = { label: string; value: RadioValue; disabled?: boolean; extra?: string };
19
-
20
- interface Props {
21
- value?: RadioValue;
22
- defaultValue?: RadioValue;
23
- name?: string;
24
- options?: OptionObject[];
25
- disabled?: boolean;
26
- size?: RadioSize;
27
- status?: RadioStatus;
28
- type?: RadioType;
29
- direction?: 'horizontal' | 'vertical';
30
- onChange?: (v: RadioValue) => void;
31
- children?: Snippet;
32
- ariaLabel?: string;
33
- /** 关联组的可见标题元素 id(无内置标题时用,优先于 ariaLabel 体现可访问名)。 */
34
- ariaLabelledby?: string;
35
- }
36
-
37
- let {
38
- value = $bindable(),
39
- defaultValue,
40
- name,
41
- options,
42
- disabled = false,
43
- size = 'default',
44
- status = 'default',
45
- type = 'default',
46
- direction = 'horizontal',
47
- onChange,
48
- children,
49
- ariaLabel,
50
- ariaLabelledby,
51
- }: Props = $props();
52
-
53
- let rootEl = $state<HTMLDivElement | null>(null);
54
-
55
- const groupName = resolveName();
56
-
57
- function resolveName(): string {
58
- return name ?? useId('cd-radio');
59
- }
60
-
61
- const isControlled = $derived(value !== undefined);
62
- let inner = $state<RadioValue | undefined>(getInitialValue());
63
-
64
- function getInitialValue(): RadioValue | undefined {
65
- return defaultValue;
66
- }
67
-
68
- const selected = $derived(isControlled ? value : inner);
69
-
70
- // Insertion-ordered registry of radios (matches DOM order). PLAIN (non-reactive)
71
- // on purpose: radios push to it while mounting. It is read ONLY inside keyboard
72
- // event handlers (moveTo) — never during render — so registration never feeds
73
- // back into a render-read. This is what keeps the component loop-free
74
- // (effect_update_depth_exceeded comes from render reading state that mount writes).
75
- const registry: RadioRegistration[] = [];
76
-
77
- function select(v: RadioValue) {
78
- if (disabled) return;
79
- // Controlled (`value=` / `bind:value`): parent owns `value`; propagate only
80
- // via `onChange`. Writing the prop AND firing `onChange` loops.
81
- // Uncontrolled: keep our own state in sync.
82
- if (!isControlled) inner = v;
83
- onChange?.(v);
84
- }
85
-
86
- function register(reg: RadioRegistration): () => void {
87
- registry.push(reg);
88
- return () => {
89
- const i = registry.indexOf(reg);
90
- if (i !== -1) registry.splice(i, 1);
91
- };
92
- }
93
-
94
- // Roving tabindex tab stop, computed from `selected` ALONE (no registry read
95
- // during render → no loop). Per WAI-ARIA APG: when a radio is selected it owns
96
- // the tab stop; when nothing is selected every radio is reachable by Tab
97
- // (tabindex=0) and Arrow keys then select one. `selected` is the only reactive
98
- // input, so this is render-safe.
99
- function isTabStop(v: RadioValue, radioDisabled: boolean): boolean {
100
- if (radioDisabled || disabled) return false;
101
- if (selected === undefined) return true; // none selected → all are tab stops
102
- return v === selected;
103
- }
104
-
105
- function moveTo(index: number) {
106
- const enabled = registry.filter((r) => !r.disabled);
107
- if (enabled.length === 0) return;
108
- const target = enabled[(index + enabled.length) % enabled.length];
109
- if (!target) return;
110
- select(target.value);
111
- target.el.focus();
112
- }
113
-
114
- function onKeydown(e: KeyboardEvent, current: RadioValue) {
115
- if (disabled) return;
116
- const enabled = registry.filter((r) => !r.disabled);
117
- const idx = enabled.findIndex((r) => r.value === current);
118
- if (idx === -1) return;
119
- // RTL:水平方向键语义翻转(左右镜像)。读 getComputedStyle 仅在事件里,render 不依赖。
120
- const rtl =
121
- rootEl != null && getComputedStyle(rootEl).direction === 'rtl';
122
- let key = e.key;
123
- if (rtl && key === 'ArrowRight') key = 'ArrowLeft';
124
- else if (rtl && key === 'ArrowLeft') key = 'ArrowRight';
125
- switch (key) {
126
- case 'ArrowDown':
127
- case 'ArrowRight':
128
- e.preventDefault();
129
- moveTo(idx + 1);
130
- break;
131
- case 'ArrowUp':
132
- case 'ArrowLeft':
133
- e.preventDefault();
134
- moveTo(idx - 1);
135
- break;
136
- case 'Home':
137
- e.preventDefault();
138
- moveTo(0);
139
- break;
140
- case 'End':
141
- e.preventDefault();
142
- moveTo(enabled.length - 1);
143
- break;
144
- default:
145
- break;
146
- }
147
- }
148
-
149
- setRadioGroupContext({
150
- name: groupName,
151
- getSelected: () => selected,
152
- getDisabled: () => disabled,
153
- getSize: () => size,
154
- getStatus: () => status,
155
- getType: () => type,
156
- select,
157
- register,
158
- onKeydown,
159
- isTabStop,
160
- });
161
-
162
- const cls = $derived(
163
- `cd-radio-group cd-radio-group--${direction} cd-radio-group--${type}`,
164
- );
165
- </script>
166
-
167
- <div
168
- class={cls}
169
- bind:this={rootEl}
170
- role="radiogroup"
171
- aria-labelledby={ariaLabelledby}
172
- aria-label={ariaLabelledby ? undefined : ariaLabel}
173
- aria-invalid={status === 'error' ? 'true' : undefined}
174
- >
175
- {#if options}
176
- {#each options as opt (opt.value)}
177
- <Radio value={opt.value} disabled={opt.disabled ?? false} extra={opt.extra}>{opt.label}</Radio
178
- >
179
- {/each}
180
- {:else}
181
- {@render children?.()}
182
- {/if}
183
- </div>
184
-
185
- <style>
186
- .cd-radio-group {
187
- display: inline-flex;
188
- gap: var(--cd-spacing-4);
189
- }
190
- .cd-radio-group--horizontal {
191
- flex-direction: row;
192
- flex-wrap: wrap;
193
- align-items: center;
194
- }
195
- .cd-radio-group--vertical {
196
- flex-direction: column;
197
- align-items: flex-start;
198
- }
199
- </style>
@@ -1,21 +0,0 @@
1
- <!--
2
- 仅供 RadioGroup.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- WAI-ARIA radiogroup:roving tabindex + 方向键导航即选中(真实焦点)。
4
- defaultValue 选中一项,使其为单一 Tab 停靠点。前后各放按钮验证 Tab 进/出。
5
- -->
6
- <script lang="ts">
7
- import { LocaleProvider } from '../locale-provider/index.js';
8
- import RadioGroup from './RadioGroup.svelte';
9
-
10
- const options = [
11
- { label: 'Apple', value: 'apple' },
12
- { label: 'Banana', value: 'banana' },
13
- { label: 'Cherry', value: 'cherry' },
14
- ];
15
- </script>
16
-
17
- <LocaleProvider locale="en_US">
18
- <button type="button" data-testid="before">before</button>
19
- <RadioGroup {options} defaultValue="apple" ariaLabel="Fruit" />
20
- <button type="button" data-testid="after">after</button>
21
- </LocaleProvider>
@@ -1,42 +0,0 @@
1
- import { getContext, setContext } from 'svelte';
2
-
3
- export type RadioValue = string | number | boolean;
4
- export type RadioSize = 'small' | 'default' | 'large';
5
- export type RadioStatus = 'default' | 'warning' | 'error';
6
- export type RadioType = 'default' | 'button' | 'card' | 'pureCard';
7
-
8
- export interface RadioRegistration {
9
- value: RadioValue;
10
- disabled: boolean;
11
- /** focusable element to receive roving focus: native input (default) or role=radio container (button/card) */
12
- el: HTMLElement;
13
- }
14
-
15
- export interface RadioGroupContext {
16
- /** group name shared by all radios */
17
- name: string;
18
- getSelected: () => RadioValue | undefined;
19
- getDisabled: () => boolean;
20
- getSize: () => RadioSize;
21
- /** group-level validation status; per-item non-default status overrides it */
22
- getStatus: () => RadioStatus;
23
- /** group-level render form (default/button/card/pureCard) */
24
- getType: () => RadioType;
25
- select: (v: RadioValue) => void;
26
- /** register a radio's input element + meta for roving focus management */
27
- register: (reg: RadioRegistration) => () => void;
28
- /** keydown handler implementing roving tabindex / arrow navigation */
29
- onKeydown: (e: KeyboardEvent, current: RadioValue) => void;
30
- /** whether this radio should be the roving tab stop (tabindex=0) */
31
- isTabStop: (v: RadioValue, disabled: boolean) => boolean;
32
- }
33
-
34
- const KEY = Symbol('cd-radio-group');
35
-
36
- export function setRadioGroupContext(ctx: RadioGroupContext): void {
37
- setContext(KEY, ctx);
38
- }
39
-
40
- export function getRadioGroupContext(): RadioGroupContext | undefined {
41
- return getContext<RadioGroupContext | undefined>(KEY);
42
- }
@@ -1,4 +0,0 @@
1
- export { default as Radio } from './Radio.svelte';
2
- export { default as RadioGroup } from './RadioGroup.svelte';
3
- export { meta as radioMeta } from './meta.js';
4
- export type { RadioValue, RadioSize, RadioGroupContext } from './context.js';
package/src/radio/meta.ts DELETED
@@ -1,68 +0,0 @@
1
- /**
2
- * Machine-readable component metadata for AI/docs consumption.
3
- * See specs/00-foundation/ai-friendly.spec.md.
4
- */
5
- export const meta = {
6
- name: 'Radio',
7
- category: 'input',
8
- description: '单选框,通常置于 RadioGroup 中,遵循 WAI-ARIA radiogroup 模式(roving tabindex + 方向键)。',
9
- props: [
10
- { name: 'value', type: 'string | number | boolean', default: '—', desc: '选项值(必填)' },
11
- { name: 'checked', type: 'boolean', default: 'undefined', desc: '独立使用时受控选中' },
12
- { name: 'defaultChecked', type: 'boolean', default: 'false' },
13
- { name: 'disabled', type: 'boolean', default: 'false' },
14
- { name: 'size', type: "'small'|'default'|'large'", default: 'default' },
15
- {
16
- name: 'status',
17
- type: "'default'|'warning'|'error'",
18
- default: 'default',
19
- desc: '校验态,影响边框色;继承 Group,非 default 单项可覆盖',
20
- },
21
- { name: 'type', type: "'default'|'button'|'card'|'pureCard'", default: '继承 Group 或 default', desc: 'button/card/pureCard 用 role=radio 容器 + aria-checked' },
22
- { name: 'name', type: 'string', default: 'undefined' },
23
- { name: 'extra', type: 'string', default: 'undefined', desc: '辅助说明,aria-describedby 关联' },
24
- { name: 'children', type: 'Snippet', default: 'undefined', desc: '标签内容' },
25
- { name: 'onChange', type: '(checked: boolean) => void', default: 'undefined' },
26
- ],
27
- group: {
28
- name: 'RadioGroup',
29
- props: [
30
- { name: 'value', type: 'string | number | boolean', default: 'undefined', desc: '受控选中值' },
31
- { name: 'defaultValue', type: 'string | number | boolean', default: 'undefined' },
32
- { name: 'name', type: 'string', default: 'useId()' },
33
- {
34
- name: 'options',
35
- type: 'Array<{label,value,disabled?,extra?}>',
36
- default: 'undefined',
37
- },
38
- { name: 'disabled', type: 'boolean', default: 'false' },
39
- { name: 'size', type: "'small'|'default'|'large'", default: 'default' },
40
- {
41
- name: 'status',
42
- type: "'default'|'warning'|'error'",
43
- default: 'default',
44
- desc: '整组校验态,经 context 透传给组内 Radio;error 时根元素 aria-invalid',
45
- },
46
- { name: 'type', type: "'default'|'button'|'card'|'pureCard'", default: 'default', desc: '整组形态,透传子项;非 default 用 role=radio + aria-checked' },
47
- { name: 'direction', type: "'horizontal'|'vertical'", default: 'horizontal' },
48
- { name: 'onChange', type: '(v: string|number|boolean) => void', default: 'undefined' },
49
- { name: 'children', type: 'Snippet', default: 'undefined' },
50
- { name: 'ariaLabel', type: 'string', default: 'undefined' },
51
- { name: 'ariaLabelledby', type: 'string', default: 'undefined', desc: '关联组可见标题 id(优先于 ariaLabel)' },
52
- ],
53
- },
54
- a11y: {
55
- role: 'radiogroup / radio',
56
- keyboard: ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'Space'],
57
- notes: [
58
- 'div role=radiogroup 包裹',
59
- 'roving tabindex:仅选中项(或首个可用项)tabindex=0',
60
- '方向键在可用项间循环移动并选中、聚焦,跳过 disabled',
61
- 'Home/End 跳首/末可用项',
62
- 'RTL(dir=rtl)下 ArrowLeft/ArrowRight 语义镜像翻转',
63
- 'button/card/pureCard 型用容器 role=radio + aria-checked(非原生 input),Space/Enter 选中',
64
- 'extra 经 aria-describedby 关联',
65
- ],
66
- },
67
- tokens: ['--cd-radio-*', '--cd-focus-ring', '--cd-motion-*', '--cd-spacing-*', '--cd-radius-full'],
68
- } as const;
@@ -1,41 +0,0 @@
1
- // Rating a11y:APG slider 模式(role=slider + aria-valuenow/min/max/valuetext)。
2
- // 可访问名走 i18n(Rating.ariaLabel);error 态 aria-invalid。
3
- import { describe, it, expect } from 'vitest';
4
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
5
- import Rating from './Rating.svelte';
6
-
7
- describe('Rating a11y', () => {
8
- it('默认渲染:role=slider + aria-valuenow/min/max,locale 可访问名,无 axe violations', async () => {
9
- const { container } = renderWithLocale(Rating, { props: { defaultValue: 3 } });
10
- const slider = container.querySelector('[role="slider"]');
11
- expect(slider).not.toBeNull();
12
- expect(slider?.getAttribute('aria-valuenow')).toBe('3');
13
- expect(slider?.getAttribute('aria-valuemin')).toBe('0');
14
- expect(slider?.getAttribute('aria-valuemax')).toBe('5');
15
- // 可访问名来自 en_US locale(Rating.ariaLabel),非 key 原样。
16
- const label = slider?.getAttribute('aria-label');
17
- expect(label).toBeTruthy();
18
- expect(label).not.toBe('Rating.ariaLabel');
19
- expect(slider?.getAttribute('aria-valuetext')).toBeTruthy();
20
- await expectNoAxeViolations(container);
21
- });
22
-
23
- it('自定义 ariaLabel + error:aria-label / aria-invalid', async () => {
24
- const { container } = renderWithLocale(Rating, {
25
- props: { defaultValue: 2, ariaLabel: 'Difficulty', status: 'error' },
26
- });
27
- const slider = container.querySelector('[role="slider"]');
28
- expect(slider?.getAttribute('aria-label')).toBe('Difficulty');
29
- expect(slider?.getAttribute('aria-invalid')).toBe('true');
30
- await expectNoAxeViolations(container);
31
- });
32
-
33
- it('readonly:aria-readonly=true,无 axe violations', async () => {
34
- const { container } = renderWithLocale(Rating, {
35
- props: { defaultValue: 4, readonly: true },
36
- });
37
- const slider = container.querySelector('[role="slider"]');
38
- expect(slider?.getAttribute('aria-readonly')).toBe('true');
39
- await expectNoAxeViolations(container);
40
- });
41
- });
@@ -1,48 +0,0 @@
1
- // Rating 键盘 e2e(browser project / 真实 chromium)。
2
- // Rating 根元素是 role=slider(APG slider 模式,tabindex=0),焦点落在根本身:
3
- // ←↓ 减、→↑ 增(minStep=1),数字键 1–9 直接定位,Home→0 / End→count,
4
- // aria-valuenow 真实变化。jsdom 焦点/数字键合成不可靠,故在真浏览器里测。
5
- import { describe, it, expect } from 'vitest';
6
- import { page } from 'vitest/browser';
7
- import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
8
- import RatingKbdFixture from './RatingKbdFixture.svelte';
9
-
10
- function loc(el: Element) {
11
- return page.elementLocator(el);
12
- }
13
-
14
- describe('Rating 键盘 e2e(role=slider 方向键 + 数字键)', () => {
15
- it('Tab 聚焦 + 方向键调分 + 数字键定位 + Home/End', async () => {
16
- const { baseElement } = renderKbdFixture(RatingKbdFixture);
17
-
18
- const rating = baseElement.querySelector('[role="slider"]') as HTMLElement;
19
- expect(rating).not.toBeNull();
20
- expect(rating.getAttribute('aria-valuenow')).toBe('3');
21
-
22
- // Tab 从 before 进入,焦点落在 slider 根。
23
- const before = baseElement.querySelector('[data-testid="before"]') as HTMLElement;
24
- before.focus();
25
- await expect.element(loc(before)).toHaveFocus();
26
- await userEvent.tab();
27
- await expect.element(loc(rating)).toHaveFocus();
28
-
29
- // → 增(4),← 减(3)。
30
- await userEvent.keyboard('{ArrowRight}');
31
- await expect.element(loc(rating)).toHaveAttribute('aria-valuenow', '4');
32
- await userEvent.keyboard('{ArrowLeft}');
33
- await expect.element(loc(rating)).toHaveAttribute('aria-valuenow', '3');
34
-
35
- // 数字键 5 直接定位到 5 分。
36
- await userEvent.keyboard('5');
37
- await expect.element(loc(rating)).toHaveAttribute('aria-valuenow', '5');
38
- // 数字键 2 定位到 2 分。
39
- await userEvent.keyboard('2');
40
- await expect.element(loc(rating)).toHaveAttribute('aria-valuenow', '2');
41
-
42
- // Home → 0,End → count(5)。
43
- await userEvent.keyboard('{Home}');
44
- await expect.element(loc(rating)).toHaveAttribute('aria-valuenow', '0');
45
- await userEvent.keyboard('{End}');
46
- await expect.element(loc(rating)).toHaveAttribute('aria-valuenow', '5');
47
- });
48
- });