@chenzy-design/svelte 0.3.1 → 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
@@ -6,19 +6,18 @@
6
6
  加载中显示 spinner,结果缓存到本地 extraChildren(不改 treeData prop)。
7
7
  multiple:每列 checkbox 多选 + 父子联动(复用 core conduct/toggleCheck,以 value 为 key),
8
8
  trigger 按选中叶子路径多 tag 回显可单独移除;value 为 Key[][](多条路径)。
9
- filterable:搜索时切换为扁平路径列表,按 label 链过滤 + 高亮命中,点击直接选中整条路径。
10
- expandTrigger='hover':悬停非叶子节点即展开子级列(pointerenter 设 activePath,选中仍用点击)。
9
+ filterTreeNode:搜索时切换为扁平路径列表,按 label 链过滤 + 高亮命中,点击直接选中整条路径。
10
+ showNext='hover':悬停非叶子节点即展开子级列(pointerenter 设 activePath,选中仍用点击)。
11
11
  displayRender:自定义触发器选中路径回显(单选 + 多选每个 tag 共用)。
12
12
  changeOnSelect(单选):点击任一层级节点(含中间非叶子)立即提交从根到该
13
13
  节点的路径并触发 onChange;非叶子同时展开子列、不关闭面板(可停在任意层级
14
14
  或继续深入),叶子提交并关闭。关闭时仅叶子提交并关闭,非叶子仅展开(默认)。
15
15
  spec §4 补齐:separator(分隔符)、displayProp(回显字段 label/value)、
16
16
  maxTagCount(多选 tag 折叠 +N)、leafOnly(多选完全勾选父级折叠为父路径)、
17
- filterTreeNode(filterable 的超集:true=默认子串匹配,函数=自定义谓词)、
17
+ filterTreeNode(true=默认子串匹配,函数=自定义谓词)、
18
18
  filterLeafOnly(搜索是否仅到叶子)、emptyContent(空态 string|Snippet)、
19
- destroyOnClose(关闭保留/卸载浮层 DOM)、zIndex、getPopupContainer(浮层容器)、
20
- columnWidth(列宽 number|number[])。
21
- 新增:borderless/prefix/suffix/clearIcon/expandIcon/motion/keyMaps/remote/
19
+ zIndex、getPopupContainer(浮层容器)。
20
+ 新增:borderless/prefix/suffix/clearIcon/expandIcon/arrowIcon/motion/keyMaps/remote/
22
21
  checkRelation/autoMergeValue/showNext/triggerRender/filterRender/filterSorter/
23
22
  topSlot/bottomSlot/onClear/onLoad/onSelect/onDropdownVisibleChange/onListScroll 等。
24
23
  -->
@@ -28,7 +27,6 @@
28
27
  useDismiss,
29
28
  conduct,
30
29
  toggleCheck,
31
- resolveColumnWidth,
32
30
  rovingKeyFromEvent,
33
31
  nextRovingIndex,
34
32
  type TreeNodeData,
@@ -36,15 +34,27 @@
36
34
  } from '@chenzy-design/core';
37
35
  import { SvelteMap, SvelteSet } from 'svelte/reactivity';
38
36
  import type { Snippet } from 'svelte';
37
+ import {
38
+ IconClear,
39
+ IconChevronDown,
40
+ IconChevronRight,
41
+ IconSpin,
42
+ } from '@chenzy-design/icons';
39
43
  import { useLocale } from '../locale-provider/index.js';
40
44
  import { getGlobalPopupContainer } from '../config-provider/index.js';
41
45
  import { floating } from '../_floating/use-floating.js';
42
46
  import Tag from '../tag/Tag.svelte';
47
+ import Checkbox from '../checkbox/Checkbox.svelte';
48
+ import Input from '../input/Input.svelte';
49
+ import TagInput from '../tag-input/TagInput.svelte';
50
+ import { VirtualList } from '../virtual-list/index.js';
43
51
  import type { CascaderNode } from './types.js';
52
+ import { getInputGroupContext } from '../input/context.js';
44
53
 
45
54
  type Key = string | number;
46
55
  type Size = 'small' | 'default' | 'large';
47
- type Status = 'default' | 'warning' | 'error';
56
+ /** 校验状态(对齐 Semi validateStatus):默认 / 警告 / 错误 */
57
+ type ValidateStatus = 'default' | 'warning' | 'error';
48
58
 
49
59
  interface Props {
50
60
  /** 单选为单条路径 Key[];多选为多条路径 Key[][] */
@@ -56,17 +66,13 @@
56
66
  /** 多选:每列 checkbox + 父子联动,trigger 多 tag 回显 */
57
67
  multiple?: boolean;
58
68
  size?: Size;
59
- status?: Status;
69
+ /** 校验状态(对齐 Semi validateStatus):'default' | 'warning' | 'error' */
70
+ validateStatus?: ValidateStatus;
60
71
  placeholder?: string;
61
72
  disabled?: boolean;
62
- clearable?: boolean;
63
73
  changeOnSelect?: boolean;
64
- /** 展开触发方式:'click' 点击展开(默认);'hover' 悬停非叶子节点即展开子级列(legacy alias,推荐用 showNext) */
65
- expandTrigger?: 'click' | 'hover';
66
74
  /** 多选时只回传/计数叶子节点(父节点不进 value、tag、计数) */
67
75
  leafOnly?: boolean;
68
- /** 搜索时切换为扁平路径列表,按 label 链过滤 + 高亮命中(向后兼容别名,等价 filterTreeNode=true) */
69
- filterable?: boolean;
70
76
  /** 是否可搜索及自定义匹配:false 关闭;true 默认按 label 链子串匹配;函数自定义谓词 */
71
77
  filterTreeNode?: boolean | ((query: string, path: CascaderFlatPath<CascaderNode>) => boolean);
72
78
  /** 搜索结果是否仅展示到叶子路径(默认 true;false 时含中间层级路径) */
@@ -79,35 +85,45 @@
79
85
  maxTagCount?: number;
80
86
  /** 列为空(无可选项)时内容;缺省走 i18n */
81
87
  emptyContent?: string | Snippet;
82
- /** 关闭即卸载浮层内容({#if}),重开重建。默认 false:首开后保留 DOM 仅隐藏。 */
83
- destroyOnClose?: boolean;
84
88
  /** 浮层层级 */
85
89
  zIndex?: number;
86
90
  /** 浮层挂载容器,缺省 document.body。非 body 容器时改 absolute 定位相对该容器。 */
87
91
  getPopupContainer?: () => HTMLElement | null | undefined;
88
- /** 列宽:统一(number)或逐列(number[],超出取末项) */
89
- columnWidth?: number | number[];
90
92
  /** 动态加载子节点;点击非叶子且无 children 的节点时调用 */
91
93
  loadData?: (node: CascaderNode) => Promise<CascaderNode[]>;
92
94
  /** 自定义触发器选中路径的回显文本(单选 + 多选每个 tag 均走此函数) */
93
95
  displayRender?: (labels: string[], selectedNodes: CascaderNode[]) => string;
94
- /** 单选回调单条路径;多选回调多条叶子路径 */
95
- onChange?: (value: Key[] | Key[][]) => void;
96
- onOpenChange?: (open: boolean) => void;
96
+ /** 单选回调单条路径;多选回调多条叶子路径。onChangeWithObject=true 时改为回传节点对象(单选节点链 CascaderNode[],多选每条路径节点链 CascaderNode[][]) */
97
+ onChange?: (value: Key[] | Key[][] | CascaderNode[] | CascaderNode[][]) => void;
98
+ /** 可访问名(对齐 Semi aria-label,默认 'Cascader')。本库沿用 Input/Checkbox 的 ariaLabel 命名惯例。 */
97
99
  ariaLabel?: string;
100
+ /** aria-labelledby:关联外部 label 元素(Form.Field 透传 labelId,对齐 Semi)。 */
101
+ ariaLabelledby?: string;
102
+ /** aria-describedby:关联 helpText / extraText(Form.Field 透传)。 */
103
+ ariaDescribedby?: string;
104
+ /** aria-errormessage:error 态关联错误信息容器(Form.Field 透传)。 */
105
+ ariaErrormessage?: string;
106
+ /** aria-required:必填语义(Form.Field required 透传)。 */
107
+ ariaRequired?: boolean;
98
108
 
99
109
  // --- 外观 ---
110
+ /** 附加到根节点的自定义 class */
111
+ class?: string;
100
112
  /** 无边框模式 */
101
113
  borderless?: boolean;
102
114
  /** 前置内容(Snippet 或 string) */
103
115
  prefix?: Snippet | string;
116
+ /** 内嵌标签:触发器在值前渲染的标签(如「地区:」),Semi 中为 prefix 的别名 */
117
+ insetLabel?: Snippet | string;
118
+ /** 内嵌标签的 DOM id(供外部 aria-labelledby 引用) */
119
+ insetLabelId?: string;
104
120
  /** 后置内容(Snippet 或 string) */
105
121
  suffix?: Snippet | string;
106
122
  /** 自定义清除图标 */
107
123
  clearIcon?: Snippet;
108
- /** 自定义展开图标(expandIcon / arrowIcon 均可,expandIcon 优先) */
124
+ /** 自定义菜单项右侧展开图标(列项 icon,对齐 Semi expandIcon */
109
125
  expandIcon?: Snippet;
110
- /** 自定义右侧下拉箭头(expandIcon 的别名) */
126
+ /** 自定义触发器右侧下拉箭头(对齐 Semi arrowIcon,与 expandIcon 语义不同) */
111
127
  arrowIcon?: Snippet;
112
128
  /** 下拉框展开动画(默认 true) */
113
129
  motion?: boolean;
@@ -121,8 +137,12 @@
121
137
  position?: string;
122
138
  /** 选择框样式 */
123
139
  style?: string;
124
- /** 下拉菜单样式 */
140
+ /** 下拉菜单样式(合并进浮层根节点,不覆盖 use:floating 写入的定位样式) */
125
141
  dropdownStyle?: string | Record<string, string>;
142
+ /** 追加到浮层根节点的自定义类名(与内置类名并存) */
143
+ dropdownClassName?: string;
144
+ /** 浮层与 trigger 的额外间距(px),映射到浮层 offset;对象形态仅取 marginTop(其余方向暂未接入定位)。 */
145
+ dropdownMargin?: number | { marginTop?: number; marginBottom?: number; marginLeft?: number; marginRight?: number };
126
146
  /** 失焦回调 */
127
147
  onBlur?: (e: MouseEvent) => void;
128
148
  /** 聚焦回调 */
@@ -163,13 +183,15 @@
163
183
  checkRelation?: 'related' | 'unRelated';
164
184
  /** onChange 回调是否返回完整 option 对象 */
165
185
  onChangeWithObject?: boolean;
166
- /** 超出 max 时回调 */
167
- onExceed?: (items: unknown[]) => void;
168
- /** 超出 maxTagCount 时是否显示 popover */
186
+ /** 多选可勾选数量上限;超出时不选入并触发 onExceed(减少始终允许) */
187
+ max?: number;
188
+ /** 超出 max 时回调,传当前(含超出项)勾选的节点集合 */
189
+ onExceed?: (items: CascaderNode[]) => void;
190
+ /** 超出 maxTagCount 折叠的 tag 以 Popover 悬浮展示剩余项(hover +N)。默认 false。 */
169
191
  showRestTagsPopover?: boolean;
170
- /** 超出 tag popover props */
192
+ /** 传给剩余 tags Popover 的额外 props(透传,可覆盖默认)。 */
171
193
  restTagsPopoverProps?: Record<string, unknown>;
172
- /** 是否显示清除按钮(clearable 的别名) */
194
+ /** 是否显示清除按钮(对齐 Semi showClear,默认 false) */
173
195
  showClear?: boolean;
174
196
 
175
197
  // --- 节点配置 ---
@@ -181,7 +203,7 @@
181
203
  enableLeafClick?: boolean;
182
204
  /** 禁用不从父节点继承(严格禁用) */
183
205
  disableStrictly?: boolean;
184
- /** 展开触发方式(新版 canonical prop,优先于 expandTrigger) */
206
+ /** 展开触发方式(对齐 Semi showNext):'click' 点击展开(默认);'hover' 悬停即展开子级列 */
185
207
  showNext?: 'click' | 'hover';
186
208
 
187
209
  // --- 事件 ---
@@ -205,35 +227,36 @@
205
227
  value,
206
228
  defaultValue,
207
229
  treeData = [],
208
- open,
230
+ open: openProp,
209
231
  defaultOpen = false,
210
232
  multiple = false,
211
- size = 'default',
212
- status = 'default',
213
- placeholder = '请选择',
214
- disabled = false,
215
- clearable = false,
233
+ size: sizeProp,
234
+ validateStatus = 'default',
235
+ placeholder,
236
+ disabled: disabledProp,
216
237
  changeOnSelect = false,
217
- expandTrigger = 'click',
218
238
  leafOnly = false,
219
- filterable = false,
220
239
  filterTreeNode,
221
240
  filterLeafOnly = true,
222
241
  displayProp = 'label',
223
242
  separator = ' / ',
224
243
  maxTagCount,
225
244
  emptyContent,
226
- destroyOnClose = false,
227
245
  zIndex = 1030,
228
246
  getPopupContainer,
229
- columnWidth = 180,
230
247
  loadData,
231
248
  displayRender,
232
249
  onChange,
233
- onOpenChange,
234
- ariaLabel,
250
+ ariaLabel = 'Cascader',
251
+ ariaLabelledby,
252
+ ariaDescribedby,
253
+ ariaErrormessage,
254
+ ariaRequired,
255
+ class: className = '',
235
256
  borderless = false,
236
257
  prefix,
258
+ insetLabel,
259
+ insetLabelId,
237
260
  suffix,
238
261
  clearIcon,
239
262
  expandIcon,
@@ -245,6 +268,8 @@
245
268
  position,
246
269
  style,
247
270
  dropdownStyle,
271
+ dropdownClassName,
272
+ dropdownMargin,
248
273
  onBlur,
249
274
  onFocus,
250
275
  preventScroll = false,
@@ -262,10 +287,11 @@
262
287
  autoMergeValue = true,
263
288
  checkRelation = 'related',
264
289
  onChangeWithObject = false,
290
+ max,
265
291
  onExceed,
266
292
  showRestTagsPopover = false,
267
293
  restTagsPopoverProps,
268
- showClear: showClearProp,
294
+ showClear: showClearProp = false,
269
295
  keyMaps,
270
296
  clickToSelect = false,
271
297
  enableLeafClick = false,
@@ -279,11 +305,34 @@
279
305
  triggerRender,
280
306
  }: Props = $props();
