@chenzy-design/svelte 0.3.0 → 0.4.1

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 (1299) hide show
  1. package/dist/_floating/use-floating.d.ts +6 -0
  2. package/dist/_floating/use-floating.d.ts.map +1 -1
  3. package/dist/_floating/use-floating.js +38 -0
  4. package/dist/ai-chat-dialogue/AIChatDialogue.svelte +243 -0
  5. package/dist/ai-chat-dialogue/AIChatDialogue.svelte.d.ts +60 -0
  6. package/dist/ai-chat-dialogue/AIChatDialogue.svelte.d.ts.map +1 -0
  7. package/dist/ai-chat-dialogue/ContentItemRenderer.svelte +318 -0
  8. package/dist/ai-chat-dialogue/ContentItemRenderer.svelte.d.ts +18 -0
  9. package/dist/ai-chat-dialogue/ContentItemRenderer.svelte.d.ts.map +1 -0
  10. package/dist/ai-chat-dialogue/DialogueBox.svelte +403 -0
  11. package/dist/ai-chat-dialogue/DialogueBox.svelte.d.ts +50 -0
  12. package/dist/ai-chat-dialogue/DialogueBox.svelte.d.ts.map +1 -0
  13. package/dist/ai-chat-dialogue/index.d.ts +8 -0
  14. package/dist/ai-chat-dialogue/index.d.ts.map +1 -0
  15. package/dist/ai-chat-dialogue/index.js +6 -0
  16. package/dist/ai-chat-dialogue/meta.d.ts +174 -0
  17. package/dist/ai-chat-dialogue/meta.d.ts.map +1 -0
  18. package/dist/ai-chat-dialogue/meta.js +66 -0
  19. package/dist/ai-chat-dialogue/render-config.d.ts +57 -0
  20. package/dist/ai-chat-dialogue/render-config.d.ts.map +1 -0
  21. package/dist/ai-chat-input/AIChatInput.svelte +1196 -0
  22. package/dist/ai-chat-input/AIChatInput.svelte.d.ts +146 -0
  23. package/dist/ai-chat-input/AIChatInput.svelte.d.ts.map +1 -0
  24. package/dist/ai-chat-input/AIChatInputConfigureButton.svelte +94 -0
  25. package/dist/ai-chat-input/AIChatInputConfigureButton.svelte.d.ts +17 -0
  26. package/dist/ai-chat-input/AIChatInputConfigureButton.svelte.d.ts.map +1 -0
  27. package/dist/ai-chat-input/AIChatInputConfigureItem.svelte +40 -0
  28. package/dist/ai-chat-input/AIChatInputConfigureItem.svelte.d.ts +16 -0
  29. package/dist/ai-chat-input/AIChatInputConfigureItem.svelte.d.ts.map +1 -0
  30. package/dist/ai-chat-input/AIChatInputConfigureMcp.svelte +94 -0
  31. package/dist/ai-chat-input/AIChatInputConfigureMcp.svelte.d.ts +18 -0
  32. package/dist/ai-chat-input/AIChatInputConfigureMcp.svelte.d.ts.map +1 -0
  33. package/dist/ai-chat-input/AIChatInputConfigureRadioButton.svelte +52 -0
  34. package/dist/ai-chat-input/AIChatInputConfigureRadioButton.svelte.d.ts +17 -0
  35. package/dist/ai-chat-input/AIChatInputConfigureRadioButton.svelte.d.ts.map +1 -0
  36. package/dist/ai-chat-input/AIChatInputConfigureSelect.svelte +50 -0
  37. package/dist/ai-chat-input/AIChatInputConfigureSelect.svelte.d.ts +16 -0
  38. package/dist/ai-chat-input/AIChatInputConfigureSelect.svelte.d.ts.map +1 -0
  39. package/dist/ai-chat-input/InputSlotNode.svelte +50 -0
  40. package/dist/ai-chat-input/InputSlotNode.svelte.d.ts +5 -0
  41. package/dist/ai-chat-input/InputSlotNode.svelte.d.ts.map +1 -0
  42. package/dist/ai-chat-input/SelectSlotNode.svelte +54 -0
  43. package/dist/ai-chat-input/SelectSlotNode.svelte.d.ts +5 -0
  44. package/dist/ai-chat-input/SelectSlotNode.svelte.d.ts.map +1 -0
  45. package/dist/ai-chat-input/SkillSlotNode.svelte +82 -0
  46. package/dist/ai-chat-input/SkillSlotNode.svelte.d.ts +5 -0
  47. package/dist/ai-chat-input/SkillSlotNode.svelte.d.ts.map +1 -0
  48. package/dist/ai-chat-input/configure-context.d.ts +12 -0
  49. package/dist/ai-chat-input/configure-context.d.ts.map +1 -0
  50. package/dist/ai-chat-input/configure-context.js +14 -0
  51. package/dist/ai-chat-input/index.d.ts +9 -0
  52. package/dist/ai-chat-input/index.d.ts.map +1 -0
  53. package/dist/ai-chat-input/index.js +9 -0
  54. package/dist/ai-chat-input/input-slot-extension.d.ts +18 -0
  55. package/dist/ai-chat-input/input-slot-extension.d.ts.map +1 -0
  56. package/dist/ai-chat-input/input-slot-extension.js +55 -0
  57. package/dist/ai-chat-input/input-slot-plugins.d.ts +34 -0
  58. package/dist/ai-chat-input/input-slot-plugins.d.ts.map +1 -0
  59. package/dist/ai-chat-input/input-slot-plugins.js +478 -0
  60. package/dist/ai-chat-input/meta.d.ts +284 -0
  61. package/dist/ai-chat-input/meta.d.ts.map +1 -0
  62. package/dist/ai-chat-input/meta.js +106 -0
  63. package/dist/ai-chat-input/select-slot-extension.d.ts +16 -0
  64. package/dist/ai-chat-input/select-slot-extension.d.ts.map +1 -0
  65. package/dist/ai-chat-input/select-slot-extension.js +35 -0
  66. package/dist/ai-chat-input/skill-slot-extension.d.ts +22 -0
  67. package/dist/ai-chat-input/skill-slot-extension.d.ts.map +1 -0
  68. package/dist/ai-chat-input/skill-slot-extension.js +46 -0
  69. package/dist/anchor/Anchor.svelte +393 -242
  70. package/dist/anchor/Anchor.svelte.d.ts +40 -17
  71. package/dist/anchor/Anchor.svelte.d.ts.map +1 -1
  72. package/dist/anchor/AnchorLink.svelte +226 -0
  73. package/dist/anchor/AnchorLink.svelte.d.ts +19 -0
  74. package/dist/anchor/AnchorLink.svelte.d.ts.map +1 -0
  75. package/dist/anchor/context.d.ts +43 -0
  76. package/dist/anchor/context.d.ts.map +1 -0
  77. package/dist/anchor/context.js +26 -0
  78. package/dist/anchor/index.d.ts +11 -2
  79. package/dist/anchor/index.d.ts.map +1 -1
  80. package/dist/anchor/index.js +10 -1
  81. package/dist/anchor/meta.d.ts +92 -43
  82. package/dist/anchor/meta.d.ts.map +1 -1
  83. package/dist/anchor/meta.js +124 -38
  84. package/dist/anchor/types.d.ts +32 -5
  85. package/dist/anchor/types.d.ts.map +1 -1
  86. package/dist/audio-player/AudioPlayer.svelte +614 -0
  87. package/dist/audio-player/AudioPlayer.svelte.d.ts +21 -0
  88. package/dist/audio-player/AudioPlayer.svelte.d.ts.map +1 -0
  89. package/dist/audio-player/AudioSlider.svelte +162 -0
  90. package/dist/audio-player/AudioSlider.svelte.d.ts +20 -0
  91. package/dist/audio-player/AudioSlider.svelte.d.ts.map +1 -0
  92. package/dist/audio-player/index.d.ts +3 -0
  93. package/dist/audio-player/index.d.ts.map +1 -0
  94. package/dist/audio-player/index.js +2 -0
  95. package/dist/audio-player/meta.d.ts +74 -0
  96. package/dist/audio-player/meta.d.ts.map +1 -0
  97. package/dist/audio-player/meta.js +96 -0
  98. package/dist/autocomplete/AutoComplete.svelte +307 -411
  99. package/dist/autocomplete/AutoComplete.svelte.d.ts +52 -47
  100. package/dist/autocomplete/AutoComplete.svelte.d.ts.map +1 -1
  101. package/dist/autocomplete/meta.d.ts +150 -34
  102. package/dist/autocomplete/meta.d.ts.map +1 -1
  103. package/dist/autocomplete/meta.js +43 -21
  104. package/dist/avatar/Avatar.svelte +784 -211
  105. package/dist/avatar/Avatar.svelte.d.ts +28 -23
  106. package/dist/avatar/Avatar.svelte.d.ts.map +1 -1
  107. package/dist/avatar/AvatarGroup.svelte +151 -70
  108. package/dist/avatar/AvatarGroup.svelte.d.ts +16 -17
  109. package/dist/avatar/AvatarGroup.svelte.d.ts.map +1 -1
  110. package/dist/avatar/TopSlotSvg.svelte +62 -0
  111. package/dist/avatar/TopSlotSvg.svelte.d.ts +8 -0
  112. package/dist/avatar/TopSlotSvg.svelte.d.ts.map +1 -0
  113. package/dist/avatar/context.d.ts +28 -1
  114. package/dist/avatar/context.d.ts.map +1 -1
  115. package/dist/avatar/index.d.ts +2 -1
  116. package/dist/avatar/index.d.ts.map +1 -1
  117. package/dist/avatar/meta.d.ts +124 -36
  118. package/dist/avatar/meta.d.ts.map +1 -1
  119. package/dist/avatar/meta.js +117 -24
  120. package/dist/back-top/BackTop.svelte +81 -231
  121. package/dist/back-top/BackTop.svelte.d.ts +10 -33
  122. package/dist/back-top/BackTop.svelte.d.ts.map +1 -1
  123. package/dist/back-top/meta.d.ts +23 -72
  124. package/dist/back-top/meta.d.ts.map +1 -1
  125. package/dist/back-top/meta.js +19 -79
  126. package/dist/badge/Badge.svelte +187 -249
  127. package/dist/badge/Badge.svelte.d.ts +23 -14
  128. package/dist/badge/Badge.svelte.d.ts.map +1 -1
  129. package/dist/badge/meta.d.ts +52 -44
  130. package/dist/badge/meta.d.ts.map +1 -1
  131. package/dist/badge/meta.js +35 -33
  132. package/dist/banner/Banner.svelte +189 -274
  133. package/dist/banner/Banner.svelte.d.ts +20 -23
  134. package/dist/banner/Banner.svelte.d.ts.map +1 -1
  135. package/dist/banner/index.d.ts +2 -1
  136. package/dist/banner/index.d.ts.map +1 -1
  137. package/dist/banner/meta.d.ts +41 -87
  138. package/dist/banner/meta.d.ts.map +1 -1
  139. package/dist/banner/meta.js +59 -79
  140. package/dist/breadcrumb/Breadcrumb.svelte +240 -118
  141. package/dist/breadcrumb/Breadcrumb.svelte.d.ts +35 -19
  142. package/dist/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  143. package/dist/breadcrumb/Item.svelte +5 -5
  144. package/dist/breadcrumb/meta.d.ts +26 -19
  145. package/dist/breadcrumb/meta.d.ts.map +1 -1
  146. package/dist/breadcrumb/meta.js +51 -16
  147. package/dist/breadcrumb/types.d.ts +11 -1
  148. package/dist/breadcrumb/types.d.ts.map +1 -1
  149. package/dist/button/BaseButton.svelte +479 -0
  150. package/dist/button/BaseButton.svelte.d.ts +29 -0
  151. package/dist/button/BaseButton.svelte.d.ts.map +1 -0
  152. package/dist/button/Button.svelte +166 -296
  153. package/dist/button/Button.svelte.d.ts +12 -7
  154. package/dist/button/Button.svelte.d.ts.map +1 -1
  155. package/dist/button/ButtonGroup.svelte +66 -20
  156. package/dist/button/ButtonGroup.svelte.d.ts.map +1 -1
  157. package/dist/button/SplitButtonGroup.svelte +64 -101
  158. package/dist/button/SplitButtonGroup.svelte.d.ts +1 -21
  159. package/dist/button/SplitButtonGroup.svelte.d.ts.map +1 -1
  160. package/dist/button/meta.d.ts +28 -68
  161. package/dist/button/meta.d.ts.map +1 -1
  162. package/dist/button/meta.js +33 -24
  163. package/dist/calendar/Calendar.svelte +928 -1172
  164. package/dist/calendar/Calendar.svelte.d.ts +34 -104
  165. package/dist/calendar/Calendar.svelte.d.ts.map +1 -1
  166. package/dist/calendar/meta.d.ts +78 -168
  167. package/dist/calendar/meta.d.ts.map +1 -1
  168. package/dist/calendar/meta.js +123 -78
  169. package/dist/card/Card.svelte +171 -233
  170. package/dist/card/Card.svelte.d.ts +30 -24
  171. package/dist/card/Card.svelte.d.ts.map +1 -1
  172. package/dist/card/CardGroup.svelte +74 -0
  173. package/dist/card/CardGroup.svelte.d.ts +20 -0
  174. package/dist/card/CardGroup.svelte.d.ts.map +1 -0
  175. package/dist/card/CardMeta.svelte +38 -28
  176. package/dist/card/CardMeta.svelte.d.ts +5 -0
  177. package/dist/card/CardMeta.svelte.d.ts.map +1 -1
  178. package/dist/card/index.d.ts +3 -1
  179. package/dist/card/index.d.ts.map +1 -1
  180. package/dist/card/index.js +7 -2
  181. package/dist/card/meta.d.ts +177 -75
  182. package/dist/card/meta.d.ts.map +1 -1
  183. package/dist/card/meta.js +102 -45
  184. package/dist/carousel/Carousel.svelte +569 -569
  185. package/dist/carousel/Carousel.svelte.d.ts +37 -29
  186. package/dist/carousel/Carousel.svelte.d.ts.map +1 -1
  187. package/dist/carousel/meta.d.ts +73 -65
  188. package/dist/carousel/meta.d.ts.map +1 -1
  189. package/dist/carousel/meta.js +85 -43
  190. package/dist/cascader/Cascader.svelte +725 -391
  191. package/dist/cascader/Cascader.svelte.d.ts +48 -24
  192. package/dist/cascader/Cascader.svelte.d.ts.map +1 -1
  193. package/dist/cascader/meta.d.ts +281 -32
  194. package/dist/cascader/meta.d.ts.map +1 -1
  195. package/dist/cascader/meta.js +85 -12
  196. package/dist/chat/Chat.svelte +483 -0
  197. package/dist/chat/Chat.svelte.d.ts +76 -0
  198. package/dist/chat/Chat.svelte.d.ts.map +1 -0
  199. package/dist/chat/ChatBox.svelte +207 -0
  200. package/dist/chat/ChatBox.svelte.d.ts +26 -0
  201. package/dist/chat/ChatBox.svelte.d.ts.map +1 -0
  202. package/dist/chat/ChatBoxAction.svelte +190 -0
  203. package/dist/chat/ChatBoxAction.svelte.d.ts +18 -0
  204. package/dist/chat/ChatBoxAction.svelte.d.ts.map +1 -0
  205. package/dist/chat/ChatBoxAvatar.svelte +40 -0
  206. package/dist/chat/ChatBoxAvatar.svelte.d.ts +13 -0
  207. package/dist/chat/ChatBoxAvatar.svelte.d.ts.map +1 -0
  208. package/dist/chat/ChatBoxContent.svelte +238 -0
  209. package/dist/chat/ChatBoxContent.svelte.d.ts +17 -0
  210. package/dist/chat/ChatBoxContent.svelte.d.ts.map +1 -0
  211. package/dist/chat/ChatBoxTitle.svelte +40 -0
  212. package/dist/chat/ChatBoxTitle.svelte.d.ts +13 -0
  213. package/dist/chat/ChatBoxTitle.svelte.d.ts.map +1 -0
  214. package/dist/chat/ChatCode.svelte +139 -0
  215. package/dist/chat/ChatCode.svelte.d.ts +9 -0
  216. package/dist/chat/ChatCode.svelte.d.ts.map +1 -0
  217. package/dist/chat/Hint.svelte +82 -0
  218. package/dist/chat/Hint.svelte.d.ts +13 -0
  219. package/dist/chat/Hint.svelte.d.ts.map +1 -0
  220. package/dist/chat/InputBox.svelte +365 -0
  221. package/dist/chat/InputBox.svelte.d.ts +30 -0
  222. package/dist/chat/InputBox.svelte.d.ts.map +1 -0
  223. package/dist/chat/index.d.ts +7 -0
  224. package/dist/chat/index.d.ts.map +1 -0
  225. package/dist/chat/index.js +5 -0
  226. package/dist/chat/meta.d.ts +297 -0
  227. package/dist/chat/meta.d.ts.map +1 -0
  228. package/dist/chat/meta.js +230 -0
  229. package/dist/chat/types.d.ts +94 -0
  230. package/dist/chat/types.d.ts.map +1 -0
  231. package/dist/chat/types.js +1 -0
  232. package/dist/checkbox/Checkbox.svelte +339 -148
  233. package/dist/checkbox/Checkbox.svelte.d.ts +27 -8
  234. package/dist/checkbox/Checkbox.svelte.d.ts.map +1 -1
  235. package/dist/checkbox/CheckboxGroup.svelte +52 -20
  236. package/dist/checkbox/CheckboxGroup.svelte.d.ts +7 -4
  237. package/dist/checkbox/CheckboxGroup.svelte.d.ts.map +1 -1
  238. package/dist/checkbox/context.d.ts +17 -7
  239. package/dist/checkbox/context.d.ts.map +1 -1
  240. package/dist/checkbox/index.d.ts +1 -1
  241. package/dist/checkbox/index.d.ts.map +1 -1
  242. package/dist/checkbox/meta.d.ts +49 -22
  243. package/dist/checkbox/meta.d.ts.map +1 -1
  244. package/dist/checkbox/meta.js +15 -13
  245. package/dist/code-highlight/CodeHighlight.svelte +298 -0
  246. package/dist/code-highlight/CodeHighlight.svelte.d.ts +18 -0
  247. package/dist/code-highlight/CodeHighlight.svelte.d.ts.map +1 -0
  248. package/dist/code-highlight/index.d.ts +4 -0
  249. package/dist/code-highlight/index.d.ts.map +1 -0
  250. package/dist/code-highlight/index.js +3 -0
  251. package/dist/code-highlight/meta.d.ts +61 -0
  252. package/dist/code-highlight/meta.d.ts.map +1 -0
  253. package/dist/code-highlight/meta.js +51 -0
  254. package/dist/code-highlight/prism-modules.d.ts +15 -0
  255. package/dist/collapse/Collapse.svelte +134 -324
  256. package/dist/collapse/Collapse.svelte.d.ts +24 -38
  257. package/dist/collapse/Collapse.svelte.d.ts.map +1 -1
  258. package/dist/collapse/CollapsePanel.svelte +143 -73
  259. package/dist/collapse/CollapsePanel.svelte.d.ts +16 -7
  260. package/dist/collapse/CollapsePanel.svelte.d.ts.map +1 -1
  261. package/dist/collapse/context.d.ts +18 -32
  262. package/dist/collapse/context.d.ts.map +1 -1
  263. package/dist/collapse/index.d.ts +1 -2
  264. package/dist/collapse/index.d.ts.map +1 -1
  265. package/dist/collapse/meta.d.ts +71 -54
  266. package/dist/collapse/meta.d.ts.map +1 -1
  267. package/dist/collapse/meta.js +55 -52
  268. package/dist/collapsible/Collapsible.svelte +224 -0
  269. package/dist/collapsible/Collapsible.svelte.d.ts +35 -0
  270. package/dist/collapsible/Collapsible.svelte.d.ts.map +1 -0
  271. package/dist/collapsible/index.d.ts +3 -0
  272. package/dist/collapsible/index.d.ts.map +1 -0
  273. package/dist/collapsible/index.js +2 -0
  274. package/dist/collapsible/meta.d.ts +115 -0
  275. package/dist/collapsible/meta.d.ts.map +1 -0
  276. package/dist/collapsible/meta.js +89 -0
  277. package/dist/color-picker/ColorPicker.svelte +395 -839
  278. package/dist/color-picker/ColorPicker.svelte.d.ts +29 -39
  279. package/dist/color-picker/ColorPicker.svelte.d.ts.map +1 -1
  280. package/dist/color-picker/index.d.ts +1 -0
  281. package/dist/color-picker/index.d.ts.map +1 -1
  282. package/dist/color-picker/index.js +1 -0
  283. package/dist/color-picker/meta.d.ts +43 -90
  284. package/dist/color-picker/meta.d.ts.map +1 -1
  285. package/dist/color-picker/meta.js +49 -37
  286. package/dist/components.d.ts +1773 -422
  287. package/dist/components.json +17159 -9219
  288. package/dist/config-provider/ConfigProvider.svelte +186 -151
  289. package/dist/config-provider/ConfigProvider.svelte.d.ts +12 -44
  290. package/dist/config-provider/ConfigProvider.svelte.d.ts.map +1 -1
  291. package/dist/config-provider/context.d.ts +21 -13
  292. package/dist/config-provider/context.d.ts.map +1 -1
  293. package/dist/config-provider/index.d.ts +9 -7
  294. package/dist/config-provider/index.d.ts.map +1 -1
  295. package/dist/config-provider/index.js +21 -7
  296. package/dist/config-provider/meta.d.ts +30 -75
  297. package/dist/config-provider/meta.d.ts.map +1 -1
  298. package/dist/config-provider/meta.js +30 -73
  299. package/dist/cropper/Cropper.svelte +536 -0
  300. package/dist/cropper/Cropper.svelte.d.ts +47 -0
  301. package/dist/cropper/Cropper.svelte.d.ts.map +1 -0
  302. package/dist/cropper/index.d.ts +4 -0
  303. package/dist/cropper/index.d.ts.map +1 -0
  304. package/dist/cropper/index.js +2 -0
  305. package/dist/cropper/meta.d.ts +136 -0
  306. package/dist/cropper/meta.d.ts.map +1 -0
  307. package/dist/cropper/meta.js +97 -0
  308. package/dist/date-picker/DatePicker.svelte +1646 -360
  309. package/dist/date-picker/DatePicker.svelte.d.ts +90 -37
  310. package/dist/date-picker/DatePicker.svelte.d.ts.map +1 -1
  311. package/dist/date-picker/index.d.ts +0 -2
  312. package/dist/date-picker/index.d.ts.map +1 -1
  313. package/dist/date-picker/index.js +0 -2
  314. package/dist/date-picker/meta.d.ts +309 -26
  315. package/dist/date-picker/meta.d.ts.map +1 -1
  316. package/dist/date-picker/meta.js +89 -14
  317. package/dist/descriptions/Descriptions.svelte +213 -223
  318. package/dist/descriptions/Descriptions.svelte.d.ts +16 -25
  319. package/dist/descriptions/Descriptions.svelte.d.ts.map +1 -1
  320. package/dist/descriptions/DescriptionsItem.svelte +58 -28
  321. package/dist/descriptions/DescriptionsItem.svelte.d.ts +12 -4
  322. package/dist/descriptions/DescriptionsItem.svelte.d.ts.map +1 -1
  323. package/dist/descriptions/context.d.ts +9 -5
  324. package/dist/descriptions/context.d.ts.map +1 -1
  325. package/dist/descriptions/index.d.ts +2 -2
  326. package/dist/descriptions/index.d.ts.map +1 -1
  327. package/dist/descriptions/meta.d.ts +51 -49
  328. package/dist/descriptions/meta.d.ts.map +1 -1
  329. package/dist/descriptions/meta.js +41 -20
  330. package/dist/descriptions/types.d.ts +13 -3
  331. package/dist/descriptions/types.d.ts.map +1 -1
  332. package/dist/divider/Divider.svelte +86 -94
  333. package/dist/divider/Divider.svelte.d.ts +2 -2
  334. package/dist/divider/Divider.svelte.d.ts.map +1 -1
  335. package/dist/divider/meta.d.ts +19 -25
  336. package/dist/divider/meta.d.ts.map +1 -1
  337. package/dist/divider/meta.js +29 -11
  338. package/dist/drag-move/DragMove.svelte +106 -0
  339. package/dist/drag-move/DragMove.svelte.d.ts +30 -0
  340. package/dist/drag-move/DragMove.svelte.d.ts.map +1 -0
  341. package/dist/drag-move/index.d.ts +4 -0
  342. package/dist/drag-move/index.d.ts.map +1 -0
  343. package/dist/drag-move/index.js +3 -0
  344. package/dist/drag-move/meta.d.ts +102 -0
  345. package/dist/drag-move/meta.d.ts.map +1 -0
  346. package/dist/drag-move/meta.js +77 -0
  347. package/dist/dropdown/Dropdown.svelte +426 -344
  348. package/dist/dropdown/Dropdown.svelte.d.ts +55 -58
  349. package/dist/dropdown/Dropdown.svelte.d.ts.map +1 -1
  350. package/dist/dropdown/DropdownDivider.svelte +20 -8
  351. package/dist/dropdown/DropdownDivider.svelte.d.ts +7 -16
  352. package/dist/dropdown/DropdownDivider.svelte.d.ts.map +1 -1
  353. package/dist/dropdown/DropdownItem.svelte +163 -91
  354. package/dist/dropdown/DropdownItem.svelte.d.ts +25 -11
  355. package/dist/dropdown/DropdownItem.svelte.d.ts.map +1 -1
  356. package/dist/dropdown/DropdownMenu.svelte +21 -9
  357. package/dist/dropdown/DropdownMenu.svelte.d.ts +6 -1
  358. package/dist/dropdown/DropdownMenu.svelte.d.ts.map +1 -1
  359. package/dist/dropdown/DropdownTitle.svelte +38 -20
  360. package/dist/dropdown/DropdownTitle.svelte.d.ts +6 -1
  361. package/dist/dropdown/DropdownTitle.svelte.d.ts.map +1 -1
  362. package/dist/dropdown/context.d.ts +18 -6
  363. package/dist/dropdown/context.d.ts.map +1 -1
  364. package/dist/dropdown/index.d.ts +3 -6
  365. package/dist/dropdown/index.d.ts.map +1 -1
  366. package/dist/dropdown/index.js +3 -6
  367. package/dist/dropdown/meta.d.ts +183 -63
  368. package/dist/dropdown/meta.d.ts.map +1 -1
  369. package/dist/dropdown/meta.js +122 -73
  370. package/dist/dropdown/types.d.ts +39 -42
  371. package/dist/dropdown/types.d.ts.map +1 -1
  372. package/dist/dropdown/types.js +1 -12
  373. package/dist/empty/Empty.svelte +136 -249
  374. package/dist/empty/Empty.svelte.d.ts +23 -9
  375. package/dist/empty/Empty.svelte.d.ts.map +1 -1
  376. package/dist/empty/meta.d.ts +29 -18
  377. package/dist/empty/meta.d.ts.map +1 -1
  378. package/dist/empty/meta.js +21 -26
  379. package/dist/feedback/Feedback.svelte +330 -0
  380. package/dist/feedback/Feedback.svelte.d.ts +46 -0
  381. package/dist/feedback/Feedback.svelte.d.ts.map +1 -0
  382. package/dist/feedback/index.d.ts +4 -0
  383. package/dist/feedback/index.d.ts.map +1 -0
  384. package/dist/feedback/index.js +2 -0
  385. package/dist/feedback/meta.d.ts +105 -0
  386. package/dist/feedback/meta.d.ts.map +1 -0
  387. package/dist/feedback/meta.js +65 -0
  388. package/dist/float-button/FloatButton.svelte +161 -0
  389. package/dist/float-button/FloatButton.svelte.d.ts +5 -0
  390. package/dist/float-button/FloatButton.svelte.d.ts.map +1 -0
  391. package/dist/float-button/FloatButtonGroup.svelte +90 -0
  392. package/dist/float-button/FloatButtonGroup.svelte.d.ts +5 -0
  393. package/dist/float-button/FloatButtonGroup.svelte.d.ts.map +1 -0
  394. package/dist/float-button/index.d.ts +5 -0
  395. package/dist/float-button/index.d.ts.map +1 -0
  396. package/dist/float-button/index.js +3 -0
  397. package/dist/float-button/meta.d.ts +136 -0
  398. package/dist/float-button/meta.d.ts.map +1 -0
  399. package/dist/float-button/meta.js +104 -0
  400. package/dist/float-button/types.d.ts +59 -0
  401. package/dist/float-button/types.d.ts.map +1 -0
  402. package/dist/float-button/types.js +1 -0
  403. package/dist/form/Field.svelte +315 -192
  404. package/dist/form/Field.svelte.d.ts +70 -2
  405. package/dist/form/Field.svelte.d.ts.map +1 -1
  406. package/dist/form/FieldArray.svelte +115 -21
  407. package/dist/form/FieldArray.svelte.d.ts +21 -3
  408. package/dist/form/FieldArray.svelte.d.ts.map +1 -1
  409. package/dist/form/Form.svelte +260 -52
  410. package/dist/form/Form.svelte.d.ts +84 -12
  411. package/dist/form/Form.svelte.d.ts.map +1 -1
  412. package/dist/form/FormAutoComplete.svelte +52 -0
  413. package/dist/form/FormAutoComplete.svelte.d.ts +17 -0
  414. package/dist/form/FormAutoComplete.svelte.d.ts.map +1 -0
  415. package/dist/form/FormCascader.svelte +25 -55
  416. package/dist/form/FormCascader.svelte.d.ts +2 -13
  417. package/dist/form/FormCascader.svelte.d.ts.map +1 -1
  418. package/dist/form/FormCheckbox.svelte +24 -56
  419. package/dist/form/FormCheckbox.svelte.d.ts +2 -14
  420. package/dist/form/FormCheckbox.svelte.d.ts.map +1 -1
  421. package/dist/form/FormCheckboxGroup.svelte +48 -0
  422. package/dist/form/FormCheckboxGroup.svelte.d.ts +15 -0
  423. package/dist/form/FormCheckboxGroup.svelte.d.ts.map +1 -0
  424. package/dist/form/FormDatePicker.svelte +24 -53
  425. package/dist/form/FormDatePicker.svelte.d.ts +2 -13
  426. package/dist/form/FormDatePicker.svelte.d.ts.map +1 -1
  427. package/dist/form/FormErrorMessage.svelte +75 -29
  428. package/dist/form/FormErrorMessage.svelte.d.ts +17 -4
  429. package/dist/form/FormErrorMessage.svelte.d.ts.map +1 -1
  430. package/dist/form/FormInput.svelte +31 -70
  431. package/dist/form/FormInput.svelte.d.ts +7 -19
  432. package/dist/form/FormInput.svelte.d.ts.map +1 -1
  433. package/dist/form/FormInputGroup.svelte +146 -0
  434. package/dist/form/FormInputGroup.svelte.d.ts +32 -0
  435. package/dist/form/FormInputGroup.svelte.d.ts.map +1 -0
  436. package/dist/form/FormInputNumber.svelte +74 -0
  437. package/dist/form/FormInputNumber.svelte.d.ts +20 -0
  438. package/dist/form/FormInputNumber.svelte.d.ts.map +1 -0
  439. package/dist/form/FormLabel.svelte +133 -24
  440. package/dist/form/FormLabel.svelte.d.ts +17 -4
  441. package/dist/form/FormLabel.svelte.d.ts.map +1 -1
  442. package/dist/form/FormPinCode.svelte +52 -0
  443. package/dist/form/FormPinCode.svelte.d.ts +16 -0
  444. package/dist/form/FormPinCode.svelte.d.ts.map +1 -0
  445. package/dist/form/FormRadio.svelte +23 -55
  446. package/dist/form/FormRadio.svelte.d.ts +2 -14
  447. package/dist/form/FormRadio.svelte.d.ts.map +1 -1
  448. package/dist/form/FormRadioGroup.svelte +54 -0
  449. package/dist/form/FormRadioGroup.svelte.d.ts +16 -0
  450. package/dist/form/FormRadioGroup.svelte.d.ts.map +1 -0
  451. package/dist/form/FormRating.svelte +24 -58
  452. package/dist/form/FormRating.svelte.d.ts +2 -14
  453. package/dist/form/FormRating.svelte.d.ts.map +1 -1
  454. package/dist/form/FormSection.svelte +35 -25
  455. package/dist/form/FormSection.svelte.d.ts +3 -1
  456. package/dist/form/FormSection.svelte.d.ts.map +1 -1
  457. package/dist/form/FormSelect.svelte +44 -68
  458. package/dist/form/FormSelect.svelte.d.ts +5 -16
  459. package/dist/form/FormSelect.svelte.d.ts.map +1 -1
  460. package/dist/form/FormSlider.svelte +33 -65
  461. package/dist/form/FormSlider.svelte.d.ts +2 -14
  462. package/dist/form/FormSlider.svelte.d.ts.map +1 -1
  463. package/dist/form/FormSlot.svelte +61 -20
  464. package/dist/form/FormSlot.svelte.d.ts +16 -2
  465. package/dist/form/FormSlot.svelte.d.ts.map +1 -1
  466. package/dist/form/FormSwitch.svelte +27 -59
  467. package/dist/form/FormSwitch.svelte.d.ts +4 -15
  468. package/dist/form/FormSwitch.svelte.d.ts.map +1 -1
  469. package/dist/form/FormTagInput.svelte +24 -53
  470. package/dist/form/FormTagInput.svelte.d.ts +2 -13
  471. package/dist/form/FormTagInput.svelte.d.ts.map +1 -1
  472. package/dist/form/FormTextArea.svelte +66 -0
  473. package/dist/form/FormTextArea.svelte.d.ts +18 -0
  474. package/dist/form/FormTextArea.svelte.d.ts.map +1 -0
  475. package/dist/form/FormTimePicker.svelte +51 -0
  476. package/dist/form/FormTimePicker.svelte.d.ts +15 -0
  477. package/dist/form/FormTimePicker.svelte.d.ts.map +1 -0
  478. package/dist/form/FormTreeSelect.svelte +26 -57
  479. package/dist/form/FormTreeSelect.svelte.d.ts +3 -14
  480. package/dist/form/FormTreeSelect.svelte.d.ts.map +1 -1
  481. package/dist/form/FormUpload.svelte +22 -63
  482. package/dist/form/FormUpload.svelte.d.ts +3 -15
  483. package/dist/form/FormUpload.svelte.d.ts.map +1 -1
  484. package/dist/form/GroupHookPanel.svelte +21 -0
  485. package/dist/form/GroupHookPanel.svelte.d.ts +19 -0
  486. package/dist/form/GroupHookPanel.svelte.d.ts.map +1 -0
  487. package/dist/form/context.d.ts +0 -3
  488. package/dist/form/context.d.ts.map +1 -1
  489. package/dist/form/field-props.d.ts +84 -0
  490. package/dist/form/field-props.d.ts.map +1 -0
  491. package/dist/form/field-props.js +58 -0
  492. package/dist/form/hooks.d.ts +53 -0
  493. package/dist/form/hooks.d.ts.map +1 -0
  494. package/dist/form/hooks.js +36 -0
  495. package/dist/form/index.d.ts +57 -4
  496. package/dist/form/index.d.ts.map +1 -1
  497. package/dist/form/index.js +60 -3
  498. package/dist/form/input-group-context.d.ts +7 -0
  499. package/dist/form/input-group-context.d.ts.map +1 -0
  500. package/dist/form/input-group-context.js +17 -0
  501. package/dist/form/meta.d.ts +213 -16
  502. package/dist/form/meta.d.ts.map +1 -1
  503. package/dist/form/meta.js +103 -15
  504. package/dist/grid/Col.svelte +1482 -78
  505. package/dist/grid/Col.svelte.d.ts +3 -5
  506. package/dist/grid/Col.svelte.d.ts.map +1 -1
  507. package/dist/grid/Row.svelte +151 -69
  508. package/dist/grid/Row.svelte.d.ts +9 -7
  509. package/dist/grid/Row.svelte.d.ts.map +1 -1
  510. package/dist/grid/meta.d.ts +37 -28
  511. package/dist/grid/meta.d.ts.map +1 -1
  512. package/dist/grid/meta.js +31 -25
  513. package/dist/highlight/Highlight.svelte +46 -66
  514. package/dist/highlight/Highlight.svelte.d.ts +9 -22
  515. package/dist/highlight/Highlight.svelte.d.ts.map +1 -1
  516. package/dist/highlight/meta.d.ts +12 -51
  517. package/dist/highlight/meta.d.ts.map +1 -1
  518. package/dist/highlight/meta.js +16 -46
  519. package/dist/hotkeys/HotKeys.svelte +152 -0
  520. package/dist/hotkeys/HotKeys.svelte.d.ts +28 -0
  521. package/dist/hotkeys/HotKeys.svelte.d.ts.map +1 -0
  522. package/dist/hotkeys/index.d.ts +12 -0
  523. package/dist/hotkeys/index.d.ts.map +1 -0
  524. package/dist/hotkeys/index.js +8 -0
  525. package/dist/hotkeys/meta.d.ts +103 -0
  526. package/dist/hotkeys/meta.d.ts.map +1 -0
  527. package/dist/hotkeys/meta.js +65 -0
  528. package/dist/icon/index.d.ts +1 -1
  529. package/dist/icon/index.d.ts.map +1 -1
  530. package/dist/icon/index.js +1 -1
  531. package/dist/icon/meta.d.ts +20 -28
  532. package/dist/icon/meta.d.ts.map +1 -1
  533. package/dist/icon/meta.js +20 -20
  534. package/dist/iconbutton/IconButton.svelte +89 -0
  535. package/dist/iconbutton/IconButton.svelte.d.ts +53 -0
  536. package/dist/iconbutton/IconButton.svelte.d.ts.map +1 -0
  537. package/dist/iconbutton/index.d.ts +3 -0
  538. package/dist/iconbutton/index.d.ts.map +1 -0
  539. package/dist/iconbutton/index.js +2 -0
  540. package/dist/iconbutton/meta.d.ts +150 -0
  541. package/dist/iconbutton/meta.d.ts.map +1 -0
  542. package/dist/iconbutton/meta.js +53 -0
  543. package/dist/illustrations/IllustrationConstruction.svelte +25 -0
  544. package/dist/illustrations/IllustrationConstruction.svelte.d.ts +8 -0
  545. package/dist/illustrations/IllustrationConstruction.svelte.d.ts.map +1 -0
  546. package/dist/illustrations/IllustrationConstructionDark.svelte +25 -0
  547. package/dist/illustrations/IllustrationConstructionDark.svelte.d.ts +8 -0
  548. package/dist/illustrations/IllustrationConstructionDark.svelte.d.ts.map +1 -0
  549. package/dist/illustrations/IllustrationFailure.svelte +25 -0
  550. package/dist/illustrations/IllustrationFailure.svelte.d.ts +8 -0
  551. package/dist/illustrations/IllustrationFailure.svelte.d.ts.map +1 -0
  552. package/dist/illustrations/IllustrationFailureDark.svelte +25 -0
  553. package/dist/illustrations/IllustrationFailureDark.svelte.d.ts +8 -0
  554. package/dist/illustrations/IllustrationFailureDark.svelte.d.ts.map +1 -0
  555. package/dist/illustrations/IllustrationIdle.svelte +25 -0
  556. package/dist/illustrations/IllustrationIdle.svelte.d.ts +8 -0
  557. package/dist/illustrations/IllustrationIdle.svelte.d.ts.map +1 -0
  558. package/dist/illustrations/IllustrationIdleDark.svelte +25 -0
  559. package/dist/illustrations/IllustrationIdleDark.svelte.d.ts +8 -0
  560. package/dist/illustrations/IllustrationIdleDark.svelte.d.ts.map +1 -0
  561. package/dist/illustrations/IllustrationNoAccess.svelte +25 -0
  562. package/dist/illustrations/IllustrationNoAccess.svelte.d.ts +8 -0
  563. package/dist/illustrations/IllustrationNoAccess.svelte.d.ts.map +1 -0
  564. package/dist/illustrations/IllustrationNoAccessDark.svelte +25 -0
  565. package/dist/illustrations/IllustrationNoAccessDark.svelte.d.ts +8 -0
  566. package/dist/illustrations/IllustrationNoAccessDark.svelte.d.ts.map +1 -0
  567. package/dist/illustrations/IllustrationNoContent.svelte +25 -0
  568. package/dist/illustrations/IllustrationNoContent.svelte.d.ts +8 -0
  569. package/dist/illustrations/IllustrationNoContent.svelte.d.ts.map +1 -0
  570. package/dist/illustrations/IllustrationNoContentDark.svelte +25 -0
  571. package/dist/illustrations/IllustrationNoContentDark.svelte.d.ts +8 -0
  572. package/dist/illustrations/IllustrationNoContentDark.svelte.d.ts.map +1 -0
  573. package/dist/illustrations/IllustrationNoResult.svelte +25 -0
  574. package/dist/illustrations/IllustrationNoResult.svelte.d.ts +8 -0
  575. package/dist/illustrations/IllustrationNoResult.svelte.d.ts.map +1 -0
  576. package/dist/illustrations/IllustrationNoResultDark.svelte +25 -0
  577. package/dist/illustrations/IllustrationNoResultDark.svelte.d.ts +8 -0
  578. package/dist/illustrations/IllustrationNoResultDark.svelte.d.ts.map +1 -0
  579. package/dist/illustrations/IllustrationNotFound.svelte +25 -0
  580. package/dist/illustrations/IllustrationNotFound.svelte.d.ts +8 -0
  581. package/dist/illustrations/IllustrationNotFound.svelte.d.ts.map +1 -0
  582. package/dist/illustrations/IllustrationNotFoundDark.svelte +25 -0
  583. package/dist/illustrations/IllustrationNotFoundDark.svelte.d.ts +8 -0
  584. package/dist/illustrations/IllustrationNotFoundDark.svelte.d.ts.map +1 -0
  585. package/dist/illustrations/IllustrationSuccess.svelte +25 -0
  586. package/dist/illustrations/IllustrationSuccess.svelte.d.ts +8 -0
  587. package/dist/illustrations/IllustrationSuccess.svelte.d.ts.map +1 -0
  588. package/dist/illustrations/IllustrationSuccessDark.svelte +25 -0
  589. package/dist/illustrations/IllustrationSuccessDark.svelte.d.ts +8 -0
  590. package/dist/illustrations/IllustrationSuccessDark.svelte.d.ts.map +1 -0
  591. package/dist/illustrations/index.d.ts +22 -0
  592. package/dist/illustrations/index.d.ts.map +1 -0
  593. package/dist/illustrations/index.js +21 -0
  594. package/dist/image/Image.svelte +260 -283
  595. package/dist/image/Image.svelte.d.ts +20 -21
  596. package/dist/image/Image.svelte.d.ts.map +1 -1
  597. package/dist/image/ImagePreview.svelte +201 -297
  598. package/dist/image/ImagePreview.svelte.d.ts +7 -10
  599. package/dist/image/ImagePreview.svelte.d.ts.map +1 -1
  600. package/dist/image/PreviewFooter.svelte +400 -0
  601. package/dist/image/PreviewFooter.svelte.d.ts +62 -0
  602. package/dist/image/PreviewFooter.svelte.d.ts.map +1 -0
  603. package/dist/image/PreviewHeader.svelte +93 -0
  604. package/dist/image/PreviewHeader.svelte.d.ts +16 -0
  605. package/dist/image/PreviewHeader.svelte.d.ts.map +1 -0
  606. package/dist/image/PreviewImage.svelte +296 -0
  607. package/dist/image/PreviewImage.svelte.d.ts +26 -0
  608. package/dist/image/PreviewImage.svelte.d.ts.map +1 -0
  609. package/dist/image/PreviewInner.svelte +554 -0
  610. package/dist/image/PreviewInner.svelte.d.ts +58 -0
  611. package/dist/image/PreviewInner.svelte.d.ts.map +1 -0
  612. package/dist/image/download.d.ts +8 -0
  613. package/dist/image/download.d.ts.map +1 -0
  614. package/dist/image/download.js +29 -0
  615. package/dist/image/index.d.ts +6 -7
  616. package/dist/image/index.d.ts.map +1 -1
  617. package/dist/image/index.js +5 -5
  618. package/dist/image/meta.d.ts +231 -88
  619. package/dist/image/meta.d.ts.map +1 -1
  620. package/dist/image/meta.js +93 -83
  621. package/dist/image/previewContext.d.ts +29 -0
  622. package/dist/image/previewContext.d.ts.map +1 -0
  623. package/dist/image/previewContext.js +8 -0
  624. package/dist/image/previewGeometry.d.ts +70 -0
  625. package/dist/image/previewGeometry.d.ts.map +1 -0
  626. package/dist/image/previewGeometry.js +184 -0
  627. package/dist/image/types.d.ts +66 -0
  628. package/dist/image/types.d.ts.map +1 -0
  629. package/dist/image/types.js +1 -0
  630. package/dist/index.d.ts +48 -26
  631. package/dist/index.d.ts.map +1 -1
  632. package/dist/index.js +40 -22
  633. package/dist/input/Input.svelte +537 -320
  634. package/dist/input/Input.svelte.d.ts +69 -21
  635. package/dist/input/Input.svelte.d.ts.map +1 -1
  636. package/dist/input/InputGroup.svelte +188 -0
  637. package/dist/input/InputGroup.svelte.d.ts +35 -0
  638. package/dist/input/InputGroup.svelte.d.ts.map +1 -0
  639. package/dist/input/TextArea.svelte +788 -0
  640. package/dist/input/TextArea.svelte.d.ts +104 -0
  641. package/dist/input/TextArea.svelte.d.ts.map +1 -0
  642. package/dist/input/context.d.ts +13 -0
  643. package/dist/input/context.d.ts.map +1 -0
  644. package/dist/input/context.js +5 -0
  645. package/dist/input/index.d.ts +4 -1
  646. package/dist/input/index.d.ts.map +1 -1
  647. package/dist/input/index.js +5 -1
  648. package/dist/input/meta.d.ts +802 -22
  649. package/dist/input/meta.d.ts.map +1 -1
  650. package/dist/input/meta.js +196 -17
  651. package/dist/input-number/InputNumber.svelte +446 -427
  652. package/dist/input-number/InputNumber.svelte.d.ts +73 -45
  653. package/dist/input-number/InputNumber.svelte.d.ts.map +1 -1
  654. package/dist/input-number/meta.d.ts +140 -48
  655. package/dist/input-number/meta.d.ts.map +1 -1
  656. package/dist/input-number/meta.js +39 -22
  657. package/dist/json-viewer/JsonViewer.svelte +528 -0
  658. package/dist/json-viewer/JsonViewer.svelte.d.ts +43 -0
  659. package/dist/json-viewer/JsonViewer.svelte.d.ts.map +1 -0
  660. package/dist/json-viewer/index.d.ts +4 -0
  661. package/dist/json-viewer/index.d.ts.map +1 -0
  662. package/dist/json-viewer/index.js +2 -0
  663. package/dist/json-viewer/meta.d.ts +129 -0
  664. package/dist/{lottie-icon → json-viewer}/meta.d.ts.map +1 -1
  665. package/dist/json-viewer/meta.js +130 -0
  666. package/dist/json-viewer/semi-json-viewer-core.d.ts +94 -0
  667. package/dist/layout/Content.svelte +8 -25
  668. package/dist/layout/Content.svelte.d.ts +1 -3
  669. package/dist/layout/Content.svelte.d.ts.map +1 -1
  670. package/dist/layout/Footer.svelte +7 -40
  671. package/dist/layout/Footer.svelte.d.ts +1 -4
  672. package/dist/layout/Footer.svelte.d.ts.map +1 -1
  673. package/dist/layout/Header.svelte +7 -37
  674. package/dist/layout/Header.svelte.d.ts +1 -4
  675. package/dist/layout/Header.svelte.d.ts.map +1 -1
  676. package/dist/layout/Layout.svelte +30 -17
  677. package/dist/layout/Layout.svelte.d.ts +3 -1
  678. package/dist/layout/Layout.svelte.d.ts.map +1 -1
  679. package/dist/layout/Sider.svelte +71 -186
  680. package/dist/layout/Sider.svelte.d.ts +15 -19
  681. package/dist/layout/Sider.svelte.d.ts.map +1 -1
  682. package/dist/layout/meta.d.ts +28 -91
  683. package/dist/layout/meta.d.ts.map +1 -1
  684. package/dist/layout/meta.js +38 -56
  685. package/dist/list/List.svelte +158 -825
  686. package/dist/list/List.svelte.d.ts +32 -70
  687. package/dist/list/List.svelte.d.ts.map +1 -1
  688. package/dist/list/ListItem.svelte +129 -131
  689. package/dist/list/ListItem.svelte.d.ts +21 -12
  690. package/dist/list/ListItem.svelte.d.ts.map +1 -1
  691. package/dist/list/context.d.ts +32 -23
  692. package/dist/list/context.d.ts.map +1 -1
  693. package/dist/list/index.d.ts +3 -8
  694. package/dist/list/index.d.ts.map +1 -1
  695. package/dist/list/index.js +4 -8
  696. package/dist/list/meta.d.ts +110 -98
  697. package/dist/list/meta.d.ts.map +1 -1
  698. package/dist/list/meta.js +76 -58
  699. package/dist/lottie/Lottie.svelte +138 -0
  700. package/dist/lottie/Lottie.svelte.d.ts +32 -0
  701. package/dist/lottie/Lottie.svelte.d.ts.map +1 -0
  702. package/dist/lottie/index.d.ts +3 -0
  703. package/dist/lottie/index.d.ts.map +1 -0
  704. package/dist/lottie/index.js +2 -0
  705. package/dist/lottie/meta.d.ts +76 -0
  706. package/dist/lottie/meta.d.ts.map +1 -0
  707. package/dist/lottie/meta.js +81 -0
  708. package/dist/markdown-render/HastNode.svelte +66 -0
  709. package/dist/markdown-render/HastNode.svelte.d.ts +11 -0
  710. package/dist/markdown-render/HastNode.svelte.d.ts.map +1 -0
  711. package/dist/markdown-render/MarkdownRender.svelte +152 -0
  712. package/dist/markdown-render/MarkdownRender.svelte.d.ts +26 -0
  713. package/dist/markdown-render/MarkdownRender.svelte.d.ts.map +1 -0
  714. package/dist/markdown-render/components/MdCode.svelte +20 -0
  715. package/dist/markdown-render/components/MdCode.svelte.d.ts +9 -0
  716. package/dist/markdown-render/components/MdCode.svelte.d.ts.map +1 -0
  717. package/dist/markdown-render/components/MdHeading.svelte +29 -0
  718. package/dist/markdown-render/components/MdHeading.svelte.d.ts +11 -0
  719. package/dist/markdown-render/components/MdHeading.svelte.d.ts.map +1 -0
  720. package/dist/markdown-render/components/MdImage.svelte +28 -0
  721. package/dist/markdown-render/components/MdImage.svelte.d.ts +9 -0
  722. package/dist/markdown-render/components/MdImage.svelte.d.ts.map +1 -0
  723. package/dist/markdown-render/components/MdLink.svelte +33 -0
  724. package/dist/markdown-render/components/MdLink.svelte.d.ts +10 -0
  725. package/dist/markdown-render/components/MdLink.svelte.d.ts.map +1 -0
  726. package/dist/markdown-render/components/MdParagraph.svelte +19 -0
  727. package/dist/markdown-render/components/MdParagraph.svelte.d.ts +9 -0
  728. package/dist/markdown-render/components/MdParagraph.svelte.d.ts.map +1 -0
  729. package/dist/markdown-render/components/MdPre.svelte +48 -0
  730. package/dist/markdown-render/components/MdPre.svelte.d.ts +9 -0
  731. package/dist/markdown-render/components/MdPre.svelte.d.ts.map +1 -0
  732. package/dist/markdown-render/components/MdTable.svelte +53 -0
  733. package/dist/markdown-render/components/MdTable.svelte.d.ts +9 -0
  734. package/dist/markdown-render/components/MdTable.svelte.d.ts.map +1 -0
  735. package/dist/markdown-render/components/index.d.ts +26 -0
  736. package/dist/markdown-render/components/index.d.ts.map +1 -0
  737. package/dist/markdown-render/components/index.js +27 -0
  738. package/dist/markdown-render/index.d.ts +4 -0
  739. package/dist/markdown-render/index.d.ts.map +1 -0
  740. package/dist/markdown-render/index.js +2 -0
  741. package/dist/markdown-render/meta.d.ts +81 -0
  742. package/dist/markdown-render/meta.d.ts.map +1 -0
  743. package/dist/markdown-render/meta.js +105 -0
  744. package/dist/markdown-render/props.d.ts +15 -0
  745. package/dist/markdown-render/props.d.ts.map +1 -0
  746. package/dist/markdown-render/props.js +51 -0
  747. package/dist/modal/ConfirmModal.svelte +105 -86
  748. package/dist/modal/ConfirmModal.svelte.d.ts +7 -4
  749. package/dist/modal/ConfirmModal.svelte.d.ts.map +1 -1
  750. package/dist/modal/Modal.svelte +459 -343
  751. package/dist/modal/Modal.svelte.d.ts +71 -41
  752. package/dist/modal/Modal.svelte.d.ts.map +1 -1
  753. package/dist/modal/ModalContextHolder.svelte +22 -0
  754. package/dist/modal/ModalContextHolder.svelte.d.ts +8 -0
  755. package/dist/modal/ModalContextHolder.svelte.d.ts.map +1 -0
  756. package/dist/modal/command.svelte.d.ts +7 -1
  757. package/dist/modal/command.svelte.d.ts.map +1 -1
  758. package/dist/modal/command.svelte.js +1 -1
  759. package/dist/modal/index.d.ts +7 -1
  760. package/dist/modal/index.d.ts.map +1 -1
  761. package/dist/modal/index.js +8 -2
  762. package/dist/modal/meta.d.ts +149 -103
  763. package/dist/modal/meta.d.ts.map +1 -1
  764. package/dist/modal/meta.js +95 -109
  765. package/dist/modal/use-modal.svelte.d.ts +33 -0
  766. package/dist/modal/use-modal.svelte.d.ts.map +1 -0
  767. package/dist/modal/use-modal.svelte.js +44 -0
  768. package/dist/nav/Nav.svelte +329 -146
  769. package/dist/nav/Nav.svelte.d.ts +43 -30
  770. package/dist/nav/Nav.svelte.d.ts.map +1 -1
  771. package/dist/nav/NavCollapseButton.svelte +74 -0
  772. package/dist/nav/NavCollapseButton.svelte.d.ts +12 -0
  773. package/dist/nav/NavCollapseButton.svelte.d.ts.map +1 -0
  774. package/dist/nav/NavFooter.svelte +42 -47
  775. package/dist/nav/NavFooter.svelte.d.ts +6 -2
  776. package/dist/nav/NavFooter.svelte.d.ts.map +1 -1
  777. package/dist/nav/NavHeader.svelte +61 -12
  778. package/dist/nav/NavHeader.svelte.d.ts +8 -2
  779. package/dist/nav/NavHeader.svelte.d.ts.map +1 -1
  780. package/dist/nav/NavItem.svelte +21 -17
  781. package/dist/nav/NavItem.svelte.d.ts +12 -10
  782. package/dist/nav/NavItem.svelte.d.ts.map +1 -1
  783. package/dist/nav/NavItemRender.svelte +420 -0
  784. package/dist/nav/NavItemRender.svelte.d.ts +12 -0
  785. package/dist/nav/NavItemRender.svelte.d.ts.map +1 -0
  786. package/dist/nav/NavPopupNode.svelte +119 -0
  787. package/dist/nav/NavPopupNode.svelte.d.ts +8 -0
  788. package/dist/nav/NavPopupNode.svelte.d.ts.map +1 -0
  789. package/dist/nav/NavSub.svelte +44 -6
  790. package/dist/nav/NavSub.svelte.d.ts +20 -4
  791. package/dist/nav/NavSub.svelte.d.ts.map +1 -1
  792. package/dist/nav/NavSubPopup.svelte +90 -0
  793. package/dist/nav/NavSubPopup.svelte.d.ts +14 -0
  794. package/dist/nav/NavSubPopup.svelte.d.ts.map +1 -0
  795. package/dist/nav/context.d.ts +57 -8
  796. package/dist/nav/context.d.ts.map +1 -1
  797. package/dist/nav/context.js +6 -2
  798. package/dist/nav/index.d.ts +1 -1
  799. package/dist/nav/index.d.ts.map +1 -1
  800. package/dist/nav/meta.d.ts +131 -52
  801. package/dist/nav/meta.d.ts.map +1 -1
  802. package/dist/nav/meta.js +70 -29
  803. package/dist/nav/types.d.ts +89 -22
  804. package/dist/nav/types.d.ts.map +1 -1
  805. package/dist/nav/types.js +47 -26
  806. package/dist/notification/NotificationContainer.svelte +131 -119
  807. package/dist/notification/NotificationContainer.svelte.d.ts.map +1 -1
  808. package/dist/notification/NotificationHolder.svelte +18 -0
  809. package/dist/notification/NotificationHolder.svelte.d.ts +8 -0
  810. package/dist/notification/NotificationHolder.svelte.d.ts.map +1 -0
  811. package/dist/notification/NotificationItem.svelte +235 -289
  812. package/dist/notification/NotificationItem.svelte.d.ts +1 -5
  813. package/dist/notification/NotificationItem.svelte.d.ts.map +1 -1
  814. package/dist/notification/index.d.ts +3 -2
  815. package/dist/notification/index.d.ts.map +1 -1
  816. package/dist/notification/index.js +2 -1
  817. package/dist/notification/meta.d.ts +73 -50
  818. package/dist/notification/meta.d.ts.map +1 -1
  819. package/dist/notification/meta.js +85 -74
  820. package/dist/notification/store.d.ts +59 -44
  821. package/dist/notification/store.d.ts.map +1 -1
  822. package/dist/notification/store.js +68 -74
  823. package/dist/overflow-list/OverflowList.svelte +366 -470
  824. package/dist/overflow-list/OverflowList.svelte.d.ts +37 -40
  825. package/dist/overflow-list/OverflowList.svelte.d.ts.map +1 -1
  826. package/dist/overflow-list/meta.d.ts +71 -71
  827. package/dist/overflow-list/meta.d.ts.map +1 -1
  828. package/dist/overflow-list/meta.js +63 -78
  829. package/dist/pagination/Pagination.svelte +454 -251
  830. package/dist/pagination/Pagination.svelte.d.ts +38 -39
  831. package/dist/pagination/Pagination.svelte.d.ts.map +1 -1
  832. package/dist/pagination/meta.d.ts +75 -83
  833. package/dist/pagination/meta.d.ts.map +1 -1
  834. package/dist/pagination/meta.js +78 -57
  835. package/dist/pincode/PinCode.svelte +348 -0
  836. package/dist/pincode/PinCode.svelte.d.ts +47 -0
  837. package/dist/pincode/PinCode.svelte.d.ts.map +1 -0
  838. package/dist/pincode/index.d.ts +3 -0
  839. package/dist/pincode/index.d.ts.map +1 -0
  840. package/dist/pincode/index.js +2 -0
  841. package/dist/pincode/meta.d.ts +147 -0
  842. package/dist/pincode/meta.d.ts.map +1 -0
  843. package/dist/pincode/meta.js +91 -0
  844. package/dist/popconfirm/Popconfirm.svelte +313 -599
  845. package/dist/popconfirm/Popconfirm.svelte.d.ts +65 -68
  846. package/dist/popconfirm/Popconfirm.svelte.d.ts.map +1 -1
  847. package/dist/popconfirm/meta.d.ts +85 -161
  848. package/dist/popconfirm/meta.d.ts.map +1 -1
  849. package/dist/popconfirm/meta.js +68 -185
  850. package/dist/popover/Popover.svelte +342 -564
  851. package/dist/popover/Popover.svelte.d.ts +82 -52
  852. package/dist/popover/Popover.svelte.d.ts.map +1 -1
  853. package/dist/popover/meta.d.ts +102 -74
  854. package/dist/popover/meta.d.ts.map +1 -1
  855. package/dist/popover/meta.js +103 -62
  856. package/dist/progress/Progress.svelte +248 -309
  857. package/dist/progress/Progress.svelte.d.ts +19 -27
  858. package/dist/progress/Progress.svelte.d.ts.map +1 -1
  859. package/dist/progress/index.d.ts +1 -1
  860. package/dist/progress/index.d.ts.map +1 -1
  861. package/dist/progress/meta.d.ts +70 -62
  862. package/dist/progress/meta.d.ts.map +1 -1
  863. package/dist/progress/meta.js +68 -77
  864. package/dist/radio/Radio.svelte +451 -239
  865. package/dist/radio/Radio.svelte.d.ts +13 -7
  866. package/dist/radio/Radio.svelte.d.ts.map +1 -1
  867. package/dist/radio/RadioGroup.svelte +152 -121
  868. package/dist/radio/RadioGroup.svelte.d.ts +27 -6
  869. package/dist/radio/RadioGroup.svelte.d.ts.map +1 -1
  870. package/dist/radio/context.d.ts +23 -18
  871. package/dist/radio/context.d.ts.map +1 -1
  872. package/dist/radio/index.d.ts +1 -1
  873. package/dist/radio/index.d.ts.map +1 -1
  874. package/dist/radio/meta.d.ts +62 -23
  875. package/dist/radio/meta.d.ts.map +1 -1
  876. package/dist/radio/meta.js +60 -17
  877. package/dist/rating/Rating.svelte +358 -275
  878. package/dist/rating/Rating.svelte.d.ts +25 -18
  879. package/dist/rating/Rating.svelte.d.ts.map +1 -1
  880. package/dist/rating/meta.d.ts +73 -40
  881. package/dist/rating/meta.d.ts.map +1 -1
  882. package/dist/rating/meta.js +55 -28
  883. package/dist/resizable/Resizable.svelte +354 -0
  884. package/dist/resizable/Resizable.svelte.d.ts +61 -0
  885. package/dist/resizable/Resizable.svelte.d.ts.map +1 -0
  886. package/dist/resizable/ResizeGroup.svelte +308 -0
  887. package/dist/resizable/ResizeGroup.svelte.d.ts +13 -0
  888. package/dist/resizable/ResizeGroup.svelte.d.ts.map +1 -0
  889. package/dist/resizable/ResizeHandler.svelte +87 -0
  890. package/dist/resizable/ResizeHandler.svelte.d.ts +13 -0
  891. package/dist/resizable/ResizeHandler.svelte.d.ts.map +1 -0
  892. package/dist/resizable/ResizeItem.svelte +103 -0
  893. package/dist/resizable/ResizeItem.svelte.d.ts +20 -0
  894. package/dist/resizable/ResizeItem.svelte.d.ts.map +1 -0
  895. package/dist/resizable/context.d.ts +39 -0
  896. package/dist/resizable/context.d.ts.map +1 -0
  897. package/dist/resizable/context.js +1 -0
  898. package/dist/resizable/index.d.ts +8 -0
  899. package/dist/resizable/index.d.ts.map +1 -0
  900. package/dist/resizable/index.js +7 -0
  901. package/dist/resizable/meta.d.ts +243 -0
  902. package/dist/resizable/meta.d.ts.map +1 -0
  903. package/dist/resizable/meta.js +90 -0
  904. package/dist/resize-observer/ResizeObserver.svelte +12 -0
  905. package/dist/resize-observer/ResizeObserver.svelte.d.ts +7 -0
  906. package/dist/resize-observer/ResizeObserver.svelte.d.ts.map +1 -1
  907. package/dist/resize-observer/meta.d.ts +5 -0
  908. package/dist/resize-observer/meta.d.ts.map +1 -1
  909. package/dist/resize-observer/meta.js +6 -0
  910. package/dist/scroll-list/ScrollItem.svelte +612 -0
  911. package/dist/scroll-list/ScrollItem.svelte.d.ts +29 -0
  912. package/dist/scroll-list/ScrollItem.svelte.d.ts.map +1 -0
  913. package/dist/scroll-list/ScrollList.svelte +78 -227
  914. package/dist/scroll-list/ScrollList.svelte.d.ts +12 -41
  915. package/dist/scroll-list/ScrollList.svelte.d.ts.map +1 -1
  916. package/dist/scroll-list/index.d.ts +2 -2
  917. package/dist/scroll-list/index.d.ts.map +1 -1
  918. package/dist/scroll-list/index.js +1 -0
  919. package/dist/scroll-list/meta.d.ts +96 -101
  920. package/dist/scroll-list/meta.d.ts.map +1 -1
  921. package/dist/scroll-list/meta.js +84 -65
  922. package/dist/scroll-list/types.d.ts +2 -16
  923. package/dist/scroll-list/types.d.ts.map +1 -1
  924. package/dist/select/Select.svelte +683 -232
  925. package/dist/select/Select.svelte.d.ts +170 -37
  926. package/dist/select/Select.svelte.d.ts.map +1 -1
  927. package/dist/select/meta.d.ts +186 -40
  928. package/dist/select/meta.d.ts.map +1 -1
  929. package/dist/select/meta.js +54 -20
  930. package/dist/side-sheet/SideSheet.svelte +541 -500
  931. package/dist/side-sheet/SideSheet.svelte.d.ts +36 -49
  932. package/dist/side-sheet/SideSheet.svelte.d.ts.map +1 -1
  933. package/dist/side-sheet/meta.d.ts +77 -112
  934. package/dist/side-sheet/meta.d.ts.map +1 -1
  935. package/dist/side-sheet/meta.js +71 -71
  936. package/dist/sidebar/SideBar.svelte +168 -0
  937. package/dist/sidebar/SideBar.svelte.d.ts +28 -0
  938. package/dist/sidebar/SideBar.svelte.d.ts.map +1 -0
  939. package/dist/sidebar/SideBarAnnotation.svelte +453 -0
  940. package/dist/sidebar/SideBarAnnotation.svelte.d.ts +47 -0
  941. package/dist/sidebar/SideBarAnnotation.svelte.d.ts.map +1 -0
  942. package/dist/sidebar/SideBarCodeContent.svelte +201 -0
  943. package/dist/sidebar/SideBarCodeContent.svelte.d.ts +42 -0
  944. package/dist/sidebar/SideBarCodeContent.svelte.d.ts.map +1 -0
  945. package/dist/sidebar/SideBarContainer.svelte +478 -0
  946. package/dist/sidebar/SideBarContainer.svelte.d.ts +38 -0
  947. package/dist/sidebar/SideBarContainer.svelte.d.ts.map +1 -0
  948. package/dist/sidebar/SideBarFileContent.svelte +192 -0
  949. package/dist/sidebar/SideBarFileContent.svelte.d.ts +40 -0
  950. package/dist/sidebar/SideBarFileContent.svelte.d.ts.map +1 -0
  951. package/dist/sidebar/SideBarFileItem.svelte +311 -0
  952. package/dist/sidebar/SideBarFileItem.svelte.d.ts +21 -0
  953. package/dist/sidebar/SideBarFileItem.svelte.d.ts.map +1 -0
  954. package/dist/sidebar/SideBarImageUploadNode.svelte +103 -0
  955. package/dist/sidebar/SideBarImageUploadNode.svelte.d.ts +5 -0
  956. package/dist/sidebar/SideBarImageUploadNode.svelte.d.ts.map +1 -0
  957. package/dist/sidebar/SideBarMcpConfigure.svelte +544 -0
  958. package/dist/sidebar/SideBarMcpConfigure.svelte.d.ts +60 -0
  959. package/dist/sidebar/SideBarMcpConfigure.svelte.d.ts.map +1 -0
  960. package/dist/sidebar/SideBarOptions.svelte +137 -0
  961. package/dist/sidebar/SideBarOptions.svelte.d.ts +10 -0
  962. package/dist/sidebar/SideBarOptions.svelte.d.ts.map +1 -0
  963. package/dist/sidebar/file-extensions.d.ts +37 -0
  964. package/dist/sidebar/file-extensions.d.ts.map +1 -0
  965. package/dist/sidebar/file-extensions.js +45 -0
  966. package/dist/sidebar/index.d.ts +14 -0
  967. package/dist/sidebar/index.d.ts.map +1 -0
  968. package/dist/sidebar/index.js +9 -0
  969. package/dist/sidebar/meta.d.ts +373 -0
  970. package/dist/sidebar/meta.d.ts.map +1 -0
  971. package/dist/sidebar/meta.js +219 -0
  972. package/dist/sidebar/types.d.ts +70 -0
  973. package/dist/sidebar/types.d.ts.map +1 -0
  974. package/dist/sidebar/types.js +1 -0
  975. package/dist/skeleton/Skeleton.svelte +129 -97
  976. package/dist/skeleton/Skeleton.svelte.d.ts +7 -2
  977. package/dist/skeleton/Skeleton.svelte.d.ts.map +1 -1
  978. package/dist/skeleton/SkeletonAvatar.svelte +25 -68
  979. package/dist/skeleton/SkeletonAvatar.svelte.d.ts +6 -2
  980. package/dist/skeleton/SkeletonAvatar.svelte.d.ts.map +1 -1
  981. package/dist/skeleton/SkeletonButton.svelte +6 -77
  982. package/dist/skeleton/SkeletonButton.svelte.d.ts +0 -4
  983. package/dist/skeleton/SkeletonButton.svelte.d.ts.map +1 -1
  984. package/dist/skeleton/SkeletonImage.svelte +6 -87
  985. package/dist/skeleton/SkeletonImage.svelte.d.ts +0 -3
  986. package/dist/skeleton/SkeletonImage.svelte.d.ts.map +1 -1
  987. package/dist/skeleton/SkeletonParagraph.svelte +10 -87
  988. package/dist/skeleton/SkeletonParagraph.svelte.d.ts +1 -1
  989. package/dist/skeleton/SkeletonParagraph.svelte.d.ts.map +1 -1
  990. package/dist/skeleton/SkeletonTitle.svelte +6 -61
  991. package/dist/skeleton/SkeletonTitle.svelte.d.ts +0 -2
  992. package/dist/skeleton/SkeletonTitle.svelte.d.ts.map +1 -1
  993. package/dist/skeleton/index.d.ts +1 -1
  994. package/dist/skeleton/index.d.ts.map +1 -1
  995. package/dist/skeleton/meta.d.ts +99 -23
  996. package/dist/skeleton/meta.d.ts.map +1 -1
  997. package/dist/skeleton/meta.js +70 -28
  998. package/dist/slider/Slider.svelte +418 -419
  999. package/dist/slider/Slider.svelte.d.ts +45 -54
  1000. package/dist/slider/Slider.svelte.d.ts.map +1 -1
  1001. package/dist/slider/meta.d.ts +49 -87
  1002. package/dist/slider/meta.d.ts.map +1 -1
  1003. package/dist/slider/meta.js +50 -26
  1004. package/dist/space/Space.svelte +97 -49
  1005. package/dist/space/Space.svelte.d.ts +17 -4
  1006. package/dist/space/Space.svelte.d.ts.map +1 -1
  1007. package/dist/space/meta.d.ts +30 -17
  1008. package/dist/space/meta.d.ts.map +1 -1
  1009. package/dist/space/meta.js +29 -12
  1010. package/dist/spin/Spin.svelte +160 -195
  1011. package/dist/spin/Spin.svelte.d.ts +8 -12
  1012. package/dist/spin/Spin.svelte.d.ts.map +1 -1
  1013. package/dist/spin/meta.d.ts +36 -53
  1014. package/dist/spin/meta.d.ts.map +1 -1
  1015. package/dist/spin/meta.js +27 -47
  1016. package/dist/steps/Step.svelte +236 -0
  1017. package/dist/steps/Step.svelte.d.ts +5 -0
  1018. package/dist/steps/Step.svelte.d.ts.map +1 -0
  1019. package/dist/steps/Steps.svelte +521 -274
  1020. package/dist/steps/Steps.svelte.d.ts +14 -22
  1021. package/dist/steps/Steps.svelte.d.ts.map +1 -1
  1022. package/dist/steps/context.d.ts +41 -0
  1023. package/dist/steps/context.d.ts.map +1 -0
  1024. package/dist/steps/context.js +8 -0
  1025. package/dist/steps/index.d.ts +8 -2
  1026. package/dist/steps/index.d.ts.map +1 -1
  1027. package/dist/steps/index.js +5 -1
  1028. package/dist/steps/meta.d.ts +67 -42
  1029. package/dist/steps/meta.d.ts.map +1 -1
  1030. package/dist/steps/meta.js +169 -25
  1031. package/dist/steps/types.d.ts +30 -7
  1032. package/dist/steps/types.d.ts.map +1 -1
  1033. package/dist/switch/Switch.svelte +224 -205
  1034. package/dist/switch/Switch.svelte.d.ts +22 -43
  1035. package/dist/switch/Switch.svelte.d.ts.map +1 -1
  1036. package/dist/switch/meta.d.ts +44 -51
  1037. package/dist/switch/meta.d.ts.map +1 -1
  1038. package/dist/switch/meta.js +68 -27
  1039. package/dist/table/Table.svelte +1065 -600
  1040. package/dist/table/Table.svelte.d.ts +95 -1
  1041. package/dist/table/Table.svelte.d.ts.map +1 -1
  1042. package/dist/table/meta.d.ts +221 -2
  1043. package/dist/table/meta.d.ts.map +1 -1
  1044. package/dist/table/meta.js +119 -18
  1045. package/dist/table/types.d.ts +36 -6
  1046. package/dist/table/types.d.ts.map +1 -1
  1047. package/dist/tabs/TabPane.svelte +4 -1
  1048. package/dist/tabs/TabPane.svelte.d.ts +2 -0
  1049. package/dist/tabs/TabPane.svelte.d.ts.map +1 -1
  1050. package/dist/tabs/Tabs.svelte +453 -280
  1051. package/dist/tabs/Tabs.svelte.d.ts +41 -32
  1052. package/dist/tabs/Tabs.svelte.d.ts.map +1 -1
  1053. package/dist/tabs/context.d.ts +3 -0
  1054. package/dist/tabs/context.d.ts.map +1 -1
  1055. package/dist/tabs/meta.d.ts +43 -47
  1056. package/dist/tabs/meta.d.ts.map +1 -1
  1057. package/dist/tabs/meta.js +76 -47
  1058. package/dist/tabs/types.d.ts +3 -0
  1059. package/dist/tabs/types.d.ts.map +1 -1
  1060. package/dist/tag/SplitTagGroup.svelte +62 -0
  1061. package/dist/tag/SplitTagGroup.svelte.d.ts +15 -0
  1062. package/dist/tag/SplitTagGroup.svelte.d.ts.map +1 -0
  1063. package/dist/tag/Tag.svelte +394 -261
  1064. package/dist/tag/Tag.svelte.d.ts +40 -23
  1065. package/dist/tag/Tag.svelte.d.ts.map +1 -1
  1066. package/dist/tag/TagGroup.svelte +208 -0
  1067. package/dist/tag/TagGroup.svelte.d.ts +56 -0
  1068. package/dist/tag/TagGroup.svelte.d.ts.map +1 -0
  1069. package/dist/tag/index.d.ts +2 -0
  1070. package/dist/tag/index.d.ts.map +1 -1
  1071. package/dist/tag/index.js +4 -0
  1072. package/dist/tag/meta.d.ts +157 -51
  1073. package/dist/tag/meta.d.ts.map +1 -1
  1074. package/dist/tag/meta.js +82 -45
  1075. package/dist/tag-input/TagInput.svelte +575 -261
  1076. package/dist/tag-input/TagInput.svelte.d.ts +52 -17
  1077. package/dist/tag-input/TagInput.svelte.d.ts.map +1 -1
  1078. package/dist/tag-input/meta.d.ts +132 -20
  1079. package/dist/tag-input/meta.d.ts.map +1 -1
  1080. package/dist/tag-input/meta.js +49 -21
  1081. package/dist/tag-input/split.d.ts +8 -0
  1082. package/dist/tag-input/split.d.ts.map +1 -0
  1083. package/dist/tag-input/split.js +22 -0
  1084. package/dist/time-picker/TimePicker.svelte +504 -722
  1085. package/dist/time-picker/TimePicker.svelte.d.ts +67 -47
  1086. package/dist/time-picker/TimePicker.svelte.d.ts.map +1 -1
  1087. package/dist/time-picker/meta.d.ts +201 -19
  1088. package/dist/time-picker/meta.d.ts.map +1 -1
  1089. package/dist/time-picker/meta.js +73 -16
  1090. package/dist/timeline/Timeline.svelte +212 -548
  1091. package/dist/timeline/Timeline.svelte.d.ts +9 -22
  1092. package/dist/timeline/Timeline.svelte.d.ts.map +1 -1
  1093. package/dist/timeline/TimelineItem.svelte +101 -143
  1094. package/dist/timeline/TimelineItem.svelte.d.ts +20 -20
  1095. package/dist/timeline/TimelineItem.svelte.d.ts.map +1 -1
  1096. package/dist/timeline/context.d.ts +8 -12
  1097. package/dist/timeline/context.d.ts.map +1 -1
  1098. package/dist/timeline/index.d.ts +2 -2
  1099. package/dist/timeline/index.d.ts.map +1 -1
  1100. package/dist/timeline/meta.d.ts +59 -95
  1101. package/dist/timeline/meta.d.ts.map +1 -1
  1102. package/dist/timeline/meta.js +81 -86
  1103. package/dist/timeline/types.d.ts +16 -5
  1104. package/dist/timeline/types.d.ts.map +1 -1
  1105. package/dist/toast/ToastContainer.svelte +111 -125
  1106. package/dist/toast/ToastContainer.svelte.d.ts +3 -0
  1107. package/dist/toast/ToastContainer.svelte.d.ts.map +1 -1
  1108. package/dist/toast/ToastHolder.svelte +18 -0
  1109. package/dist/toast/ToastHolder.svelte.d.ts +8 -0
  1110. package/dist/toast/ToastHolder.svelte.d.ts.map +1 -0
  1111. package/dist/toast/ToastItem.svelte +209 -191
  1112. package/dist/toast/ToastItem.svelte.d.ts +7 -0
  1113. package/dist/toast/ToastItem.svelte.d.ts.map +1 -1
  1114. package/dist/toast/index.d.ts +3 -2
  1115. package/dist/toast/index.d.ts.map +1 -1
  1116. package/dist/toast/index.js +2 -1
  1117. package/dist/toast/meta.d.ts +84 -53
  1118. package/dist/toast/meta.d.ts.map +1 -1
  1119. package/dist/toast/meta.js +69 -62
  1120. package/dist/toast/store.d.ts +79 -51
  1121. package/dist/toast/store.d.ts.map +1 -1
  1122. package/dist/toast/store.js +179 -116
  1123. package/dist/tooltip/Tooltip.svelte +533 -203
  1124. package/dist/tooltip/Tooltip.svelte.d.ts +90 -20
  1125. package/dist/tooltip/Tooltip.svelte.d.ts.map +1 -1
  1126. package/dist/tooltip/index.d.ts +1 -0
  1127. package/dist/tooltip/index.d.ts.map +1 -1
  1128. package/dist/tooltip/index.js +1 -0
  1129. package/dist/tooltip/meta.d.ts +131 -34
  1130. package/dist/tooltip/meta.d.ts.map +1 -1
  1131. package/dist/tooltip/meta.js +92 -28
  1132. package/dist/tooltip/placement.d.ts +21 -1
  1133. package/dist/tooltip/placement.d.ts.map +1 -1
  1134. package/dist/tooltip/placement.js +57 -1
  1135. package/dist/transfer/Transfer.svelte +686 -1100
  1136. package/dist/transfer/Transfer.svelte.d.ts +68 -73
  1137. package/dist/transfer/Transfer.svelte.d.ts.map +1 -1
  1138. package/dist/transfer/meta.d.ts +44 -65
  1139. package/dist/transfer/meta.d.ts.map +1 -1
  1140. package/dist/transfer/meta.js +76 -31
  1141. package/dist/transfer/types.d.ts +5 -0
  1142. package/dist/transfer/types.d.ts.map +1 -1
  1143. package/dist/tree/Tree.svelte +973 -422
  1144. package/dist/tree/Tree.svelte.d.ts +291 -72
  1145. package/dist/tree/Tree.svelte.d.ts.map +1 -1
  1146. package/dist/tree/meta.d.ts +246 -79
  1147. package/dist/tree/meta.d.ts.map +1 -1
  1148. package/dist/tree/meta.js +238 -58
  1149. package/dist/tree-select/TreeSelect.svelte +591 -240
  1150. package/dist/tree-select/TreeSelect.svelte.d.ts +88 -54
  1151. package/dist/tree-select/TreeSelect.svelte.d.ts.map +1 -1
  1152. package/dist/tree-select/meta.d.ts +344 -57
  1153. package/dist/tree-select/meta.d.ts.map +1 -1
  1154. package/dist/tree-select/meta.js +80 -26
  1155. package/dist/tree-select/types.d.ts +2 -0
  1156. package/dist/tree-select/types.d.ts.map +1 -1
  1157. package/dist/typography/Numeral.svelte +117 -0
  1158. package/dist/typography/Numeral.svelte.d.ts +35 -0
  1159. package/dist/typography/Numeral.svelte.d.ts.map +1 -0
  1160. package/dist/typography/Paragraph.svelte +20 -34
  1161. package/dist/typography/Paragraph.svelte.d.ts +8 -13
  1162. package/dist/typography/Paragraph.svelte.d.ts.map +1 -1
  1163. package/dist/typography/Text.svelte +22 -33
  1164. package/dist/typography/Text.svelte.d.ts +11 -13
  1165. package/dist/typography/Text.svelte.d.ts.map +1 -1
  1166. package/dist/typography/Title.svelte +23 -28
  1167. package/dist/typography/Title.svelte.d.ts +10 -11
  1168. package/dist/typography/Title.svelte.d.ts.map +1 -1
  1169. package/dist/typography/TypographyBase.svelte +534 -479
  1170. package/dist/typography/TypographyBase.svelte.d.ts +44 -29
  1171. package/dist/typography/TypographyBase.svelte.d.ts.map +1 -1
  1172. package/dist/typography/index.d.ts +3 -3
  1173. package/dist/typography/index.d.ts.map +1 -1
  1174. package/dist/typography/index.js +3 -3
  1175. package/dist/typography/meta.d.ts +190 -185
  1176. package/dist/typography/meta.d.ts.map +1 -1
  1177. package/dist/typography/meta.js +112 -85
  1178. package/dist/upload/FileCard.svelte +634 -0
  1179. package/dist/upload/FileCard.svelte.d.ts +40 -0
  1180. package/dist/upload/FileCard.svelte.d.ts.map +1 -0
  1181. package/dist/upload/Upload.svelte +1112 -650
  1182. package/dist/upload/Upload.svelte.d.ts +118 -66
  1183. package/dist/upload/Upload.svelte.d.ts.map +1 -1
  1184. package/dist/upload/index.d.ts +2 -1
  1185. package/dist/upload/index.d.ts.map +1 -1
  1186. package/dist/upload/index.js +1 -0
  1187. package/dist/upload/meta.d.ts +231 -72
  1188. package/dist/upload/meta.d.ts.map +1 -1
  1189. package/dist/upload/meta.js +84 -42
  1190. package/dist/upload/types.d.ts +137 -3
  1191. package/dist/upload/types.d.ts.map +1 -1
  1192. package/dist/user-guide/UserGuide.svelte +655 -0
  1193. package/dist/user-guide/UserGuide.svelte.d.ts +75 -0
  1194. package/dist/user-guide/UserGuide.svelte.d.ts.map +1 -0
  1195. package/dist/user-guide/index.d.ts +4 -0
  1196. package/dist/user-guide/index.d.ts.map +1 -0
  1197. package/dist/user-guide/index.js +2 -0
  1198. package/dist/user-guide/meta.d.ts +162 -0
  1199. package/dist/user-guide/meta.d.ts.map +1 -0
  1200. package/dist/user-guide/meta.js +60 -0
  1201. package/dist/video-player/ErrorSvg.svelte +15 -0
  1202. package/dist/video-player/ErrorSvg.svelte.d.ts +19 -0
  1203. package/dist/video-player/ErrorSvg.svelte.d.ts.map +1 -0
  1204. package/dist/video-player/VideoPlayer.svelte +769 -0
  1205. package/dist/video-player/VideoPlayer.svelte.d.ts +43 -0
  1206. package/dist/video-player/VideoPlayer.svelte.d.ts.map +1 -0
  1207. package/dist/video-player/VideoProgress.svelte +267 -0
  1208. package/dist/video-player/VideoProgress.svelte.d.ts +18 -0
  1209. package/dist/video-player/VideoProgress.svelte.d.ts.map +1 -0
  1210. package/dist/video-player/index.d.ts +4 -0
  1211. package/dist/video-player/index.d.ts.map +1 -0
  1212. package/dist/video-player/index.js +2 -0
  1213. package/dist/video-player/meta.d.ts +200 -0
  1214. package/dist/video-player/meta.d.ts.map +1 -0
  1215. package/dist/video-player/meta.js +159 -0
  1216. package/package.json +29 -4
  1217. package/dist/collapse/types.d.ts +0 -6
  1218. package/dist/collapse/types.d.ts.map +0 -1
  1219. package/dist/date-picker/RangePicker.svelte +0 -775
  1220. package/dist/date-picker/RangePicker.svelte.d.ts +0 -38
  1221. package/dist/date-picker/RangePicker.svelte.d.ts.map +0 -1
  1222. package/dist/date-picker/range-meta.d.ts +0 -100
  1223. package/dist/date-picker/range-meta.d.ts.map +0 -1
  1224. package/dist/date-picker/range-meta.js +0 -43
  1225. package/dist/drawer/Drawer.svelte +0 -554
  1226. package/dist/drawer/Drawer.svelte.d.ts +0 -54
  1227. package/dist/drawer/Drawer.svelte.d.ts.map +0 -1
  1228. package/dist/drawer/index.d.ts +0 -3
  1229. package/dist/drawer/index.d.ts.map +0 -1
  1230. package/dist/drawer/index.js +0 -2
  1231. package/dist/drawer/meta.d.ts +0 -147
  1232. package/dist/drawer/meta.d.ts.map +0 -1
  1233. package/dist/drawer/meta.js +0 -126
  1234. package/dist/dropdown/DropdownItemNode.svelte +0 -355
  1235. package/dist/dropdown/DropdownItemNode.svelte.d.ts +0 -14
  1236. package/dist/dropdown/DropdownItemNode.svelte.d.ts.map +0 -1
  1237. package/dist/dropdown/DropdownSubMenu.svelte +0 -212
  1238. package/dist/dropdown/DropdownSubMenu.svelte.d.ts +0 -15
  1239. package/dist/dropdown/DropdownSubMenu.svelte.d.ts.map +0 -1
  1240. package/dist/grid/use-breakpoint.svelte.d.ts +0 -13
  1241. package/dist/grid/use-breakpoint.svelte.d.ts.map +0 -1
  1242. package/dist/grid/use-breakpoint.svelte.js +0 -41
  1243. package/dist/icon/Icon.svelte +0 -156
  1244. package/dist/icon/Icon.svelte.d.ts +0 -23
  1245. package/dist/icon/Icon.svelte.d.ts.map +0 -1
  1246. package/dist/image/ImagePreviewGroup.svelte +0 -93
  1247. package/dist/image/ImagePreviewGroup.svelte.d.ts +0 -14
  1248. package/dist/image/ImagePreviewGroup.svelte.d.ts.map +0 -1
  1249. package/dist/image/context.d.ts +0 -16
  1250. package/dist/image/context.d.ts.map +0 -1
  1251. package/dist/image/context.js +0 -8
  1252. package/dist/list/ListMeta.svelte +0 -73
  1253. package/dist/list/ListMeta.svelte.d.ts +0 -14
  1254. package/dist/list/ListMeta.svelte.d.ts.map +0 -1
  1255. package/dist/lottie-icon/LottieIcon.svelte +0 -330
  1256. package/dist/lottie-icon/LottieIcon.svelte.d.ts +0 -44
  1257. package/dist/lottie-icon/LottieIcon.svelte.d.ts.map +0 -1
  1258. package/dist/lottie-icon/index.d.ts +0 -4
  1259. package/dist/lottie-icon/index.d.ts.map +0 -1
  1260. package/dist/lottie-icon/index.js +0 -2
  1261. package/dist/lottie-icon/meta.d.ts +0 -147
  1262. package/dist/lottie-icon/meta.js +0 -161
  1263. package/dist/menu/Menu.svelte +0 -843
  1264. package/dist/menu/Menu.svelte.d.ts +0 -95
  1265. package/dist/menu/Menu.svelte.d.ts.map +0 -1
  1266. package/dist/menu/MenuPopupNode.svelte +0 -525
  1267. package/dist/menu/MenuPopupNode.svelte.d.ts +0 -52
  1268. package/dist/menu/MenuPopupNode.svelte.d.ts.map +0 -1
  1269. package/dist/menu/index.d.ts +0 -5
  1270. package/dist/menu/index.d.ts.map +0 -1
  1271. package/dist/menu/index.js +0 -3
  1272. package/dist/menu/meta.d.ts +0 -147
  1273. package/dist/menu/meta.d.ts.map +0 -1
  1274. package/dist/menu/meta.js +0 -141
  1275. package/dist/menu/types.d.ts +0 -88
  1276. package/dist/menu/types.d.ts.map +0 -1
  1277. package/dist/menu/types.js +0 -34
  1278. package/dist/scroll-list/ScrollColumn.svelte +0 -592
  1279. package/dist/scroll-list/ScrollColumn.svelte.d.ts +0 -34
  1280. package/dist/scroll-list/ScrollColumn.svelte.d.ts.map +0 -1
  1281. package/dist/skeleton/context.d.ts +0 -10
  1282. package/dist/skeleton/context.d.ts.map +0 -1
  1283. package/dist/skeleton/context.js +0 -1
  1284. package/dist/textarea/TextArea.svelte +0 -420
  1285. package/dist/textarea/TextArea.svelte.d.ts +0 -69
  1286. package/dist/textarea/TextArea.svelte.d.ts.map +0 -1
  1287. package/dist/textarea/index.d.ts +0 -3
  1288. package/dist/textarea/index.d.ts.map +0 -1
  1289. package/dist/textarea/index.js +0 -2
  1290. package/dist/textarea/meta.d.ts +0 -170
  1291. package/dist/textarea/meta.d.ts.map +0 -1
  1292. package/dist/textarea/meta.js +0 -104
  1293. package/dist/toast/live-region.d.ts +0 -21
  1294. package/dist/toast/live-region.d.ts.map +0 -1
  1295. package/dist/toast/live-region.js +0 -57
  1296. package/dist/typography/Link.svelte +0 -120
  1297. package/dist/typography/Link.svelte.d.ts +0 -35
  1298. package/dist/typography/Link.svelte.d.ts.map +0 -1
  1299. /package/dist/{collapse/types.js → ai-chat-dialogue/render-config.js} +0 -0
