@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,592 +0,0 @@
1
- <!--
2
- ScrollColumn — 单列滚轮(ScrollList 的内部子组件,不单独导出)。
3
- 封装一列的:JS 主导定位吸附居中、点击/键盘选中、disabled 跳过、
4
- cyclic 循环、惯性物理(pointer 拖拽 + 减速)、虚拟化、loadMore、status。
5
- 受控 value 不回写(红线 #1):父层只透传当前 index,本列变更仅 onSelect 通知。
6
- 所有 pointer/inertia/scroll/loadMore 监听命令式 + cleanup(红线 #3);
7
- 循环索引/虚拟窗口派生纯函数(红线 #2,复用 core)。
8
- -->
9
- <script lang="ts">
10
- import type { Snippet } from 'svelte';
11
- import { untrack } from 'svelte';
12
- import {
13
- offsetToIndex,
14
- indexToOffset,
15
- indexOfValue,
16
- firstEnabledIndex,
17
- nextEnabledIndex,
18
- keyboardTarget,
19
- wrapIndex,
20
- cyclicVirtualCount,
21
- cyclicCenterIndex,
22
- cyclicRecenter,
23
- momentumStep,
24
- projectSettleIndex,
25
- fixedRange,
26
- type ScrollListItem,
27
- type ScrollListKey,
28
- } from '@chenzy-design/core';
29
-
30
- type Status = 'idle' | 'loading' | 'empty';
31
-
32
- interface Props {
33
- data: ScrollListItem[];
34
- /** 受控当前逻辑 index(已在父层解析,-1 表示无选中)。 */
35
- index: number;
36
- /** 是否受控:受控时本列不写内部 index,仅 onSelect。 */
37
- controlled: boolean;
38
- itemHeight: number;
39
- rows: number;
40
- disabled: boolean;
41
- cyclic: boolean;
42
- virtualized: boolean;
43
- overscan: number;
44
- status: Status;
45
- emptyText: string;
46
- loadingText: string;
47
- ariaLabel: string;
48
- itemIdPrefix: string;
49
- renderItem?: Snippet<[{ item: ScrollListItem; selected: boolean; index: number }]> | undefined;
50
- /** 选中逻辑 index 变化(落定/点击/键盘/惯性)。父层据此回调外部。 */
51
- onSelect: (logicalIndex: number) => void;
52
- /** 滚到末尾触发(非 cyclic 时有效)。 */
53
- onLoadMore?: (() => void) | undefined;
54
- }
55
-
56
- let {
57
- data,
58
- index,
59
- controlled,
60
- itemHeight,
61
- rows,
62
- disabled,
63
- cyclic,
64
- virtualized,
65
- overscan,
66
- status,
67
- emptyText,
68
- loadingText,
69
- ariaLabel,
70
- itemIdPrefix,
71
- renderItem,
72
- onSelect,
73
- onLoadMore,
74
- }: Props = $props();
75
-
76
- const count = $derived(data.length);
77
- const pad = $derived(Math.max(0, Math.floor((rows - 1) / 2)));
78
- const viewportHeight = $derived(itemHeight * rows);
79
-
80
- // cyclic 重复份数(奇数):保证中段两侧各有完整一份缓冲。
81
- const REPEAT = 5;
82
- // 是否真正循环:cyclic 且 count 足够(>=rows,避免极短列循环视觉异常)。
83
- const isCyclic = $derived(cyclic && count >= Math.max(2, pad + 1));
84
-
85
- // 「虚拟总行数」:cyclic 时 count*REPEAT,否则 count。渲染/几何都以它为准。
86
- const virtualCount = $derived(isCyclic ? cyclicVirtualCount(count, REPEAT) : count);
87
-
88
- // 把逻辑 index 映射到虚拟 index(cyclic 落到中段,普通即原值)。
89
- function toVirtual(logical: number): number {
90
- if (count <= 0) return 0;
91
- const safe = logical < 0 ? Math.max(0, firstEnabledIndex(data)) : logical;
92
- return isCyclic ? cyclicCenterIndex(safe, count, REPEAT) : safe;
93
- }
94
- function toLogical(virtual: number): number {
95
- return isCyclic ? wrapIndex(virtual, count) : virtual;
96
- }
97
-
98
- // 非受控内部虚拟 index。
99
- let innerVIndex = $state(untrack(() => toVirtual(index)));
100
- // 当前虚拟 index:受控派生自 props.index;非受控读 inner。
101
- const currentVIndex = $derived(controlled ? toVirtual(index) : innerVIndex);
102
- // 当前逻辑 index(高亮用)。
103
- const currentLogical = $derived(toLogical(currentVIndex));
104
-
105
- // --- DOM 引用 ---
106
- let columnEl = $state<HTMLElement | null>(null);
107
-
108
- // 命令式控制变量(非 $state,避免触发重渲染循环)。
109
- let suppressCommit = false;
110
- let settleTimer: ReturnType<typeof setTimeout> | undefined;
111
- let lastSyncedV = -1;
112
- let loadMoreFired = false;
113
-
114
- // 惯性 / 拖拽状态(速度/偏移存 $state 以便调试,但驱动用命令式 rAF)。
115
- let rafId = 0;
116
- let dragging = $state(false);
117
- let velocity = 0; // px/ms
118
- let lastPointerY = 0;
119
- let lastPointerTs = 0;
120
- let pointerId = -1;
121
-
122
- function prefersReducedMotion(): boolean {
123
- if (typeof window === 'undefined' || !window.matchMedia) return false;
124
- return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
125
- }
126
-
127
- function cancelInertia(): void {
128
- if (rafId) {
129
- cancelAnimationFrame(rafId);
130
- rafId = 0;
131
- }
132
- }
133
-
134
- // 当前 scrollTop(scroll/drag/inertia 时命令式写入),驱动虚拟窗口派生。
135
- let scrollTopState = $state(0);
136
-
137
- // --- 虚拟化窗口(纯函数派生)---
138
- const vrange = $derived.by(() => {
139
- if (!virtualized) return { startIndex: 0, endIndex: virtualCount };
140
- // scroll 时由副作用更新 scrollTopState。
141
- return fixedRange(scrollTopState, viewportHeight, itemHeight, virtualCount, overscan);
142
- });
143
-
144
- // 渲染行:虚拟化时只渲染窗口内,否则全量;映射回逻辑项。
145
- const rendered = $derived.by(() => {
146
- const start = virtualized ? vrange.startIndex : 0;
147
- const end = virtualized ? vrange.endIndex : virtualCount;
148
- const out: Array<{ v: number; logical: number; item: ScrollListItem }> = [];
149
- for (let v = start; v < end; v += 1) {
150
- const logical = toLogical(v);
151
- const item = data[logical];
152
- if (item) out.push({ v, logical, item });
153
- }
154
- return out;
155
- });
156
- // 虚拟化时用上下 spacer 撑出总高度,使 scrollbar / 几何正确。
157
- const topSpacer = $derived(
158
- virtualized ? indexToOffset(vrange.startIndex, itemHeight) : 0,
159
- );
160
- const bottomSpacer = $derived(
161
- virtualized
162
- ? indexToOffset(Math.max(0, virtualCount - vrange.endIndex), itemHeight)
163
- : 0,
164
- );
165
-
166
- // 程序化滚动到虚拟 index。
167
- function scrollToV(virtual: number, smooth: boolean): void {
168
- const el = columnEl;
169
- if (!el) return;
170
- suppressCommit = true;
171
- el.scrollTo({
172
- top: indexToOffset(virtual, itemHeight),
173
- behavior: smooth && !prefersReducedMotion() ? 'smooth' : 'auto',
174
- });
175
- lastSyncedV = virtual;
176
- scrollTopState = indexToOffset(virtual, itemHeight);
177
- }
178
-
179
- // 提交选中(逻辑 index):非受控写 inner,受控只回调(红线 #1)。
180
- function commitV(virtual: number): void {
181
- const logical = toLogical(virtual);
182
- const item = data[logical];
183
- if (!item || item.disabled) return;
184
- if (!controlled) innerVIndex = virtual;
185
- lastSyncedV = virtual;
186
- onSelect(logical);
187
- }
188
-
189
- // 落定吸附:算最近 enabled 虚拟行 → 命令式吸附 → commit。
190
- function settleToOffset(scrollTop: number): void {
191
- const rawV = offsetToIndex(scrollTop, itemHeight, virtualCount);
192
- let targetV = rawV;
193
- const rawLogical = toLogical(rawV);
194
- if (data[rawLogical]?.disabled) {
195
- // 在逻辑空间找最近 enabled,再映回虚拟(保持 cyclic 中段附近)。
196
- const down = nextEnabledIndex(data, rawLogical, 1);
197
- const up = nextEnabledIndex(data, rawLogical, -1);
198
- const pickDown =
199
- Math.abs(down - rawLogical) <= Math.abs(rawLogical - up) && !data[down]?.disabled;
200
- const targetLogical = pickDown ? down : up;
201
- if (data[targetLogical]?.disabled) return; // 全 disabled
202
- targetV = rawV + (targetLogical - rawLogical);
203
- }
204
- scrollToV(targetV, true);
205
- if (toLogical(targetV) !== currentLogical) commitV(targetV);
206
- maybeRecenter(targetV);
207
- }
208
-
209
- // cyclic:落定后若滚出安全区,无动画跳回中段同余位置。
210
- function maybeRecenter(virtual: number): void {
211
- if (!isCyclic) return;
212
- const re = cyclicRecenter(virtual, count, REPEAT);
213
- if (re !== virtual) {
214
- // 下一帧无动画跳,避免与 smooth 吸附打架。
215
- requestAnimationFrame(() => {
216
- scrollToV(re, false);
217
- if (!controlled) innerVIndex = re;
218
- });
219
- }
220
- }
221
-
222
- // loadMore:非 cyclic,滚到接近末尾触发一次。
223
- function maybeLoadMore(scrollTop: number): void {
224
- if (isCyclic || !onLoadMore || status === 'loading') return;
225
- const max = indexToOffset(virtualCount, itemHeight) - viewportHeight;
226
- if (scrollTop >= max - itemHeight * 2) {
227
- if (!loadMoreFired) {
228
- loadMoreFired = true;
229
- onLoadMore();
230
- }
231
- } else {
232
- loadMoreFired = false;
233
- }
234
- }
235
-
236
- // --- scroll 监听 + 落定节流(命令式,红线 #3)---
237
- $effect(() => {
238
- const el = columnEl;
239
- if (!el || disabled) return;
240
-
241
- function onScroll(): void {
242
- const node = columnEl;
243
- if (!node) return;
244
- scrollTopState = node.scrollTop;
245
- maybeLoadMore(node.scrollTop);
246
- if (settleTimer) clearTimeout(settleTimer);
247
- settleTimer = setTimeout(() => {
248
- const n = columnEl;
249
- if (!n) return;
250
- if (suppressCommit) {
251
- suppressCommit = false;
252
- return;
253
- }
254
- if (dragging || rafId) return; // 拖拽/惯性中不抢落定
255
- settleToOffset(n.scrollTop);
256
- }, 120);
257
- }
258
-
259
- el.addEventListener('scroll', onScroll, { passive: true });
260
- return () => {
261
- el.removeEventListener('scroll', onScroll);
262
- if (settleTimer) clearTimeout(settleTimer);
263
- };
264
- });
265
-
266
- // --- pointer 拖拽 + 惯性(命令式 + cleanup,红线 #3)---
267
- $effect(() => {
268
- const el = columnEl;
269
- if (!el || disabled) return;
270
-
271
- function onPointerDown(e: PointerEvent): void {
272
- if (e.button !== 0 && e.pointerType === 'mouse') return;
273
- cancelInertia();
274
- dragging = true;
275
- velocity = 0;
276
- pointerId = e.pointerId;
277
- lastPointerY = e.clientY;
278
- lastPointerTs = e.timeStamp;
279
- try {
280
- el!.setPointerCapture(e.pointerId);
281
- } catch {
282
- /* ignore */
283
- }
284
- }
285
-
286
- function onPointerMove(e: PointerEvent): void {
287
- if (!dragging || e.pointerId !== pointerId) return;
288
- const dy = e.clientY - lastPointerY;
289
- const dt = e.timeStamp - lastPointerTs || 16;
290
- // 拖拽:手指下移 → 内容上移(scrollTop 减),故减 dy。
291
- el!.scrollTop -= dy;
292
- scrollTopState = el!.scrollTop;
293
- // 速度(px/ms,正=scrollTop 增大方向)。
294
- velocity = -dy / dt;
295
- lastPointerY = e.clientY;
296
- lastPointerTs = e.timeStamp;
297
- }
298
-
299
- function endDrag(e: PointerEvent): void {
300
- if (e.pointerId !== pointerId) return;
301
- dragging = false;
302
- pointerId = -1;
303
- try {
304
- el!.releasePointerCapture(e.pointerId);
305
- } catch {
306
- /* ignore */
307
- }
308
- startInertia();
309
- }
310
-
311
- el.addEventListener('pointerdown', onPointerDown);
312
- el.addEventListener('pointermove', onPointerMove);
313
- el.addEventListener('pointerup', endDrag);
314
- el.addEventListener('pointercancel', endDrag);
315
- return () => {
316
- el.removeEventListener('pointerdown', onPointerDown);
317
- el.removeEventListener('pointermove', onPointerMove);
318
- el.removeEventListener('pointerup', endDrag);
319
- el.removeEventListener('pointercancel', endDrag);
320
- cancelInertia();
321
- };
322
- });
323
-
324
- // 释放后惯性减速(命令式 rAF),减速到阈值后吸附到预测目标行。
325
- function startInertia(): void {
326
- const el = columnEl;
327
- if (!el) return;
328
- if (prefersReducedMotion() || Math.abs(velocity) < 0.02) {
329
- settleToOffset(el.scrollTop);
330
- return;
331
- }
332
- let prev = performance.now();
333
- const tick = (now: number): void => {
334
- const node = columnEl;
335
- if (!node) {
336
- rafId = 0;
337
- return;
338
- }
339
- const dt = Math.min(48, now - prev);
340
- prev = now;
341
- const step = momentumStep(velocity, dt);
342
- velocity = step.velocity;
343
- node.scrollTop += step.delta;
344
- scrollTopState = node.scrollTop;
345
- if (step.done) {
346
- rafId = 0;
347
- // 预测落点 → 平滑吸附(虚拟空间)。
348
- const targetV = projectSettleIndex(
349
- node.scrollTop,
350
- velocity,
351
- itemHeight,
352
- virtualCount,
353
- );
354
- // 跳过 disabled:复用 settle 逻辑。
355
- suppressCommit = false;
356
- settleToOffsetV(targetV);
357
- return;
358
- }
359
- rafId = requestAnimationFrame(tick);
360
- };
361
- rafId = requestAnimationFrame(tick);
362
- }
363
-
364
- // 由虚拟目标行落定(惯性结束用),跳 disabled。
365
- function settleToOffsetV(rawV: number): void {
366
- let targetV = rawV;
367
- const rawLogical = toLogical(rawV);
368
- if (data[rawLogical]?.disabled) {
369
- const down = nextEnabledIndex(data, rawLogical, 1);
370
- const up = nextEnabledIndex(data, rawLogical, -1);
371
- const pickDown =
372
- Math.abs(down - rawLogical) <= Math.abs(rawLogical - up) && !data[down]?.disabled;
373
- const targetLogical = pickDown ? down : up;
374
- if (data[targetLogical]?.disabled) return;
375
- targetV = rawV + (targetLogical - rawLogical);
376
- }
377
- scrollToV(targetV, true);
378
- if (toLogical(targetV) !== currentLogical) commitV(targetV);
379
- maybeRecenter(targetV);
380
- }
381
-
382
- // --- 初始定位 ---
383
- $effect(() => {
384
- const el = columnEl;
385
- if (!el) return;
386
- untrack(() => {
387
- const initV = toVirtual(index);
388
- el.scrollTo({ top: indexToOffset(initV, itemHeight), behavior: 'auto' });
389
- lastSyncedV = initV;
390
- scrollTopState = indexToOffset(initV, itemHeight);
391
- });
392
- });
393
-
394
- // --- 受控/状态变更 → 滚动同步(命令式)---
395
- $effect(() => {
396
- const target = currentVIndex;
397
- const el = columnEl;
398
- if (!el) return;
399
- untrack(() => {
400
- if (dragging || rafId) return;
401
- if (target === lastSyncedV) return;
402
- const actual = offsetToIndex(el.scrollTop, itemHeight, virtualCount);
403
- if (actual === target) {
404
- lastSyncedV = target;
405
- return;
406
- }
407
- scrollToV(target, true);
408
- });
409
- });
410
-
411
- // --- 点击选中 ---
412
- function selectV(virtual: number): void {
413
- if (disabled) return;
414
- const item = data[toLogical(virtual)];
415
- if (!item || item.disabled) return;
416
- cancelInertia();
417
- scrollToV(virtual, true);
418
- commitV(virtual);
419
- maybeRecenter(virtual);
420
- }
421
-
422
- // --- 键盘 ---
423
- function handleKey(e: KeyboardEvent): void {
424
- if (disabled || count === 0) return;
425
- const k = e.key as ScrollListKey;
426
- if (
427
- k !== 'ArrowUp' &&
428
- k !== 'ArrowDown' &&
429
- k !== 'PageUp' &&
430
- k !== 'PageDown' &&
431
- k !== 'Home' &&
432
- k !== 'End'
433
- ) {
434
- return;
435
- }
436
- e.preventDefault();
437
- cancelInertia();
438
- const targetLogical = keyboardTarget(data, currentLogical, k);
439
- if (targetLogical === currentLogical) return;
440
- // 在逻辑空间移动,映回虚拟(保持中段附近,cyclic 平滑)。
441
- const targetV = currentVIndex + (targetLogical - currentLogical);
442
- scrollToV(targetV, true);
443
- commitV(targetV);
444
- maybeRecenter(targetV);
445
- }
446
-
447
- function itemId(virtual: number): string {
448
- return `${itemIdPrefix}-${virtual}`;
449
- }
450
- const activeDescId = $derived(count > 0 ? itemId(currentVIndex) : undefined);
451
- const padList = $derived(Array.from({ length: pad }, (_, i) => i));
452
- </script>
453
-
454
- <div
455
- class="cd-scroll-list__col"
456
- class:cd-scroll-list__col--dragging={dragging}
457
- style="--cd-sl-item-height: {itemHeight}px; --cd-sl-viewport-height: {viewportHeight}px;"
458
- >
459
- {#if status === 'empty'}
460
- <div class="cd-scroll-list__status" role="status">{emptyText}</div>
461
- {:else}
462
- <div
463
- class="cd-scroll-list__column"
464
- role="listbox"
465
- aria-orientation="vertical"
466
- aria-label={ariaLabel}
467
- aria-activedescendant={activeDescId}
468
- aria-disabled={disabled || undefined}
469
- tabindex={disabled ? -1 : 0}
470
- bind:this={columnEl}
471
- onkeydown={handleKey}
472
- >
473
- {#each padList as p (`pad-top-${p}`)}
474
- <div class="cd-scroll-list__spacer" aria-hidden="true"></div>
475
- {/each}
476
-
477
- {#if virtualized && topSpacer > 0}
478
- <div class="cd-scroll-list__vspacer" style="height:{topSpacer}px" aria-hidden="true"></div>
479
- {/if}
480
-
481
- {#each rendered as row (row.v)}
482
- {@const selected = row.logical === currentLogical}
483
- <!-- svelte-ignore a11y_click_events_have_key_events -->
484
- <div
485
- id={itemId(row.v)}
486
- class="cd-scroll-list__item"
487
- class:cd-scroll-list__item--selected={selected}
488
- class:cd-scroll-list__item--disabled={row.item.disabled}
489
- role="option"
490
- tabindex={-1}
491
- aria-selected={selected}
492
- aria-disabled={row.item.disabled || undefined}
493
- onclick={() => selectV(row.v)}
494
- >
495
- {#if renderItem}
496
- {@render renderItem({ item: row.item, selected, index: row.logical })}
497
- {:else}
498
- {row.item.label}
499
- {/if}
500
- </div>
501
- {/each}
502
-
503
- {#if virtualized && bottomSpacer > 0}
504
- <div class="cd-scroll-list__vspacer" style="height:{bottomSpacer}px" aria-hidden="true"></div>
505
- {/if}
506
-
507
- {#if status === 'loading'}
508
- <div class="cd-scroll-list__loading" role="status">{loadingText}</div>
509
- {/if}
510
-
511
- {#each padList as p (`pad-bottom-${p}`)}
512
- <div class="cd-scroll-list__spacer" aria-hidden="true"></div>
513
- {/each}
514
- </div>
515
- {/if}
516
- </div>
517
-
518
- <style>
519
- .cd-scroll-list__col {
520
- position: relative;
521
- flex: 1 1 0;
522
- min-inline-size: 0;
523
- block-size: var(--cd-sl-viewport-height);
524
- }
525
- .cd-scroll-list__col--dragging {
526
- cursor: grabbing;
527
- }
528
-
529
- .cd-scroll-list__column {
530
- block-size: 100%;
531
- overflow-y: auto;
532
- scrollbar-width: none;
533
- outline: none;
534
- touch-action: pan-y;
535
- }
536
- .cd-scroll-list__column::-webkit-scrollbar {
537
- display: none;
538
- }
539
- .cd-scroll-list__column:focus-visible {
540
- box-shadow: inset 0 0 0 2px var(--cd-focus-ring);
541
- border-radius: var(--cd-scrolllist-radius);
542
- }
543
-
544
- .cd-scroll-list__spacer {
545
- block-size: var(--cd-sl-item-height);
546
- flex: 0 0 auto;
547
- }
548
- .cd-scroll-list__vspacer {
549
- flex: 0 0 auto;
550
- }
551
-
552
- .cd-scroll-list__item {
553
- display: flex;
554
- align-items: center;
555
- justify-content: center;
556
- block-size: var(--cd-sl-item-height);
557
- padding-inline: var(--cd-spacing-2);
558
- cursor: pointer;
559
- color: var(--cd-scrolllist-color-text-adjacent);
560
- white-space: nowrap;
561
- transition: color var(--cd-scrolllist-transition);
562
- }
563
- .cd-scroll-list__item--selected {
564
- color: var(--cd-scrolllist-color-text);
565
- font-weight: 600;
566
- }
567
- .cd-scroll-list__item--disabled {
568
- color: var(--cd-scrolllist-color-text-disabled);
569
- cursor: not-allowed;
570
- }
571
-
572
- .cd-scroll-list__status,
573
- .cd-scroll-list__loading {
574
- display: flex;
575
- align-items: center;
576
- justify-content: center;
577
- color: var(--cd-scrolllist-color-text-disabled);
578
- font-size: var(--cd-font-size-body);
579
- }
580
- .cd-scroll-list__status {
581
- block-size: 100%;
582
- }
583
- .cd-scroll-list__loading {
584
- block-size: var(--cd-sl-item-height);
585
- }
586
-
587
- @media (prefers-reduced-motion: reduce) {
588
- .cd-scroll-list__item {
589
- transition: none;
590
- }
591
- }
592
- </style>