281
307
 
308
+ // InputGroup 组级默认(size/disabled):显式 prop 始终优先,否则回退组级,再回退组件默认。
309
+ const group = getInputGroupContext();
310
+ const size = $derived<Size>(sizeProp ?? group?.size ?? 'default');
311
+ const disabled = $derived<boolean>(disabledProp ?? group?.disabled ?? false);
312
+
282
313
  const loc = useLocale();
283
314
  // ConfigProvider 全局浮层容器默认;自身 getPopupContainer prop 优先,未传时回退此值(再回退 body)。
284
315
  const globalPopupContainer = getGlobalPopupContainer();
285
316
  const resolvePopupContainer = $derived(getPopupContainer ?? globalPopupContainer);
286
317
 
318
+ // 浮层与触发器间距:dropdownMargin 数字直接作 offset;对象形态取 marginTop(其余方向暂未接入);未传回退默认 4。
319
+ const dropdownOffset = $derived.by(() => {
320
+ if (dropdownMargin == null) return 4;
321
+ if (typeof dropdownMargin === 'number') return dropdownMargin;
322
+ return dropdownMargin.marginTop ?? 4;
323
+ });
324
+
325
+ // 浮层自定义样式:合并 dropdownStyle(字符串或对象)与 zIndex,供拼接到浮层 inline style。
326
+ const dropdownStyleStr = $derived.by(() => {
327
+ const parts: string[] = [];
328
+ if (dropdownStyle) {
329
+ if (typeof dropdownStyle === 'string') parts.push(dropdownStyle);
330
+ else parts.push(Object.entries(dropdownStyle).map(([k, v]) => `${k}: ${v}`).join('; '));
331
+ }
332
+ if (zIndex != null) parts.push(`z-index: ${zIndex}`);
333
+ return parts.filter(Boolean).join('; ');
334
+ });
335
+
287
336
  // --- keyMaps: 字段名映射,规整 treeData ---
288
337
  const kmValue = $derived(keyMaps?.value ?? 'value');
289
338
  const kmLabel = $derived(keyMaps?.label ?? 'label');
@@ -318,15 +367,12 @@
318
367
  }
319
368
  const normalizedTreeData = $derived(keyMapsDefault ? treeData : normalizeNodes(treeData));
320
369
 
321
- // showNext canonical prop;expandTrigger 是 legacy alias。showNext 优先。
322
- const effectiveExpandTrigger = $derived(
323
- showNext === 'hover' || expandTrigger === 'hover' ? 'hover' : 'click',
324
- );
370
+ // 展开触发方式(对齐 Semi showNext)。
371
+ const effectiveExpandTrigger = $derived(showNext === 'hover' ? 'hover' : 'click');
325
372
 
326
- // filterTreeNode 优先;未显式传时回退 filterable 别名(向后兼容)。
327
- // 归一为:是否可搜索 + 实际谓词(true=默认子串匹配,函数=自定义)。
373
+ // filterTreeNode 归一:是否可搜索 + 实际谓词(true=默认子串匹配,函数=自定义)。
328
374
  const filterSpec = $derived<boolean | ((q: string, p: CascaderFlatPath<CascaderNode>) => boolean)>(
329
- remote ? true : (filterTreeNode !== undefined ? filterTreeNode : filterable),
375
+ remote ? true : (filterTreeNode ?? false),
330
376
  );
331
377
  const isFilterable = $derived(filterSpec !== false || remote);
332
378
  const showBuiltinSearch = $derived(isFilterable && searchPosition !== 'custom');
@@ -419,10 +465,10 @@
419
465
  isValueControlled ? asMultiPaths(value) : innerPaths,
420
466
  );
421
467
 
422
- // --- 受控 open (红线 #1): 不无条件回写 open,仅 onOpenChange ---
423
- const isOpenControlled = $derived(open !== undefined);
468
+ // --- 受控 open (红线 #1): 不无条件回写 open,仅 onDropdownVisibleChange ---
469
+ const isOpenControlled = $derived(openProp !== undefined);
424
470
  let innerOpen = $state(getInitialOpen());
425
- const isOpen = $derived(isOpenControlled ? !!open : innerOpen);
471
+ const isOpen = $derived(isOpenControlled ? !!openProp : innerOpen);
426
472
 
427
473
  // --- 本地展开状态 (红线 #2): activePath 本地 $state,不依赖挂载 registry ---
428
474
  let activePath = $state<Key[]>(getInitialPath());
@@ -466,6 +512,13 @@
466
512
  const trimmedSearch = $derived(searchValue.trim());
467
513
  const searchActive = $derived(isFilterable && trimmedSearch.length > 0);
468
514
 
515
+ // 触发器内搜索输入框(对齐 Semi renderInput:搜索框在触发器选择区内,非浮层顶部)。
516
+ // showInput:面板打开且内置可搜索时显示 <Input>(Semi 于 toggleInputShow(true) 时聚焦)。
517
+ // 单选:Input 与 displayText span 同层;多选走 TagInput(其内建搜索输入,见 renderTagInput 段)。
518
+ const showInput = $derived(showBuiltinSearch && isOpen);
519
+ // 搜索 Input 组件实例(供打开时聚焦,对齐 Semi focusInput)。
520
+ let searchInputEl = $state<Input | undefined>(undefined);
521
+
469
522
  // onSearch 回调:搜索值变化时触发