@@ -1,21 +1,31 @@
1
1
  <!--
2
- Carousel — see specs/components/show/Carousel.spec.md
3
- 基础子集:单/多 slide 展示(slidesToShow/slidesToScroll)、slide/fade 动画、
4
- autoplay(含 hoverToPause)、loop、dot/line/columnar 指示器、prev/next 箭头、受控 value、
5
- vertical 纵向方向、pointer 拖拽/滑动手势切换。
2
+ Carousel — 走马灯。DOM 结构、动画机制、API 契约逐项对齐 Semi Design
3
+ (@douyinfe/semi-ui/carousel)。
4
+
5
+ 结构(镜像 Semi cssClasses,前缀 cd-):
6
+ .cd-carousel (root, role=region)
7
+ .cd-carousel-content.cd-carousel-content-{slide|fade}[.cd-carousel-content-reverse]
8
+ .cd-carousel-content-item.cd-carousel-content-item-{current|prev|next|active|slide-in|slide-out}
9
+ .cd-carousel-indicator > CarouselIndicator(.cd-carousel-indicator.-{type}.-{position})
10
+ CarouselArrow(.cd-carousel-arrow[.-hover] > .cd-carousel-arrow-prev/-next)
11
+
12
+ 动画对齐 Semi:所有 item 绝对定位叠放;slide 用 keyframe slide-in/out(+reverse
13
+ 按 slideDirection/是否回退),fade 用 opacity。每张 slide 对应一个指示点。
6
14
 
