@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,85 +0,0 @@
1
- <!--
2
- Form.TreeSelect — convenience wrapper: <Form.Field> + <TreeSelect> bound to a field.
3
- -->
4
- <script lang="ts">
5
- import type { Rule, ValidateTrigger } from '@chenzy-design/core';
6
- import type { ComponentProps } from 'svelte';
7
- import Field from './Field.svelte';
8
- import TreeSelect from '../tree-select/TreeSelect.svelte';
9
-
10
- type TreeSelectProps = ComponentProps<typeof TreeSelect>;
11
-
12
- interface Props {
13
- field: string;
14
- label?: string;
15
- rules?: Rule[];
16
- initValue?: unknown;
17
- required?: boolean;
18
- validateStatus?: 'default' | 'warning' | 'error';
19
- extraText?: string;
20
- span?: number;
21
- transform?: (value: unknown, values: Record<string, unknown>) => unknown;
22
- dependencies?: string[];
23
- trigger?: ValidateTrigger | ValidateTrigger[];
24
- // TreeSelect-specific props
25
- treeData?: TreeSelectProps['treeData'];
26
- multiple?: TreeSelectProps['multiple'];
27
- placeholder?: TreeSelectProps['placeholder'];
28
- disabled?: boolean;
29
- clearable?: TreeSelectProps['clearable'];
30
- size?: TreeSelectProps['size'];
31
- maxTagCount?: TreeSelectProps['maxTagCount'];
32
- }
33
-
34
- let {
35
- field,
36
- label,
37
- rules = [],
38
- initValue,
39
- required = false,
40
- validateStatus,
41
- extraText,
42
- span,
43
- transform,
44
- dependencies,
45
- trigger,
46
- treeData,
47
- multiple,
48
- placeholder,
49
- disabled,
50
- clearable,
51
- size,
52
- maxTagCount,
53
- }: Props = $props();
54
-
55
- const fieldProps = $derived<ComponentProps<typeof Field>>({
56
- field,
57
- rules,
58
- required,
59
- ...(label !== undefined ? { label } : {}),
60
- ...(initValue !== undefined ? { initValue } : {}),
61
- ...(validateStatus !== undefined ? { validateStatus } : {}),
62
- ...(extraText !== undefined ? { extraText } : {}),
63
- ...(span !== undefined ? { span } : {}),
64
- ...(transform !== undefined ? { transform } : {}),
65
- ...(dependencies !== undefined ? { dependencies } : {}),
66
- ...(trigger !== undefined ? { trigger } : {}),
67
- });
68
- </script>
69
-
70
- <Field {...fieldProps}>
71
- {#snippet children({ value, onChange, status, disabled: fieldDisabled })}
72
- <TreeSelect
73
- value={value as TreeSelectProps['value']}
74
- {treeData}
75
- {multiple}
76
- {placeholder}
77
- disabled={disabled ?? fieldDisabled}
78
- {clearable}
79
- {size}
80
- {maxTagCount}
81
- status={status === 'error' ? 'error' : 'default'}
82
- onChange={(v) => onChange(v)}
83
- />
84
- {/snippet}
85
- </Field>
@@ -1,92 +0,0 @@
1
- <!--
2
- Form.Upload — convenience wrapper: <Form.Field> + <Upload> bound to a field.
3
- -->
4
- <script lang="ts">
5
- import type { Rule, ValidateTrigger } from '@chenzy-design/core';
6
- import type { ComponentProps, Snippet } from 'svelte';
7
- import Field from './Field.svelte';
8
- import Upload from '../upload/Upload.svelte';
9
-
10
- type UploadProps = ComponentProps<typeof Upload>;
11
-
12
- interface Props {
13
- field: string;
14
- label?: string;
15
- rules?: Rule[];
16
- initValue?: unknown;
17
- required?: boolean;
18
- validateStatus?: 'default' | 'warning' | 'error';
19
- extraText?: string;
20
- span?: number;
21
- transform?: (value: unknown, values: Record<string, unknown>) => unknown;
22
- dependencies?: string[];
23
- trigger?: ValidateTrigger | ValidateTrigger[];
24
- // Upload-specific props
25
- accept?: UploadProps['accept'];
26
- multiple?: UploadProps['multiple'];
27
- limit?: UploadProps['limit'];
28
- disabled?: boolean;
29
- listType?: UploadProps['listType'];
30
- drag?: UploadProps['drag'];
31
- action?: UploadProps['action'];
32
- size?: UploadProps['size'];
33
- children?: Snippet;
34
- }
35
-
36
- let {
37
- field,
38
- label,
39
- rules = [],
40
- initValue,
41
- required = false,
42
- validateStatus,
43
- extraText,
44
- span,
45
- transform,
46
- dependencies,
47
- trigger,
48
- accept,
49
- multiple,
50
- limit,
51
- disabled,
52
- listType,
53
- drag,
54
- action,
55
- size,
56
- children,
57
- }: Props = $props();
58
-
59
- const fieldProps = $derived<ComponentProps<typeof Field>>({
60
- field,
61
- rules,
62
- required,
63
- ...(label !== undefined ? { label } : {}),
64
- ...(initValue !== undefined ? { initValue } : {}),
65
- ...(validateStatus !== undefined ? { validateStatus } : {}),
66
- ...(extraText !== undefined ? { extraText } : {}),
67
- ...(span !== undefined ? { span } : {}),
68
- ...(transform !== undefined ? { transform } : {}),
69
- ...(dependencies !== undefined ? { dependencies } : {}),
70
- ...(trigger !== undefined ? { trigger } : {}),
71
- });
72
- </script>
73
-
74
- <Field {...fieldProps}>
75
- {#snippet children({ value, onChange, status, disabled: fieldDisabled })}
76
- <Upload
77
- value={Array.isArray(value) ? (value as UploadProps['value']) : undefined}
78
- {accept}
79
- {multiple}
80
- {limit}
81
- disabled={disabled ?? fieldDisabled}
82
- {listType}
83
- {drag}
84
- {action}
85
- {size}
86
- status={status === 'error' ? 'error' : 'default'}
87
- onChange={(list) => onChange(list)}
88
- >
89
- {@render children?.()}
90
- </Upload>
91
- {/snippet}
92
- </Field>
@@ -1,47 +0,0 @@
1
- import { getContext, setContext } from 'svelte';
2
- import type { FormApi, FormState } from '@chenzy-design/core';
3
-
4
- export type FormLayout = 'vertical' | 'horizontal';
5
- export type FormLabelPosition = 'top' | 'left' | 'inset';
6
- export type FormSize = 'small' | 'default' | 'large';
7
- export type FormLabelAlign = 'left' | 'right';
8
-
9
- export interface GridCol {
10
- span?: number;
11
- offset?: number;
12
- }
13
-
14
- export interface FormContext {
15
- /** the headless form instance from @chenzy-design/core */
16
- form: FormApi;
17
- /** getter keeps the bridged $state reactive across context boundary */
18
- getFormState: () => FormState;
19
- // getters keep the shared config reactive to Form prop changes across the
20
- // context boundary (reading a plain value would freeze the initial snapshot).
21
- getLabelPosition: () => FormLabelPosition;
22
- getLabelWidth: () => number | string | undefined;
23
- /** Label text alignment (spec §4 L60). */
24
- getLabelAlign: () => FormLabelAlign;
25
- getSize: () => FormSize;
26
- getDisabled: () => boolean;
27
- getRequiredMark: () => boolean;
28
- getColon: () => boolean;
29
- /** whether error/warning text carries a status icon (spec §4 L66). */
30
- getShowValidateIcon: () => boolean;
31
- /** extra text position: 'middle' | 'bottom' (default 'bottom'). */
32
- getExtraTextPosition: () => 'middle' | 'bottom';
33
- /** 控件布局列配置(Grid 布局时)。 */
34
- getWrapperCol: () => GridCol | undefined;
35
- /** 标签布局列配置(Grid 布局时)。 */
36
- getLabelCol: () => GridCol | undefined;
37
- }
38
-
39
- const KEY = Symbol('cd-form');
40
-
41
- export function setFormContext(ctx: FormContext): void {
42
- setContext(KEY, ctx);
43
- }
44
-
45
- export function getFormContext(): FormContext | undefined {
46
- return getContext<FormContext | undefined>(KEY);
47
- }
package/src/form/index.ts DELETED
@@ -1,22 +0,0 @@
1
- import Form_ from './Form.svelte';
2
- import Field from './Field.svelte';
3
- import FormInput from './FormInput.svelte';
4
- import FieldArray from './FieldArray.svelte';
5
-
6
- export const Form: typeof Form_ & {
7
- Field: typeof Field;
8
- Input: typeof FormInput;
9
- List: typeof FieldArray;
10
- } = Object.assign(Form_, { Field, Input: FormInput, List: FieldArray });
11
-
12
- export { Field as FormField, FormInput, FieldArray };
13
- export { meta as formMeta } from './meta.js';
14
- export {
15
- getFormContext,
16
- setFormContext,
17
- type FormContext,
18
- type FormLayout,
19
- type FormLabelPosition,
20
- type FormSize,
21
- type FormLabelAlign,
22
- } from './context.js';
package/src/form/meta.ts DELETED
@@ -1,85 +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: 'Form',
7
- category: 'input',
8
- description: '表单容器,桥接 headless createForm,提供字段注册、校验、布局与 a11y。',
9
- subComponents: ['Form.Field', 'Form.Input'],
10
- props: [
11
- { name: 'value', type: 'Record<string, unknown>', default: 'undefined', desc: '受控整表单值;变更经 onChange 上报' },
12
- { name: 'initValues', type: 'Record<string, unknown>', default: '{}', desc: '非受控初始值' },
13
- { name: 'layout', type: "'vertical'|'horizontal'", default: 'vertical' },
14
- { name: 'labelPosition', type: "'top'|'left'|'inset'", default: 'top' },
15
- { name: 'labelWidth', type: 'number | string', default: 'undefined' },
16
- { name: 'labelAlign', type: "'left'|'right'", default: 'left', desc: 'Label 文本对齐(spec §4)' },
17
- { name: 'size', type: "'small'|'default'|'large'", default: 'default' },
18
- { name: 'disabled', type: 'boolean', default: 'false' },
19
- { name: 'requiredMark', type: 'boolean', default: 'true' },
20
- { name: 'colon', type: 'boolean', default: 'false' },
21
- { name: 'scrollToError', type: 'boolean', default: 'false', desc: '提交校验失败时滚动并聚焦首个错误字段' },
22
- { name: 'validateTrigger', type: "'change'|'blur'|'submit'|'mount'|string[]", default: "['blur','change']", desc: '全局默认校验时机,字段可经 trigger 覆盖(spec §4)' },
23
- { name: 'showValidateIcon', type: 'boolean', default: 'true', desc: '错误/警告文案是否带状态图标(spec §4)' },
24
- { name: 'stopValidateWithError', type: 'boolean', default: 'false', desc: '字段命中首条错误即停止该字段后续 rule(spec §4)' },
25
- { name: 'preventDefault', type: 'boolean', default: 'true', desc: '是否拦截原生 submit 默认行为(spec §4)' },
26
- { name: 'allowEmpty', type: 'boolean', default: 'false', desc: '收集值时是否保留空值字段键(spec §4)' },
27
- { name: 'onSubmit', type: '(r: { valid; values; errors }) => void', default: 'undefined' },
28
- { name: 'onChange', type: '(values: Record<string, unknown>) => void', default: 'undefined' },
29
- { name: 'children', type: 'Snippet', default: 'undefined' },
30
- { name: 'footer', type: 'Snippet<[{ submitting: boolean }]>', default: 'undefined' },
31
- // Form.Field
32
- { name: 'Field.field', type: 'string', default: '—', desc: '字段名(必填)' },
33
- { name: 'Field.label', type: 'string', default: 'undefined' },
34
- { name: 'Field.rules', type: 'Rule[]', default: '[]' },
35
- { name: 'Field.initValue', type: 'unknown', default: 'undefined', desc: '字段级初始值,覆盖容器 initValues(spec §4.2)' },
36
- { name: 'Field.required', type: 'boolean', default: 'false' },
37
- { name: 'Field.validateStatus', type: "'default'|'warning'|'error'", default: 'undefined', desc: '外部强制校验态(受控展示,不经内部校验、不回写)(spec §4.2)' },
38
- { name: 'Field.extraText', type: 'string', default: 'undefined' },
39
- { name: 'Field.noStyle', type: 'boolean', default: 'false', desc: '仅注册收集、不渲染布局 DOM(纯收集)(spec §4.2 §190)' },
40
- { name: 'Field.span', type: 'number', default: 'undefined', desc: 'Form.Section 栅格内占列(grid-column: span N)(spec §4.2)' },
41
- { name: 'Field.transform', type: '(v, values) => unknown', default: 'undefined', desc: '提交前值转换(纯函数,不回写 state)(spec §4.2)' },
42
- { name: 'Field.dependencies', type: 'string[]', default: 'undefined', desc: '依赖字段名;其值变化时本字段自动重校验' },
43
- { name: 'Field.trigger', type: "'change'|'blur'|'submit'|'mount'|string[]", default: '继承容器', desc: '字段级校验时机覆盖(spec §4)' },
44
- { name: 'Field.valuePropName', type: 'string', default: "'value'", desc: "控件值属性名;如 Checkbox/Switch 用 'checked',snippet 参数即多出同名别名映射字段值" },
45
- { name: 'Field.children', type: 'Snippet<[{ value; [valuePropName]; onChange; onBlur; status; id; describedBy; disabled }]>', default: 'undefined', desc: 'snippet 参数含通用 value 及按 valuePropName 命名的别名(默认 value);id 用于 label for/id 关联,describedBy 用于控件 aria-describedby' },
46
- // Form.Input
47
- { name: 'Input.field', type: 'string', default: '—', desc: '字段名(必填)' },
48
- { name: 'Input.label', type: 'string', default: 'undefined' },
49
- { name: 'Input.rules', type: 'Rule[]', default: '[]' },
50
- { name: 'Input.initValue', type: 'unknown', default: 'undefined', desc: '字段级初始值,覆盖容器 initValues(spec §4.2)' },
51
- { name: 'Input.required', type: 'boolean', default: 'false' },
52
- { name: 'Input.validateStatus', type: "'default'|'warning'|'error'", default: 'undefined', desc: '外部强制校验态(受控展示)(spec §4.2)' },
53
- { name: 'Input.extraText', type: 'string', default: 'undefined' },
54
- { name: 'Input.span', type: 'number', default: 'undefined', desc: 'Form.Section 栅格内占列(spec §4.2)' },
55
- { name: 'Input.transform', type: '(v, values) => unknown', default: 'undefined', desc: '提交前值转换(纯函数)(spec §4.2)' },
56
- { name: 'Input.placeholder', type: 'string', default: 'undefined' },
57
- { name: 'Input.type', type: "'text'|'password'", default: 'text' },
58
- { name: 'Input.clearable', type: 'boolean', default: 'false' },
59
- { name: 'Input.maxLength', type: 'number', default: 'undefined' },
60
- { name: 'Input.dependencies', type: 'string[]', default: 'undefined', desc: '依赖字段名;其值变化时本字段自动重校验' },
61
- { name: 'Input.trigger', type: "'change'|'blur'|'submit'|'mount'|string[]", default: '继承容器', desc: '字段级校验时机覆盖(spec §4)' },
62
- ],
63
- a11y: {
64
- role: 'form',
65
- notes: [
66
- '原生 <form>,submit 经 preventDefault 接管',
67
- '字段错误用 role=alert,经 aria-describedby 关联控件',
68
- 'extraText 无错误时经 aria-describedby 关联',
69
- '必填星标 aria-hidden,必填语义由校验承载',
70
- 'Form.Input 经 Field 自动生成的 id 用 label for/id 精确关联控件(点击 label 聚焦 input);id 也可由 Input 外部传入',
71
- ],
72
- },
73
- tokens: [
74
- '--cd-form-item-gap',
75
- '--cd-form-label-color',
76
- '--cd-form-label-gap',
77
- '--cd-form-required-color',
78
- '--cd-form-optional-color',
79
- '--cd-form-extra-color',
80
- '--cd-form-error-color',
81
- '--cd-form-error-font-size',
82
- '--cd-spacing-*',
83
- '--cd-color-*',
84
- ],
85
- } as const;
@@ -1,142 +0,0 @@
1
- <!--
2
- Col — child of Row in the 24-column grid.
3
- Reads Row's gutter via context for matching horizontal padding.
4
- 响应式断点 props xs/sm/md/lg/xl/xxl:值为 number(span) 或
5
- { span, offset, order, push, pull, flex },按当前视口断点降级解析后覆盖基础 props。
6
- -->
7
- <script lang="ts">
8
- import type { Snippet } from 'svelte';
9
- import { getContext } from 'svelte';
10
- import { resolveResponsiveValue, type Breakpoint } from '@chenzy-design/core';
11
- import { ROW_CONTEXT_KEY, type RowContext } from './Row.svelte';
12
- import { useBreakpoint } from './use-breakpoint.svelte.js';
13
-
14
- const COLUMNS = 24;
15
-
16
- type ColConfig = {
17
- span?: number;
18
- offset?: number;
19
- order?: number;
20
- push?: number;
21
- pull?: number;
22
- flex?: string | number;
23
- };
24
- type ColResponsive = number | ColConfig;
25
-
26
- interface Props {
27
- /** 0-24; 0 hides the column */
28
- span?: number;
29
- offset?: number;
30
- order?: number;
31
- push?: number;
32
- pull?: number;
33
- /** when set, takes precedence over `span` (the column uses raw flex) */
34
- flex?: string | number;
35
- xs?: ColResponsive;
36
- sm?: ColResponsive;
37
- md?: ColResponsive;
38
- lg?: ColResponsive;
39
- xl?: ColResponsive;
40
- xxl?: ColResponsive;
41
- class?: string;
42
- children?: Snippet;
43
- }
44
-
45
- let {
46
- span,
47
- offset = 0,
48
- order = 0,
49
- push = 0,
50
- pull = 0,
51
- flex,
52
- xs,
53
- sm,
54
- md,
55
- lg,
56
- xl,
57
- xxl,
58
- class: className = '',
59
- children,
60
- }: Props = $props();
61
-
62
- // Touch context so Col stays coupled to Row (padding comes from inherited var).
63
- getContext<RowContext>(ROW_CONTEXT_KEY);
64
-
65
- const bp = useBreakpoint();
66
-
67
- // 当前断点解析出的响应式覆盖(降级取值),叠加到基础 props 上。
68
- const resolved = $derived.by(() => {
69
- const byBp: Record<Breakpoint, ColResponsive | undefined> = { xs, sm, md, lg, xl, xxl };
70
- const r = resolveResponsiveValue<ColResponsive | undefined>(byBp, bp.current, undefined);
71
- const rc: ColConfig = r === undefined ? {} : typeof r === 'number' ? { span: r } : r;
72
- return {
73
- span: rc.span ?? span,
74
- offset: rc.offset ?? offset,
75
- order: rc.order ?? order,
76
- push: rc.push ?? push,
77
- pull: rc.pull ?? pull,
78
- flex: rc.flex ?? flex,
79
- };
80
- });
81
-
82
- function pct(units: number): string {
83
- return `${(units / COLUMNS) * 100}%`;
84
- }
85
-
86
- const hidden = $derived(resolved.span === 0);
87
-
88
- const sizeStyle = $derived.by(() => {
89
- const rSpan = resolved.span;
90
- const rFlex = resolved.flex;
91
- if (rFlex !== undefined) {
92
- // flex takes precedence over span (span is ignored when flex is set).
93
- const value = typeof rFlex === 'number' ? `${rFlex} ${rFlex} auto` : rFlex;
94
- return [`flex:${value}`];
95
- }
96
- if (rSpan !== undefined && rSpan > 0) {
97
- return [`flex:0 0 ${pct(rSpan)}`, `max-width:${pct(rSpan)}`];
98
- }
99
- // auto column: grow/shrink naturally.
100
- return ['flex:1 1 0'];
101
- });
102
-
103
- const rOffset = $derived(resolved.offset ?? 0);
104
- const rOrder = $derived(resolved.order ?? 0);
105
- const rPush = $derived(resolved.push ?? 0);
106
- const rPull = $derived(resolved.pull ?? 0);
107
-
108
- const inlineStyle = $derived(
109
- [
110
- ...sizeStyle,
111
- rOffset > 0 && `margin-inline-start:${pct(rOffset)}`,
112
- rOrder !== 0 && `order:${rOrder}`,
113
- rPush > 0 && `inset-inline-start:${pct(rPush)}`,
114
- rPull > 0 && `inset-inline-end:${pct(rPull)}`,
115
- ]
116
- .filter(Boolean)
117
- .join(';'),
118
- );
119
-
120
- const relative = $derived(rPush > 0 || rPull > 0);
121
-
122
- const cls = $derived(['cd-col', relative && 'cd-col--relative', className].filter(Boolean).join(' '));
123
- </script>
124
-
125
- {#if !hidden}
126
- <div class={cls} style={inlineStyle}>
127
- {@render children?.()}
128
- </div>
129
- {/if}
130
-
131
- <style>
132
- .cd-col {
133
- min-width: 0;
134
- /* border-box so the gutter padding is included in the flex-basis %,
135
- otherwise 4×span-6 (=24) overflows 100% and wraps to a new line. */
136
- box-sizing: border-box;
137
- padding-inline: calc(var(--cd-grid-gutter-x) / 2);
138
- }
139
- .cd-col--relative {
140
- position: relative;
141
- }
142
- </style>
@@ -1,14 +0,0 @@
1
- // Grid a11y:Row + Col 24 栅格。纯布局容器,不引入语义角色。
2
- // 仅断言 axe 0 violations(无特殊 ARIA)。
3
- import { describe, it, expect } from 'vitest';
4
- import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
5
- import GridFixture from './GridA11yFixture.svelte';
6
-
7
- describe('Grid a11y', () => {
8
- it('Row + Col:纯布局无语义角色,无 axe violations', async () => {
9
- const { container } = renderWithLocale(GridFixture, {});
10
- expect(container.querySelector('.cd-row')).not.toBeNull();
11
- expect(container.querySelectorAll('.cd-col').length).toBe(2);
12
- await expectNoAxeViolations(container);
13
- });
14
- });
@@ -1,12 +0,0 @@
1
- <!--
2
- 仅供 Grid.a11y.test.ts 使用的测试夹具:Row + Col 24 栅格。
3
- 纯布局容器,不引入语义角色;本套件只断言 axe 0 violations。
4
- -->
5
- <script lang="ts">
6
- import { Row, Col } from './index.js';
7
- </script>
8
-
9
- <Row gutter={16}>
10
- <Col span={12}>Left column</Col>
11
- <Col span={12}>Right column</Col>
12
- </Row>
@@ -1,116 +0,0 @@
1
- <!--
2
- Row — 24-column flex grid container. Pairs with Col.
3
- Token-driven gutter via negative-margin technique. No hardcoded colors.
4
- 响应式 gutter:支持按断点对象 { xs, sm, md, lg, xl, xxl },每档值可为
5
- number 或 [x, y],按当前视口断点降级解析(mobile-first)。
6
- -->
7
- <script lang="ts" module>
8
- export const ROW_CONTEXT_KEY = Symbol('cd-row');
9
-
10
- export interface RowContext {
11
- getGutterX: () => number;
12
- }
13
- </script>
14
-
15
- <script lang="ts">
16
- import type { Snippet } from 'svelte';
17
- import { setContext } from 'svelte';
18
- import { resolveResponsiveValue, type Breakpoint } from '@chenzy-design/core';
19
- import { useBreakpoint } from './use-breakpoint.svelte.js';
20
-
21
- type RowAlign = 'top' | 'middle' | 'bottom' | 'baseline' | 'stretch';
22
- type RowJustify = 'start' | 'end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
23
- type GutterValue = number | [number, number];
24
- type ResponsiveGutter = Partial<Record<Breakpoint, GutterValue>>;
25
-
26
- interface Props {
27
- gutter?: GutterValue | ResponsiveGutter;
28
- align?: RowAlign;
29
- justify?: RowJustify;
30
- wrap?: boolean;
31
- class?: string;
32
- children?: Snippet;
33
- }
34
-
35
- let {
36
- gutter = 0,
37
- align = 'top',
38
- justify = 'start',
39
- wrap = true,
40
- class: className = '',
41
- children,
42
- }: Props = $props();
43
-
44
- const bp = useBreakpoint();
45
-
46
- function toPair(v: GutterValue): [number, number] {
47
- return Array.isArray(v) ? [v[0], v[1]] : [v, 0];
48
- }
49
-
50
- const gutters = $derived.by<[number, number]>(() => {
51
- if (typeof gutter === 'number' || Array.isArray(gutter)) return toPair(gutter);
52
- // responsive object: resolve by current breakpoint (mobile-first cascade).
53
- const resolved = resolveResponsiveValue<GutterValue>(gutter, bp.current, 0);
54
- return toPair(resolved);
55
- });
56
-
57
- const gutterX = $derived(gutters[0]);
58
- const gutterY = $derived(gutters[1]);
59
-
60
- // Col reads this to apply matching horizontal padding.
61
- setContext<RowContext>(ROW_CONTEXT_KEY, { getGutterX: () => gutterX });
62
-
63
- const alignItems = $derived.by(() => {
64
- switch (align) {
65
- case 'middle':
66
- return 'center';
67
- case 'bottom':
68
- return 'flex-end';
69
- case 'baseline':
70
- return 'baseline';
71
- case 'stretch':
72
- return 'stretch';
73
- default:
74
- return 'flex-start';
75
- }
76
- });
77
-
78
- const justifyContent = $derived.by(() => {
79
- switch (justify) {
80
- case 'start':
81
- return 'flex-start';
82
- case 'end':
83
- return 'flex-end';
84
- case 'center':
85
- return 'center';
86
- default:
87
- return justify;
88
- }
89
- });
90
-
91
- const cls = $derived(['cd-row', className].filter(Boolean).join(' '));
92
-
93
- const inlineStyle = $derived(
94
- [
95
- `--cd-grid-gutter-x:${gutterX}px`,
96
- `--cd-grid-gutter-y:${gutterY}px`,
97
- `align-items:${alignItems}`,
98
- `justify-content:${justifyContent}`,
99
- `flex-wrap:${wrap ? 'wrap' : 'nowrap'}`,
100
- ].join(';'),
101
- );
102
- </script>
103
-
104
- <div class={cls} style={inlineStyle}>
105
- {@render children?.()}
106
- </div>
107
-
108
- <style>
109
- .cd-row {
110
- display: flex;
111
- flex-flow: row wrap;
112
- min-width: 0;
113
- margin-inline: calc(var(--cd-grid-gutter-x) / -2);
114
- row-gap: var(--cd-grid-gutter-y);
115
- }
116
- </style>
package/src/grid/index.ts DELETED
@@ -1,3 +0,0 @@
1
- export { default as Row } from './Row.svelte';
2
- export { default as Col } from './Col.svelte';
3
- export { meta as gridMeta } from './meta.js';