470
523
  $effect(() => {
471
524
  if (isFilterable && trimmedSearch) {
@@ -519,7 +572,14 @@
519
572
  const lower = trimmedSearch.toLowerCase();
520
573
  results = flatPaths.filter((p) => {
521
574
  if (filterLeafOnly && !p.isLeaf) return false;
522
- return p.labels.join(separator).toLowerCase().includes(lower);
575
+ // treeNodeFilterProp==='label'(默认):按整条 label 链匹配(既有行为)。
576
+ // 其它字段:取路径末节点(目标节点)该字段值转字符串做子串匹配。
577
+ if (treeNodeFilterProp === 'label') {
578
+ return p.labels.join(separator).toLowerCase().includes(lower);
579
+ }
580
+ const lastNode = p.nodes[p.nodes.length - 1] as unknown as Record<string, unknown>;
581
+ const field = lastNode?.[treeNodeFilterProp];
582
+ return field != null && String(field).toLowerCase().includes(lower);
523
583
  });
524
584
  }
525
585
  if (filterSorter) {
@@ -554,7 +614,9 @@
554
614
  const leaf = p.values[p.values.length - 1] as Key;
555
615
  const nextBase = toggleCheck(mergedTreeData, checkedBase, leaf);
556
616
  const resolved = conduct(mergedTreeData, nextBase);
557
- setPaths(leafBaseToPaths(resolved.checked));
617
+ const nextPaths = leafBaseToPaths(resolved.checked);
618
+ if (exceedsMax(currentPaths.length, nextPaths.length, resolved.checked)) return;
619
+ setPaths(nextPaths);
558
620
  searchValue = '';
559
621
  } else {
560
622
  setValue(p.values.slice());
@@ -582,6 +644,19 @@
582
644
  // leafOnly=true:完全勾选的父级折叠为父路径并停止下钻(父 tag 代表整子树)。
583
645
  const checkedLeafPaths = $derived.by<{ path: Key[]; labels: string[]; nodes: CascaderNode[] }[]>(() => {
584
646
  if (!multiple) return [];
647
+ // unRelated(互不联动):tag 源直接取用户实际勾选的每条路径(currentPaths),
648
+ // 不走联动推导的 checkState、不下钻到叶子(对齐 Semi:unRelated 用 checkedKeys 直接回显)。
649
+ // 否则勾选中间节点(如「热带」)会被 conduct 联动展开成其叶子 tag(芒果/菠萝),语义错。
650
+ if (isUnRelated) {
651
+ const out: { path: Key[]; labels: string[]; nodes: CascaderNode[] }[] = [];
652
+ for (const p of currentPaths) {
653
+ if (p.length === 0) continue;
654
+ const chain = findPath(normalizedTreeData, p);
655
+ if (chain.length === 0) continue;
656
+ out.push({ path: p, labels: chain.map((n) => n.label), nodes: chain });
657
+ }
658
+ return out;
659
+ }
585
660
  const out: { path: Key[]; labels: string[]; nodes: CascaderNode[] }[] = [];
586
661
  const walk = (nodes: CascaderNode[], path: Key[], labels: string[], chain: CascaderNode[]) => {
587
662
  for (const n of nodes) {
@@ -604,29 +679,34 @@
604
679
  return out;
605
680
  });
606
681
 
607
- // maxTagCount 折叠:显示前 N tag + 隐藏数(仅影响显示,不改 value,红线 #1/#2)。
608
- const visibleTagPaths = $derived(
609
- maxTagCount !== undefined && maxTagCount >= 0
610
- ? checkedLeafPaths.slice(0, maxTagCount)
611
- : checkedLeafPaths,
612
- );
613
- const hiddenTagCount = $derived(
614
- maxTagCount !== undefined && maxTagCount >= 0
615
- ? Math.max(0, checkedLeafPaths.length - maxTagCount)
616
- : 0,
682
+ // --- 多选触发器复用 TagInput(对齐 Semi renderTagInput)---
683
+ // TagInput 消费 string[] 的 value(每条选中路径以其末端节点 value 为 key),
684
+ // 折叠 maxTagCount / 剩余 Popover / +N 均由 TagInput 内部处理(Semi 同构)。
685
+ // key→路径回显数据映射:renderTagItem 收到 key 后据此取路径 label;onRemove 据此取叶子 value。
686
+ const tagKeyToLeaf = $derived.by(() => {
687
+ const m = new Map<string, { path: Key[]; labels: string[]; nodes: CascaderNode[] }>();
688
+ for (const leaf of checkedLeafPaths) {
689
+ m.set(String(leaf.path[leaf.path.length - 1]), leaf);
690
+ }
691
+ return m;
692
+ });
693
+ // TagInput value:每条选中路径末端节点 value 的字符串键(顺序即 checkedLeafPaths 顺序)。
694
+ const tagInputValue = $derived(
695
+ checkedLeafPaths.map((leaf) => String(leaf.path[leaf.path.length - 1])),
617
696
  );
618
-
619
- // clearable / showClear 别名归一(showClear prop 优先 clearable)
620
- const effClearable = $derived(showClearProp ?? clearable ?? false);
621
- // expandIcon / arrowIcon 别名归一
622
- const effExpandIcon = $derived(expandIcon ?? arrowIcon);
697
+ // exactOptionalPropertyTypes:可选 prop 传 undefined 会报错,缺省时不带该键(对象展开透传)。
698
+ const tagInputOptional = $derived<Record<string, unknown>>({
699
+ ...(maxTagCount !== undefined ? { maxTagCount } : {}),
700
+ ...(restTagsPopoverProps !== undefined ? { restTagsPopoverProps } : {}),
701
+ ...(showBuiltinSearch ? { onInputChange: (v: string) => (searchValue = v) } : {}),
702
+ });
623
703
 
624
704
  const selectedChain = $derived(findPath(normalizedTreeData, currentValue));
625
705
  const displayLabel = $derived(renderPath(selectedChain.map((n) => n.label), selectedChain));
626
706
  const hasSelection = $derived(
627
707
  multiple ? checkedLeafPaths.length > 0 : selectedChain.length > 0,
628
708
  );
629
- const showClear = $derived(effClearable && !disabled && hasSelection);
709
+ const showClear = $derived(showClearProp && !disabled && hasSelection);
630
710
 
631
711
  // 单条路径回显文本:有 displayRender 走自定义(仍传 label 链 + 节点链);
632
712
  // 否则按 displayProp 取 label 或 value 链,用 separator 连接。
@@ -639,7 +719,12 @@
639
719
 
640
720
  function setValue(next: Key[]) {
641
721
  if (!isValueControlled) innerValue = next;
642
- onChange?.(next);
722
+ // onChangeWithObject=true:回传选中路径上每个节点的完整对象链,而非 value 数组。
723
+ if (onChangeWithObject) {
724
+ onChange?.(findPath(normalizedTreeData, next));
725
+ } else {
726
+ onChange?.(next);
727
+ }
643
728
  }
644
729
 
645
730
  // 多选:由 conduct 解析后的 checked 全集生成多条路径回调。
@@ -675,11 +760,43 @@
675
760
 
676
761
  function setPaths(nextPaths: Key[][]) {
677
762
  if (!isValueControlled) innerPaths = nextPaths;
678
- onChange?.(nextPaths);
763
+ // onChangeWithObject=true:每条选中路径回传其完整节点链(CascaderNode[]),而非 value 链。
764
+ if (onChangeWithObject) {
765
+ onChange?.(nextPaths.map((p) => findPath(normalizedTreeData, p)));
766
+ } else {
767
+ onChange?.(nextPaths);
768
+ }
679
769
  }
680
770
 
681
- // 切换某节点勾选(支持 related/unRelated 两种模式)
682
- function toggleCheckNode(node: CascaderNode) {
771
+ // value 集合收集对应节点对象(用于 onExceed 回调)。
772
+ function nodesForKeys(keys: Set<Key>): CascaderNode[] {
773
+ const out: CascaderNode[] = [];
774
+ const walk = (nodes: CascaderNode[]) => {
775
+ for (const n of nodes) {
776
+ if (keys.has(n.value)) out.push(n);
777
+ const kids = childrenOf(n);
778
+ if (kids && kids.length > 0) walk(kids);
779
+ }
780
+ };
781
+ walk(normalizedTreeData);
782
+ return out;
783
+ }
784
+
785
+ // max 数量上限(对齐 Semi):仅在「增加勾选」且结果超出 max 时拦截并调 onExceed;
786
+ // 减少勾选始终放行。prevSize/nextSize 为归一后的对外 value 计数(related=已解析集,
787
+ // unRelated=显式勾选集),保持与 Semi「resolved/checked size」一致。
788
+ function exceedsMax(prevSize: number, nextSize: number, nextKeys: Set<Key>): boolean {
789
+ if (max === undefined || max < 0) return false;
790
+ if (nextSize > prevSize && nextSize > max) {
791
+ onExceed?.(nodesForKeys(nextKeys));
792
+ return true;
793
+ }
794
+ return false;
795
+ }
796
+
797
+ // 切换某节点勾选(支持 related/unRelated 两种模式)。colIndex=该节点所在列,
798
+ // 用于在 unRelated 下构建完整路径(父路径 = activePath 前 colIndex 项)。
799
+ function toggleCheckNode(node: CascaderNode, colIndex?: number) {
683
800
  if (node.disabled || disabled) return;
684
801
  if (isUnRelated) {
685
802
  // unRelated: 独立切换,不联动父子
@@ -689,20 +806,22 @@
689
806
  if (idx >= 0) {
690
807
  nextPaths.splice(idx, 1);
691
808
  } else {
692
- // activePath 构建完整路径
693
- const colIdx = activePath.indexOf(nodeVal);
694
- if (colIdx >= 0) {
695
- nextPaths.push(activePath.slice(0, colIdx + 1));
696
- } else {
697
- nextPaths.push([nodeVal]);
698
- }
809
+ // 构建完整路径:第 colIndex 列节点的父路径 = activePath 前 colIndex 项。
810
+ // colIndex 而非 activePath.indexOf(nodeVal)——后者在值重复/父列未展开时会失败,
811
+ // 导致存入残缺路径(如只有 [tropical] 丢了父 fruit),findPath 解析不到而 tag 不渲染。
812
+ const parent = typeof colIndex === 'number' ? activePath.slice(0, colIndex) : [];
813
+ nextPaths.push([...parent, nodeVal]);
699
814
  }
815
+ const nextKeys = pathsToLeafBase(nextPaths);
816
+ if (exceedsMax(currentPaths.length, nextPaths.length, nextKeys)) return;
700
817
  setPaths(nextPaths);
701
818
  return;
702
819
  }
703
820
  const nextBase = toggleCheck(mergedTreeData, checkedBase, node.value);
704
821
  const resolved = conduct(mergedTreeData, nextBase);
705
- setPaths(leafBaseToPaths(resolved.checked));
822
+ const nextPaths = leafBaseToPaths(resolved.checked);
823
+ if (exceedsMax(currentPaths.length, nextPaths.length, resolved.checked)) return;
824
+ setPaths(nextPaths);
706
825
  }
707
826
 
708
827
  // 移除某 tag(按叶子 value 取消勾选,联动祖先半选更新)
@@ -713,8 +832,14 @@
713
832
  setPaths(nextPaths);
714
833
  return;
715
834
  }
716
- const nextBase = new Set(checkedBase);
717
- nextBase.delete(leafValue);
835
+ // 修复 autoMergeValue 合并态删除失效:checkedBase 在合并态含父 key、不含被合并的叶子,
836
+ // 直接 delete(leafValue) 会 miss。改从 tag 显示源 checkedLeafPaths(完整展开的叶子路径,
837
+ // 与 tag 一一对应)重建叶子基集 minus 要删的叶子,保证删除源与显示源一致。
838
+ const nextBase = new Set<Key>();
839
+ for (const leaf of checkedLeafPaths) {
840
+ const key = leaf.path[leaf.path.length - 1] as Key;
841
+ if (key !== leafValue) nextBase.add(key);
842
+ }
718
843
  const resolved = conduct(mergedTreeData, nextBase);
719
844
  setPaths(leafBaseToPaths(resolved.checked));
720
845
  }
@@ -734,7 +859,6 @@
734
859
  if (next === isOpen) return;
735
860
  if (!next) searchValue = '';
736
861
  if (!isOpenControlled) innerOpen = next;
737
- onOpenChange?.(next);
738
862
  onDropdownVisibleChange?.(next);
739
863
  if (next) {
740
864
  // 打开时同步 activePath 到当前选中路径
@@ -752,9 +876,34 @@
752
876
 
753
877
  function toggleOpen() {
754
878
  if (disabled) return;
879
+ // 对齐 Semi handleClick:可搜索时点击开着的触发器不收起(焦点留搜索框继续输入)。
880
+ if (isOpen && showBuiltinSearch) return;
755
881
  setOpen(!isOpen);
756
882
  }
757
883
 
884
+ // --- 命令式 Methods(经 bind:this 组件实例调用)---
885
+ // 复用现成 setOpen(尊重受控/非受控 + onOpenChange/onDropdownVisibleChange 副作用)。
886
+ /** 打开下拉面板。 */
887
+ export function open() {
888
+ setOpen(true);
889
+ }
890
+ /** 关闭下拉面板。 */
891
+ export function close() {
892
+ setOpen(false);
893
+ }
894
+ /** 聚焦触发器可聚焦元素(消费 preventScroll)。 */
895
+ export function focus() {
896
+ rootEl?.focus({ preventScroll });
897
+ }
898
+ /** 触发器失焦。 */
899
+ export function blur() {
900
+ rootEl?.blur();
901
+ }
902
+ /** 以编程方式设置搜索值并触发搜索流程(等价用户在搜索框输入)。 */
903
+ export function search(value: string) {
904
+ searchValue = value;
905
+ }
906
+
758
907
  function isActiveAt(colIndex: number, node: CascaderNode): boolean {
759
908
  return activePath[colIndex] === node.value;
760
909
  }
@@ -814,7 +963,7 @@
814
963
  }
815
964
  // enableLeafClick: 只有 true 时叶子点击触发勾选
816
965
  if (enableLeafClick || !node.isLeaf) {
817
- toggleCheckNode(node);
966
+ toggleCheckNode(node, colIndex);
818
967
  }
819
968
  return;
820
969
  }
@@ -859,6 +1008,33 @@
859
1008
  }
860
1009
  }
861
1010
 
1011
+ // hover 展开延迟:enter 延迟 mouseEnterDelay 后展开;leave 清除 pending enter
1012
+ // 定时器(延迟 mouseLeaveDelay),避免鼠标划过瞬间抖动展开。timer 用普通变量。
1013
+ let hoverTimer: ReturnType<typeof setTimeout> | undefined;
1014
+ function clearHoverTimer() {
1015
+ if (hoverTimer !== undefined) {
1016
+ clearTimeout(hoverTimer);
1017
+ hoverTimer = undefined;
1018
+ }
1019
+ }
1020
+ function scheduleHoverExpand(colIndex: number, node: CascaderNode) {
1021
+ if (effectiveExpandTrigger !== 'hover') return;
1022
+ clearHoverTimer();
1023
+ hoverTimer = setTimeout(() => {
1024
+ hoverTimer = undefined;
1025
+ hoverExpand(colIndex, node);
1026
+ }, mouseEnterDelay);
1027
+ }
1028
+ function scheduleHoverLeave() {
1029
+ if (effectiveExpandTrigger !== 'hover') return;
1030
+ // 移出:仅清除 pending 的 enter 展开(延迟 mouseLeaveDelay),不主动收起已展开列。
1031
+ if (hoverTimer === undefined) return;
1032
+ const pending = hoverTimer;
1033
+ hoverTimer = undefined;
1034
+ setTimeout(() => clearTimeout(pending), mouseLeaveDelay);
1035
+ }
1036
+ $effect(() => () => clearHoverTimer());
1037
+
862
1038
  function clearAll(e: MouseEvent) {
863
1039
  e.stopPropagation();
864
1040
  if (disabled) return;
@@ -984,7 +1160,7 @@
984
1160
  case ' ':
985
1161
  e.preventDefault();
986
1162
  if (node) {
987
- if (multiple) toggleCheckNode(node);
1163
+ if (multiple) toggleCheckNode(node, kbCol);
988
1164
  else selectNode(kbCol, node);
989
1165
  }
990
1166
  break;
@@ -997,13 +1173,21 @@
997
1173
  let rootEl = $state<HTMLDivElement | null>(null);
998
1174
  let panelEl = $state<HTMLDivElement | null>(null);
999
1175
 
1000
- // --- destroyOnClose:默认 false 时首开后保留浮层 DOM(仅 --hidden 切显隐),
1001
- // true 时关闭即从 DOM 卸载({#if shouldRender}),重开重建。 ---
1176
+ // 浮层 DOM 保活:首开后保留(仅 -hidden 切显隐),对齐 Semi Popover motion(无 destroyOnClose)。
1002
1177
  let hasBeenOpened = $state(false);
1003
1178
  $effect(() => {
1004
1179
  if (isOpen) hasBeenOpened = true;
1005
1180
  });
1006
- const shouldRender = $derived(destroyOnClose ? isOpen : isOpen || hasBeenOpened);
1181
+ const shouldRender = $derived(isOpen || hasBeenOpened);
1182
+
1183
+ // 打开且内置可搜索时聚焦触发器内搜索 Input(对齐 Semi toggle2SearchInput→focus)。
1184
+ // 焦点从 root(combobox) 转移到 Input 原生 input:searchable 时 combobox 语义由 Input 承载。
1185
+ $effect(() => {
1186
+ if (showInput && searchInputEl) {
1187
+ // tick 后聚焦,待 Input 挂载。
1188
+ requestAnimationFrame(() => searchInputEl?.focus());
1189
+ }
1190
+ });
1007
1191
 
1008
1192
  // 空态文本(emptyContent 为 string 时用,Snippet 时模板直接渲染)。
1009
1193
  const emptyText = $derived(
@@ -1022,99 +1206,203 @@
1022
1206
  });
1023
1207
  });