7
15
  ⚠️ 死循环红线:
8
- - 受控 value 不回写 prop(红线 #1):isControlled = $derived(value !== undefined) +
9
- 内部 $state inner + current = $derived(...);变更只 onChange。
10
- - 当前页/transform 为派生纯函数(红线 #2):trackOffset/pageCount $derived 计算。
11
- - autoplay timer pointer 拖拽监听命令式(红线 #3):autoplay 用普通变量 setInterval
12
- + $effect cleanup;pointermove/up 绑 window 手动 add/remove;拖拽偏移存 $state dragPx。
13
- - 不使用响应式 attachment 读 DOM。
16
+ - 受控 activeIndex 不回写 prop(红线 #1):isControlled = $derived(activeIndex !== undefined)
17
+ + 内部 $state innercurrent = $derived(...);变更只 onChange。
18
+ - 当前页/isReverse/isInit $state,仅命令式切换里更新(红线 #2)。
19
+ - autoplay timer 命令式(红线 #3):$effect setInterval + cleanup;不用响应式 attachment。
20
+
21
+ a11y 增强(Semi 未覆盖,本库补全,不破坏三段式结构):
22
+ 键盘 ←/→/Home/End、live announcer、reduced-motion、可见播放/暂停按钮(WCAG 2.2.2)。
14
23
  -->
15
24
  <script lang="ts">
16
25
  import type { Snippet } from 'svelte';
17
26
  import { untrack } from 'svelte';
18
27
  import { useLiveAnnouncer } from '@chenzy-design/core';
28
+ import { IconChevronLeft, IconChevronRight } from '@chenzy-design/icons';
19
29
  import { useLocale } from '../locale-provider/index.js';
20
30
 
21
31
  type Animation = 'slide' | 'fade';
@@ -27,229 +37,178 @@
27
37
  type SlideDirection = 'left' | 'right';
28
38
  type TriggerType = 'hover' | 'click';
29
39
 
30
- /** autoPlay 对象形式:{ interval?, hoverToPause? } */
40
+ /** autoPlay 对象形式:{ interval?, hoverToPause? }(对齐 Semi)。 */
31
41
  type AutoPlayConfig = { interval?: number; hoverToPause?: boolean };
32
42
 
33
- interface ArrowSlotProps {
43
+ /** 单个箭头自定义:props 透传到箭头 div,children 覆盖默认 Icon(对齐 Semi ArrowButton)。 */
44
+ interface ArrowButton {
45
+ props?: Record<string, unknown> & { onClick?: () => void; style?: string; class?: string };
34
46
  children?: Snippet;
35
- onClick?: () => void;
36
47
  }
37
48
 
38
49
  interface Props {
50
+ /** 每项一张幻灯片的 Snippet 数组(对齐 Semi children)。 */
39
51
  slides?: Snippet[];
40
- /** 受控当前激活索引(Semi API: activeIndex */
52
+ /** 受控当前激活索引(Semi API: activeIndex)。 */
41
53
  activeIndex?: number;
42
- value?: number;
54
+ /** 非受控初始索引。 */
43
55
  defaultActiveIndex?: number;
44
- /** 自动播放;支持布尔或对象形式 { interval?, hoverToPause? } */
56
+ /** 自动播放;布尔或 { interval?, hoverToPause? }(默认 true,对齐 Semi)。 */
45
57
  autoPlay?: boolean | AutoPlayConfig;
46
- /** @deprecated 请用 autoPlay */
47
- autoplay?: boolean;
48
- interval?: number;
49
- loop?: boolean;
58
+ /** 切换动画。 */
50
59
  animation?: Animation;
60
+ /** 切换速度(ms)。 */
51
61
  speed?: number;
52
- slidesToShow?: number;
53
- slidesToScroll?: number;
54
- vertical?: boolean;
55
- draggable?: boolean;
62
+ /** 是否展示指示器。 */
56
63
  showIndicator?: boolean;
64
+ /** 指示器类型:dot / line / columnar。 */
57
65
  indicatorType?: IndicatorType;
58
- /** 指示器位置(横向:left/center/right */
66
+ /** 指示器位置:left / center / right */
59
67
  indicatorPosition?: IndicatorPosition;
60
- /** 指示器尺寸 */
68
+ /** 指示器尺寸:small / medium。 */
61
69
  indicatorSize?: IndicatorSize;
70
+ /** 是否展示箭头。 */
62
71
  showArrow?: boolean;
63
- /** 箭头展示时机:hover=悬停时显示,always=始终显示 */
72
+ /** 箭头展示时机:hover 悬停显示 / always 始终显示。 */
64
73
  arrowType?: ArrowType;
65
- /** 自定义箭头内容与点击回调 */
74
+ /** 自定义箭头内容与点击回调。 */
66
75
  arrowProps?: {
67
- leftArrow?: ArrowSlotProps;
68
- rightArrow?: ArrowSlotProps;
76
+ leftArrow?: ArrowButton;
77
+ rightArrow?: ArrowButton;
69
78
  };
70
- hoverToPause?: boolean;
71
- /** 主题 */
79
+ /** 指示器与箭头主题:primary / light / dark(默认 light,对齐 Semi)。 */
72
80
  theme?: Theme;
73
- /** 动画滑动方向 */
81
+ /** animation=slide 时的滑动方向:left / right。 */
74
82
  slideDirection?: SlideDirection;
75
- /** 指示器触发切换的交互方式 */
83
+ /** 指示器触发切换的交互方式:click / hover。 */
76
84
  trigger?: TriggerType;
77
- height?: number | string;
78
- ariaLabel?: string;
79
- onChange?: (index: number) => void;
80
- onPlayStateChange?: (playing: boolean) => void;
85
+ /** 索引变更回调(对齐 Semi:index, preIndex)。 */
86
+ onChange?: (index: number, preIndex: number) => void;
87
+ /** 根元素内联样式(对齐 Semi style;常用于设定宽高)。 */
88
+ style?: string;
81
89
  class?: string;
82
90
  }
83
91
 
84
92
  let {
85
93
  slides = [],
86
94
  activeIndex,
87
- value,
88
95
  defaultActiveIndex = 0,
89
- autoPlay,
90
- autoplay = false,
91
- interval = 3000,
92
- loop = true,
96
+ autoPlay = true,
93
97
  animation = 'slide',
94
98
  speed = 300,
95
- slidesToShow = 1,
96
- slidesToScroll = 1,
97
- vertical = false,
98
- draggable = true,
99
99
  showIndicator = true,
100
100
  indicatorType = 'dot',
101
101
  indicatorPosition = 'center',
102
- indicatorSize = 'medium',
102
+ indicatorSize = 'small',
103
103
  showArrow = true,
104
104
  arrowType = 'always',
105
105
  arrowProps,
106
- hoverToPause = true,
107
- theme,
108
- slideDirection,
106
+ theme = 'light',
107
+ slideDirection = 'left',
109
108
  trigger = 'click',
110
- height = 240,
111
- ariaLabel,
112
109
  onChange,
113
- onPlayStateChange,
110
+ style,
114
111
  class: className = '',
115
112
  }: Props = $props();
116
113
 
117
- // 解析 autoPlay:对象形式覆盖 interval / hoverToPause
118
- const resolvedAutoPlay = $derived.by<boolean>(() => {
119
- if (autoPlay !== undefined) {
120
- return typeof autoPlay === 'boolean' ? autoPlay : true;
121
- }
122
- return autoplay;
123
- });
124
- const resolvedInterval = $derived.by<number>(() => {
125
- if (autoPlay && typeof autoPlay === 'object' && autoPlay.interval !== undefined) {
126
- return autoPlay.interval;
127
- }
128
- return interval;
129
- });
130
- const resolvedHoverToPause = $derived.by<boolean>(() => {
131
- if (autoPlay && typeof autoPlay === 'object' && autoPlay.hoverToPause !== undefined) {
132
- return autoPlay.hoverToPause;
133
- }
134
- return hoverToPause;
135
- });
114
+ const DEFAULT_INTERVAL = 2000;
136
115
 
137
- // 受控索引:activeIndex 优先于 value(Semi API activeIndex 是主 prop)
138
- const controlledIndex = $derived(activeIndex !== undefined ? activeIndex : value);
116
+ // 解析 autoPlay:布尔或对象;对象形式覆盖 interval / hoverToPause(对齐 Semi)。
117
+ const autoPlayOn = $derived(autoPlay === true || (typeof autoPlay === 'object' && autoPlay !== null));
118
+ const resolvedInterval = $derived(
119
+ typeof autoPlay === 'object' && autoPlay?.interval !== undefined ? autoPlay.interval : DEFAULT_INTERVAL,
120
+ );
121
+ const resolvedHoverToPause = $derived(
122
+ typeof autoPlay === 'object' ? autoPlay?.hoverToPause !== false : true,
123
+ );
139
124
 
140
125
  const loc = useLocale();
141
- // 单例 live region(polite):手动切换 slide 时播报「第 N 张,共 M 张」(红线 #3:命令式)。
142
126
  const announcer = useLiveAnnouncer();
143
127
 
144
128
  // 受控 / 非受控(红线 #1):永不回写 prop。
145
- const isControlled = $derived(controlledIndex !== undefined);
146
- let inner = $state(getInitialIndex());
147
- const current = $derived(isControlled ? (controlledIndex as number) : inner);
148
-
149
- function getInitialIndex(): number {
150
- return defaultActiveIndex;
151
- }
129
+ const isControlled = $derived(activeIndex !== undefined);
130
+ // 仅取 defaultActiveIndex 初值(untrack 明确不追踪,后续变更不重置内部索引)。
131
+ let inner = $state(untrack(() => defaultActiveIndex));
132
+ const current = $derived(isControlled ? (activeIndex as number) : inner);
152
133
 
153
134
  const count = $derived(slides.length);
154
135
 
155
- // 同屏展示数 / 步长归一(至少 1,且不超过 slide 数)。
156
- const perView = $derived(Math.max(1, Math.min(slidesToShow, Math.max(1, count))));
157
- const step = $derived(Math.max(1, slidesToScroll));
158
-
159
- // fade 动画与多图同屏互斥:多图时强制 slide 轨道平移。
160
- const mode = $derived<Animation>(perView > 1 ? 'slide' : animation);
136
+ // 切换方向与初始态(红线 #2):命令式切换里更新,驱动 slide keyframe。
137
+ let isReverse = $state(false);
138
+ let isInit = $state(true);
139
+ // 记录上一张,用于 slide-out 定位(对齐 Semi preIndex);仅取初值。
140
+ let preIndex = $state(untrack(() => defaultActiveIndex));
161
141
 
162
- // 派生纯函数(红线 #2):可滚动的最大起始索引与页数。
163
- // loop 时每张都能作为起点;非 loop 时起点止于「末尾恰好填满一屏」。
164
- const maxIndex = $derived(loop ? Math.max(0, count - 1) : Math.max(0, count - perView));
165
- const pageCount = $derived(
166
- count === 0 ? 0 : loop ? Math.ceil(count / step) : Math.floor(maxIndex / step) + 1,
167
- );
168
- const activePage = $derived(step > 0 ? Math.round(current / step) : 0);
169
-
170
- // hover 暂停状态(本地)。
142
+ // hover / 键盘 focus / reduced-motion 抑制自动播放。
171
143
  let paused = $state(false);
172
- // 键盘焦点进入容器时暂停 autoplay(无障碍:WCAG 2.2.2,焦点态不应继续移动)。
173
144
  let focused = $state(false);
174
- // 用户经播放/暂停按钮显式切换的状态。默认按 autoplay prop 推断初值。
175
- // userPaused=true 即用户主动暂停;与 hover/focus 暂停叠加判定是否实际运行。
176
- let userPaused = $state(false);
177
-
178
- // reduced-motion:matchMedia 监听,开启时暂停 autoplay(无障碍)。
179
145
  let reducedMotion = $state(false);
146
+ // 用户经播放/暂停按钮显式暂停。
147
+ let userPaused = $state(false);
180
148
 
181
- // 是否「想要」自动播放(用户意图):autoPlay/autoplay 未被用户显式暂停。
182
- const wantsPlaying = $derived(resolvedAutoPlay && !userPaused);
183
- // 实际是否在播放(叠加 hover/focus/reduced-motion 等运行时抑制)。
149
+ const wantsPlaying = $derived(autoPlayOn && !userPaused);
184
150
  const isPlaying = $derived(
185
- wantsPlaying && !paused && !focused && !reducedMotion && count > perView,
151
+ wantsPlaying && !paused && !focused && !reducedMotion && count > 1,
186
152
  );
187
153
 
188
- function togglePlay() {
189
- userPaused = !userPaused;
190
- onPlayStateChange?.(!userPaused);
154
+ function getValidIndex(index: number): number {
155
+ return count === 0 ? 0 : ((index % count) + count) % count;
191
156
  }
192
157
 
193
- $effect(() => {
194
- if (typeof window === 'undefined' || !window.matchMedia) return;
195
- const mql = window.matchMedia('(prefers-reduced-motion: reduce)');
196
- reducedMotion = mql.matches;
197
- const onChangeMq = (e: MediaQueryListEvent) => {
198
- reducedMotion = e.matches;
199
- };
200
- mql.addEventListener('change', onChangeMq);
201
- return () => mql.removeEventListener('change', onChangeMq);
202
- });
203
-
204
- const heightStyle = $derived(typeof height === 'number' ? `${height}px` : height);
205
-
206
- // 每张 slide 占视口的百分比(横/纵向均按 perView 切分)。
207
- const slidePct = $derived(100 / perView);
208
-
209
- function clampIndex(i: number): number {
210
- if (count === 0) return 0;
211
- if (loop) return ((i % count) + count) % count;
212
- return Math.min(maxIndex, Math.max(0, i));
158
+ // 核心切换(对齐 Semi foundation.goTo / _notifyChange)。
159
+ function goTo(targetRaw: number) {
160
+ if (count === 0) return;
161
+ const target = getValidIndex(targetRaw);
162
+ isReverse = current > target;
163
+ commit(target);
213
164
  }
214
-
215
- function go(i: number) {
165
+ function next() {
166
+ if (count === 0) return;
167
+ const target = getValidIndex(current + 1);
168
+ isReverse = false;
169
+ commit(target);
170
+ }
171
+ function prev() {
216
172
  if (count === 0) return;
217
- const next = clampIndex(i);
218
- if (next === current) return;
219
- if (!isControlled) inner = next;
220
- onChange?.(next);
221
- // 手动切换时 polite 播报「第 N 张,共 M 张」;autoplay 实际运行中不播,避免噪音(§6)。
222
- // 用即将生效的 next 计算页码($derived 在同步回调内尚未重算)。
223
- if (!isPlaying && pageCount > 0) {
224
- const nextPage = step > 0 ? Math.round(next / step) : 0;
173
+ const target = getValidIndex(current - 1);
174
+ isReverse = true;
175
+ commit(target);
176
+ }
177
+
178
+ function commit(target: number) {
179
+ if (isInit) isInit = false;
180
+ if (target === current) return;
181
+ const from = current;
182
+ preIndex = from;
183
+ if (!isControlled) inner = target;
184
+ onChange?.(target, from);
185
+ // 手动切换 polite 播报「第 N 张,共 M 张」;autoplay 运行中不播(§6 减噪)。
186
+ if (!isPlaying) {
225
187
  announcer.announce(
226
- loc().t('Carousel.slideAnnounce', { index: nextPage + 1, total: pageCount }),
188
+ loc().t('Carousel.slideAnnounce', { index: target + 1, total: count }),
227
189
  );
228
190
  }
229
191
  }
230
192
 
231
- function prev() {
232
- go(current - step);
193
+ // 指示器切换:click / hover 触发(对齐 Semi onIndicatorChange)。
194
+ function onIndicatorChange(index: number) {
195
+ isReverse = current > index;
196
+ commit(index);
233
197
  }
234
- function next() {
235
- go(current + step);
236
- }
237
- function goToPage(p: number) {
238
- go(p * step);
239
- }
240
- // Home/End:跳到第一/最后一张(非 loop 时止于 maxIndex)。
198
+
199
+ // Home/End:跳首末。
241
200
  function goFirst() {
242
- go(0);
201
+ goTo(0);
243
202
  }
244
203
  function goLast() {
245
- go(loop ? count - 1 : maxIndex);
204
+ goTo(count - 1);
246
205
  }
247
206
 
248
- // 视口键盘导航(§6):←/→ 切换,Home/End 跳首末。
249
- // RTL ←/→ 物理键语义镜像(←=next、→=prev)。
250
- function onViewportKeydown(e: KeyboardEvent) {
251
- if (count <= perView) return;
252
- const rtl = viewportEl?.matches(':dir(rtl)') ?? false;
207
+ // 视口键盘导航(本库 a11y 增强):←/→ 切换、Home/End 跳首末;RTL 下 ←/→ 镜像。
208
+ let rootEl: HTMLElement | null = null;
209
+ function onKeydown(e: KeyboardEvent) {
210
+ if (count <= 1) return;
211
+ const rtl = rootEl?.matches(':dir(rtl)') ?? false;
253
212
  switch (e.key) {
254
213
  case 'ArrowLeft':
255
214
  e.preventDefault();
@@ -259,16 +218,6 @@
259
218
  e.preventDefault();
260
219
  rtl ? prev() : next();
261
220
  break;
262
- case 'ArrowUp':
263
- if (!vertical) return;
264
- e.preventDefault();
265
- prev();
266
- break;
267
- case 'ArrowDown':
268
- if (!vertical) return;
269
- e.preventDefault();
270
- next();
271
- break;
272
221
  case 'Home':
273
222
  e.preventDefault();
274
223
  goFirst();
@@ -280,14 +229,24 @@
280
229
  }
281
230
  }
282
231
 
283
- // autoplay:$effect 内 setInterval,普通变量句柄 + cleanup(红线 #3)。
284
- // 用 untrack 读 current,避免 effect 依赖 current 而每次切换都重建定时器(计时被重置);
285
- // effect 仅依赖 autoplay/paused/count/interval/reducedMotion/step,定时器在一次播放周期内稳定。
232
+ // reduced-motion 监听(a11y)。
233
+ $effect(() => {
234
+ if (typeof window === 'undefined' || !window.matchMedia) return;
235
+ const mql = window.matchMedia('(prefers-reduced-motion: reduce)');
236
+ reducedMotion = mql.matches;
237
+ const onMq = (e: MediaQueryListEvent) => (reducedMotion = e.matches);
238
+ mql.addEventListener('change', onMq);
239
+ return () => mql.removeEventListener('change', onMq);
240
+ });
241
+
242
+ // autoplay(红线 #3):$effect 内 setInterval + cleanup。用 untrack 读 current,
243
+ // 避免每次切换都重建定时器(Semi getSwitchingTime = interval + speed)。
286
244
  $effect(() => {
287
245
  if (!isPlaying) return;
288
246
  const id = setInterval(() => {
289
- go(untrack(() => current) + step);
290
- }, resolvedInterval);
247
+ isReverse = false;
248
+ commit(getValidIndex(untrack(() => current) + 1));
249
+ }, resolvedInterval + speed);
291
250
  return () => clearInterval(id);
292
251
  });
293
252
 
@@ -297,510 +256,551 @@
297
256
  function onMouseLeave() {
298
257
  if (resolvedHoverToPause) paused = false;
299
258
  }
300
- // 键盘焦点进入/离开容器:暂停/恢复 autoplay(§6)。
301
259
  function onFocusIn() {
302
260
  focused = true;
303
261
  }
304
262
  function onFocusOut(e: FocusEvent) {
305
- // 仅当焦点真正移出容器时恢复(忽略容器内部移动)。
306
- const next = e.relatedTarget as Node | null;
307
- if (!next || !(e.currentTarget as HTMLElement).contains(next)) {
308
- focused = false;
309
- }
263
+ const to = e.relatedTarget as Node | null;
264
+ if (!to || !(e.currentTarget as HTMLElement).contains(to)) focused = false;
310
265
  }
311
-
312
- // ---- 命令式 pointer 拖拽(红线 #3)----
313
- // 视口尺寸在 pointerdown 时读一次存入普通变量;拖拽偏移(px)存 $state 以驱动轨道平移。
314
- let viewportEl: HTMLElement | null = null;
315
- let dragStart = 0; // 起点坐标(vertical 取 clientY,否则 clientX)
316
- let dragSize = 0; // 视口主轴尺寸(px),用于阈值与百分比换算
317
- let dragPx = $state(0); // 实时拖拽位移(px,负为向后)
318
- let dragging = $state(false);
319
-
320
- // 拖拽期间的额外平移百分比(占整条轨道),由派生纯函数换算(红线 #2)。
321
- const dragPct = $derived(dragSize > 0 ? (dragPx / dragSize) * slidePct : 0);
322
-
323
- function onPointerMove(e: PointerEvent) {
324
- const cur = vertical ? e.clientY : e.clientX;
325
- dragPx = cur - dragStart;
326
- }
327
-
328
- function onPointerUp() {
329
- window.removeEventListener('pointermove', onPointerMove);
330
- window.removeEventListener('pointerup', onPointerUp);
331
- window.removeEventListener('pointercancel', onPointerUp);
332
- const moved = dragPx;
333
- dragging = false;
334
- dragPx = 0;
335
- // 拖过半张(单张尺寸的一半)即进位,否则回弹。
336
- const slideSize = dragSize / perView;
337
- if (slideSize > 0 && Math.abs(moved) > slideSize / 2) {
338
- go(moved < 0 ? current + step : current - step);
339
- }
340
- }
341
-
342
- function onPointerDown(e: PointerEvent) {
343
- if (!draggable || mode !== 'slide' || count <= perView || !viewportEl) return;
344
- // 仅主键 / 触摸 / 笔;忽略右键。
345
- if (e.button !== 0 && e.pointerType === 'mouse') return;
346
- const rect = viewportEl.getBoundingClientRect();
347
- dragSize = vertical ? rect.height : rect.width;
348
- dragStart = vertical ? e.clientY : e.clientX;
349
- dragPx = 0;
350
- dragging = true;
351
- window.addEventListener('pointermove', onPointerMove);
352
- window.addEventListener('pointerup', onPointerUp);
353
- window.addEventListener('pointercancel', onPointerUp);
266
+ function togglePlay() {
267
+ userPaused = !userPaused;
354
268
  }
355
269
 
356
- // 派生纯函数(红线 #2):轨道平移 = 当前索引偏移 + 拖拽偏移。
357
- const trackOffset = $derived(-(current * slidePct) + dragPct);
358
- const axis = $derived(vertical ? 'Y' : 'X');
359
- // 拖拽中关闭过渡(跟手),松手后恢复 speed 过渡。
360
- const trackDuration = $derived(dragging ? 0 : speed);
270
+ // ---- 派生 class(对齐 Semi cls 组合)----
271
+ const rootCls = $derived(['cd-carousel', className].filter(Boolean).join(' '));
361
272
 
362
- const cls = $derived(
273
+ // Semi content-reverse:slideDirection==='left' 时 isReverse 直取,否则取反。
274
+ const contentReverse = $derived(slideDirection === 'left' ? isReverse : !isReverse);
275
+ const contentCls = $derived(
363
276
  [
364
- 'cd-carousel',
365
- `cd-carousel--${mode}`,
366
- vertical && 'cd-carousel--vertical',
367
- dragging && 'cd-carousel--dragging',
368
- draggable && mode === 'slide' && count > perView && 'cd-carousel--draggable',
369
- theme && `cd-carousel--${theme}`,
370
- arrowType && `cd-carousel--arrow-${arrowType}`,
371
- slideDirection && `cd-carousel--slide-${slideDirection}`,
372
- className,
277
+ 'cd-carousel-content',
278
+ `cd-carousel-content-${animation}`,
279
+ contentReverse && 'cd-carousel-content-reverse',
280
+ ]
281
+ .filter(Boolean)
282
+ .join(' '),
283
+ );
284
+
285
+ function itemCls(i: number): string {
286
+ const isCurrent = i === current;
287
+ const isPrev = i === getValidIndex(current - 1);
288
+ const isNext = i === getValidIndex(current + 1);
289
+ return [
290
+ 'cd-carousel-content-item',
291
+ isPrev && 'cd-carousel-content-item-prev',
292
+ isNext && 'cd-carousel-content-item-next',
293
+ isCurrent && 'cd-carousel-content-item-current',
294
+ isCurrent && 'cd-carousel-content-item-active',
295
+ animation === 'slide' && !isInit && isCurrent && 'cd-carousel-content-item-slide-in',
296
+ animation === 'slide' && !isInit && i === preIndex && 'cd-carousel-content-item-slide-out',
373
297
  ]
298
+ .filter(Boolean)
299
+ .join(' ');
300
+ }
301
+ // item 动画 duration = speed。
302
+ const itemStyle = $derived(
303
+ `transition-duration:${speed}ms;animation-duration:${speed}ms;transition-timing-function:ease;animation-timing-function:ease`,
304
+ );
305
+
306
+ const indicatorWrapperCls = $derived(
307
+ ['cd-carousel-indicator', `cd-carousel-indicator-${indicatorType}`, `cd-carousel-indicator-${indicatorPosition}`]
374
308
  .filter(Boolean)
375
309
  .join(' '),
376
310
  );
311
+ function indicatorItemCls(i: number): string {
312
+ return [
313
+ 'cd-carousel-indicator-item',
314
+ i === current && 'cd-carousel-indicator-item-active',
315
+ `cd-carousel-indicator-item-${theme}`,
316
+ `cd-carousel-indicator-item-${indicatorSize}`,
317
+ ]
318
+ .filter(Boolean)
319
+ .join(' ');
320
+ }
321
+
322
+ const arrowCls = $derived(
323
+ ['cd-carousel-arrow', arrowType === 'hover' && 'cd-carousel-arrow-hover'].filter(Boolean).join(' '),
324
+ );
325
+
326
+ // 暴露 Methods(对齐 Semi ref API)。
327
+ export function play() {
328
+ userPaused = false;
329
+ }
330
+ export function stop() {
331
+ userPaused = true;
332
+ }
333
+ export { goTo, prev, next };
377
334
  </script>
378
335
 
336
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
337
+ <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
379
338
  <div
380
- class={cls}
339
+ bind:this={rootEl}
340
+ class={rootCls}
341
+ {style}
381
342
  role="region"
382
343
  aria-roledescription="carousel"
383
- aria-label={ariaLabel ?? loc().t('Carousel.ariaLabel')}
384
- style="block-size:{heightStyle}"
344
+ aria-label={loc().t('Carousel.ariaLabel')}
345
+ tabindex={count > 1 ? 0 : undefined}
346
+ aria-live={isPlaying ? 'off' : 'polite'}
385
347
  onmouseenter={onMouseEnter}
386
348
  onmouseleave={onMouseLeave}
387
349
  onfocusin={onFocusIn}
388
350
  onfocusout={onFocusOut}
351
+ onkeydown={onKeydown}
389
352
  >
390
- <!--
391
- viewport 可聚焦(tabindex=0)以承接 ←/→/Home/End 键盘导航;
392
- autoplay 实际运行时 aria-live=off(避免每次自动切换都打断屏幕阅读器),
393
- 暂停/手动态切到 polite,配合计数文本播报「第 X 张」。
394
- APG carousel:role=group 的轮播视口承载方向键导航属预期模式,故抑制以下两条 a11y 警告。
395
- -->
396
- <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
397
- <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
398
- <div
399
- bind:this={viewportEl}
400
- class="cd-carousel__viewport"
401
- role="group"
402
- aria-roledescription="slides"
403
- tabindex={count > perView ? 0 : undefined}
404
- aria-live={isPlaying ? 'off' : 'polite'}
405
- onpointerdown={onPointerDown}
406
- onkeydown={onViewportKeydown}
407
- >
408
- {#if mode === 'slide'}
353
+ <div class={contentCls}>
354
+ {#each slides as slide, i (i)}
409
355
  <div
410
- class="cd-carousel__track"
411
- style="--cd-carousel-slide-size:{slidePct}%; transform:translate{axis}({trackOffset}%); transition-duration:{trackDuration}ms"
356
+ class={itemCls(i)}
357
+ style={itemStyle}
358
+ role="group"
359
+ aria-roledescription="slide"
360
+ aria-label={loc().t('Carousel.slideLabel', { index: i + 1 })}
361
+ aria-hidden={i !== current || undefined}
362
+ inert={i !== current || undefined}
412
363
  >
413
- {#each slides as slide, i (i)}
414
- <div
415
- class="cd-carousel__slide"
416
- role="group"
417
- aria-roledescription="slide"
418
- aria-label={loc().t('Carousel.slideLabel', { index: i + 1 })}
419
- aria-hidden={(i < current || i >= current + perView) || undefined}
420
- inert={(i < current || i >= current + perView) || undefined}
421
- >
422
- {@render slide()}
423
- </div>
424
- {/each}
364
+ {@render slide()}
425
365
  </div>
426
- {:else}
427
- <div class="cd-carousel__fade">
428
- {#each slides as slide, i (i)}
429
- <div
430
- class="cd-carousel__slide cd-carousel__slide--fade"
431
- class:cd-carousel__slide--active={i === current}
432
- role="group"
433
- aria-roledescription="slide"
366
+ {/each}
367
+ </div>
368
+
369
+ {#if showIndicator && count > 1}
370
+ <div class="cd-carousel-indicator">
371
+ <div class={indicatorWrapperCls} role="tablist" aria-label={loc().t('Carousel.indicators')}>
372
+ {#each slides as _s, i (i)}
373
+ <span
374
+ class={indicatorItemCls(i)}
375
+ data-index={i}
376
+ role="tab"
377
+ tabindex={0}
378
+ aria-selected={i === current}
434
379
  aria-label={loc().t('Carousel.slideLabel', { index: i + 1 })}
435
- aria-hidden={i !== current || undefined}
436
- inert={i !== current || undefined}
437
- style="transition-duration:{speed}ms"
438
- >
439
- {@render slide()}
440
- </div>
380
+ onclick={trigger === 'click' ? () => onIndicatorChange(i) : undefined}
381
+ onmouseenter={trigger === 'hover' ? () => onIndicatorChange(i) : undefined}
382
+ onkeydown={(e) => {
383
+ if (e.key === 'Enter' || e.key === ' ') {
384
+ e.preventDefault();
385
+ onIndicatorChange(i);
386
+ }
387
+ }}
388
+ ></span>
441
389
  {/each}
442
390
  </div>
443
- {/if}
444
- </div>
391
+ </div>
392
+ {/if}
445
393
 
446
- {#if showArrow && count > perView}
447
- <button
448
- type="button"
449
- class="cd-carousel__arrow cd-carousel__arrow--prev"
450
- aria-label={loc().t('Carousel.prev')}
451
- onclick={() => { arrowProps?.leftArrow?.onClick?.(); prev(); }}
452
- >
453
- {#if arrowProps?.leftArrow?.children}
454
- {@render arrowProps.leftArrow.children()}
455
- {:else}
456
- {vertical ? '∧' : '‹'}
457
- {/if}
458
- </button>
459
- <button
460
- type="button"
461
- class="cd-carousel__arrow cd-carousel__arrow--next"
462
- aria-label={loc().t('Carousel.next')}
463
- onclick={() => { arrowProps?.rightArrow?.onClick?.(); next(); }}
464
- >
465
- {#if arrowProps?.rightArrow?.children}
466
- {@render arrowProps.rightArrow.children()}
467
- {:else}
468
- {vertical ? '∨' : '›'}
469
- {/if}
470
- </button>
394
+ {#if showArrow && count > 1}
395
+ <div class={arrowCls}>
396
+ <div
397
+ class={`cd-carousel-arrow-prev cd-carousel-arrow-${theme}`}
398
+ role="button"
399
+ tabindex={0}
400
+ aria-label={loc().t('Carousel.prev')}
401
+ onclick={() => {
402
+ arrowProps?.leftArrow?.props?.onClick?.();
403
+ prev();
404
+ }}
405
+ onkeydown={(e) => {
406
+ if (e.key === 'Enter' || e.key === ' ') {
407
+ e.preventDefault();
408
+ prev();
409
+ }
410
+ }}
411
+ style={arrowProps?.leftArrow?.props?.style}
412
+ >
413
+ {#if arrowProps?.leftArrow?.children}
414
+ {@render arrowProps.leftArrow.children()}
415
+ {:else}
416
+ <IconChevronLeft size="inherit" aria-label="Previous index" />
417
+ {/if}
418
+ </div>
419
+ <div
420
+ class={`cd-carousel-arrow-next cd-carousel-arrow-${theme}`}
421
+ role="button"
422
+ tabindex={0}
423
+ aria-label={loc().t('Carousel.next')}
424
+ onclick={() => {
425
+ arrowProps?.rightArrow?.props?.onClick?.();
426
+ next();
427
+ }}
428
+ onkeydown={(e) => {
429
+ if (e.key === 'Enter' || e.key === ' ') {
430
+ e.preventDefault();
431
+ next();
432
+ }
433
+ }}
434
+ style={arrowProps?.rightArrow?.props?.style}
435
+ >
436
+ {#if arrowProps?.rightArrow?.children}
437
+ {@render arrowProps.rightArrow.children()}
438
+ {:else}
439
+ <IconChevronRight size="inherit" aria-label="Next index" />
440
+ {/if}
441
+ </div>
442
+ </div>
471
443
  {/if}
472
444
 
473
- <!--
474
- 播放/暂停按钮(WCAG 2.2.2):autoPlay/autoplay 开启时常驻,可见且可键盘操作。
475
- label 随 userPaused 切换(播放 ↔ 暂停)。
476
- -->
477
- {#if resolvedAutoPlay && count > perView}
445
+ <!-- WCAG 2.2.2 可见播放/暂停按钮(本库 a11y 增强,Semi 无)。 -->
446
+ {#if autoPlayOn && count > 1}
478
447
  <button
479
448
  type="button"
480
- class="cd-carousel__play"
449
+ class="cd-carousel-play"
481
450
  aria-label={userPaused ? loc().t('Carousel.play') : loc().t('Carousel.pause')}
482
451
  aria-pressed={!userPaused}
483
452
  onclick={togglePlay}
484
453
  >{userPaused ? '▶' : '❚❚'}</button>
485
454
  {/if}
486
-
487
- {#if showIndicator && pageCount > 1}
488
- <div
489
- class="cd-carousel__indicators cd-carousel__indicators--{indicatorType} cd-carousel__indicators--{indicatorPosition} cd-carousel__indicators--{indicatorSize}"
490
- role="tablist"
491
- aria-label={loc().t('Carousel.indicators')}
492
- >
493
- {#each { length: pageCount } as _p, p (p)}
494
- <button
495
- type="button"
496
- class="cd-carousel__dot cd-carousel__indicator cd-carousel__indicator--{indicatorType}"
497
- class:cd-carousel__dot--active={p === activePage}
498
- role="tab"
499
- aria-selected={p === activePage}
500
- aria-label={loc().t('Carousel.slideLabel', { index: p + 1 })}
501
- onclick={trigger === 'click' ? () => goToPage(p) : undefined}
502
- onmouseenter={trigger === 'hover' ? () => goToPage(p) : undefined}
503
- ></button>
504
- {/each}
505
- </div>
506
- {/if}
507
455
  </div>
508
456
 
509
457
  <style>
458
+ /* ============================ Root ============================ */
510
459
  .cd-carousel {
511
460
  position: relative;
512
- inline-size: 100%;
513
461
  overflow: hidden;
514
- border-radius: var(--cd-carousel-radius);
515
462
  }
516
- .cd-carousel__viewport {
517
- position: relative;
518
- inline-size: 100%;
519
- block-size: 100%;
520
- overflow: hidden;
521
- }
522
- .cd-carousel__viewport:focus-visible {
463
+ .cd-carousel:focus-visible {
523
464
  outline: none;
524
465
  box-shadow: inset 0 0 0 2px var(--cd-color-primary, currentColor);
525
466
  }
526
- /* 可拖拽时禁用文本/图片选中与浏览器原生平移手势,确保 pointer 跟手。 */
527
- .cd-carousel--draggable .cd-carousel__viewport {
528
- cursor: grab;
529
- user-select: none;
530
- touch-action: pan-y;
467
+
468
+ /* ============================ Content ============================ */
469
+ .cd-carousel-content {
470
+ width: 100%;
471
+ height: 100%;
472
+ overflow: hidden;
473
+ position: relative;
531
474
  }
532
- .cd-carousel--vertical.cd-carousel--draggable .cd-carousel__viewport {
533
- touch-action: pan-x;
475
+ .cd-carousel-content-item {
476
+ position: absolute;
477
+ left: 0;
478
+ top: 0;
479
+ width: 100%;
480
+ height: 100%;
481
+ overflow: hidden;
534
482
  }
535
- .cd-carousel--dragging .cd-carousel__viewport {
536
- cursor: grabbing;
483
+ .cd-carousel-content-item-current {
484
+ z-index: 1;
537
485
  }
538
486
 
539
- /* slide 模式:横向 flex 轨道平移 */
540
- .cd-carousel__track {
541
- display: flex;
542
- inline-size: 100%;
543
- block-size: 100%;
544
- transition-property: transform;
545
- transition-timing-function: var(--cd-motion-ease-standard);
487
+ /* fade:默认透明,仅 current 可见 */
488
+ .cd-carousel-content-fade > .cd-carousel-content-item {
489
+ opacity: 0;
490
+ transition-property: opacity;
546
491
  }
547
- .cd-carousel__slide {
548
- flex: 0 0 var(--cd-carousel-slide-size, 100%);
549
- inline-size: var(--cd-carousel-slide-size, 100%);
550
- block-size: 100%;
492
+ .cd-carousel-content-fade > .cd-carousel-content-item-current {
493
+ opacity: 1;
551
494
  }
552
495
 
553
- /* vertical:轨道纵向排列,slide 高度切分,平移走 Y */
554
- .cd-carousel--vertical .cd-carousel__track {
555
- flex-direction: column;
496
+ /* slide:非 current 隐藏;进/出走 keyframe */
497
+ .cd-carousel-content-slide > .cd-carousel-content-item:not(.cd-carousel-content-item-current) {
498
+ visibility: hidden;
556
499
  }
557
- .cd-carousel--vertical .cd-carousel__slide {
558
- inline-size: 100%;
559
- block-size: var(--cd-carousel-slide-size, 100%);
560
- flex: 0 0 var(--cd-carousel-slide-size, 100%);
500
+ .cd-carousel-content-slide .cd-carousel-content-item-slide-out {
501
+ display: block;
502
+ visibility: visible;
503
+ animation-name: cd-carousel-content-item-keyframe-slide-out;
504
+ animation-fill-mode: forwards;
561
505
  }
562
-
563
- /* fade 模式:叠放,仅 active 项可见 */
564
- .cd-carousel__fade {
565
- position: relative;
566
- inline-size: 100%;
567
- block-size: 100%;
506
+ .cd-carousel-content-slide .cd-carousel-content-item-slide-in {
507
+ display: block;
508
+ animation-name: cd-carousel-content-item-keyframe-slide-in;
509
+ animation-fill-mode: forwards;
568
510
  }
569
- .cd-carousel__slide--fade {
570
- position: absolute;
571
- inset: 0;
572
- opacity: 0;
573
- pointer-events: none;
574
- transition-property: opacity;
575
- transition-timing-function: var(--cd-motion-ease-standard);
511
+ /* reverse:进/出方向取反 */
512
+ .cd-carousel-content-reverse .cd-carousel-content-item-slide-out {
513
+ animation-name: cd-carousel-content-item-keyframe-slide-out-reverse;
514
+ animation-fill-mode: forwards;
576
515
  }
577
- .cd-carousel__slide--fade.cd-carousel__slide--active {
578
- opacity: 1;
579
- pointer-events: auto;
516
+ .cd-carousel-content-reverse .cd-carousel-content-item-slide-in {
517
+ animation-name: cd-carousel-content-item-keyframe-slide-in-reverse;
518
+ animation-fill-mode: forwards;
580
519
  }
581
520
 
582
- .cd-carousel__arrow {
583
- position: absolute;
584
- inset-block-start: 50%;
585
- transform: translateY(-50%);
586
- display: inline-flex;
587
- align-items: center;
588
- justify-content: center;
589
- inline-size: var(--cd-carousel-arrow-size);
590
- block-size: var(--cd-carousel-arrow-size);
591
- padding: 0;
592
- border: none;
593
- border-radius: var(--cd-border-radius-full);
594
- background: var(--cd-carousel-arrow-bg);
595
- color: var(--cd-carousel-arrow-color);
596
- font-size: calc(var(--cd-carousel-arrow-size) * 0.6);
597
- line-height: 1;
598
- cursor: pointer;
521
+ /* ============================ Indicator ============================ */
522
+ .cd-carousel-indicator {
523
+ display: flex;
524
+ align-items: flex-end;
599
525
  z-index: 2;
600
526
  }
601
- .cd-carousel__arrow--prev {
602
- inset-inline-start: var(--cd-spacing-tight);
527
+ .cd-carousel-indicator-left {
528
+ position: absolute;
529
+ left: var(--cd-carousel-spacing-indicator-padding);
530
+ bottom: var(--cd-carousel-spacing-indicator-padding);
603
531
  }
604
- .cd-carousel__arrow--next {
605
- inset-inline-end: var(--cd-spacing-tight);
532
+ .cd-carousel-indicator-center {
533
+ position: absolute;
534
+ left: 50%;
535
+ bottom: var(--cd-carousel-spacing-indicator-padding);
536
+ transform: translate(-50%);
606
537
  }
607
- .cd-carousel__arrow:focus-visible {
538
+ .cd-carousel-indicator-right {
539
+ position: absolute;
540
+ right: var(--cd-carousel-spacing-indicator-padding);
541
+ bottom: var(--cd-carousel-spacing-indicator-padding);
542
+ }
543
+ .cd-carousel-indicator-item {
544
+ cursor: pointer;
545
+ }
546
+ .cd-carousel-indicator-item:focus-visible {
608
547
  outline: none;
609
548
  box-shadow: var(--cd-focus-ring);
610
549
  }
611
550
 
612
- /* vertical:箭头改为上/下居中 */
613
- .cd-carousel--vertical .cd-carousel__arrow {
614
- inset-block-start: auto;
615
- inset-inline: 0;
616
- margin-inline: auto;
617
- transform: none;
551
+ /* dot */
552
+ .cd-carousel-indicator-dot .cd-carousel-indicator-item {
553
+ border-radius: var(--cd-carousel-radius-indicator-dot);
554
+ }
555
+ .cd-carousel-indicator-dot .cd-carousel-indicator-item:not(:last-child) {
556
+ margin-right: var(--cd-carousel-spacing-indicator-dot-marginx);
618
557
  }
619
- .cd-carousel--vertical .cd-carousel__arrow--prev {
620
- inset-block-start: var(--cd-spacing-tight);
558
+ .cd-carousel-indicator-dot .cd-carousel-indicator-item-small {
559
+ width: var(--cd-carousel-width-indicator-dot-small);
560
+ height: var(--cd-carousel-width-indicator-dot-small);
621
561
  }
622
- .cd-carousel--vertical .cd-carousel__arrow--next {
623
- inset-block-end: var(--cd-spacing-tight);
562
+ .cd-carousel-indicator-dot .cd-carousel-indicator-item-medium {
563
+ width: var(--cd-carousel-width-indicator-dot-medium);
564
+ height: var(--cd-carousel-width-indicator-dot-medium);
624
565
  }
625
566
 
626
- /* 播放/暂停按钮:左下角常驻,命中区 ≥ 32px。 */
627
- .cd-carousel__play {
628
- position: absolute;
629
- inset-block-end: var(--cd-spacing-tight);
630
- inset-inline-start: var(--cd-spacing-tight);
631
- display: inline-flex;
632
- align-items: center;
633
- justify-content: center;
634
- inline-size: var(--cd-carousel-arrow-size);
635
- block-size: var(--cd-carousel-arrow-size);
636
- padding: 0;
637
- border: none;
638
- border-radius: var(--cd-border-radius-full);
639
- background: var(--cd-carousel-arrow-bg);
640
- color: var(--cd-carousel-arrow-color);
641
- font-size: calc(var(--cd-carousel-arrow-size) * 0.4);
642
- line-height: 1;
567
+ /* line */
568
+ .cd-carousel-indicator-line {
569
+ width: var(--cd-carousel-width-indicator-line);
570
+ }
571
+ .cd-carousel-indicator-line .cd-carousel-indicator-item {
572
+ flex: 1;
573
+ }
574
+ .cd-carousel-indicator-line .cd-carousel-indicator-item:not(:last-child) {
575
+ margin-right: var(--cd-carousel-spacing-indicator-line-marginx);
576
+ }
577
+ .cd-carousel-indicator-line .cd-carousel-indicator-item-small {
578
+ height: var(--cd-carousel-height-indicator-line-small);
579
+ }
580
+ .cd-carousel-indicator-line .cd-carousel-indicator-item-medium {
581
+ height: var(--cd-carousel-height-indicator-line-medium);
582
+ }
583
+
584
+ /* columnar */
585
+ .cd-carousel-indicator-columnar .cd-carousel-indicator-item {
643
586
  cursor: pointer;
644
- z-index: 2;
645
587
  }
646
- .cd-carousel__play:focus-visible {
647
- outline: none;
648
- box-shadow: var(--cd-focus-ring);
588
+ .cd-carousel-indicator-columnar .cd-carousel-indicator-item:not(:last-child) {
589
+ margin-right: var(--cd-carousel-spacing-indicator-columnar-marginx);
590
+ }
591
+ .cd-carousel-indicator-columnar .cd-carousel-indicator-item-small {
592
+ width: var(--cd-carousel-width-indicator-columnar-small);
593
+ height: var(--cd-carousel-height-indicator-columnar-small-default);
594
+ }
595
+ .cd-carousel-indicator-columnar .cd-carousel-indicator-item-small.cd-carousel-indicator-item-active {
596
+ height: var(--cd-carousel-height-indicator-columnar-small-active);
597
+ }
598
+ .cd-carousel-indicator-columnar .cd-carousel-indicator-item-medium {
599
+ width: var(--cd-carousel-width-indicator-columnar-medium);
600
+ height: var(--cd-carousel-height-indicator-columnar-medium-default);
601
+ }
602
+ .cd-carousel-indicator-columnar .cd-carousel-indicator-item-medium.cd-carousel-indicator-item-active {
603
+ height: var(--cd-carousel-height-indicator-columnar-medium-active);
649
604
  }
650
605
 
651
- .cd-carousel__indicators {
652
- position: absolute;
653
- inset-block-end: var(--cd-spacing-tight);
654
- inset-inline: 0;
655
- display: flex;
656
- justify-content: center;
657
- gap: var(--cd-carousel-indicator-gap);
658
- z-index: 2;
606
+ /* 指示器主题(三档 × 默认/悬浮/选中) */
607
+ .cd-carousel-indicator-item-primary {
608
+ background-color: var(--cd-carousel-color-indicator-theme-primary-bg-default);
609
+ transition: background-color var(--cd-carousel-animation-transition-duration)
610
+ var(--cd-carousel-animation-transition-function) var(--cd-carousel-animation-transition-delay);
659
611
  }
660
- /* vertical:指示器移至右侧纵向排列 */
661
- .cd-carousel--vertical .cd-carousel__indicators {
662
- inset-block: 0;
663
- inset-inline-end: var(--cd-spacing-tight);
664
- inset-inline-start: auto;
665
- flex-direction: column;
666
- justify-content: center;
612
+ .cd-carousel-indicator-item-primary.cd-carousel-indicator-item-active {
613
+ background: var(--cd-carousel-color-indicator-theme-primary-bg-active);
667
614
  }
668
- .cd-carousel__dot {
669
- inline-size: 8px;
670
- block-size: 8px;
671
- padding: 0;
672
- border: none;
673
- border-radius: var(--cd-border-radius-full);
674
- background: var(--cd-carousel-indicator-color);
615
+ .cd-carousel-indicator-item-primary:hover {
616
+ background-color: var(--cd-carousel-color-indicator-theme-primary-bg-hover);
617
+ }
618
+ .cd-carousel-indicator-item-primary:active {
619
+ background: var(--cd-carousel-color-indicator-theme-primary-bg-active);
620
+ }
621
+
622
+ .cd-carousel-indicator-item-light {
623
+ background-color: var(--cd-carousel-color-indicator-theme-light-bg-default);
624
+ transition: background-color var(--cd-carousel-animation-transition-duration)
625
+ var(--cd-carousel-animation-transition-function) var(--cd-carousel-animation-transition-delay);
626
+ }
627
+ .cd-carousel-indicator-item-light.cd-carousel-indicator-item-active {
628
+ background: var(--cd-carousel-color-indicator-theme-light-bg-active);
629
+ }
630
+ .cd-carousel-indicator-item-light:hover {
631
+ background-color: var(--cd-carousel-color-indicator-theme-light-bg-hover);
632
+ }
633
+ .cd-carousel-indicator-item-light:active {
634
+ background: var(--cd-carousel-color-indicator-theme-light-bg-active);
635
+ }
636
+
637
+ .cd-carousel-indicator-item-dark {
638
+ background-color: var(--cd-carousel-color-indicator-theme-dark-bg-default);
639
+ transition: background-color var(--cd-carousel-animation-transition-duration)
640
+ var(--cd-carousel-animation-transition-function) var(--cd-carousel-animation-transition-delay);
641
+ }
642
+ .cd-carousel-indicator-item-dark.cd-carousel-indicator-item-active {
643
+ background-color: var(--cd-carousel-color-indicator-theme-dark-bg-active);
644
+ }
645
+ .cd-carousel-indicator-item-dark:hover {
646
+ background-color: var(--cd-carousel-color-indicator-theme-dark-bg-hover);
647
+ }
648
+ .cd-carousel-indicator-item-dark:active {
649
+ background: var(--cd-carousel-color-indicator-theme-dark-bg-active);
650
+ }
651
+
652
+ /* ============================ Arrow ============================ */
653
+ .cd-carousel-arrow {
654
+ display: flex;
655
+ font-size: var(--cd-carousel-width-arrow);
675
656
  cursor: pointer;
676
- transition: background var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
677
657
  }
678
- .cd-carousel__dot--active {
679
- background: var(--cd-carousel-indicator-color-active);
658
+ .cd-carousel-arrow-prev {
659
+ position: absolute;
660
+ top: 50%;
661
+ left: var(--cd-carousel-spacing-arrow-left);
662
+ transform: translateY(-50%);
663
+ z-index: 2;
680
664
  }
681
- .cd-carousel__dot:focus-visible {
665
+ .cd-carousel-arrow-next {
666
+ position: absolute;
667
+ top: 50%;
668
+ right: var(--cd-carousel-spacing-arrow-right);
669
+ transform: translateY(-50%);
670
+ z-index: 2;
671
+ }
672
+ .cd-carousel-arrow-prev:focus-visible,
673
+ .cd-carousel-arrow-next:focus-visible {
682
674
  outline: none;
683
675
  box-shadow: var(--cd-focus-ring);
676
+ border-radius: var(--cd-border-radius-small);
684
677
  }
685
678
 
686
- /* line 指示器:横向细长条;激活态加长 + 高亮(纯 CSS 派生,红线 #2)。 */
687
- .cd-carousel__indicator--line {
688
- inline-size: 16px;
689
- block-size: 4px;
690
- border-radius: var(--cd-border-radius-full);
691
- transition:
692
- background var(--cd-motion-duration-fast) var(--cd-motion-ease-standard),
693
- inline-size var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
694
- }
695
- .cd-carousel__indicator--line.cd-carousel__dot--active {
696
- inline-size: 24px;
697
- }
698
- /* vertical 方向:line 旋为纵向细条(主轴改为 block-size 伸缩)。 */
699
- .cd-carousel--vertical .cd-carousel__indicator--line {
700
- inline-size: 4px;
701
- block-size: 16px;
702
- transition:
703
- background var(--cd-motion-duration-fast) var(--cd-motion-ease-standard),
704
- block-size var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
705
- }
706
- .cd-carousel--vertical .cd-carousel__indicator--line.cd-carousel__dot--active {
707
- block-size: 24px;
708
- }
709
-
710
- /* columnar 指示器:竖栏;默认矮,激活态变高 + 高亮。 */
711
- .cd-carousel__indicator--columnar {
712
- inline-size: 4px;
713
- block-size: 8px;
714
- border-radius: var(--cd-radius-sm, 2px);
715
- transition:
716
- background var(--cd-motion-duration-fast) var(--cd-motion-ease-standard),
717
- block-size var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
718
- }
719
- .cd-carousel__indicator--columnar.cd-carousel__dot--active {
720
- block-size: 14px;
721
- }
722
- /* vertical 方向:columnar 转为横栏,主轴改为 inline-size 伸缩。 */
723
- .cd-carousel--vertical .cd-carousel__indicator--columnar {
724
- inline-size: 8px;
725
- block-size: 4px;
726
- transition:
727
- background var(--cd-motion-duration-fast) var(--cd-motion-ease-standard),
728
- inline-size var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
729
- }
730
- .cd-carousel--vertical .cd-carousel__indicator--columnar.cd-carousel__dot--active {
731
- inline-size: 14px;
732
- }
733
-
734
- /* columnar 横向时按底边对齐,竖栏自底部生长更自然。 */
735
- .cd-carousel__indicators--columnar {
736
- align-items: flex-end;
679
+ .cd-carousel-arrow-light {
680
+ color: var(--cd-carousel-color-arrow-theme-light-bg-default);
681
+ transition: color var(--cd-carousel-animation-transition-duration)
682
+ var(--cd-carousel-animation-transition-function) var(--cd-carousel-animation-transition-delay);
683
+ }
684
+ .cd-carousel-arrow-light:hover {
685
+ color: var(--cd-carousel-color-arrow-theme-light-bg-hover);
686
+ }
687
+ .cd-carousel-arrow-primary {
688
+ color: var(--cd-carousel-color-arrow-theme-primary-bg-default);
689
+ transition: color var(--cd-carousel-animation-transition-duration)
690
+ var(--cd-carousel-animation-transition-function) var(--cd-carousel-animation-transition-delay);
691
+ }
692
+ .cd-carousel-arrow-primary:hover {
693
+ color: var(--cd-carousel-color-arrow-theme-primary-bg-hover);
737
694
  }
738
- .cd-carousel--vertical .cd-carousel__indicators--columnar {
739
- align-items: flex-start;
695
+ .cd-carousel-arrow-dark {
696
+ color: var(--cd-carousel-color-arrow-theme-dark-bg-default);
697
+ transition: color var(--cd-carousel-animation-transition-duration)
698
+ var(--cd-carousel-animation-transition-function) var(--cd-carousel-animation-transition-delay);
699
+ }
700
+ .cd-carousel-arrow-dark:hover {
701
+ color: var(--cd-carousel-color-arrow-theme-dark-bg-hover);
740
702
  }
741
703
 
742
- /* arrowType=hover:默认隐藏箭头,鼠标悬停 carousel 时显示 */
743
- .cd-carousel--arrow-hover .cd-carousel__arrow {
704
+ /* arrowType=hover:默认隐藏,悬停 carousel 时显示 */
705
+ .cd-carousel-arrow-hover > div {
706
+ z-index: 2;
744
707
  opacity: 0;
745
- transition: opacity var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
746
708
  }
747
- .cd-carousel--arrow-hover:hover .cd-carousel__arrow,
748
- .cd-carousel--arrow-hover:focus-within .cd-carousel__arrow {
709
+ .cd-carousel:hover .cd-carousel-arrow-hover > div,
710
+ .cd-carousel:focus-within .cd-carousel-arrow-hover > div {
749
711
  opacity: 1;
750
712
  }
751
713
 
752
- /* indicatorPosition */
753
- .cd-carousel__indicators--left {
754
- justify-content: flex-start;
755
- padding-inline-start: var(--cd-spacing-tight);
714
+ /* ============================ Play/Pause(a11y 增强)============================ */
715
+ .cd-carousel-play {
716
+ position: absolute;
717
+ bottom: var(--cd-spacing-tight);
718
+ left: var(--cd-spacing-tight);
719
+ display: inline-flex;
720
+ align-items: center;
721
+ justify-content: center;
722
+ width: var(--cd-carousel-width-arrow);
723
+ height: var(--cd-carousel-width-arrow);
724
+ padding: 0;
725
+ border: none;
726
+ border-radius: var(--cd-border-radius-full);
727
+ background: color-mix(in srgb, var(--cd-color-black, #000) 45%, transparent);
728
+ color: var(--cd-color-white, #fff);
729
+ font-size: calc(var(--cd-carousel-width-arrow) * 0.4);
730
+ line-height: 1;
731
+ cursor: pointer;
732
+ z-index: 2;
756
733
  }
757
- .cd-carousel__indicators--right {
758
- justify-content: flex-end;
759
- padding-inline-end: var(--cd-spacing-tight);
734
+ .cd-carousel-play:focus-visible {
735
+ outline: none;
736
+ box-shadow: var(--cd-focus-ring);
760
737
  }
761
738
 
762
- /* indicatorSize=small:缩小指示器尺寸 */
763
- .cd-carousel__indicators--small .cd-carousel__dot {
764
- inline-size: 6px;
765
- block-size: 6px;
766
- }
767
- .cd-carousel__indicators--small .cd-carousel__indicator--line {
768
- inline-size: 10px;
769
- block-size: 3px;
739
+ /* ============================ Slide keyframes(对齐 Semi)============================ */
740
+ @keyframes cd-carousel-content-item-keyframe-slide-in {
741
+ from {
742
+ transform: translateX(100%);
743
+ }
744
+ to {
745
+ transform: translateX(0);
746
+ }
770
747
  }
771
- .cd-carousel__indicators--small .cd-carousel__indicator--line.cd-carousel__dot--active {
772
- inline-size: 16px;
748
+ @keyframes cd-carousel-content-item-keyframe-slide-out {
749
+ from {
750
+ transform: translateX(0);
751
+ }
752
+ to {
753
+ transform: translateX(-100%);
754
+ }
773
755
  }
774
- .cd-carousel__indicators--small .cd-carousel__indicator--columnar {
775
- inline-size: 3px;
776
- block-size: 6px;
756
+ @keyframes cd-carousel-content-item-keyframe-slide-in-reverse {
757
+ from {
758
+ transform: translateX(-100%);
759
+ }
760
+ to {
761
+ transform: translateX(0);
762
+ }
777
763
  }
778
- .cd-carousel__indicators--small .cd-carousel__indicator--columnar.cd-carousel__dot--active {
779
- block-size: 10px;
764
+ @keyframes cd-carousel-content-item-keyframe-slide-out-reverse {
765
+ from {
766
+ transform: translateX(0);
767
+ }
768
+ to {
769
+ transform: translateX(100%);
770
+ }
780
771
  }
781
772
 
782
- /* theme */
783
- .cd-carousel--primary {
784
- --cd-carousel-arrow-bg: var(--cd-color-primary);
785
- --cd-carousel-arrow-color: #fff;
786
- --cd-carousel-indicator-color-active: var(--cd-color-primary);
773
+ /* RTL(对齐 Semi rtl.scss):方向翻转、箭头镜像、指示器 margin 换边 */
774
+ .cd-carousel:dir(rtl) .cd-carousel-arrow {
775
+ flex-direction: row-reverse;
776
+ }
777
+ .cd-carousel:dir(rtl) .cd-carousel-arrow-prev {
778
+ left: auto;
779
+ right: var(--cd-carousel-spacing-arrow-right);
780
+ transform: scaleX(-1) translateY(-50%);
781
+ }
782
+ .cd-carousel:dir(rtl) .cd-carousel-arrow-next {
783
+ right: auto;
784
+ left: var(--cd-carousel-spacing-arrow-left);
785
+ transform: scaleX(-1) translateY(-50%);
786
+ }
787
+ .cd-carousel:dir(rtl) .cd-carousel-indicator-dot .cd-carousel-indicator-item:not(:last-child),
788
+ .cd-carousel:dir(rtl) .cd-carousel-indicator-columnar .cd-carousel-indicator-item:not(:last-child) {
789
+ margin-right: 0;
787
790
  }
788
- .cd-carousel--light {
789
- --cd-carousel-arrow-bg: rgba(255, 255, 255, 0.85);
790
- --cd-carousel-arrow-color: var(--cd-color-text-1);
791
+ .cd-carousel:dir(rtl) .cd-carousel-indicator-dot .cd-carousel-indicator-item:not(:last-child) {
792
+ margin-left: var(--cd-carousel-spacing-indicator-dot-marginx);
791
793
  }
792
- .cd-carousel--dark {
793
- --cd-carousel-arrow-bg: rgba(0, 0, 0, 0.5);
794
- --cd-carousel-arrow-color: #fff;
795
- --cd-carousel-indicator-color: rgba(255, 255, 255, 0.5);
796
- --cd-carousel-indicator-color-active: #fff;
794
+ .cd-carousel:dir(rtl) .cd-carousel-indicator-columnar .cd-carousel-indicator-item:not(:last-child) {
795
+ margin-left: var(--cd-carousel-spacing-indicator-columnar-marginx);
797
796
  }
798
797
 
799
798
  @media (prefers-reduced-motion: reduce) {
800
- .cd-carousel__track,
801
- .cd-carousel__slide--fade,
802
- .cd-carousel__dot {
803
- transition-duration: 0ms;
799
+ .cd-carousel-content-item,
800
+ .cd-carousel-content-item-slide-in,
801
+ .cd-carousel-content-item-slide-out {
802
+ animation-duration: 0ms !important;
803
+ transition-duration: 0ms !important;
804
804
  }
805
805
  }
806
806
  </style>