@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,554 +0,0 @@
1
- <!--
2
- Drawer / SideSheet — 抽屉浮层,四方向贴边滑入。
3
- 复用 Modal 浮层基建:portal 到 body(或 getContainer)脱离父层叠上下文,
4
- role=dialog aria-modal,useFocusTrap 焦点捕获+归还、useDismiss Esc 关闭、
5
- useScrollLock 锁背景滚动,遮罩点击关闭、closable 关闭按钮、自定义尾部。
6
- 堆叠 z-index 由 modal/z-stack 模块级计数器分配(与 Modal 统一层栈,后开者在上)。
7
- 滑入过渡:CSS transform/opacity 过渡(token 时长缓动),reduced-motion 退化。
8
- destroyOnClose:关闭即卸载内容({#if}),重开重建;出场过渡结束后 onAfterClose。
9
- -->
10
- <script lang="ts">
11
- import type { Snippet } from 'svelte';
12
- import {
13
- useId,
14
- useFocusTrap,
15
- useDismiss,
16
- useScrollLock,
17
- useInertBackground,
18
- } from '@chenzy-design/core';
19
- import { useLocale } from '../locale-provider/index.js';
20
- import { acquireZIndex } from '../modal/z-stack.js';
21
-
22
- type Placement = 'left' | 'right' | 'top' | 'bottom';
23
- type Size = 'small' | 'default' | 'large';
24
-
25
- interface Props {
26
- open?: boolean;
27
- placement?: Placement;
28
- size?: Size;
29
- width?: number | string;
30
- height?: number | string;
31
- title?: string;
32
- titleSnippet?: Snippet;
33
- /** Header 右侧额外操作区域(关闭按钮左侧)。 */
34
- extra?: Snippet;
35
- /** 自定义关闭图标;null 时隐藏关闭按钮。 */
36
- closeIcon?: Snippet | null;
37
- mask?: boolean;
38
- maskClosable?: boolean;
39
- closeOnEsc?: boolean;
40
- /** 键盘交互总开关;false 时停用 Esc 关闭与焦点陷阱键盘行为(覆盖 closeOnEsc)。 */
41
- keyboard?: boolean;
42
- closable?: boolean;
43
- /** 关闭即卸载内部内容;重开重建。默认 false(保留 DOM 仅隐藏)。 */
44
- destroyOnClose?: boolean;
45
- /** 关闭时保留 DOM(destroyOnClose 的反义别名);true 时覆盖 destroyOnClose=true。 */
46
- keepDOM?: boolean;
47
- /** Portal 容器,缺省 document.body。脱离父层叠上下文。 */
48
- getContainer?: () => HTMLElement | null;
49
- /** 弹层 z-index 基准值,传给最外层容器。 */
50
- zIndex?: number;
51
- /** 是否启用动画过渡。false 时等价于强制 reduced-motion。默认 true。 */
52
- motion?: boolean;
53
- /** 打开时给 body 加 overflow:hidden 防背景滚动。默认 true。 */
54
- disableScroll?: boolean;
55
- /** 内容区域 style 字符串。 */
56
- bodyStyle?: string;
57
- /** Header 区域 style 字符串。 */
58
- headerStyle?: string;
59
- /** 遮罩 style 字符串。 */
60
- maskStyle?: string;
61
- footer?: Snippet | null;
62
- children?: Snippet;
63
- ariaLabel?: string;
64
- onOpenChange?: (open: boolean) => void;
65
- onClose?: () => void;
66
- /** 出场过渡结束(DOM 卸载后)触发,适合配合 destroyOnClose 清理。 */
67
- onAfterClose?: () => void;
68
- /** 动画结束后(入场或出场)触发,isVisible 为当前可见状态。 */
69
- afterVisibleChange?: (isVisible: boolean) => void;
70
- class?: string;
71
- }
72
-
73
- let {
74
- open,
75
- placement = 'right',
76
- size = 'default',
77
- width,
78
- height,
79
- title,
80
- titleSnippet,
81
- extra,
82
- closeIcon = undefined,
83
- mask = true,
84
- maskClosable = true,
85
- closeOnEsc = true,
86
- keyboard = true,
87
- closable = true,
88
- destroyOnClose = false,
89
- keepDOM = false,
90
- getContainer,
91
- zIndex,
92
- motion = true,
93
- disableScroll = true,
94
- bodyStyle,
95
- headerStyle,
96
- maskStyle,
97
- footer,
98
- children,
99
- ariaLabel,
100
- onOpenChange,
101
- onClose,
102
- onAfterClose,
103
- afterVisibleChange,
104
- class: className,
105
- }: Props = $props();
106
-
107
- const loc = useLocale();
108
-
109
- const titleId = useId('cd-drawer-title');
110
-
111
- // --- 受控 open (红线 #1):不无条件回写 open,仅 onOpenChange/onClose ---
112
- const isControlled = $derived(open !== undefined);
113
- let innerOpen = $state(getInitialOpen());
114
- const isOpen = $derived(isControlled ? !!open : innerOpen);
115
-
116
- function getInitialOpen(): boolean {
117
- return false;
118
- }
119
-
120
- const hasTitle = $derived(Boolean(titleSnippet) || Boolean(title));
121
-
122
- // keepDOM=true 覆盖 destroyOnClose:保留 DOM 优先。
123
- const effectiveDestroyOnClose = $derived(keepDOM ? false : destroyOnClose);
124
-
125
- const isHorizontal = $derived(placement === 'left' || placement === 'right');
126
-
127
- const panelCls = $derived(
128
- ['cd-drawer__panel', `cd-drawer__panel--${placement}`, className]
129
- .filter(Boolean)
130
- .join(' '),
131
- );
132
-
133
- // --- 尺寸解析:width/height 优先于 size 预设 token ---
134
- const sizeToken = $derived(
135
- size === 'small'
136
- ? isHorizontal
137
- ? 'var(--cd-drawer-width-small)'
138
- : 'var(--cd-drawer-height-small)'
139
- : size === 'large'
140
- ? isHorizontal
141
- ? 'var(--cd-drawer-width-large)'
142
- : 'var(--cd-drawer-height-large)'
143
- : isHorizontal
144
- ? 'var(--cd-drawer-width)'
145
- : 'var(--cd-drawer-height)',
146
- );
147
-
148
- const explicit = $derived(isHorizontal ? width : height);
149
-
150
- const sizeValue = $derived(
151
- explicit === undefined
152
- ? sizeToken
153
- : typeof explicit === 'number'
154
- ? `${explicit}px`
155
- : explicit,
156
- );
157
-
158
- const panelStyle = $derived(
159
- isHorizontal ? `inline-size: ${sizeValue}` : `block-size: ${sizeValue}`,
160
- );
161
-
162
- let rootEl = $state<HTMLElement | null>(null);
163
-
164
- function motionDurationMs(): number {
165
- if (!motion) return 0;
166
- if (typeof window === 'undefined' || !rootEl) return 0;
167
- const raw = getComputedStyle(rootEl)
168
- .getPropertyValue('--cd-drawer-motion-duration')
169
- .trim();
170
- if (!raw) return 0;
171
- if (raw.endsWith('ms')) return parseFloat(raw) || 0;
172
- if (raw.endsWith('s')) return (parseFloat(raw) || 0) * 1000;
173
- return parseFloat(raw) || 0;
174
- }
175
-
176
- // --- destroyOnClose / 出场过渡:默认 false 首开后保留 DOM(仅 isOpen 切换显隐 +
177
- // CSS 过渡);true 时关闭等出场过渡结束再卸载({#if}),重开重建。
178
- // entered 驱动 --open:入场时下一帧才置 true,触发位移过渡。
179
- // 全程不写死时长,从 CSS 读取 --cd-drawer-motion-duration,reduced-motion 即 0。 ---
180
- let hasBeenOpened = $state(false);
181
- let exiting = $state(false);
182
- let entered = $state(false);
183
-
184
- // 单一 open 边沿副作用:仅依赖 isOpen,内部不读所写状态,避免重入循环(红线 #3)。
185
- $effect(() => {
186
- const opening = isOpen;
187
- let raf = 0;
188
- let openTimer: ReturnType<typeof setTimeout> | undefined;
189
- let closeTimer: ReturnType<typeof setTimeout> | undefined;
190
- if (opening) {
191
- hasBeenOpened = true;
192
- exiting = false;
193
- if (!motion) {
194
- entered = true;
195
- afterVisibleChange?.(true);
196
- } else {
197
- // 下一帧再切到开启态,确保起始(贴边收起)态先绘制再过渡
198
- raf = requestAnimationFrame(() => {
199
- raf = requestAnimationFrame(() => {
200
- entered = true;
201
- const ms = motionDurationMs();
202
- openTimer = setTimeout(() => afterVisibleChange?.(true), ms);
203
- });
204
- });
205
- }
206
- } else {
207
- entered = false;
208
- if (hasBeenOpened) {
209
- const ms = motionDurationMs();
210
- closeTimer = setTimeout(() => {
211
- if (effectiveDestroyOnClose) hasBeenOpened = false;
212
- exiting = false;
213
- onAfterClose?.();
214
- afterVisibleChange?.(false);
215
- }, ms);
216
- if (effectiveDestroyOnClose) exiting = true;
217
- }
218
- }
219
- return () => {
220
- if (raf) cancelAnimationFrame(raf);
221
- if (openTimer) clearTimeout(openTimer);
222
- if (closeTimer) clearTimeout(closeTimer);
223
- };
224
- });
225
-
226
- // disableScroll:打开时给 body 加 overflow:hidden,关闭时还原。
227
- $effect(() => {
228
- if (!isOpen || !disableScroll || typeof document === 'undefined') return;
229
- const prev = document.body.style.overflow;
230
- document.body.style.overflow = 'hidden';
231
- return () => {
232
- document.body.style.overflow = prev;
233
- };
234
- });
235
-
236
- // effectiveDestroyOnClose=true:仅在开/出场期间渲染;false:首开后常驻
237
- const shouldRender = $derived(
238
- effectiveDestroyOnClose ? isOpen || exiting : isOpen || hasBeenOpened,
239
- );
240
-
241
- function close() {
242
- if (!isControlled) innerOpen = false;
243
- onOpenChange?.(false);
244
- onClose?.();
245
- }
246
-
247
- function onMaskClick(e: MouseEvent) {
248
- if (mask && maskClosable && e.target === e.currentTarget) {
249
- close();
250
- }
251
- }
252
-
253
- // --- 浮层命令式编排 (红线 #3):open 且面板就绪时,
254
- // activate focus-trap、绑 dismiss(Esc)、加 scroll-lock(仅 mask);
255
- // cleanup 里 deactivate(归还焦点)、解绑 dismiss、release scroll-lock ---
256
- let panelEl = $state<HTMLElement | null>(null);
257
-
258
- $effect(() => {
259
- if (!isOpen || !panelEl) return;
260
- // keyboard 总开关:false 时停用 Tab 焦点循环捕获(仍保留进场聚焦与归还焦点)。
261
- const trap = useFocusTrap(panelEl, { trapTab: keyboard });
262
- trap.activate();
263
- const releaseScroll = (mask && disableScroll) ? useScrollLock() : () => {};
264
- // 模态(mask=true)时背景内容对 SR/键盘 inert+aria-hidden(spec §6);
265
- // 以 portal 根 rootEl 为锚隐藏其兄弟。非模态(mask=false)不抢占背景,跳过。
266
- const releaseInert = mask && rootEl ? useInertBackground(rootEl) : () => {};
267
- let undismiss = () => {};
268
- // keyboard 总开关节制 Esc:keyboard=false 时即便 closeOnEsc=true 也不绑 Esc。
269
- if (keyboard && closeOnEsc) {
270
- undismiss = useDismiss(panelEl, {
271
- onDismiss: () => close(),
272
- escape: true,
273
- outsideClick: false,
274
- });
275
- }
276
- return () => {
277
- undismiss();
278
- releaseInert();
279
- releaseScroll();
280
- trap.deactivate();
281
- };
282
- });
283
-
284
- // --- 堆叠 z-index (红线 #3):每次打开向 modal/z-stack 计数器申请一层,关闭回收。
285
- // 与 Modal、命令式 modal.confirm 共享同一计数器,多层叠放后开者在上。
286
- // zIndex prop 作为 CSS var 基准(栈内自动递增叠加)。 ---
287
- let stackZ = $state<number | undefined>(undefined);
288
-
289
- $effect(() => {
290
- if (!isOpen) return;
291
- const { zIndex: z, release } = acquireZIndex();
292
- stackZ = z;
293
- return () => {
294
- stackZ = undefined;
295
- release();
296
- };
297
- });
298
-
299
- const rootStyle = $derived(
300
- [
301
- stackZ !== undefined ? `--cd-drawer-z:${stackZ}` : undefined,
302
- zIndex !== undefined && stackZ === undefined
303
- ? `--cd-drawer-z:${zIndex}`
304
- : undefined,
305
- ]
306
- .filter(Boolean)
307
- .join('; ') || undefined,
308
- );
309
-
310
- // --- portal action (红线 #3):命令式 appendChild 到 getContainer()/body,
311
- // 脱离父 DOM 层叠上下文;destroy 时 removeChild 归还/清理。 ---
312
- function portal(node: HTMLElement) {
313
- if (typeof document === 'undefined') {
314
- return { destroy() {} };
315
- }
316
- const target = getContainer?.() ?? document.body;
317
- target.appendChild(node);
318
- return {
319
- destroy() {
320
- if (node.parentNode) node.parentNode.removeChild(node);
321
- },
322
- };
323
- }
324
- </script>
325
-
326
- {#if shouldRender}
327
- <!-- use:portal 命令式挂载到 getContainer()/body,脱离父层叠上下文。
328
- cd-drawer--open 由 isOpen 驱动 transform/opacity 过渡;
329
- destroyOnClose=false 时关闭以 transform 滑出并保留 DOM。 -->
330
- <div
331
- bind:this={rootEl}
332
- class="cd-drawer cd-drawer--{placement}"
333
- class:cd-drawer--open={isOpen && entered}
334
- class:cd-drawer--no-mask={!mask}
335
- class:cd-drawer--no-motion={!motion}
336
- style={rootStyle}
337
- use:portal
338
- >
339
- {#if mask}
340
- <!-- 遮罩 role=presentation:点击关闭为鼠标增强,键盘等价为 Esc -->
341
- <div
342
- class="cd-drawer__mask"
343
- style={maskStyle}
344
- onclick={onMaskClick}
345
- role="presentation"
346
- ></div>
347
- {/if}
348
- <div
349
- class={panelCls}
350
- bind:this={panelEl}
351
- role="dialog"
352
- aria-modal={mask}
353
- aria-labelledby={hasTitle ? titleId : undefined}
354
- aria-label={hasTitle ? undefined : ariaLabel}
355
- style={panelStyle}
356
- >
357
- <header class="cd-drawer__header" style={headerStyle}>
358
- <h2 id={titleId} class="cd-drawer__title">
359
- {#if titleSnippet}
360
- {@render titleSnippet()}
361
- {:else}
362
- {title}
363
- {/if}
364
- </h2>
365
- <div class="cd-drawer__header-actions">
366
- {#if extra}
367
- {@render extra()}
368
- {/if}
369
- {#if closable && closeIcon !== null}
370
- <button
371
- type="button"
372
- class="cd-drawer__close"
373
- aria-label={loc().t('Drawer.close')}
374
- onclick={close}
375
- >
376
- {#if closeIcon}
377
- {@render closeIcon()}
378
- {:else}
379
- <svg
380
- width="16"
381
- height="16"
382
- viewBox="0 0 16 16"
383
- fill="none"
384
- aria-hidden="true"
385
- >
386
- <path
387
- d="M3 3l10 10M13 3L3 13"
388
- stroke="currentColor"
389
- stroke-width="1.5"
390
- stroke-linecap="round"
391
- />
392
- </svg>
393
- {/if}
394
- </button>
395
- {/if}
396
- </div>
397
- </header>
398
-
399
- <div class="cd-drawer__body" style={bodyStyle}>
400
- {@render children?.()}
401
- </div>
402
-
403
- {#if footer}
404
- <footer class="cd-drawer__footer">
405
- {@render footer()}
406
- </footer>
407
- {/if}
408
- </div>
409
- </div>
410
- {/if}
411
-
412
- <style>
413
- .cd-drawer {
414
- position: fixed;
415
- inset: 0;
416
- z-index: var(--cd-drawer-z);
417
- }
418
- /* mask=false 时容器不拦截指针,仅面板可交互 */
419
- .cd-drawer--no-mask {
420
- pointer-events: none;
421
- }
422
- .cd-drawer--no-mask .cd-drawer__panel {
423
- pointer-events: auto;
424
- }
425
- .cd-drawer__mask {
426
- position: absolute;
427
- inset: 0;
428
- background: var(--cd-drawer-mask-bg);
429
- pointer-events: auto;
430
- opacity: 0;
431
- transition: opacity var(--cd-drawer-motion-duration)
432
- var(--cd-motion-ease-standard, ease);
433
- }
434
- .cd-drawer--open .cd-drawer__mask {
435
- opacity: 1;
436
- }
437
- .cd-drawer__panel {
438
- position: absolute;
439
- box-sizing: border-box;
440
- display: flex;
441
- flex-direction: column;
442
- overflow: hidden;
443
- background: var(--cd-drawer-bg);
444
- box-shadow: var(--cd-drawer-shadow);
445
- transition: transform var(--cd-drawer-motion-duration)
446
- var(--cd-motion-ease-standard, ease);
447
- will-change: transform;
448
- }
449
- .cd-drawer__panel--right {
450
- inset-block: 0;
451
- inset-inline-end: 0;
452
- block-size: 100%;
453
- max-inline-size: 100vw;
454
- transform: translateX(100%);
455
- }
456
- .cd-drawer__panel--left {
457
- inset-block: 0;
458
- inset-inline-start: 0;
459
- block-size: 100%;
460
- max-inline-size: 100vw;
461
- transform: translateX(-100%);
462
- }
463
- .cd-drawer__panel--top {
464
- inset-inline: 0;
465
- inset-block-start: 0;
466
- inline-size: 100%;
467
- max-block-size: 100vh;
468
- transform: translateY(-100%);
469
- }
470
- .cd-drawer__panel--bottom {
471
- inset-inline: 0;
472
- inset-block-end: 0;
473
- inline-size: 100%;
474
- max-block-size: 100vh;
475
- transform: translateY(100%);
476
- }
477
- /* RTL:left/right 贴边随书写方向镜像,translateX 方向需翻转 */
478
- :global([dir='rtl']) .cd-drawer__panel--right {
479
- transform: translateX(-100%);
480
- }
481
- :global([dir='rtl']) .cd-drawer__panel--left {
482
- transform: translateX(100%);
483
- }
484
- .cd-drawer--open .cd-drawer__panel {
485
- transform: translateX(0) translateY(0);
486
- }
487
- .cd-drawer__header {
488
- display: flex;
489
- align-items: center;
490
- justify-content: space-between;
491
- padding: var(--cd-drawer-header-padding);
492
- border-block-end: 1px solid var(--cd-drawer-border);
493
- }
494
- .cd-drawer__title {
495
- margin: 0;
496
- color: var(--cd-drawer-title-color);
497
- font-size: var(--cd-drawer-title-size);
498
- font-weight: 600;
499
- line-height: 1.4;
500
- }
501
- .cd-drawer__header-actions {
502
- display: inline-flex;
503
- flex-shrink: 0;
504
- align-items: center;
505
- gap: var(--cd-spacing-2, 8px);
506
- }
507
- .cd-drawer__close {
508
- display: inline-flex;
509
- align-items: center;
510
- justify-content: center;
511
- inline-size: 28px;
512
- block-size: 28px;
513
- padding: 0;
514
- border: none;
515
- border-radius: var(--cd-radius-sm, 4px);
516
- background: transparent;
517
- color: var(--cd-drawer-close-color);
518
- cursor: pointer;
519
- }
520
- .cd-drawer__close:hover {
521
- background: var(--cd-drawer-close-hover-bg);
522
- color: var(--cd-drawer-close-color-hover);
523
- }
524
- .cd-drawer__close:focus-visible {
525
- outline: none;
526
- box-shadow: var(--cd-focus-ring);
527
- }
528
- .cd-drawer__body {
529
- flex: 1;
530
- overflow: auto;
531
- padding: var(--cd-drawer-body-padding);
532
- color: var(--cd-drawer-color-text);
533
- }
534
- .cd-drawer__footer {
535
- display: flex;
536
- justify-content: flex-end;
537
- gap: var(--cd-drawer-footer-gap, 8px);
538
- padding: var(--cd-drawer-footer-padding);
539
- border-block-start: 1px solid var(--cd-drawer-border);
540
- }
541
-
542
- /* motion=false:强制禁用所有过渡动画 */
543
- .cd-drawer--no-motion * {
544
- transition: none !important;
545
- }
546
-
547
- /* reduced-motion:禁用位移过渡,仅保留极短透明度切换,打开后立即可用 */
548
- @media (prefers-reduced-motion: reduce) {
549
- .cd-drawer__panel,
550
- .cd-drawer__mask {
551
- transition: none;
552
- }
553
- }
554
- </style>
@@ -1,28 +0,0 @@
1
- <!--
2
- 仅供 Drawer.kbd.test.ts(browser project)使用的焦点陷阱 e2e 夹具。
3
- trigger 按钮控制 open(受控);测试先聚焦 trigger 再打开 Drawer,
4
- 验证:打开后焦点进入对话框、Tab 被困在 Drawer 内循环、Esc 关闭后焦点归还 trigger。
5
- Drawer 默认有关闭叉 + 我们在 body 放两个按钮 + footer 两个按钮,构成多个可聚焦点测 Tab 循环。
6
- -->
7
- <script lang="ts">
8
- import { LocaleProvider } from '../locale-provider/index.js';
9
- import Drawer from './Drawer.svelte';
10
-
11
- let open = $state(false);
12
- </script>
13
-
14
- <LocaleProvider locale="en_US">
15
- <button type="button" data-testid="trigger" onclick={() => (open = true)}>open drawer</button>
16
- <Drawer
17
- {open}
18
- title="Edit profile"
19
- onOpenChange={(v) => (open = v)}
20
- >
21
- <button type="button" data-testid="body-a">body a</button>
22
- <button type="button" data-testid="body-b">body b</button>
23
- {#snippet footer()}
24
- <button type="button" data-testid="footer-cancel">Cancel</button>
25
- <button type="button" data-testid="footer-ok">OK</button>
26
- {/snippet}
27
- </Drawer>
28
- </LocaleProvider>
@@ -1,2 +0,0 @@
1
- export { default as Drawer } from './Drawer.svelte';
2
- export { meta as drawerMeta } from './meta.js';