1024
1208
 
1209
+ // 对齐 Semi 修饰类:single/multiple/filterable/focus(=open)/error/warning/borderless/with-prefix/with-suffix。
1025
1210
  const cls = $derived(
1026
1211
  [
1027
1212
  'cd-cascader',
1028
- `cd-cascader--${size}`,
1029
- `cd-cascader--${status}`,
1030
- disabled && 'cd-cascader--disabled',
1031
- isOpen && 'cd-cascader--open',
1032
- position && `cd-cascader--${position}`,
1033
- borderless && 'cd-cascader--borderless',
1034
- motion === false && 'cd-cascader--no-motion',
1213
+ size === 'small' && 'cd-cascader-small',
1214
+ size === 'large' && 'cd-cascader-large',
1215
+ validateStatus === 'error' && 'cd-cascader-error',
1216
+ validateStatus === 'warning' && 'cd-cascader-warning',
1217
+ disabled && 'cd-cascader-disabled',
1218
+ isOpen && 'cd-cascader-focus',
1219
+ multiple ? 'cd-cascader-multiple' : 'cd-cascader-single',
1220
+ isFilterable && 'cd-cascader-filterable',
1221
+ borderless && 'cd-cascader-borderless',
1222
+ (prefix || insetLabel) && 'cd-cascader-with-prefix',
1223
+ suffix && 'cd-cascader-with-suffix',
1224
+ motion === false && 'cd-cascader-no-motion',
1225
+ className,
1035
1226
  ]
1036
1227
  .filter(Boolean)
1037
1228
  .join(' '),
1038
1229
  );
1039
1230
  </script>
1040
1231
 
