@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,20 +0,0 @@
1
- <!--
2
- 仅供 TreeSelect.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
3
- TreeSelect 浮层 portal 到 document.body;高亮走 aria-activedescendant
4
- (焦点留在 role=combobox 触发器上,方向键在可见树上 roving,treeitem tabindex=-1)。
5
- 用三个顶层叶子节点,使初始可见列表稳定(无展开态干扰)。
6
- -->
7
- <script lang="ts">
8
- import { LocaleProvider } from '../locale-provider/index.js';
9
- import TreeSelect from './TreeSelect.svelte';
10
-
11
- const treeData = [
12
- { key: 'a', label: 'Apple' },
13
- { key: 'b', label: 'Banana' },
14
- { key: 'c', label: 'Cherry' },
15
- ];
16
- </script>
17
-
18
- <LocaleProvider locale="en_US">
19
- <TreeSelect {treeData} ariaLabel="Fruit tree" placeholder="Pick a fruit" />
20
- </LocaleProvider>
@@ -1,3 +0,0 @@
1
- export { default as TreeSelect } from './TreeSelect.svelte';
2
- export { meta as treeSelectMeta } from './meta.js';
3
- export type { TreeNode, TreeKey } from './types.js';
@@ -1,73 +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: 'TreeSelect',
7
- category: 'input',
8
- description: '树形选择器,单面板可展开/收起的树,单选叶子或任意节点。',
9
- props: [
10
- { name: 'value', type: 'TreeKey|TreeKey[]|null', default: 'undefined' },
11
- { name: 'defaultValue', type: 'TreeKey|TreeKey[]|null', default: 'null' },
12
- { name: 'treeData', type: 'TreeNode[]', default: '[]', desc: '树数据源;字段名可经 fieldNames 自定义' },
13
- {
14
- name: 'fieldNames',
15
- type: '{ key?: string; label?: string; children?: string }',
16
- default: "{ key:'key', label:'label', children:'children' }",
17
- desc: '自定义节点字段名映射,适配任意后端数据(如 { key:\'id\', label:\'name\', children:\'sub\' })。派生只读映射;onChange 回传的 key 即原始字段值',
18
- },
19
- { name: 'open', type: 'boolean', default: 'undefined' },
20
- { name: 'defaultOpen', type: 'boolean', default: 'false' },
21
- { name: 'multiple', type: 'boolean', default: 'false', desc: 'checkbox 多选 + 父子联动,多 tag 回显' },
22
- { name: 'checkStrictly', type: 'boolean', default: 'false', desc: '多选时父子勾选互不影响(向后兼容,等价 checkRelation=unRelated)' },
23
- { name: 'checkRelation', type: "'related'|'unRelated'", default: "'related'", desc: '多选父子是否级联联动;unRelated 互不影响。checkStrictly=true 强制 unRelated' },
24
- { name: 'showCheckedStrategy', type: "'all'|'parent'|'child'", default: "'all'", desc: '回填值/Tag 收敛策略:all 全部勾选节点;parent 折叠为父;child 仅叶子。仅 related 生效' },
25
- { name: 'maxTagCount', type: 'number', default: 'undefined', desc: '多选回填 Tag 最大展示数,超出折叠为 +N(仅影响显示)' },
26
- { name: 'placeholder', type: 'string', default: "'请选择'" },
27
- { name: 'size', type: "'small'|'default'|'large'", default: 'default' },
28
- { name: 'status', type: "'default'|'warning'|'error'", default: 'default' },
29
- { name: 'disabled', type: 'boolean', default: 'false' },
30
- { name: 'clearable', type: 'boolean', default: 'false' },
31
- { name: 'leafOnly', type: 'boolean', default: 'false' },
32
- { name: 'defaultExpandAll', type: 'boolean', default: 'false' },
33
- { name: 'treeDefaultExpandedKeys', type: 'TreeKey[]', default: '[]', desc: '默认展开的节点 key(非受控初始展开集,与 defaultExpandAll 取并集)' },
34
- { name: 'filterable', type: 'boolean', default: 'false', desc: '面板搜索框过滤节点 + 高亮命中' },
35
- { name: 'remote', type: 'boolean', default: 'false', desc: '远程搜索:输入防抖后仅触发 onSearch,不本地过滤(外部更新 treeData)' },
36
- { name: 'searchDebounce', type: 'number', default: '300', desc: 'onSearch 防抖毫秒(remote 时生效)' },
37
- { name: 'onSearch', type: '(query: string) => void', default: 'undefined', desc: '远程搜索输入回调(防抖后)' },
38
- { name: 'showIcon', type: 'boolean', default: 'true', desc: '是否预留节点图标位(icon 提供时渲染在 label 前),与 Tree 对齐' },
39
- {
40
- name: 'loadData',
41
- type: '(node: TreeNode) => Promise<TreeNode[]>',
42
- default: 'undefined',
43
- desc: '异步加载子节点:展开未加载的非叶子节点时调用,返回该节点子节点数组(加载中显示 spinner,竞态去重,不写回 treeData)。与 Tree 的 loadData 对齐',
44
- },
45
- { name: 'virtualized', type: 'boolean', default: 'false', desc: '虚拟滚动:仅渲染视口内可见行,适合大数据树。复用 Tree 范式(core fixedRange),保持 role=tree/treeitem 语义' },
46
- { name: 'height', type: 'number', default: '224', desc: '虚拟滚动视口高度(px),virtualized 时生效' },
47
- { name: 'itemHeight', type: 'number', default: '32', desc: '虚拟滚动行高(px),virtualized 时生效' },
48
- {
49
- name: 'icon',
50
- type: 'Snippet<[{ node: TreeNode; expanded: boolean; level: number }]>',
51
- default: 'undefined',
52
- desc: '自定义节点图标,showIcon 为真时渲染在 label 前;参数含节点与展开态,与 Tree 的 icon API 对齐',
53
- },
54
- {
55
- name: 'onChange',
56
- type: '(value: TreeKey|TreeKey[]|null) => void',
57
- default: 'undefined',
58
- desc: '多选返回 checked 全集数组,单选返回单 key',
59
- },
60
- { name: 'onOpenChange', type: '(open: boolean) => void', default: 'undefined' },
61
- { name: 'ariaLabel', type: 'string', default: 'undefined' },
62
- ],
63
- a11y: {
64
- role: 'combobox',
65
- notes: [
66
- 'combobox 触发器 + role="tree" 面板 + role="treeitem"',
67
- '有 children 节点 aria-expanded 标记展开态',
68
- 'aria-selected 标记选中节点',
69
- 'leafOnly 时非叶子节点仅切换展开,不可选',
70
- ],
71
- },
72
- tokens: ['--cd-select-*', '--cd-tree-*', '--cd-focus-ring'],
73
- } as const;
@@ -1,11 +0,0 @@
1
- /** TreeSelect 节点键类型。 */
2
- export type TreeKey = string | number;
3
-
4
- /** TreeSelect 树形节点数据结构。 */
5
- export interface TreeNode {
6
- key: TreeKey;
7
- label: string;
8
- disabled?: boolean;
9
- isLeaf?: boolean;
10
- children?: TreeNode[];
11
- }
@@ -1,104 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import {
3
- flattenVisible,
4
- fixedRange,
5
- type TreeNodeData,
6
- type TreeKey,
7
- } from '@chenzy-design/core';
8
-
9
- // 这些用例佐证 TreeSelect 虚拟化/异步加载所复用的纯派生逻辑(与 Tree 同范式):
10
- // 1) mergedTree 注入已加载子节点的纯函数行为;
11
- // 2) flattenVisible + fixedRange 视口切片只取窗口内行(虚拟化核心)。
12
-
13
- const VIRTUAL_OVERSCAN = 4;
14
-
15
- // 与 TreeSelect.svelte 内 mergedTree 注入逻辑等价的纯函数。
16
- function injectLoaded(
17
- nodes: TreeNodeData[],
18
- loaded: Map<TreeKey, TreeNodeData[]>,
19
- ): TreeNodeData[] {
20
- if (loaded.size === 0) return nodes;
21
- const inject = (list: TreeNodeData[]): TreeNodeData[] =>
22
- list.map((n) => {
23
- const kids = n.children ?? loaded.get(n.key);
24
- if (!kids) return n;
25
- return { ...n, children: inject(kids) };
26
- });
27
- return inject(nodes);
28
- }
29
-
30
- describe('TreeSelect mergedTree 异步注入', () => {
31
- it('无加载时返回原引用(零开销)', () => {
32
- const data: TreeNodeData[] = [{ key: 'a', label: 'A', isLeaf: true }];
33
- expect(injectLoaded(data, new Map())).toBe(data);
34
- });
35
-
36
- it('把已加载子节点注入对应节点(不改原数据)', () => {
37
- const data: TreeNodeData[] = [{ key: 'a', label: 'A' }];
38
- const loaded = new Map<TreeKey, TreeNodeData[]>([
39
- ['a', [{ key: 'a-1', label: 'A1' }, { key: 'a-2', label: 'A2' }]],
40
- ]);
41
- const merged = injectLoaded(data, loaded);
42
- expect(merged[0]?.children).toHaveLength(2);
43
- // 原数据不被改写(红线 #1)
44
- expect(data[0]?.children).toBeUndefined();
45
- });
46
-
47
- it('注入后的子树可被 flattenVisible 在展开时纳入可见行', () => {
48
- const data: TreeNodeData[] = [{ key: 'a', label: 'A' }];
49
- const loaded = new Map<TreeKey, TreeNodeData[]>([
50
- ['a', [{ key: 'a-1', label: 'A1' }]],
51
- ]);
52
- const merged = injectLoaded(data, loaded);
53
- const flat = flattenVisible(merged, new Set<TreeKey>(['a']));
54
- expect(flat.map((f) => f.node.key)).toEqual(['a', 'a-1']);
55
- });
56
- });
57
-
58
- describe('TreeSelect 虚拟化视口切片', () => {
59
- // 50 分组 × 20 子项的大树,全展开。
60
- const big: TreeNodeData[] = Array.from({ length: 50 }, (_, g) => ({
61
- key: `g${g}`,
62
- label: `G${g}`,
63
- children: Array.from({ length: 20 }, (_, c) => ({
64
- key: `g${g}-c${c}`,
65
- label: `G${g}C${c}`,
66
- })),
67
- }));
68
- const allExpanded = new Set<TreeKey>(big.map((n) => n.key));
69
- const flat = flattenVisible(big, allExpanded);
70
-
71
- it('全展开后可见行 = 50 分组 + 50*20 子项 = 1050', () => {
72
- expect(flat.length).toBe(1050);
73
- });
74
-
75
- it('fixedRange 在视口顶部只取窗口 + overscan,远小于全量', () => {
76
- const itemHeight = 32;
77
- const height = 224; // 默认面板高度
78
- const range = fixedRange(0, height, itemHeight, flat.length, VIRTUAL_OVERSCAN);
79
- const rendered = flat.slice(range.startIndex, range.endIndex);
80
- // 视口 7 行可见 + 4 overscan(顶部 startIndex=0),渲染数远小于 1050。
81
- expect(rendered.length).toBeLessThan(20);
82
- expect(range.startIndex).toBe(0);
83
- expect(rendered[0]?.node.key).toBe('g0');
84
- });
85
-
86
- it('滚动到中部时窗口随 scrollTop 平移', () => {
87
- const itemHeight = 32;
88
- const height = 224;
89
- const scrollTop = 500 * itemHeight; // 滚到第 500 行附近
90
- const range = fixedRange(scrollTop, height, itemHeight, flat.length, VIRTUAL_OVERSCAN);
91
- expect(range.startIndex).toBeGreaterThan(490);
92
- expect(range.endIndex).toBeLessThan(flat.length);
93
- const rendered = flat.slice(range.startIndex, range.endIndex);
94
- expect(rendered.length).toBeLessThan(20);
95
- });
96
-
97
- it('行偏移按 (startIndex + i) * rowHeight 计算', () => {
98
- const itemHeight = 32;
99
- const range = fixedRange(500 * itemHeight, 224, itemHeight, flat.length, VIRTUAL_OVERSCAN);
100
- // 渲染切片第 0 项的 translateY 应等于 startIndex * rowHeight。
101
- const firstOffset = (range.startIndex + 0) * itemHeight;
102
- expect(firstOffset).toBe(range.startIndex * itemHeight);
103
- });
104
- });
@@ -1,120 +0,0 @@
1
- <!--
2
- Typography.Link — see specs/components/basic/Typography.spec.md
3
- Renders an <a>. 外链 target=_blank 自动补 rel="noopener noreferrer";
4
- disabled 移除 href + aria-disabled + tabindex=-1。
5
- ellipsis / copyable / editable 经 TypographyBase 组合 core 原语。
6
- -->
7
- <script lang="ts">
8
- import type { Snippet } from 'svelte';
9
- import TypographyBase, {
10
- type EllipsisConfig,
11
- type CopyableConfig,
12
- type EditableConfig,
13
- } from './TypographyBase.svelte';
14
-
15
- type TypoType = 'default' | 'secondary' | 'tertiary' | 'warning' | 'danger' | 'success';
16
- type TypoWeight = number | 'regular' | 'medium' | 'semibold' | 'bold';
17
-
18
- interface Props {
19
- href?: string;
20
- target?: string;
21
- rel?: string;
22
- type?: TypoType;
23
- strong?: boolean;
24
- weight?: TypoWeight;
25
- disabled?: boolean;
26
- mark?: boolean;
27
- /** Link 默认带下划线 */
28
- underline?: boolean;
29
- delete?: boolean;
30
- code?: boolean;
31
- component?: string;
32
- ellipsis?: boolean | EllipsisConfig;
33
- copyable?: boolean | CopyableConfig;
34
- editable?: boolean | EditableConfig;
35
- value?: string;
36
- onChange?: (value: string) => void;
37
- onCopy?: (content: string) => void;
38
- onEditStart?: () => void;
39
- onEditCancel?: () => void;
40
- onExpand?: (expanded: boolean) => void;
41
- onClick?: (e: MouseEvent) => void;
42
- class?: string;
43
- children?: Snippet;
44
- }
45
-
46
- let {
47
- href,
48
- target,
49
- rel,
50
- type = 'default',
51
- strong = false,
52
- weight,
53
- disabled = false,
54
- mark = false,
55
- underline = false,
56
- delete: del = false,
57
- code = false,
58
- component = 'a',
59
- ellipsis = false,
60
- copyable = false,
61
- editable = false,
62
- value,
63
- onChange,
64
- onCopy,
65
- onEditStart,
66
- onEditCancel,
67
- onExpand,
68
- onClick,
69
- class: className = '',
70
- children,
71
- }: Props = $props();
72
-
73
- // target=_blank 且未显式 rel → 自动 noopener noreferrer
74
- const resolvedRel = $derived(rel ?? (target === '_blank' ? 'noopener noreferrer' : undefined));
75
- // disabled 移除 href 行为
76
- const resolvedHref = $derived(disabled ? undefined : href);
77
-
78
- function handleClick(e: MouseEvent): void {
79
- if (disabled) {
80
- e.preventDefault();
81
- return;
82
- }
83
- onClick?.(e);
84
- }
85
-
86
- const hostAttrs = $derived({
87
- href: resolvedHref,
88
- target,
89
- rel: resolvedRel,
90
- tabindex: disabled ? -1 : undefined,
91
- onclick: handleClick,
92
- });
93
- </script>
94
-
95
- <TypographyBase
96
- element={component}
97
- baseClass="cd-typography"
98
- extraClass="cd-typography--link"
99
- {type}
100
- {strong}
101
- {weight}
102
- {disabled}
103
- {mark}
104
- {underline}
105
- delete={del}
106
- {code}
107
- class={className}
108
- {ellipsis}
109
- {copyable}
110
- {editable}
111
- {value}
112
- {onChange}
113
- {onCopy}
114
- {onEditStart}
115
- {onEditCancel}
116
- {onExpand}
117
- {hostAttrs}
118
- >
119
- {@render children?.()}
120
- </TypographyBase>
@@ -1,92 +0,0 @@
1
- <!--
2
- Typography.Paragraph — see specs/components/basic/Typography.spec.md
3
- Renders a <p>. ellipsis / copyable / editable 经 TypographyBase 组合 core 原语。
4
- -->
5
- <script lang="ts">
6
- import type { Snippet } from 'svelte';
7
- import TypographyBase, {
8
- type EllipsisConfig,
9
- type CopyableConfig,
10
- type EditableConfig,
11
- } from './TypographyBase.svelte';
12
-
13
- type TypoType = 'default' | 'secondary' | 'tertiary' | 'warning' | 'danger' | 'success';
14
- type TypoWeight = number | 'regular' | 'medium' | 'semibold' | 'bold';
15
- type TypoSize = 'small' | 'default' | 'large';
16
-
17
- interface Props {
18
- type?: TypoType;
19
- /** 字号档 small/default/large。spec §4.1 L60 */
20
- size?: TypoSize;
21
- strong?: boolean;
22
- weight?: TypoWeight;
23
- disabled?: boolean;
24
- mark?: boolean;
25
- underline?: boolean;
26
- delete?: boolean;
27
- code?: boolean;
28
- component?: string;
29
- ellipsis?: boolean | EllipsisConfig;
30
- copyable?: boolean | CopyableConfig;
31
- editable?: boolean | EditableConfig;
32
- value?: string;
33
- onChange?: (value: string) => void;
34
- onCopy?: (content: string) => void;
35
- onEditStart?: () => void;
36
- onEditCancel?: () => void;
37
- onExpand?: (expanded: boolean) => void;
38
- class?: string;
39
- children?: Snippet;
40
- }
41
-
42
- let {
43
- type = 'default',
44
- size = 'default',
45
- strong = false,
46
- weight,
47
- disabled = false,
48
- mark = false,
49
- underline = false,
50
- delete: del = false,
51
- code = false,
52
- component = 'p',
53
- ellipsis = false,
54
- copyable = false,
55
- editable = false,
56
- value,
57
- onChange,
58
- onCopy,
59
- onEditStart,
60
- onEditCancel,
61
- onExpand,
62
- class: className = '',
63
- children,
64
- }: Props = $props();
65
- </script>
66
-
67
- <TypographyBase
68
- element={component}
69
- baseClass="cd-typography"
70
- extraClass="cd-typography--paragraph"
71
- {type}
72
- {size}
73
- {strong}
74
- {weight}
75
- {disabled}
76
- {mark}
77
- {underline}
78
- delete={del}
79
- {code}
80
- class={className}
81
- {ellipsis}
82
- {copyable}
83
- {editable}
84
- {value}
85
- {onChange}
86
- {onCopy}
87
- {onEditStart}
88
- {onEditCancel}
89
- {onExpand}
90
- >
91
- {@render children?.()}
92
- </TypographyBase>
@@ -1,93 +0,0 @@
1
- <!--
2
- Typography.Text — see specs/components/basic/Typography.spec.md
3
- Renders a <span>. Shares the cd-typography base style class.
4
- ellipsis / copyable / editable 交互经 TypographyBase 组合 @chenzy-design/core 原语。
5
- -->
6
- <script lang="ts">
7
- import type { Snippet } from 'svelte';
8
- import TypographyBase, {
9
- type EllipsisConfig,
10
- type CopyableConfig,
11
- type EditableConfig,
12
- } from './TypographyBase.svelte';
13
-
14
- type TypoType = 'default' | 'secondary' | 'tertiary' | 'warning' | 'danger' | 'success';
15
- type TypoWeight = number | 'regular' | 'medium' | 'semibold' | 'bold';
16
- type TypoSize = 'small' | 'default' | 'large';
17
-
18
- interface Props {
19
- type?: TypoType;
20
- /** 字号档 small/default/large。spec §4.1 L60 */
21
- size?: TypoSize;
22
- strong?: boolean;
23
- weight?: TypoWeight;
24
- disabled?: boolean;
25
- mark?: boolean;
26
- underline?: boolean;
27
- delete?: boolean;
28
- code?: boolean;
29
- component?: string;
30
- ellipsis?: boolean | EllipsisConfig;
31
- copyable?: boolean | CopyableConfig;
32
- editable?: boolean | EditableConfig;
33
- value?: string;
34
- onChange?: (value: string) => void;
35
- onCopy?: (content: string) => void;
36
- onEditStart?: () => void;
37
- onEditCancel?: () => void;
38
- onExpand?: (expanded: boolean) => void;
39
- class?: string;
40
- children?: Snippet;
41
- }
42
-
43
- let {
44
- type = 'default',
45
- size = 'default',
46
- strong = false,
47
- weight,
48
- disabled = false,
49
- mark = false,
50
- underline = false,
51
- delete: del = false,
52
- code = false,
53
- component = 'span',
54
- ellipsis = false,
55
- copyable = false,
56
- editable = false,
57
- value,
58
- onChange,
59
- onCopy,
60
- onEditStart,
61
- onEditCancel,
62
- onExpand,
63
- class: className = '',
64
- children,
65
- }: Props = $props();
66
- </script>
67
-
68
- <TypographyBase
69
- element={component}
70
- baseClass="cd-typography"
71
- extraClass="cd-typography--text"
72
- {type}
73
- {size}
74
- {strong}
75
- {weight}
76
- {disabled}
77
- {mark}
78
- {underline}
79
- delete={del}
80
- {code}
81
- class={className}
82
- {ellipsis}
83
- {copyable}
84
- {editable}
85
- {value}
86
- {onChange}
87
- {onCopy}
88
- {onEditStart}
89
- {onEditCancel}
90
- {onExpand}
91
- >
92
- {@render children?.()}
93
- </TypographyBase>
@@ -1,91 +0,0 @@
1
- <!--
2
- Typography.Title — see specs/components/basic/Typography.spec.md
3
- Renders an <h1>..<h6>. ellipsis / copyable / editable 经 TypographyBase 组合 core 原语。
4
- -->
5
- <script lang="ts">
6
- import type { Snippet } from 'svelte';
7
- import TypographyBase, {
8
- type EllipsisConfig,
9
- type CopyableConfig,
10
- type EditableConfig,
11
- } from './TypographyBase.svelte';
12
-
13
- type TypoType = 'default' | 'secondary' | 'tertiary' | 'warning' | 'danger' | 'success';
14
- type TypoWeight = number | 'regular' | 'medium' | 'semibold' | 'bold';
15
-
16
- interface Props {
17
- heading?: 1 | 2 | 3 | 4 | 5 | 6;
18
- type?: TypoType;
19
- strong?: boolean;
20
- weight?: TypoWeight;
21
- disabled?: boolean;
22
- mark?: boolean;
23
- underline?: boolean;
24
- delete?: boolean;
25
- code?: boolean;
26
- component?: string;
27
- ellipsis?: boolean | EllipsisConfig;
28
- copyable?: boolean | CopyableConfig;
29
- editable?: boolean | EditableConfig;
30
- value?: string;
31
- onChange?: (value: string) => void;
32
- onCopy?: (content: string) => void;
33
- onEditStart?: () => void;
34
- onEditCancel?: () => void;
35
- onExpand?: (expanded: boolean) => void;
36
- class?: string;
37
- children?: Snippet;
38
- }
39
-
40
- let {
41
- heading = 1,
42
- type = 'default',
43
- strong = false,
44
- weight,
45
- disabled = false,
46
- mark = false,
47
- underline = false,
48
- delete: del = false,
49
- code = false,
50
- component,
51
- ellipsis = false,
52
- copyable = false,
53
- editable = false,
54
- value,
55
- onChange,
56
- onCopy,
57
- onEditStart,
58
- onEditCancel,
59
- onExpand,
60
- class: className = '',
61
- children,
62
- }: Props = $props();
63
-
64
- const element = $derived(component ?? `h${heading}`);
65
- </script>
66
-
67
- <TypographyBase
68
- {element}
69
- baseClass="cd-typography"
70
- extraClass={`cd-typography--title cd-typography--h${heading}`}
71
- {type}
72
- {strong}
73
- {weight}
74
- {disabled}
75
- {mark}
76
- {underline}
77
- delete={del}
78
- {code}
79
- class={className}
80
- {ellipsis}
81
- {copyable}
82
- {editable}
83
- {value}
84
- {onChange}
85
- {onCopy}
86
- {onEditStart}
87
- {onEditCancel}
88
- {onExpand}
89
- >
90
- {@render children?.()}
91
- </TypographyBase>
@@ -1,34 +0,0 @@
1
- // Typography a11y:Text→<span>、Title→<hN>、Link→<a>。
2
- // 经 TypographyA11yFixture 提供真实文本 children(自带 LocaleProvider,故直接 render)。
3
- import { describe, it, expect } from 'vitest';
4
- import { render } from '@testing-library/svelte';
5
- import { expectNoAxeViolations } from '../test-utils/a11y.js';
6
- import TypographyA11yFixture from './TypographyA11yFixture.svelte';
7
-
8
- describe('Typography a11y', () => {
9
- it('Text:渲染文本,无 axe violations', async () => {
10
- const { container } = render(TypographyA11yFixture, {
11
- props: { variant: 'text', text: 'Body text' },
12
- });
13
- expect(container.textContent).toContain('Body text');
14
- await expectNoAxeViolations(container);
15
- });
16
-
17
- it('Title:渲染为 heading 元素,无 axe violations', async () => {
18
- const { container } = render(TypographyA11yFixture, {
19
- props: { variant: 'title', text: 'Section title', props: { heading: 2 } },
20
- });
21
- expect(container.querySelector('h2')?.textContent).toContain('Section title');
22
- await expectNoAxeViolations(container);
23
- });
24
-
25
- it('Link:渲染 <a> 带 href 且有可访问名,无 axe violations', async () => {
26
- const { container } = render(TypographyA11yFixture, {
27
- props: { variant: 'link', text: 'Visit', props: { href: 'https://example.com' } },
28
- });
29
- const a = container.querySelector('a');
30
- expect(a?.getAttribute('href')).toBe('https://example.com');
31
- expect(a?.textContent).toContain('Visit');
32
- await expectNoAxeViolations(container);
33
- });
34
- });
@@ -1,27 +0,0 @@
1
- <!--
2
- Typography a11y 测试夹具:为 Text/Title/Link 提供真实文本 children。
3
- 自带 LocaleProvider,故测试直接 render 本夹具。variant 选择子组件。
4
- -->
5
- <script lang="ts">
6
- import { LocaleProvider } from '../locale-provider/index.js';
7
- import Text from './Text.svelte';
8
- import Title from './Title.svelte';
9
- import Link from './Link.svelte';
10
-
11
- interface Props {
12
- variant?: 'text' | 'title' | 'link';
13
- text?: string;
14
- props?: Record<string, unknown>;
15
- }
16
- let { variant = 'text', text = 'Hello', props = {} }: Props = $props();
17
- </script>
18
-
19
- <LocaleProvider locale="en_US">
20
- {#if variant === 'title'}
21
- <Title {...props}>{text}</Title>
22
- {:else if variant === 'link'}
23
- <Link {...props}>{text}</Link>
24
- {:else}
25
- <Text {...props}>{text}</Text>
26
- {/if}
27
- </LocaleProvider>