1041
- <div class={cls} bind:this={rootEl} {style}>
1042
- <!-- combobox 容器用 div 以合法承载多选 tags / clear 等内部交互元素 -->
1043
- {#if triggerRender}
1044
- {@render triggerRender({ value, placeholder, isOpen, disabled })}
1045
- {:else}
1046
- <div
1047
- class="cd-cascader__trigger"
1232
+ <!--
1233
+ root 触发器容器(对齐 Semi .semi-cascader,含 prefix / selection / clearbtn / arrow / suffix)。
1234
+ - 非搜索:root 承载 role=combobox + tabindex + 键盘(aria-activedescendant 列内 roving),焦点在 root。
1235
+ - 内置可搜索:combobox 语义下移到 selection 内的搜索 <Input>(原生 input 承载 role/aria +
1236
+ 键盘),root 转为普通容器(无 role/tabindex,避免嵌套双 combobox)。对齐 Semi renderInput。
1237
+ -->
1238
+ <!--
1239
+ searchInput:触发器内搜索 <Input>(对齐 Semi renderInput 的 {showInput && <Input/>})。
1240
+ combobox 语义经 rest 透传落到 Input 内部原生 <input>:role=combobox + aria-expanded
1241
+ + aria-controls + aria-activedescendant + aria-autocomplete=list。受控值 searchValue + onInput
1242
+ 回填(勿 bind:)。键盘走 onFlatKeydown(搜索态 roving)+ Escape 关闭。
1243
+ -->
1244
+ {#snippet searchInput()}
1245
+ <Input
1246
+ bind:this={searchInputEl}
1247
+ class="cd-cascader-search-input"
1248
+ size={size === 'large' ? 'default' : 'small'}
1249
+ borderless
1250
+ {disabled}
1251
+ {validateStatus}
1252
+ value={searchValue}
1253
+ placeholder={hasSelection ? '' : (searchPlaceholder ?? loc().t('Cascader.searchPlaceholder'))}
1254
+ ariaLabel={ariaLabel}
1048
1255
  role="combobox"
1049
1256
  aria-haspopup="listbox"
1050
1257
  aria-expanded={isOpen}
1051
- aria-controls={listId}
1052
- aria-activedescendant={isOpen && !searchActive ? activeDescId : undefined}
1053
- aria-label={ariaLabel}
1054
- aria-invalid={status === 'error' || undefined}
1055
- aria-disabled={disabled || undefined}
1056
- tabindex={disabled ? -1 : 0}
1057
- onclick={toggleOpen}
1058
- onfocus={(e) => onFocus?.(e as unknown as MouseEvent)}
1059
- onblur={(e) => onBlur?.(e as unknown as MouseEvent)}
1060
- onkeydown={(e) => {
1061
- if (disabled) return;
1062
- if (!isOpen) {
1063
- // 关闭态:Enter/Space/Down 打开浮层。
1064
- if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
1065
- e.preventDefault();
1066
- setOpen(true);
1067
- }
1068
- return;
1069
- }
1070
- // 打开态:搜索激活时由搜索框处理 roving,焦点不在触发器;
1071
- // 否则触发器(焦点宿主)驱动列 roving(aria-activedescendant 模型)。
1072
- if (!searchActive) onPanelKeydown(e);
1258
+ aria-controls={searchActive ? flatListId : listId}
1259
+ aria-activedescendant={activeDescId}
1260
+ aria-autocomplete="list"
1261
+ onInput={(v) => (searchValue = v)}
1262
+ onKeyDown={(e) => {
1263
+ if (searchActive) onFlatKeydown(e);
1073
1264
  else if (e.key === 'Escape') setOpen(false);
1265
+ else onPanelKeydown(e);
1074
1266
  }}
1075
- >
1076
- {#if prefix}
1077
- <span class="cd-cascader__prefix" aria-hidden="true">
1078
- {#if typeof prefix === 'string'}{prefix}{:else}{@render (prefix as Snippet)()}{/if}
1079
- </span>
1267
+ />
1268
+ {/snippet}
1269
+
1270
+ <!-- searchTrigger:Semi renderInput search-wrapper(span[displayText|placeholder] + searchInput)。 -->
1271
+ {#snippet searchTrigger(displayText: string)}
1272
+ <div class="cd-cascader-search-wrapper">
1273
+ <span
1274
+ class={[
1275
+ !displayText && 'cd-cascader-selection-placeholder',
1276
+ displayText && 'cd-cascader-selection-text',
1277
+ showInput && searchValue && 'cd-cascader-selection-text-hide',
1278
+ showInput && !searchValue && 'cd-cascader-selection-text-inactive',
1279
+ ].filter(Boolean).join(' ')}
1280
+ >{displayText ? displayText : (placeholder ?? '')}</span>
1281
+ {#if showInput}
1282
+ {@render searchInput()}
1283
+ {/if}
1284
+ </div>
1285
+ {/snippet}
1286
+
1287
+ <!-- svelte-ignore a11y_interactive_supports_focus -->
1288
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
1289
+ <div
1290
+ class={cls}
1291
+ bind:this={rootEl}
1292
+ {style}
1293
+ role={triggerRender || showBuiltinSearch ? undefined : 'combobox'}
1294
+ aria-haspopup={triggerRender || showBuiltinSearch ? undefined : 'listbox'}
1295
+ aria-expanded={triggerRender || showBuiltinSearch ? undefined : isOpen}
1296
+ aria-controls={triggerRender || showBuiltinSearch ? undefined : listId}
1297
+ aria-activedescendant={!triggerRender && !showBuiltinSearch && isOpen && !searchActive ? activeDescId : undefined}
1298
+ aria-label={triggerRender || showBuiltinSearch ? undefined : ariaLabel}
1299
+ aria-labelledby={ariaLabelledby}
1300
+ aria-describedby={ariaDescribedby}
1301
+ aria-errormessage={ariaErrormessage}
1302
+ aria-required={ariaRequired || undefined}
1303
+ aria-invalid={!triggerRender && !showBuiltinSearch && validateStatus === 'error' ? true : undefined}
1304
+ aria-disabled={!triggerRender && !showBuiltinSearch && disabled ? true : undefined}
1305
+ tabindex={triggerRender || showBuiltinSearch ? undefined : (disabled ? -1 : 0)}
1306
+ onclick={triggerRender ? undefined : toggleOpen}
1307
+ onfocus={triggerRender ? undefined : (e) => onFocus?.(e as unknown as MouseEvent)}
1308
+ onblur={triggerRender ? undefined : (e) => onBlur?.(e as unknown as MouseEvent)}
1309
+ onkeydown={triggerRender || showBuiltinSearch ? undefined : (e) => {
1310
+ if (disabled) return;
1311
+ if (!isOpen) {
1312
+ if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
1313
+ e.preventDefault();
1314
+ setOpen(true);
1315
+ }
1316
+ return;
1317
+ }
1318
+ if (!searchActive) onPanelKeydown(e);
1319
+ else if (e.key === 'Escape') setOpen(false);
1320
+ }}
1321
+ >
1322
+ {#if triggerRender}
1323
+ {@render triggerRender({ value, placeholder: placeholder ?? '', isOpen, disabled })}
1324
+ {:else}
1325
+ {#if prefix || insetLabel}
1326
+ <div class="cd-cascader-prefix" aria-hidden="true">
1327
+ {#if prefix}
1328
+ {#if typeof prefix === 'string'}
1329
+ <span class="cd-cascader-prefix-text">{prefix}</span>
1330
+ {:else}{@render (prefix as Snippet)()}{/if}
1331
+ {/if}
1332
+ {#if insetLabel}
1333
+ <span class="cd-cascader-inset-label" id={insetLabelId}>
1334
+ {#if typeof insetLabel === 'string'}{insetLabel}{:else}{@render (insetLabel as Snippet)()}{/if}
1335
+ </span>
1336
+ {/if}
1337
+ </div>
1080
1338
  {/if}
1081
1339
 
1082
- <span class="cd-cascader__content">
1340
+ <div class={['cd-cascader-selection', multiple && 'cd-cascader-selection-multiple'].filter(Boolean).join(' ')}>
1083
1341
  {#if multiple}
1084
- {#if checkedLeafPaths.length > 0}
1085
- <span class="cd-cascader__tags">
1086
- {#each visibleTagPaths as leaf (leaf.path.join('/'))}
1342
+ <!--
1343
+ 多选触发器整体复用 TagInput(严格对齐 Semi renderTagInput):
1344
+ value=已选叶子 key、maxTagCount/showRestTagsPopover/restTagsPopoverProps 透传、
1345
+ renderTagItem 保留 cascader 路径 label 回显、inputValue+onInputChange 接搜索过滤、
1346
+ onRemove 接删除叶子(受控不回写 value,仅 onChange,红线 #1)、expandRestTagsOnClick=false。
1347
+ 搜索输入内建在 TagInput(Semi 同构,无独立搜索 Input);不可搜索时 TagInput 输入框仅占位不生效。
1348
+ -->
1349
+ <TagInput
1350
+ {disabled}
1351
+ size={size === 'large' ? 'large' : size === 'small' ? 'small' : 'default'}
1352
+ {validateStatus}
1353
+ value={tagInputValue}
1354
+ {showRestTagsPopover}
1355
+ expandRestTagsOnClick={false}
1356
+ inputValue={showBuiltinSearch ? searchValue : ''}
1357
+ {...tagInputOptional}
1358
+ onRemove={(removedKey) => {
1359
+ const leaf = tagKeyToLeaf.get(removedKey);
1360
+ if (leaf) removeLeaf(leaf.path[leaf.path.length - 1] as Key);
1361
+ }}
1362
+ placeholder={hasSelection ? '' : (placeholder ?? '')}
1363
+ ariaLabel={ariaLabel}
1364
+ >
1365
+ {#snippet renderTagItem({ value: nodeKey, onClose })}
1366
+ {@const leaf = tagKeyToLeaf.get(nodeKey)}
1367
+ {#if leaf}
1087
1368
  <Tag
1088
- size={size === 'large' ? 'default' : 'small'}
1369
+ class="cd-cascader-selection-tag"
1370
+ size={size === 'large' ? 'large' : 'small'}
1371
+ color="white"
1372
+ type="light"
1089
1373
  closable={!disabled}
1090
- onClose={() => removeLeaf(leaf.path[leaf.path.length - 1] as Key)}
1374
+ onClose={(_children, e) => {
1375
+ e.preventDefault();
1376
+ onClose();
1377
+ }}
1091
1378
  >
1092
1379
  {renderPath(leaf.labels, leaf.nodes)}
1093
1380
  </Tag>
1094
- {/each}
1095
- {#if hiddenTagCount > 0}
1096
- <Tag size={size === 'large' ? 'default' : 'small'}>+{hiddenTagCount}</Tag>
1097
1381
  {/if}
1098
- </span>
1099
- {:else}
1100
- <span class="cd-cascader__placeholder">{placeholder}</span>
1101
- {/if}
1382
+ {/snippet}
1383
+ </TagInput>
1384
+ {:else if showBuiltinSearch}
1385
+ <!-- 单选 + 内置可搜索:displayText/placeholder span + showInput 时的搜索 Input
1386
+ (对齐 Semi renderInput:search-wrapper > span + <Input>,非浮层顶部裸 input)。 -->
1387
+ {@render searchTrigger(hasSelection ? displayLabel : '')}
1102
1388
  {:else if hasSelection}
1103
- <span class="cd-cascader__value">{displayLabel}</span>
1389
+ <span class="cd-cascader-selection-text">{displayLabel}</span>
1104
1390
  {:else}
1105
- <span class="cd-cascader__placeholder">{placeholder}</span>
1391
+ <span class="cd-cascader-selection-placeholder">{placeholder ?? ''}</span>
1106
1392
  {/if}
1107
- </span>
1393
+ </div>
1108
1394
 
1109
1395
  {#if suffix}
1110
- <span class="cd-cascader__suffix" aria-hidden="true">
1111
- {#if typeof suffix === 'string'}{suffix}{:else}{@render (suffix as Snippet)()}{/if}
1112
- </span>
1396
+ <div class="cd-cascader-suffix" aria-hidden="true">
1397
+ {#if typeof suffix === 'string'}
1398
+ <span class="cd-cascader-suffix-text">{suffix}</span>
1399
+ {:else}{@render (suffix as Snippet)()}{/if}
1400
+ </div>
1113
1401
  {/if}
1114
1402
 
1115
1403
  {#if showClear}
1116
1404
  <span
1117
- class="cd-cascader__clear"
1405
+ class="cd-cascader-clearbtn"
1118
1406
  role="button"
1119
1407
  tabindex="-1"
1120
1408
  aria-label={loc().t('Cascader.clear')}
@@ -1129,110 +1417,111 @@
1129
1417
  {#if clearIcon}
1130
1418
  {@render clearIcon()}
1131
1419
  {:else}
1132
- <svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true" focusable="false">
1133
- <path
1134
- fill="currentColor"
1135
- d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1Zm2.5 9.1-1.4 1.4L8 9.4 6.5 11l-1.4-1.4L6.6 8 5.1 6.5 6.5 5.1 8 6.6 9.5 5.1l1.4 1.4L9.4 8l1.1 1.1Z"
1136
- />
1137
- </svg>
1420
+ <IconClear aria-hidden="true" />
1138
1421
  {/if}
1139
1422
  </span>
1140
1423
  {/if}
1141
1424
 
1142
- <span class="cd-cascader__arrow" aria-hidden="true">
1143
- {#if effExpandIcon}
1144
- {@render effExpandIcon()}
1425
+ <span class="cd-cascader-arrow" aria-hidden="true">
1426
+ {#if arrowIcon}
1427
+ {@render arrowIcon()}
1145
1428
  {:else}
1146
- <svg viewBox="0 0 16 16" width="12" height="12" focusable="false">
1147
- <path fill="currentColor" d="M3.5 6 8 10.5 12.5 6l-1-1L8 8.5 4.5 5l-1 1Z" />
1148
- </svg>
1429
+ <IconChevronDown aria-hidden="true" />
1149
1430
  {/if}
1150
1431
  </span>
1151
- </div>
1152
1432
  {/if}
1153
1433
 
1154
1434
  {#if shouldRender}
1155
1435
  <div
1156
- class="cd-cascader__panel"
1157
- class:cd-cascader__panel--hidden={!isOpen}
1436
+ class={['cd-cascader-popover', dropdownClassName].filter(Boolean).join(' ')}
1437
+ class:cd-cascader-popover-hidden={!isOpen}
1158
1438
  bind:this={panelEl}
1159
1439
  use:floating={{
1160
1440
  trigger: rootEl,
1161
1441
  placement: 'bottomStart',
1162
- autoAdjust: true,
1163
- offset: 4,
1442
+ autoAdjust: autoAdjustOverflow,
1443
+ offset: dropdownOffset,
1164
1444
  getContainer: resolvePopupContainer,
1165
1445
  open: isOpen,
1166
1446
  }}
1167
1447
  id={listId}
1168
- style:z-index={zIndex}
1448
+ style={dropdownStyleStr}
1169
1449
  >
1170
1450
  {#if topSlot}{@render topSlot()}{/if}
1171
1451
 
1172
- {#if showBuiltinSearch}
1173
- <div class="cd-cascader__search">
1174
- <input
1175
- class="cd-cascader__search-input"
1176
- type="text"
1177
- role="combobox"
1178
- aria-expanded={searchActive}
1179
- aria-controls={flatListId}
1180
- aria-activedescendant={searchActive ? activeDescId : undefined}
1181
- placeholder={loc().t('Cascader.searchPlaceholder')}
1182
- aria-label={loc().t('Cascader.searchPlaceholder')}
1183
- bind:value={searchValue}
1184
- onkeydown={onFlatKeydown}
1185
- />
1186
- </div>
1187
- {/if}
1188
1452
  {#if searchActive}
1189
- <ul
1190
- class="cd-cascader__flat"
1191
- role="listbox"
1192
- id={flatListId}
1193
- aria-label={loc().t('Cascader.searchResults')}
1194
- >
1195
- {#if filteredPaths.length === 0}
1196
- {#if isEmptySnippet}
1197
- <li class="cd-cascader__empty">{@render (emptyContent as Snippet)()}</li>
1453
+ <!-- 单条搜索结果项:virtualize 与非 virtualize 两路共用同一渲染,行为一致 -->
1454
+ {#snippet flatOption(p: FlatPath, fi: number)}
1455
+ <!-- 键盘经搜索框 aria-activedescendant 漫游管理,选项 tabindex=-1 click-only -->
1456
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
1457
+ <li
1458
+ id={flatItemId(p.values)}
1459
+ class="cd-cascader-option cd-cascader-option-flatten"
1460
+ class:cd-cascader-option-active={kbFlatIndex === fi}
1461
+ role="option"
1462
+ aria-selected={kbFlatIndex === fi}
1463
+ aria-disabled={p.disabled || undefined}
1464
+ onclick={() => selectFlatPath(p)}
1465
+ tabindex={-1}
1466
+ >
1467
+ {#if filterRender}
1468
+ {@render filterRender({ path: p })}
1198
1469
  {:else}
1199
- <li class="cd-cascader__empty">{emptyText}</li>
1470
+ <span class="cd-cascader-option-label">
1471
+ {#each highlightParts(p.labels.join(separator)) as part, i (i)}
1472
+ {#if part.mark}<span class="cd-cascader-option-label-highlight">{part.text}</span>{:else}{part.text}{/if}
1473
+ {/each}
1474
+ </span>
1200
1475
  {/if}
1201
- {:else}
1202
- {#each filteredPaths as p, fi (p.values.join('/'))}
1203
- <!-- 键盘经搜索框 aria-activedescendant 漫游管理,选项 tabindex=-1 click-only -->
1204
- <!-- svelte-ignore a11y_click_events_have_key_events -->
1205
- <li
1206
- id={flatItemId(p.values)}
1207
- class="cd-cascader__option cd-cascader__flat-option"
1208
- class:cd-cascader__option--active={kbFlatIndex === fi}
1209
- role="option"
1210
- aria-selected={kbFlatIndex === fi}
1211
- aria-disabled={p.disabled || undefined}
1212
- onclick={() => selectFlatPath(p)}
1213
- tabindex={-1}
1214
- >
1215
- {#if filterRender}
1216
- {@render filterRender({ path: p })}
1217
- {:else}
1218
- <span class="cd-cascader__option-label">
1219
- {#each highlightParts(p.labels.join(separator)) as part, i (i)}
1220
- {#if part.mark}<mark class="cd-cascader__highlight">{part.text}</mark>{:else}{part.text}{/if}
1221
- {/each}
1222
- </span>
1223
- {/if}
1224
- </li>
1225
- {/each}
1226
- {/if}
1227
- </ul>
1476
+ </li>
1477
+ {/snippet}
1478
+ {#if virtualizeInSearch && filteredPaths.length > 0}
1479
+ <!-- 搜索结果虚拟滚动:仅在传入 virtualizeInSearch 且有命中时启用 -->
1480
+ <div
1481
+ class="cd-cascader-option-lists cd-cascader-flatten"
1482
+ role="listbox"
1483
+ id={flatListId}
1484
+ aria-label={loc().t('Cascader.searchResults')}
1485
+ style:inline-size="{virtualizeInSearch.width}px"
1486
+ >
1487
+ <VirtualList
1488
+ data={filteredPaths}
1489
+ getKey={(p: FlatPath) => p.values.join('/')}
1490
+ itemSize={virtualizeInSearch.itemSize}
1491
+ height={virtualizeInSearch.height}
1492
+ >
1493
+ {#snippet renderItem(p: FlatPath, fi: number)}
1494
+ {@render flatOption(p, fi)}
1495
+ {/snippet}
1496
+ </VirtualList>
1497
+ </div>
1498
+ {:else}
1499
+ <ul
1500
+ class="cd-cascader-option-lists cd-cascader-flatten"
1501
+ role="listbox"
1502
+ id={flatListId}
1503
+ aria-label={loc().t('Cascader.searchResults')}
1504
+ >
1505
+ {#if filteredPaths.length === 0}
1506
+ {#if isEmptySnippet}
1507
+ <li class="cd-cascader-option-empty">{@render (emptyContent as Snippet)()}</li>
1508
+ {:else}
1509
+ <li class="cd-cascader-option-empty">{emptyText}</li>
1510
+ {/if}
1511
+ {:else}
1512
+ {#each filteredPaths as p, fi (p.values.join('/'))}
1513
+ {@render flatOption(p, fi)}
1514
+ {/each}
1515
+ {/if}
1516
+ </ul>
1517
+ {/if}
1228
1518
  {:else}
1229
- <div class="cd-cascader__columns">
1519
+ <div class="cd-cascader-option-lists">
1230
1520
  {#each columns as column, colIndex (colIndex)}
1231
1521
  <ul
1232
- class="cd-cascader__column"
1522
+ class="cd-cascader-option-list"
1233
1523
  role="listbox"
1234
1524
  aria-label={loc().t('Cascader.columnLabel', { level: colIndex + 1 })}
1235
- style:inline-size="{resolveColumnWidth(columnWidth, colIndex, 180)}px"
1236
1525
  onscroll={(e) => onListScroll?.(e, {
1237
1526
  panelIndex: colIndex,
1238
1527
  activeNode: columns[colIndex]?.find((n) => isActiveAt(colIndex, n)) ?? null,
@@ -1240,58 +1529,58 @@
1240
1529
  >
1241
1530
  {#if column.length === 0}
1242
1531
  {#if isEmptySnippet}
1243
- <li class="cd-cascader__empty">{@render (emptyContent as Snippet)()}</li>
1532
+ <li class="cd-cascader-option-empty">{@render (emptyContent as Snippet)()}</li>
1244
1533
  {:else}
1245
- <li class="cd-cascader__empty">{emptyText}</li>
1534
+ <li class="cd-cascader-option-empty">{emptyText}</li>
1246
1535
  {/if}
1247
1536
  {/if}
1248
1537
  {#each column as node (node.value)}
1538
+ {@const cs = multiple ? nodeCheck(node) : { checked: false, half: false }}
1249
1539
  <!-- 键盘经触发器 aria-activedescendant 漫游管理,选项 tabindex=-1 click-only -->
1250
1540
  <!-- svelte-ignore a11y_click_events_have_key_events -->
1251
1541
  <li
1252
1542
  id={colItemId(colIndex, node.value)}
1253
- class="cd-cascader__option"
1254
- class:cd-cascader__option--active={isActiveAt(colIndex, node)}
1255
- class:cd-cascader__option--kbactive={isKbActive(colIndex, node)}
1256
- class:cd-cascader__option--selected={isSelectedLeaf(colIndex, node)}
1543
+ class="cd-cascader-option"
1544
+ class:cd-cascader-option-active={isActiveAt(colIndex, node)}
1545
+ class:cd-cascader-option-kbactive={isKbActive(colIndex, node)}
1546
+ class:cd-cascader-option-select={isSelectedLeaf(colIndex, node)}
1547
+ class:cd-cascader-option-disabled={node.disabled}
1257
1548
  role="option"
1258
1549
  aria-selected={isActiveAt(colIndex, node)}
1259
1550
  aria-disabled={node.disabled || undefined}
1260
1551
  onclick={() => selectNode(colIndex, node)}
1261
- onpointerenter={() => hoverExpand(colIndex, node)}
1552
+ onpointerenter={() => scheduleHoverExpand(colIndex, node)}
1553
+ onpointerleave={scheduleHoverLeave}
1262
1554
  tabindex={-1}
1263
1555
  >
1264
- {#if multiple}
1265
- {@const cs = nodeCheck(node)}
1266
- <span
1267
- class="cd-cascader__checkbox"
1268
- class:cd-cascader__checkbox--checked={cs.checked}
1269
- class:cd-cascader__checkbox--half={cs.half}
1270
- role="button"
1271
- tabindex="-1"
1272
- aria-hidden="true"
1273
- onclick={(e) => {
1274
- e.stopPropagation();
1275
- toggleCheckNode(node);
1276
- }}
1277
- >
1278
- {#if cs.checked}
1279
- <svg viewBox="0 0 16 16" width="12" height="12" aria-hidden="true" focusable="false">
1280
- <path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M3.5 8.5l3 3 6-6.5" />
1281
- </svg>
1282
- {:else if cs.half}
1283
- <svg viewBox="0 0 16 16" width="12" height="12" aria-hidden="true" focusable="false">
1284
- <path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M4 8h8" />
1285
- </svg>
1286
- {/if}
1287
- </span>
1288
- {/if}
1289
- <span class="cd-cascader__option-label">{node.label}</span>
1556
+ <span class="cd-cascader-option-label">
1557
+ {#if multiple}
1558
+ <!-- 复用已对齐的 Checkbox:勾选由其 onChange 驱动 toggleCheckNode;
1559
+ stopPropagation 阻止冒泡到 li(否则 selectNode 会二次触发)。 -->
1560
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
1561
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
1562
+ <span
1563
+ class="cd-cascader-option-label-checkbox"
1564
+ onclick={(e) => e.stopPropagation()}
1565
+ >
1566
+ <Checkbox
1567
+ checked={cs.checked}
1568
+ indeterminate={cs.half}
1569
+ disabled={node.disabled || disabled}
1570
+ ariaLabel={node.label}
1571
+ onChange={() => toggleCheckNode(node, colIndex)}
1572
+ />
1573
+ </span>
1574
+ {/if}
1575
+ {node.label}
1576
+ </span>
1290
1577
  {#if isLoading(node)}
1291
- <span class="cd-cascader__option-loading" aria-label={loc().t('Cascader.loading')}></span>
1578
+ <span class="cd-cascader-option-icon cd-cascader-option-spin-icon" aria-label={loc().t('Cascader.loading')}>
1579
+ <IconSpin aria-hidden="true" />
1580
+ </span>
1292
1581
  {:else if canExpand(node)}
1293
- <span class="cd-cascader__option-expand" aria-hidden="true">
1294
- {#if expandIcon}{@render expandIcon()}{:else}{/if}
1582
+ <span class="cd-cascader-option-icon" aria-hidden="true">
1583
+ {#if expandIcon}{@render expandIcon()}{:else}<IconChevronRight aria-hidden="true" />{/if}
1295
1584
  </span>
1296
1585
  {/if}
1297
1586
  </li>
@@ -1307,94 +1596,112 @@
1307
1596
  </div>
1308
1597
 
1309
1598
  <style>
1599
+ /* 根即 combobox(对齐 Semi .semi-cascader 填充式触发器)。 */
1310
1600
  .cd-cascader {
1311
1601
  position: relative;
1312
1602
  display: inline-flex;
1313
- inline-size: 100%;
1314
- font-size: var(--cd-select-font-size);
1315
- }
1316
- .cd-cascader__trigger {
1317
- display: flex;
1318
1603
  align-items: center;
1319
- gap: var(--cd-spacing-tight);
1320
1604
  inline-size: 100%;
1321
1605
  min-block-size: var(--cd-select-height-default);
1322
- padding-inline: var(--cd-select-padding-x);
1606
+ box-sizing: border-box;
1607
+ font-size: var(--cd-select-font-size);
1323
1608
  background: var(--cd-select-bg);
1324
1609
  border: 1px solid var(--cd-select-border);
1325
1610
  border-radius: var(--cd-select-radius);
1326
- color: inherit;
1327
- font: inherit;
1328
- text-align: start;
1329
1611
  cursor: pointer;
1330
1612
  transition:
1331
1613
  border-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard),
1332
1614
  background-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
1333
1615
  }
1334
- .cd-cascader--small .cd-cascader__trigger {
1616
+ .cd-cascader-small {
1335
1617
  min-block-size: var(--cd-select-height-small);
1336
1618
  }
1337
- .cd-cascader--large .cd-cascader__trigger {
1619
+ .cd-cascader-large {
1338
1620
  min-block-size: var(--cd-select-height-large);
1339
1621
  }
1340
1622
  /* 对齐 Semi 填充式:悬浮加深底色(非展开/禁用态) */
1341
- .cd-cascader:not(.cd-cascader--open):not(.cd-cascader--disabled) .cd-cascader__trigger:hover {
1623
+ .cd-cascader:not(.cd-cascader-focus):not(.cd-cascader-disabled):hover {
1342
1624
  background: var(--cd-select-bg-hover);
1343
1625
  }
1344
- .cd-cascader__trigger:focus-visible {
1626
+ .cd-cascader:focus-visible {
1345
1627
  outline: none;
1346
1628
  background: var(--cd-select-bg);
1347
1629
  border-color: var(--cd-select-border-active);
1348
1630
  box-shadow: var(--cd-focus-ring);
1349
1631
  }
1350
- .cd-cascader--open .cd-cascader__trigger {
1632
+ .cd-cascader-focus {
1351
1633
  background: var(--cd-select-bg);
1352
1634
  border-color: var(--cd-select-border-active);
1353
1635
  }
1354
- .cd-cascader--error .cd-cascader__trigger {
1636
+ .cd-cascader-error {
1355
1637
  border-color: var(--cd-select-border-error);
1356
1638
  }
1357
- .cd-cascader__trigger[aria-disabled='true'] {
1639
+ .cd-cascader-disabled {
1358
1640
  background: var(--cd-color-disabled-fill, var(--cd-color-fill-0));
1359
1641
  color: var(--cd-color-text-3);
1360
1642
  cursor: not-allowed;
1643
+ user-select: none;
1361
1644
  }
1362
- .cd-cascader__content {
1363
- display: flex;
1645
+ /* 选中值 / 占位 / tags 容器 */
1646
+ .cd-cascader-selection {
1647
+ display: inline-flex;
1364
1648
  flex: 1 1 auto;
1365
1649
  align-items: center;
1650
+ flex-wrap: wrap;
1651
+ gap: var(--cd-spacing-extra-tight);
1366
1652
  min-inline-size: 0;
1653
+ overflow: hidden;
1654
+ padding-inline: var(--cd-select-padding-x);
1655
+ color: var(--cd-color-cascader-selection-text-default);
1656
+ }
1657
+ .cd-cascader-selection-text {
1658
+ overflow: hidden;
1659
+ white-space: nowrap;
1660
+ text-overflow: ellipsis;
1367
1661
  }
1368
- .cd-cascader__value {
1662
+ .cd-cascader-selection-placeholder {
1369
1663
  overflow: hidden;
1370
1664
  white-space: nowrap;
1371
1665
  text-overflow: ellipsis;
1666
+ color: var(--cd-color-cascader-placeholder-text-default);
1667
+ }
1668
+ /* 多选:TagInput 撑满选择区且去除外层内边距(TagInput 自带内边距 + tag 折叠/+N/搜索)。 */
1669
+ .cd-cascader-selection-multiple {
1670
+ padding-inline: 0;
1671
+ overflow: visible;
1372
1672
  }
1373
- .cd-cascader__placeholder {
1374
- color: var(--cd-input-color-placeholder);
1673
+ .cd-cascader-selection-multiple :global(.cd-tag-input) {
1674
+ inline-size: 100%;
1675
+ min-block-size: auto;
1676
+ border: none;
1677
+ background: transparent;
1375
1678
  }
1376
- .cd-cascader__clear,
1377
- .cd-cascader__arrow {
1679
+ .cd-cascader-clearbtn,
1680
+ .cd-cascader-arrow {
1378
1681
  display: inline-flex;
1379
1682
  align-items: center;
1380
1683
  justify-content: center;
1381
1684
  flex: 0 0 auto;
1382
- color: var(--cd-color-text-2);
1685
+ inline-size: var(--cd-width-cascader-icon, 32px);
1686
+ color: var(--cd-color-cascader-icon-default);
1383
1687
  }
1384
- .cd-cascader__clear {
1688
+ .cd-cascader-clearbtn {
1385
1689
  cursor: pointer;
1386
1690
  }
1387
- .cd-cascader__clear:hover {
1388
- color: var(--cd-color-text-0);
1691
+ .cd-cascader-clearbtn:hover {
1692
+ color: var(--cd-color-cascader-icon-hover);
1389
1693
  }
1390
- .cd-cascader__arrow {
1694
+ .cd-cascader-clearbtn:active {
1695
+ color: var(--cd-color-cascader-icon-active);
1696
+ }
1697
+ .cd-cascader-arrow {
1391
1698
  transition: transform var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
1392
1699
  }
1393
- .cd-cascader--open .cd-cascader__arrow {
1700
+ .cd-cascader-focus .cd-cascader-arrow {
1394
1701
  transform: rotate(180deg);
1395
1702
  }
1396
1703
  /* 面板 portal 到 body,由 JS 写 position:fixed + transform 定位 */
1397
- .cd-cascader__panel {
1704
+ .cd-cascader-popover {
1398
1705
  z-index: var(--cd-select-dropdown-z);
1399
1706
  display: flex;
1400
1707
  flex-direction: column;
@@ -1403,142 +1710,144 @@
1403
1710
  border-radius: var(--cd-select-dropdown-radius);
1404
1711
  box-shadow: var(--cd-select-dropdown-shadow);
1405
1712
  }
1406
- /* destroyOnClose=false 关闭后保留 DOM 但不可见、不可交互、不占位 */
1407
- .cd-cascader__panel--hidden {
1713
+ /* 关闭后保留 DOM 但不可见、不可交互、不占位(对齐 Semi Popover motion)。 */
1714
+ .cd-cascader-popover-hidden {
1408
1715
  display: none;
1409
1716
  }
1410
- /* 级联列容器:横向排列各列 */
1411
- .cd-cascader__columns {
1412
- display: flex;
1413
- max-block-size: 16rem;
1717
+ /* 触发器内搜索段(对齐 Semi renderInput 的 search-wrapper):占满选择区,
1718
+ span 与 <Input> 层叠占位。Input 无边框透明底,融入触发器(借用 Input borderless)。 */
1719
+ .cd-cascader-search-wrapper {
1720
+ position: relative;
1721
+ display: inline-flex;
1722
+ align-items: center;
1723
+ flex: 1 1 auto;
1724
+ min-inline-size: 0;
1414
1725
  }
1415
- .cd-cascader__search {
1416
- padding: var(--cd-spacing-extra-tight) var(--cd-spacing-tight);
1417
- border-block-end: 1px solid var(--cd-cascader-column-border);
1726
+ /* showInput 时 span 与 <Input> 层叠(span 绝对定位于输入框上层作占位);
1727
+ showInput(关闭态)时 span 留在正常流中撑起 wrapper 高度,避免塌陷不可见。 */
1728
+ .cd-cascader-search-wrapper:has(.cd-cascader-search-input) .cd-cascader-selection-placeholder,
1729
+ .cd-cascader-search-wrapper:has(.cd-cascader-search-input) .cd-cascader-selection-text {
1730
+ position: absolute;
1731
+ inset-inline: 0;
1732
+ pointer-events: none;
1418
1733
  }
1419
- .cd-cascader__search-input {
1734
+ /* showInput 且有输入:隐藏底层 displayText(改由 Input 显示输入值)。 */
1735
+ .cd-cascader-selection-text-hide {
1736
+ display: none;
1737
+ }
1738
+ /* showInput 且无输入:displayText 淡显作为占位提示(对齐 Semi selection-text-inactive)。 */
1739
+ .cd-cascader-selection-text-inactive {
1740
+ color: var(--cd-color-cascader-placeholder-text-default);
1741
+ }
1742
+ /* 触发器内搜索 Input:撑满、透明融入触发器(borderless 已去边框底色)。 */
1743
+ .cd-cascader-search-wrapper :global(.cd-cascader-search-input) {
1420
1744
  inline-size: 100%;
1421
- block-size: var(--cd-input-height-small);
1422
- padding-inline: var(--cd-input-padding-x);
1423
- background: var(--cd-input-bg, transparent);
1424
- color: inherit;
1425
- border: 1px solid var(--cd-input-border);
1426
- border-radius: var(--cd-input-radius);
1427
- font: inherit;
1428
- font-size: var(--cd-font-size-small);
1429
- }
1430
- .cd-cascader__search-input:focus-visible {
1431
- outline: none;
1432
- border-color: var(--cd-input-border-active);
1433
- box-shadow: var(--cd-focus-ring);
1745
+ background: transparent;
1434
1746
  }
1435
- /* 搜索结果:扁平路径列表(单列纵向滚动) */
1436
- .cd-cascader__flat {
1747
+ /* 各级菜单列容器:横向排列 */
1748
+ .cd-cascader-option-lists {
1749
+ display: flex;
1437
1750
  margin: 0;
1751
+ padding: 0;
1752
+ max-block-size: 16rem;
1753
+ }
1754
+ /* 搜索结果扁平列表:单列纵向滚动 */
1755
+ .cd-cascader-option-lists.cd-cascader-flatten {
1756
+ display: block;
1438
1757
  padding-block: var(--cd-spacing-extra-tight);
1439
- padding-inline: 0;
1440
1758
  list-style: none;
1441
- max-block-size: 16rem;
1442
1759
  min-inline-size: var(--cd-cascader-column-width);
1443
1760
  overflow-y: auto;
1444
1761
  }
1445
- .cd-cascader__flat-option {
1446
- justify-content: flex-start;
1447
- }
1448
- .cd-cascader__empty {
1449
- padding: var(--cd-tree-node-padding-x);
1450
- color: var(--cd-color-text-3);
1451
- text-align: center;
1452
- }
1453
- .cd-cascader__highlight {
1454
- padding: 0;
1455
- color: var(--cd-tree-search-highlight-color);
1456
- background: var(--cd-tree-search-highlight-bg);
1457
- }
1458
- .cd-cascader__column {
1762
+ .cd-cascader-option-list {
1763
+ box-sizing: border-box;
1459
1764
  margin: 0;
1460
1765
  padding-block: var(--cd-spacing-extra-tight);
1461
1766
  padding-inline: 0;
1462
1767
  list-style: none;
1463
1768
  overflow-y: auto;
1464
1769
  inline-size: var(--cd-cascader-column-width);
1465
- border-inline-end: 1px solid var(--cd-cascader-column-border);
1770
+ border-inline-start: 1px solid var(--cd-cascader-column-border);
1771
+ }
1772
+ .cd-cascader-option-list:first-child {
1773
+ border-inline-start: none;
1466
1774
  }
1467
- .cd-cascader__column:last-child {
1468
- border-inline-end: none;
1775
+ .cd-cascader-option-empty {
1776
+ padding: var(--cd-tree-node-padding-x);
1777
+ color: var(--cd-color-cascader-option-empty-text-default);
1778
+ text-align: center;
1779
+ cursor: not-allowed;
1469
1780
  }
1470
- .cd-cascader__option {
1781
+ .cd-cascader-option {
1471
1782
  display: flex;
1472
1783
  align-items: center;
1473
1784
  justify-content: space-between;
1474
1785
  gap: var(--cd-spacing-tight);
1475
1786
  block-size: var(--cd-tree-node-height);
1476
1787
  padding-inline: var(--cd-tree-node-padding-x);
1788
+ color: var(--cd-color-cascader-option-main-text-default);
1477
1789
  cursor: pointer;
1790
+ transition: background-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
1791
+ }
1792
+ .cd-cascader-option:hover {
1793
+ background: var(--cd-color-cascader-option-bg-hover);
1478
1794
  }
1479
- .cd-cascader__option:hover {
1480
- background: var(--cd-tree-node-bg-hover);
1795
+ .cd-cascader-option:active {
1796
+ background: var(--cd-color-cascader-option-bg-active);
1481
1797
  }
1482
- .cd-cascader__option--active {
1483
- background: var(--cd-tree-node-bg-active);
1798
+ /* 命中项(当前路径 active):primary-light 底色,对齐 Semi option-bg-selected */
1799
+ .cd-cascader-option-active,
1800
+ .cd-cascader-option-active:hover {
1801
+ background: var(--cd-color-cascader-option-bg-selected);
1484
1802
  }
1485
1803
  /* 键盘 roving 高亮(aria-activedescendant 当前项),焦点环不依赖真实 DOM 焦点 */
1486
- .cd-cascader__option--kbactive {
1804
+ .cd-cascader-option-kbactive {
1487
1805
  box-shadow: var(--cd-focus-ring);
1488
1806
  }
1489
- .cd-cascader__option--selected {
1490
- color: var(--cd-tree-node-color-selected);
1807
+ /* 选中叶子 / 搜索命中高亮文字:字重加粗 + primary 色 */
1808
+ .cd-cascader-option-select .cd-cascader-option-label,
1809
+ .cd-cascader-option-label-highlight {
1810
+ font-weight: var(--cd-font-cascader-select-fontweight);
1811
+ color: var(--cd-color-cascader-select-highlight);
1491
1812
  }
1492
- .cd-cascader__option:focus-visible {
1813
+ .cd-cascader-option:focus-visible {
1493
1814
  outline: none;
1494
1815
  box-shadow: var(--cd-focus-ring);
1495
1816
  }
1496
- .cd-cascader__option[aria-disabled='true'] {
1497
- color: var(--cd-color-text-3);
1817
+ .cd-cascader-option-disabled {
1818
+ color: var(--cd-color-cascader-option-disabled-text-default);
1498
1819
  cursor: not-allowed;
1499
1820
  }
1500
- .cd-cascader__option-label {
1821
+ .cd-cascader-option-disabled:hover,
1822
+ .cd-cascader-option-disabled:active {
1823
+ background: transparent;
1824
+ }
1825
+ .cd-cascader-option-disabled .cd-cascader-option-label {
1826
+ color: var(--cd-color-cascader-option-disabled-text-default);
1827
+ }
1828
+ .cd-cascader-option-label {
1829
+ display: flex;
1830
+ align-items: center;
1831
+ min-inline-size: 0;
1501
1832
  overflow: hidden;
1502
1833
  white-space: nowrap;
1503
1834
  text-overflow: ellipsis;
1504
1835
  flex: 1 1 auto;
1505
1836
  }
1506
- .cd-cascader__checkbox {
1837
+ .cd-cascader-option-label-checkbox {
1507
1838
  display: inline-flex;
1508
1839
  align-items: center;
1509
- justify-content: center;
1510
1840
  flex: 0 0 auto;
1511
- inline-size: 1rem;
1512
- block-size: 1rem;
1513
- color: #fff;
1514
- background: var(--cd-color-bg-1, #fff);
1515
- border: 1px solid var(--cd-color-border);
1516
- border-radius: var(--cd-radius-small, 3px);
1517
- cursor: pointer;
1841
+ margin-inline-end: var(--cd-spacing-tight);
1518
1842
  }
1519
- .cd-cascader__checkbox--checked,
1520
- .cd-cascader__checkbox--half {
1521
- background: var(--cd-color-primary);
1522
- border-color: var(--cd-color-primary);
1523
- }
1524
- .cd-cascader__tags {
1525
- display: flex;
1526
- flex-wrap: wrap;
1527
- gap: var(--cd-spacing-extra-tight);
1843
+ .cd-cascader-option-icon {
1844
+ display: inline-flex;
1528
1845
  align-items: center;
1529
- min-inline-size: 0;
1530
- }
1531
- .cd-cascader__option-expand {
1532
1846
  flex: 0 0 auto;
1533
- color: var(--cd-tree-expand-icon-color);
1847
+ inline-size: var(--cd-width-cascader-option-icon, 16px);
1848
+ color: var(--cd-color-cascader-option-icon-default);
1534
1849
  }
1535
- .cd-cascader__option-loading {
1536
- flex: 0 0 auto;
1537
- inline-size: 12px;
1538
- block-size: 12px;
1539
- border: 2px solid var(--cd-tree-expand-icon-color, currentColor);
1540
- border-block-start-color: transparent;
1541
- border-radius: var(--cd-border-radius-full);
1850
+ .cd-cascader-option-spin-icon :global(svg) {
1542
1851
  animation: cd-cascader-spin 0.7s linear infinite;
1543
1852
  }
1544
1853
  @keyframes cd-cascader-spin {
@@ -1547,32 +1856,57 @@
1547
1856
  }
1548
1857
  }
1549
1858
  @media (prefers-reduced-motion: reduce) {
1550
- .cd-cascader__option-loading {
1859
+ .cd-cascader-option-spin-icon :global(svg) {
1551
1860
  animation: none;
1552
1861
  }
1553
- .cd-cascader__trigger,
1554
- .cd-cascader__arrow {
1862
+ .cd-cascader,
1863
+ .cd-cascader-arrow {
1555
1864
  transition: none;
1556
1865
  }
1557
1866
  }
1558
- /* --- 新增样式 --- */
1559
- .cd-cascader--borderless .cd-cascader__trigger {
1867
+ /* borderless:非聚焦/悬浮态透明底色 + 隐藏箭头(对齐 Semi) */
1868
+ .cd-cascader-borderless:not(:focus-within):not(:hover) {
1560
1869
  border-color: transparent;
1561
1870
  background: transparent;
1562
1871
  }
1563
- .cd-cascader--borderless .cd-cascader__trigger:focus-visible {
1564
- border-color: var(--cd-select-border-active);
1565
- background: var(--cd-select-bg);
1872
+ .cd-cascader-borderless:not(:focus-within):not(:hover) .cd-cascader-arrow {
1873
+ opacity: 0;
1874
+ }
1875
+ .cd-cascader-borderless:focus-within:not(:active) {
1876
+ background: transparent;
1566
1877
  }
1567
- .cd-cascader--no-motion .cd-cascader__trigger,
1568
- .cd-cascader--no-motion .cd-cascader__arrow {
1878
+ .cd-cascader-no-motion,
1879
+ .cd-cascader-no-motion .cd-cascader-arrow {
1569
1880
  transition: none;
1570
1881
  }
1571
- .cd-cascader__prefix,
1572
- .cd-cascader__suffix {
1882
+ /* prefix / suffix / inset-label */
1883
+ .cd-cascader-prefix,
1884
+ .cd-cascader-suffix {
1573
1885
  display: inline-flex;
1574
1886
  align-items: center;
1575
1887
  flex: 0 0 auto;
1576
- color: var(--cd-color-text-2);
1888
+ color: var(--cd-color-cascader-prefix-suffix-text-default);
1889
+ }
1890
+ .cd-cascader-prefix-text,
1891
+ .cd-cascader-suffix-text {
1892
+ margin-inline: var(--cd-spacing-base-tight);
1893
+ font-weight: var(--cd-font-cascader-label-fontweight);
1894
+ color: var(--cd-color-cascader-prefix-suffix-text-default);
1895
+ }
1896
+ .cd-cascader-with-prefix .cd-cascader-selection {
1897
+ padding-inline-start: 0;
1898
+ }
1899
+ .cd-cascader-with-suffix .cd-cascader-selection {
1900
+ padding-inline-end: 0;
1901
+ }
1902
+ /* insetLabel:值前内嵌标签,消费 cascader label token */
1903
+ .cd-cascader-inset-label {
1904
+ display: inline-flex;
1905
+ align-items: center;
1906
+ flex: 0 0 auto;
1907
+ white-space: nowrap;
1908
+ margin-inline: var(--cd-spacing-base-tight);
1909
+ color: var(--cd-color-cascader-label-text-default);
1910
+ font-weight: var(--cd-font-cascader-label-fontweight);
1577
1911
  }
1578
1912
  </style>