@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
@@ -1,19 +1,17 @@
1
1
  <!--
2
- TreeSelect — see specs/components/input/TreeSelect.spec.md
2
+ TreeSelect — 严格对齐 Semi Design treeSelect。
3
3
  基础子集: 单选、可展开/收起的单面板树、叶子或任意节点选中 (leafOnly 控制)。
4
4
  multiple: checkbox 多选 + 父子联动 (复用 core conduct/toggleCheck),trigger 多 tag 回显可单独移除。
5
5
  filterable: 面板顶部搜索框过滤节点(复用 core computeFilteredKeys),命中 + 祖先链可见、命中文本高亮。
6
6
  Token-driven, a11y-correct, 受控/非受控。
7
- fieldNames:自定义节点字段名(key/label/children)映射任意后端数据;派生只读标准化,默认字段名时零开销。
8
- icon:自定义节点图标 snippet(showIcon 为真时渲染在 label 前),API 与 Tree 的 icon 对齐
9
- (参数 { node, expanded, level })。渲染层特性,不改 treeData(红线 #1)。
7
+ keyMaps:自定义节点字段名(key/label/value)映射任意后端数据;派生只读标准化,默认字段名时零开销。
10
8
  loadData:展开未加载的非叶子节点时异步取子节点,结果缓存进本地 SvelteMap 并派生合并树喂给
11
9
  所有 core 函数(不写回受控 treeData,红线 #1);加载中显示 spinner,竞态由 loadedKeys/loadingKeys 去重。
12
- virtualized:大数据树虚拟滚动。复用 Tree 范式——直接用 core fixedRange 纯函数自建轻量 fixed 定高
13
- 虚拟化(非复用 VirtualList 组件,其 role=list/listitem 会破坏 role=tree→treeitem 语义),保持
14
- role=tree 容器 + 行 role=treeitem 不变;只渲染视口内切片(flattenVisible 派生扁平节点 + 区间纯派生,
15
- 红线 #2)。滚动监听命令式 + rAF 节流 + cleanup(红线 #3)。virtualized 时与搜索 filterable 互斥
16
- (搜索强制展开命中链与定高虚拟化叠加复杂,故 virtualized 优先静态/异步大树场景)。
10
+ virtualize(对象形式,对齐 Semi):大数据树虚拟滚动。复用 Tree 范式——直接用 core fixedRange 纯函数
11
+ 自建轻量 fixed 定高虚拟化(非复用 VirtualList 组件,其 role=list/listitem 会破坏 role=tree→treeitem
12
+ 语义),保持 role=tree 容器 + 行 role=treeitem 不变;只渲染视口内切片(flattenVisible 派生扁平节点 +
13
+ 区间纯派生,红线 #2)。滚动监听命令式 + rAF 节流 + cleanup(红线 #3)。虚拟化时与搜索 filterable 互斥
14
+ (搜索强制展开命中链与定高虚拟化叠加复杂,故虚拟化优先静态/异步大树场景)。
17
15
  -->
18
16
  <script lang="ts">
19
17
  import type { Snippet } from 'svelte';
@@ -33,92 +31,112 @@
33
31
  type CheckedStrategy,
34
32
  } from '@chenzy-design/core';
35
33
  import { SvelteMap, SvelteSet } from 'svelte/reactivity';
34
+ import {
35
+ IconTreeTriangleDown,
36
+ IconCheckboxTick,
37
+ IconCheckboxIndeterminate,
38
+ IconSearch,
39
+ IconClear,
40
+ IconChevronDown,
41
+ } from '@chenzy-design/icons';
36
42
  import { useLocale } from '../locale-provider/index.js';
37
43
  import { getGlobalPopupContainer } from '../config-provider/index.js';
38
44
  import { floating } from '../_floating/use-floating.js';
45
+ import type { Placement } from '@chenzy-design/core';
39
46
  import Tag from '../tag/Tag.svelte';
47
+ import Popover from '../popover/Popover.svelte';
40
48
  import type { TreeNode, TreeKey } from './types.js';
49
+ import { getInputGroupContext } from '../input/context.js';
41
50
 
42
51
  type Size = 'small' | 'default' | 'large';
43
52
  type Status = 'default' | 'warning' | 'error';
44
53
 
45
- /** 自定义节点字段名映射(适配任意后端数据结构)。默认 key/label/children。 */
46
- type FieldNames = { key?: string; label?: string; children?: string };
47
-
48
54
  interface Props {
49
55
  value?: TreeKey | TreeKey[] | null;
50
56
  defaultValue?: TreeKey | TreeKey[] | null;
51
57
  /**
52
58
  * 树数据源。默认节点字段为 key/label/children;
53
- * 用 fieldNames 自定义字段名时可传任意后端结构(如 { id, name, sub })。
59
+ * 用 keyMaps 自定义字段名时可传任意后端结构(如 { id, name })。
54
60
  */
55
61
  treeData?: TreeNode[];
56
- /** 自定义节点字段名映射,如 { key:'id', label:'name', children:'sub' }。默认全部为标准名。 */
57
- fieldNames?: FieldNames;
58
- open?: boolean;
59
62
  defaultOpen?: boolean;
60
63
  /** 多选:面板节点显示 checkbox + 父子联动,trigger 多 tag 回显 */
61
64
  multiple?: boolean;
62
- /** 多选时父子勾选互不影响(无半选) */
63
- checkStrictly?: boolean;
64
65
  /**
65
- * 多选父子是否级联联动(对齐 Tree)。'related'(默认)父子联动;
66
- * 'unRelated' 互不影响(等价 checkStrictly)。checkStrictly=true 强制 unRelated(向后兼容)。
66
+ * 多选父子是否级联联动(对齐 Semi/Tree)。'related'(默认)父子联动;
67
+ * 'unRelated' 互不影响(勾选无半选)。
67
68
  */
68
69
  checkRelation?: 'related' | 'unRelated';
69
- /**
70
- * 多选回填值 / Tag 的收敛策略:'all'(默认,全部勾选节点)、
71
- * 'parent'(完全勾选父级折叠为父)、'child'(仅叶子)。仅 related 级联时生效。
72
- */
73
- showCheckedStrategy?: CheckedStrategy;
74
70
  /** 多选回填 Tag 最大展示数,超出折叠为 +N(仅影响显示,不改 value)。 */
75
71
  maxTagCount?: number;
76
72
  placeholder?: string;
77
73
  size?: Size;
78
74
  status?: Status;
79
75
  disabled?: boolean;
80
- clearable?: boolean;
76
+ /** 值不为空时 trigger 展示清除按钮(对齐 Semi showClear)。 */
77
+ showClear?: boolean;
81
78
  leafOnly?: boolean;
82
79
  defaultExpandAll?: boolean;
83
- /** 默认展开的节点 key(非受控初始展开集,与 defaultExpandAll 取并集)。 */
84
- treeDefaultExpandedKeys?: TreeKey[];
80
+ /** 默认展开的节点 key(非受控初始展开集,与 defaultExpandAll 取并集;对齐 Semi defaultExpandedKeys)。 */
81
+ defaultExpandedKeys?: TreeKey[];
85
82
  /** 面板顶部搜索框过滤节点(命中 + 祖先链可见、高亮命中文本) */
86
83
  filterable?: boolean;
84
+ /**
85
+ * 是否按输入筛选节点(对齐 Semi filterTreeNode):
86
+ * true 开启搜索框,默认对 treeNodeFilterProp(默认 'label')做大小写不敏感包含匹配;
87
+ * 传函数则用作自定义匹配谓词 (inputValue, treeNodeString, data?) => boolean,
88
+ * treeNodeString 为按 treeNodeFilterProp 取到的节点文本,data 为节点原始数据。
89
+ * 与 filterable 二者其一为真即显示搜索框。
90
+ */
91
+ filterTreeNode?: boolean | ((inputValue: string, treeNodeString: string, data?: TreeNode) => boolean);
87
92
  /**
88
93
  * 远程搜索:输入仅触发 onSearch(防抖后),不本地过滤(由外部更新 treeData)。
89
94
  * 隐含 filterable 行为(显示搜索框)。默认 false。
90
95
  */
91
96
  remote?: boolean;
92
- /** onSearch 防抖毫秒(remote 时生效,默认 300)。 */
93
- searchDebounce?: number;
94
- /** 远程搜索输入回调(防抖后)。 */
95
- onSearch?: (query: string) => void;
96
- /** 是否预留节点图标位(icon 提供时渲染在 label 前)。默认 true,与 Tree 对齐。 */
97
- showIcon?: boolean;
97
+ /**
98
+ * 搜索输入回调(对齐 Semi onSearch):入参为当前输入、过滤后应展开的节点 keys、命中节点数组。
99
+ * remote 时用于外部更新 treeData;本地过滤时可配合 expandedKeys 受控搜索展开。
100
+ */
101
+ onSearch?: (input: string, filteredExpandedKeys: TreeKey[], filteredNodes: TreeNode[]) => void;
98
102
  /** 异步加载子节点:展开未加载的非叶子节点时调用,返回该节点的子节点数组。与 Tree 的 loadData 对齐。 */
99
103
  loadData?: (node: TreeNode) => Promise<TreeNode[]>;
100
- /** 虚拟滚动:仅渲染视口内的可见节点行,适合大数据树(1000+ 节点)。默认 false(行为不变)。 */
101
- virtualized?: boolean;
102
104
  /**
103
- * 自动启用虚拟化的可见节点数阈值:可见扁平行数 此值时自动开启虚拟化。
104
- * 默认 100。virtualized 显式为 true 时强制开启(不看阈值)。
105
+ * 列表虚拟化(对齐 Semi):仅渲染视口内可见节点行,适合大数据树(1000+ 节点)。
106
+ * 传入对象即显式开启;height 视口高度(默认 224)、itemSize 行高(默认 32)、width 宽度。
105
107
  */
106
- virtualizeThreshold?: number;
108
+ virtualize?: { height?: number; width?: number | string; itemSize?: number };
109
+ /** 浮层弹出位置(对齐 Semi,参考 Tooltip position)。默认 bottomLeft。 */
110
+ position?: string;
107
111
  /** 浮层宽度对齐触发器(min-inline-size = 触发器宽)。默认 true。 */
108
112
  dropdownMatchSelectWidth?: boolean;
109
113
  /** 浮层挂载容器,缺省 ConfigProvider 全局值再回退 document.body。 */
110
114
  getPopupContainer?: () => HTMLElement | null | undefined;
111
- /** 关闭即从 DOM 卸载浮层(重开重建)。默认 false:首开后保留 DOM 仅隐藏。 */
112
- destroyOnClose?: boolean;
113
- /** 虚拟滚动视口高度(px)。virtualized 时生效,默认 224(与默认面板 max-height 一致)。 */
114
- height?: number;
115
- /** 虚拟滚动行高(px)。virtualized 时生效,默认取 token 行高 32。 */
116
- itemHeight?: number;
117
115
  onChange?: (value: TreeKey | TreeKey[] | null) => void;
118
- onOpenChange?: (open: boolean) => void;
119
116
  ariaLabel?: string;
120
- /** 自定义节点图标(showIcon 为真时渲染在 label 前);参数含节点与展开态,与 Tree icon 对齐。 */
121
- icon?: Snippet<[{ node: TreeNode; expanded: boolean; level: number }]>;
117
+ /** aria-labelledby:关联外部 label 元素(Form.Field 透传 labelId,对齐 Semi)。 */
118
+ ariaLabelledby?: string;
119
+ /** aria-describedby:关联 helpText / extraText(Form.Field 透传)。 */
120
+ ariaDescribedby?: string;
121
+ /** aria-errormessage:error 态关联错误信息容器(Form.Field 透传)。 */
122
+ ariaErrormessage?: string;
123
+ /** aria-required:必填语义(Form.Field required 透传)。 */
124
+ ariaRequired?: boolean;
125
+ /** 触发器点击是否阻止事件冒泡(对齐 Semi stopPropagation)。默认 true。 */
126
+ stopPropagation?: boolean;
127
+ /**
128
+ * 完全自定义触发器渲染(替换默认选择框)。与 Cascader.triggerRender 对齐:
129
+ * 参数含当前 value / placeholder / isOpen / disabled,由使用方决定如何呈现。
130
+ */
131
+ triggerRender?: Snippet<[{ value: TreeKey | TreeKey[] | null | undefined; placeholder: string; isOpen: boolean; disabled: boolean }]>;
132
+ /** 触发器内嵌标签:渲染在回填值/占位符之前(Snippet 或字符串)。对齐 Semi insetLabel。 */
133
+ insetLabel?: Snippet | string;
134
+ /** 内嵌标签的 id(a11y 关联用),对齐 Semi insetLabelId。 */
135
+ insetLabelId?: string;
136
+ /** 下拉浮层开合动画(淡入)。默认 true。与 Cascader/Dropdown 的 motion 对齐。 */
137
+ motion?: boolean;
138
+ // 注:Semi 的 mouseEnterDelay/mouseLeaveDelay 属 hover 触发浮层的进入/离开延迟;
139
+ // TreeSelect 为 click 触发(点击 trigger 开合),无 hover 触发路径,故此两项不适用,不提供。
122
140
 
123
141
  // --- Appearance ---
124
142
  /** 无边框模式:trigger 边框透明。默认 false。 */
@@ -172,6 +190,18 @@
172
190
  showSearchClear?: boolean;
173
191
  /** 搜索激活时仅显示命中节点,不显示祖先链。默认 false。 */
174
192
  showFilteredOnly?: boolean;
193
+ /**
194
+ * 无匹配/无数据时的占位内容(对齐 Semi emptyContent):字符串或 Snippet。
195
+ * 未传时回退 i18n TreeSelect.emptyText。空 Snippet 场景可传 () => {} 自绘。
196
+ */
197
+ emptyContent?: string | Snippet;
198
+ /**
199
+ * 自定义搜索框渲染(渲染层扩展,非 Semi 原生 TreeSelect prop):
200
+ * false 隐藏搜索框(即使 filterable/filterTreeNode 开启,也不显示内置搜索输入);
201
+ * 传 Snippet 则完全接管搜索框渲染,参数含当前值与命令式回调,
202
+ * 使用方需自行把输入回填给 onInput(其余过滤/高亮/roving 逻辑不变)。
203
+ */
204
+ searchRender?: boolean | Snippet<[{ value: string; onInput: (v: string) => void; onKeydown: (e: KeyboardEvent) => void; placeholder: string }]>;
175
205
 
176
206
  // --- Expand control ---
177
207
  /** 受控展开的节点 keys */
@@ -189,15 +219,15 @@
189
219
 
190
220
  // --- Multi-select enhancements ---
191
221
  /**
192
- * 自动合并值:父节点全选时 value 不再包含其后代(等价 showCheckedStrategy='parent')。
193
- * 默认 true。autoMergeValue=false 时 showCheckedStrategy 原始生效。
222
+ * 自动合并值:父节点全选时 value 不再包含其后代(收敛为父,对齐 Semi autoMergeValue)。
223
+ * 默认 true。false 时 value 含全部勾选叶子与父('all' 策略)。leafOnly 时改为仅叶子('child')。
194
224
  */
195
225
  autoMergeValue?: boolean;
196
226
  /** onChange 回调携带完整节点对象而非仅 key。默认 false。 */
197
227
  onChangeWithObject?: boolean;
198
- /** 超出 maxTagCount 折叠的 tag popover 形式展示剩余项。默认 false */
228
+ /** 多选 maxTagCount 折叠出 +N 时,hover +N 用本库 Popover 浮层展示折叠掉的剩余全部 Tag。默认 false(静态 +N)。 */
199
229
  showRestTagsPopover?: boolean;
200
- /** 传给剩余 tags popover 的额外 props */
230
+ /** 透传给剩余 Tag Popover 浮层的额外 props(在默认 trigger=hover/position=top 之后展开,可覆盖)。 */
201
231
  restTagsPopoverProps?: Record<string, unknown>;
202
232
  /** trigger 多选 tags 换行显示(默认单行截断折叠)。默认 false。 */
203
233
  triggerTagWrap?: boolean;
@@ -211,8 +241,8 @@
211
241
  renderSelectedItem?: Snippet<[{ node: TreeNode; onRemove: () => void }]>;
212
242
  /** 节点数据中用作显示 label 的字段名(默认 'label')。 */
213
243
  treeNodeLabelProp?: string;
214
- /** 自定义 key/label/value 字段映射(优先级高于 fieldNames key/label 部分)。 */
215
- keyMaps?: { key?: string; label?: string; value?: string };
244
+ /** 自定义节点字段名映射(对齐 Semi keyMaps):适配任意后端数据结构,如 { key:'id', label:'name', children:'sub' }。 */
245
+ keyMaps?: { key?: string; label?: string; value?: string; children?: string };
216
246
  /** 选项列表容器的内联 style(字符串或对象形式)。 */
217
247
  optionListStyle?: string | Record<string, string>;
218
248
  /** 受控已加载的节点 keys */
@@ -228,8 +258,14 @@
228
258
  * 默认 false(父禁用 conduct 不检查子)。
229
259
  */
230
260
  disableStrictly?: boolean;
231
- /** 浮层与 trigger 的额外间距(px),数字或四方向对象。 */
261
+ /** 浮层与 trigger 的额外间距(px),数字或四方向对象。数字映射到浮层 offset;对象形态仅取 marginTop(其余方向暂未接入定位)。 */
232
262
  dropdownMargin?: number | { marginTop?: number; marginBottom?: number; marginLeft?: number; marginRight?: number };
263
+ /** 追加到浮层根节点的自定义类名(与内置类名并存)。 */
264
+ dropdownClassName?: string;
265
+ /** 合并进浮层根节点的内联样式(与内置定位样式拼接,不覆盖 use:floating 写入的 transform/position)。 */
266
+ dropdownStyle?: string | Record<string, string>;
267
+ /** 浮层层级(z-index)。未传时由 CSS 层级控制。 */
268
+ zIndex?: number;
233
269
 
234
270
  // --- Events ---
235
271
  /** 点击清除按钮回调。 */
@@ -238,7 +274,7 @@
238
274
  onSelect?: (selectedKey: TreeKey, selected: boolean, node: unknown) => void;
239
275
  /** 异步加载完成回调(含已加载 key 集合与当前节点)。 */
240
276
  onLoad?: (loadedKeys: TreeKey[], treeNode: TreeNode) => void;
241
- /** 面板可见性变化回调(与 onOpenChange 语义相同,Semi 风格别名)。 */
277
+ /** 面板可见性变化回调(对齐 Semi onVisibleChange)。 */
242
278
  onVisibleChange?: (isVisible: boolean) => void;
243
279
  }
244
280
 
@@ -246,39 +282,38 @@
246
282
  value,
247
283
  defaultValue = null,
248
284
  treeData = [],
249
- fieldNames,
250
- open,
251
285
  defaultOpen = false,
252
286
  multiple = false,
253
- checkStrictly = false,
254
287
  checkRelation = 'related',
255
- showCheckedStrategy = 'all',
256
288
  maxTagCount,
257
289
  placeholder = '请选择',
258
- size = 'default',
290
+ size: sizeProp,
259
291
  status = 'default',
260
- disabled = false,
261
- clearable = false,
292
+ disabled: disabledProp,
293
+ showClear = false,
262
294
  leafOnly = false,
263
295
  defaultExpandAll = false,
264
- treeDefaultExpandedKeys,
296
+ defaultExpandedKeys,
265
297
  filterable = false,
298
+ filterTreeNode,
266
299
  remote = false,
267
- searchDebounce = 300,
268
300
  onSearch,
269
- showIcon = true,
270
301
  loadData,
271
- virtualized = false,
272
- virtualizeThreshold = 100,
302
+ virtualize,
303
+ position = 'bottomLeft',
273
304
  dropdownMatchSelectWidth = true,
274
305
  getPopupContainer,
275
- destroyOnClose = false,
276
- height = 224,
277
- itemHeight = 32,
278
306
  onChange,
279
- onOpenChange,
280
307
  ariaLabel,
281
- icon,
308
+ ariaLabelledby,
309
+ ariaDescribedby,
310
+ ariaErrormessage,
311
+ ariaRequired,
312
+ stopPropagation = true,
313
+ triggerRender,
314
+ insetLabel,
315
+ insetLabelId,
316
+ motion = true,
282
317
  borderless = false,
283
318
  prefix,
284
319
  suffix,
@@ -301,6 +336,8 @@
301
336
  treeNodeFilterProp = 'label',
302
337
  showSearchClear = true,
303
338
  showFilteredOnly = false,
339
+ emptyContent,
340
+ searchRender,
304
341
  expandedKeys: expandedKeysProp,
305
342
  expandAll = false,
306
343
  expandAction = false,
@@ -323,39 +360,66 @@
323
360
  clickTriggerToHide = true,
324
361
  disableStrictly = false,
325
362
  dropdownMargin,
363
+ dropdownClassName,
364
+ dropdownStyle,
365
+ zIndex,
326
366
  onClear,
327
367
  onSelect,
328
368
  onLoad,
329
369
  onVisibleChange,
330
370
  }: Props = $props();
331
371
 
372
+ // InputGroup 组级默认(size/disabled):显式 prop 始终优先,否则回退组级,再回退组件默认。
373
+ const group = getInputGroupContext();
374
+ const size = $derived<Size>(sizeProp ?? group?.size ?? 'default');
375
+ const disabled = $derived<boolean>(disabledProp ?? group?.disabled ?? false);
376
+
332
377
  const loc = useLocale();
333
378
  // ConfigProvider 全局浮层容器默认;自身 getPopupContainer prop 优先,未传时回退此值(再回退 body)。
334
379
  const globalPopupContainer = getGlobalPopupContainer();
335
380
  const resolvePopupContainer = $derived(getPopupContainer ?? globalPopupContainer);
336
381
 
337
- // remote 隐含可搜索(显示搜索框);checkRelation 归一:checkStrictly=true 强制 unRelated(向后兼容)。
338
- const isFilterable = $derived(filterable || remote);
339
- const isUnRelated = $derived(checkStrictly || checkRelation === 'unRelated');
382
+ // remote 隐含可搜索(显示搜索框);filterTreeNode(bool 或函数)亦开启搜索。
383
+ const isFilterable = $derived(filterable || remote || filterTreeNode === true || typeof filterTreeNode === 'function');
384
+ const isUnRelated = $derived(checkRelation === 'unRelated');
340
385
 
341
386
  // validateStatus 是 status 别名;效值以 validateStatus 优先(未传时回退 status)。
342
387
  const effStatus = $derived(validateStatus ?? status ?? 'default');
343
388
 
344
389
  const treeId = useId('cd-tree-select-panel');
390
+
391
+ // 浮层与触发器间距:dropdownMargin 数字直接作 offset;对象形态取 marginTop(其余方向暂未接入);未传回退默认 4。
392
+ const dropdownOffset = $derived.by(() => {
393
+ if (dropdownMargin == null) return 4;
394
+ if (typeof dropdownMargin === 'number') return dropdownMargin;
395
+ return dropdownMargin.marginTop ?? 4;
396
+ });
397
+
398
+ // 浮层自定义样式:合并 dropdownStyle(字符串或对象)与 zIndex,供拼接到浮层 inline style。
399
+ const dropdownStyleStr = $derived.by(() => {
400
+ const parts: string[] = [];
401
+ if (dropdownStyle) {
402
+ if (typeof dropdownStyle === 'string') parts.push(dropdownStyle);
403
+ else parts.push(Object.entries(dropdownStyle).map(([k, v]) => `${k}: ${v}`).join('; '));
404
+ }
405
+ if (zIndex != null) parts.push(`z-index: ${zIndex}`);
406
+ return parts.filter(Boolean).join('; ');
407
+ });
408
+
345
409
  // treeitem 行 id 基(aria-activedescendant 指向当前高亮行)。
346
410
  const itemBaseId = useId('cd-tree-select-item');
347
411
  function itemId(key: TreeKey): string {
348
412
  return `${itemBaseId}-${String(key)}`;
349
413
  }
350
414
 
351
- // --- fieldNames 字段映射:把用户自定义字段名的数据派生为标准 {key,label,children} 结构 ---
415
+ // --- keyMaps 字段映射:把用户自定义字段名的数据派生为标准 {key,label,children} 结构(对齐 Semi keyMaps)---
352
416
  // 默认(全标准名)时直接返回原 treeData 引用,零额外开销;映射为纯 $derived(红线 #2),不写回(红线 #1)。
353
417
  // 节点 key 取自原始 key 字段,故 onChange 回传的 value(key)即用户原始 id,无需额外映射回原节点。
354
- // keyMaps 优先级高于 fieldNames(key/label 部分);keyMaps.value 作为 key 字段别名。
355
- const keyField = $derived(keyMaps?.key ?? keyMaps?.value ?? fieldNames?.key ?? 'key');
356
- const labelField = $derived(keyMaps?.label ?? fieldNames?.label ?? 'label');
357
- const childrenField = $derived(fieldNames?.children ?? 'children');
358
- const fieldNamesDefault = $derived(
418
+ // keyMaps.value 作为 key 字段别名(对齐 Semi)。
419
+ const keyField = $derived(keyMaps?.key ?? keyMaps?.value ?? 'key');
420
+ const labelField = $derived(keyMaps?.label ?? 'label');
421
+ const childrenField = $derived(keyMaps?.children ?? 'children');
422
+ const keyMapsDefault = $derived(
359
423
  keyField === 'key' && labelField === 'label' && childrenField === 'children',
360
424
  );
361
425
 
@@ -384,7 +448,7 @@
384
448
 
385
449
  // 标准化后的树:默认时即 treeData 原引用(零开销),否则递归映射字段名。
386
450
  const normalizedTree = $derived<TreeNode[]>(
387
- fieldNamesDefault ? treeData : normalizeNodes(treeData),
451
+ keyMapsDefault ? treeData : normalizeNodes(treeData),
388
452
  );
389
453
 
390
454
  // --- 异步加载(对齐 Tree):本地缓存子节点 + loading/loaded 标记(不写回受控 treeData,红线 #1)---
@@ -413,7 +477,7 @@
413
477
  loadingKeys.add(node.key);
414
478
  try {
415
479
  const kids = await loadData(node);
416
- loadedChildren.set(node.key, fieldNamesDefault ? kids : normalizeNodes(kids));
480
+ loadedChildren.set(node.key, keyMapsDefault ? kids : normalizeNodes(kids));
417
481
  } finally {
418
482
  loadingKeys.delete(node.key);
419
483
  loadedKeys.add(node.key);
@@ -460,11 +524,11 @@
460
524
  return defaultOpen;
461
525
  }
462
526
  function getInitialExpanded(): Set<TreeKey> {
463
- // treeDefaultExpandedKeys 与 defaultExpandAll 取并集(非受控初始展开集)。
464
- const set = new Set<TreeKey>(treeDefaultExpandedKeys ?? []);
527
+ // defaultExpandedKeys 与 defaultExpandAll 取并集(非受控初始展开集)。
528
+ const set = new Set<TreeKey>(defaultExpandedKeys ?? []);
465
529
  if (defaultExpandAll) {
466
- // defaultExpandAll 需用标准化后的 key(fieldNames 自定义时才能识别 children)。
467
- const base = fieldNamesDefault ? treeData : normalizeNodes(treeData);
530
+ // defaultExpandAll 需用标准化后的 key(keyMaps 自定义时才能识别 children)。
531
+ const base = keyMapsDefault ? treeData : normalizeNodes(treeData);
468
532
  for (const k of collectExpandable(base, [])) set.add(k);
469
533
  }
470
534
  return set;
@@ -491,13 +555,10 @@
491
555
  if (isUnRelated) return { checked: new Set(currentCheckedBase), half: new Set<TreeKey>() };
492
556
  return conduct(mergedTree as unknown as TreeNodeData[], currentCheckedBase);
493
557
  });
494
- // autoMergeValue=true 时把 showCheckedStrategy='all' 升级为 'parent'(父选不含后代)。
558
+ // 回填值/Tag 收敛策略(对齐 Semi,由 leafOnly + autoMergeValue 组合表达,无独立 showCheckedStrategy):
559
+ // leafOnly → 'child'(仅叶子);否则 autoMergeValue=true → 'parent'(父全选折叠为父,value 不含后代);否则 'all'。
495
560
  const effectiveStrategy = $derived<CheckedStrategy>(
496
- !autoMergeValue
497
- ? showCheckedStrategy
498
- : showCheckedStrategy === 'all'
499
- ? 'parent'
500
- : showCheckedStrategy,
561
+ leafOnly ? 'child' : autoMergeValue ? 'parent' : 'all',
501
562
  );
502
563
 
503
564
  // 回填值/Tag 收敛集(effectiveStrategy):unRelated 无父子关系故策略不生效(取全 checked)。
@@ -535,19 +596,24 @@
535
596
  ? Math.max(0, checkedNodes.length - maxTagCount)
536
597
  : 0,
537
598
  );
599
+ // showRestTagsPopover:+N hover 时浮层展示的隐藏剩余节点(折叠掉的那部分)。
600
+ const hiddenTagNodes = $derived(
601
+ maxTagCount !== undefined && maxTagCount >= 0
602
+ ? checkedNodes.slice(maxTagCount)
603
+ : [],
604
+ );
538
605
 
539
- // --- 受控 open (红线 #1): 不无条件回写 open,仅 onOpenChange ---
540
- const isOpenControlled = $derived(open !== undefined);
606
+ // --- 非受控 open(对齐 Semi:仅 defaultOpen 初始 + onVisibleChange 回调,无受控 open prop)---
541
607
  let innerOpen = $state(getInitialOpen());
542
- const isOpen = $derived(isOpenControlled ? !!open : innerOpen);
543
-
544
- // onVisibleChange onOpenChange 别名:isOpen 变化时同步触发。
545
- $effect(() => {
546
- onVisibleChange?.(isOpen);
547
- });
548
-
549
- // --- 本地展开状态 (红线 #2): expandedKeys 本地 $state Set,不依赖挂载 registry ---
550
- let expandedKeys = $state<Set<TreeKey>>(getInitialExpanded());
608
+ const isOpen = $derived(innerOpen);
609
+
610
+ // --- 展开状态:受控(传入 expandedKeys)时只读派生 + onExpand 回调(红线 #1 不回写);
611
+ // 非受控时本地 $state Set(红线 #2,不依赖挂载 registry)。 ---
612
+ const isExpandControlled = $derived(expandedKeysProp !== undefined);
613
+ let innerExpanded = $state<Set<TreeKey>>(getInitialExpanded());
614
+ const expandedKeys = $derived<Set<TreeKey>>(
615
+ isExpandControlled ? new Set(expandedKeysProp) : innerExpanded,
616
+ );
551
617
 
552
618
  const selectedNode = $derived(
553
619
  currentValue === null ? undefined : findNode(mergedTree, currentValue),
@@ -556,7 +622,22 @@
556
622
  const hasSelection = $derived(
557
623
  multiple ? checkedNodes.length > 0 : selectedNode !== undefined,
558
624
  );
559
- const showClear = $derived(clearable && !disabled && hasSelection);
625
+ const showClearBtn = $derived(showClear && !disabled && hasSelection);
626
+
627
+ // position → use:floating 的 Placement(对齐 Semi,映射表照 DatePicker),缺省 bottomStart。
628
+ const POSITION_TO_PLACEMENT: Record<string, Placement> = {
629
+ bottomLeft: 'bottomStart',
630
+ bottomRight: 'bottomEnd',
631
+ bottom: 'bottom',
632
+ topLeft: 'topStart',
633
+ topRight: 'topEnd',
634
+ top: 'top',
635
+ leftTop: 'leftStart',
636
+ leftBottom: 'leftEnd',
637
+ rightTop: 'rightStart',
638
+ rightBottom: 'rightEnd',
639
+ };
640
+ const dropdownPlacement = $derived<Placement>(POSITION_TO_PLACEMENT[position] ?? 'bottomStart');
560
641
 
561
642
  function setValue(next: TreeKey | null) {
562
643
  if (!isValueControlled) innerValue = next;
@@ -588,7 +669,7 @@
588
669
  if (nextBase.has(node.key)) nextBase.delete(node.key);
589
670
  else nextBase.add(node.key);
590
671
  } else {
591
- nextBase = toggleCheck(mergedTree as unknown as TreeNodeData[], currentCheckedBase, node.key);
672
+ nextBase = toggleCheck(mergedTree as unknown as TreeNodeData[], currentCheckedBase, node.key, disableStrictly);
592
673
  }
593
674
  setChecked(nextBase);
594
675
  }
@@ -603,7 +684,7 @@
603
684
  setChecked(next);
604
685
  } else if (isChecked) {
605
686
  // 复用 toggleCheck:已选 → 取消(含子树联动)
606
- setChecked(toggleCheck(mergedTree as unknown as TreeNodeData[], currentCheckedBase, node.key));
687
+ setChecked(toggleCheck(mergedTree as unknown as TreeNodeData[], currentCheckedBase, node.key, disableStrictly));
607
688
  }
608
689
  }
609
690
 
@@ -617,12 +698,13 @@
617
698
  function setOpen(next: boolean) {
618
699
  if (next === isOpen) return;
619
700
  if (!next) searchValue = '';
620
- if (!isOpenControlled) innerOpen = next;
621
- onOpenChange?.(next);
701
+ innerOpen = next;
622
702
  onVisibleChange?.(next);
623
703
  }
624
704
 
625
- function toggleOpen() {
705
+ function toggleOpen(e: MouseEvent) {
706
+ // stopPropagation(对齐 Semi,默认 true):阻止 trigger 点击冒泡到外层。
707
+ if (stopPropagation) e.stopPropagation();
626
708
  if (disabled) return;
627
709
  if (isOpen && !clickTriggerToHide) return;
628
710
  setOpen(!isOpen);
@@ -646,13 +728,27 @@
646
728
  const trimmedSearch = $derived(searchValue.trim());
647
729
  // remote 模式不本地过滤(外部更新 treeData),仅本地 filterable 时高亮/收敛命中链。
648
730
  const searchActive = $derived(!remote && isFilterable && trimmedSearch.length > 0);
731
+ // 按 treeNodeFilterProp 取节点用于匹配的文本(默认 label;自定义字段回退 label)。
732
+ function nodeFilterText(node: TreeNodeData): string {
733
+ const raw = (node as unknown as Record<string, unknown>)[treeNodeFilterProp];
734
+ const v = raw ?? node.label;
735
+ return v == null ? '' : String(v);
736
+ }
649
737
  const filterResult = $derived.by(() => {
650
738
  if (!searchActive) return { matched: new Set<TreeKey>(), expand: new Set<TreeKey>() };
651
739
  const lower = trimmedSearch.toLowerCase();
652
- return computeFilteredKeys(
653
- mergedTree as unknown as TreeNodeData[],
654
- (node) => node.label.toLowerCase().includes(lower),
655
- );
740
+ // filterTreeNode 为函数时用作自定义匹配谓词(inputValue, treeNodeString, data?);
741
+ // 否则默认对 treeNodeFilterProp 文本做大小写不敏感包含匹配。
742
+ const predicate =
743
+ typeof filterTreeNode === 'function'
744
+ ? (node: TreeNodeData) =>
745
+ (filterTreeNode as (i: string, s: string, d?: TreeNode) => boolean)(
746
+ trimmedSearch,
747
+ nodeFilterText(node),
748
+ node as unknown as TreeNode,
749
+ )
750
+ : (node: TreeNodeData) => nodeFilterText(node).toLowerCase().includes(lower);
751
+ return computeFilteredKeys(mergedTree as unknown as TreeNodeData[], predicate);
656
752
  });
657
753
  // 节点在搜索结果可见:命中本身、或在祖先链/含命中后代(expand 集)。
658
754
  // showFilteredOnly=true 时只显示精确命中节点,不显示祖先链。
@@ -663,8 +759,8 @@
663
759
  }
664
760
 
665
761
  function isExpanded(key: TreeKey): boolean {
666
- // 搜索激活时强制展开命中链
667
- if (searchActive && filterResult.expand.has(key)) return true;
762
+ // 搜索激活时强制展开命中链(对齐 Semi:展开受控时不再自动展开,完全由 expandedKeys 控制)。
763
+ if (!isExpandControlled && searchActive && filterResult.expand.has(key)) return true;
668
764
  return expandedKeys.has(key);
669
765
  }
670
766
 
@@ -683,28 +779,20 @@
683
779
  }
684
780
  };
685
781
  walk(mergedTree);
686
- // 同时并入搜索展开链。
687
- if (searchActive) for (const k of filterResult.expand) set.add(k);
782
+ // 同时并入搜索展开链(受控展开时不自动展开)。
783
+ if (!isExpandControlled && searchActive) for (const k of filterResult.expand) set.add(k);
688
784
  return set;
689
785
  }
690
- if (!searchActive) return expandedKeys;
786
+ // 受控展开时不并入搜索展开链(对齐 Semi),完全由 expandedKeys 控制。
787
+ if (!searchActive || isExpandControlled) return expandedKeys;
691
788
  const merged = new Set(expandedKeys);
692
789
  for (const k of filterResult.expand) merged.add(k);
693
790
  return merged;
694
791
  });
695
- // virtualizeThreshold:节点总数 阈值时自动启用虚拟化(virtualized=true 时强制启用)。
696
- const totalNodeCount = $derived.by(() => {
697
- let n = 0;
698
- const walk = (nodes: TreeNode[]) => {
699
- for (const node of nodes) {
700
- n++;
701
- if (node.children) walk(node.children);
702
- }
703
- };
704
- walk(mergedTree);
705
- return n;
706
- });
707
- const useVirtual = $derived(virtualized || totalNodeCount >= virtualizeThreshold);
792
+ // virtualize 对象归一(对齐 Semi):传入对象即显式开启(无自动阈值);height 视口高度、itemSize 行高。
793
+ const height = $derived(virtualize?.height ?? 224);
794
+ const itemHeight = $derived(virtualize?.itemSize ?? 32);
795
+ const useVirtual = $derived(virtualize !== undefined);
708
796
  // 可见扁平节点:虚拟化用于视口切片,非虚拟化也用于键盘 roving 导航(红线 #2 纯派生)。
709
797
  const flat = $derived(
710
798
  flattenVisible(mergedTree as unknown as TreeNodeData[], effectiveExpanded),
@@ -794,7 +882,8 @@
794
882
  function toggleExpand(node: TreeNode) {
795
883
  const key = node.key;
796
884
  const next = new Set(expandedKeys);
797
- if (next.has(key)) {
885
+ const willExpand = !next.has(key);
886
+ if (!willExpand) {
798
887
  next.delete(key);
799
888
  } else {
800
889
  next.add(key);
@@ -816,7 +905,9 @@
816
905
  // 展开未加载的异步节点:先取数据(数据到位后合并树派生即显示子节点)。
817
906
  if (!hasChildren(node) && loadData && !loadedKeys.has(key)) void loadChildren(node);
818
907
  }
819
- expandedKeys = next;
908
+ // 受控展开(红线 #1):只回调 onExpand,不回写本地态;非受控写本地态。
909
+ if (!isExpandControlled) innerExpanded = next;
910
+ onExpand?.([...next], { expanded: willExpand, node });
820
911
  }
821
912
 
822
913
  function selectNode(node: TreeNode) {
@@ -980,34 +1071,80 @@
980
1071
  scrollActiveIntoView();
981
1072
  }
982
1073
 
983
- // --- remote 搜索防抖(命令式定时器 + cleanup,红线 #3)---
984
- let searchTimer: ReturnType<typeof setTimeout> | undefined;
985
- function scheduleSearch(q: string) {
986
- if (searchTimer !== undefined) clearTimeout(searchTimer);
987
- searchTimer = setTimeout(() => {
988
- searchTimer = undefined;
989
- onSearch?.(q);
990
- }, Math.max(0, searchDebounce));
1074
+ // --- onSearch(对齐 Semi 三入参签名 (input, filteredExpandedKeys, filteredNodes))---
1075
+ // 无内置防抖:Semi 也不做防抖,remote 场景由使用方在 onSearch 内自行节流。
1076
+ // 对任意输入即时计算过滤结果(不受 remote/searchActive gate 限制),供回调的后两参。
1077
+ function emitSearch(input: string) {
1078
+ if (!onSearch) return;
1079
+ const q = input.trim();
1080
+ if (q.length === 0) {
1081
+ onSearch(input, [], []);
1082
+ return;
1083
+ }
1084
+ const lower = q.toLowerCase();
1085
+ const predicate =
1086
+ typeof filterTreeNode === 'function'
1087
+ ? (node: TreeNodeData) =>
1088
+ (filterTreeNode as (i: string, s: string, d?: TreeNode) => boolean)(
1089
+ q,
1090
+ nodeFilterText(node),
1091
+ node as unknown as TreeNode,
1092
+ )
1093
+ : (node: TreeNodeData) => nodeFilterText(node).toLowerCase().includes(lower);
1094
+ const res = computeFilteredKeys(mergedTree as unknown as TreeNodeData[], predicate);
1095
+ // filteredExpandedKeys:命中链上应展开的祖先节点 keys(对齐 Semi filteredExpandedKeys)。
1096
+ const filteredExpandedKeys = [...res.expand];
1097
+ // filteredNodes:命中节点原始数据数组(树序)。
1098
+ const filteredNodes: TreeNode[] = [];
1099
+ const walk = (nodes: TreeNode[]) => {
1100
+ for (const n of nodes) {
1101
+ if (res.matched.has(n.key)) filteredNodes.push(n);
1102
+ if (n.children) walk(n.children);
1103
+ }
1104
+ };
1105
+ walk(mergedTree);
1106
+ onSearch(input, filteredExpandedKeys, filteredNodes);
991
1107
  }
992
- // 卸载兜底清理。
993
- $effect(() => () => {
994
- if (searchTimer !== undefined) clearTimeout(searchTimer);
995
- });
996
1108
  function onSearchInput(e: Event & { currentTarget: HTMLInputElement }) {
997
1109
  searchValue = e.currentTarget.value;
998
- if (remote) scheduleSearch(searchValue.trim());
1110
+ emitSearch(searchValue);
1111
+ }
1112
+ // searchRender 自定义搜索框用的命令式回调(把外部输入回填给内部搜索态)。
1113
+ function setSearchValue(v: string) {
1114
+ searchValue = v;
1115
+ emitSearch(v);
1116
+ }
1117
+
1118
+ /** 命令式搜索:把值置给内部搜索态并触发过滤(对齐 Semi search(sugInput),用于外部自定义搜索框)。 */
1119
+ export function search(sugInput: string): void {
1120
+ setSearchValue(sugInput);
1121
+ }
1122
+ // 内置搜索框键盘处理(Escape 关闭,其余交给树 roving)。
1123
+ function onSearchKeydown(e: KeyboardEvent) {
1124
+ if (e.key === 'Escape') {
1125
+ setOpen(false);
1126
+ return;
1127
+ }
1128
+ onTreeKeydown(e);
999
1129
  }
1130
+ // searchRender=false 时隐藏内置搜索框(即使 filterable/filterTreeNode 开启)。
1131
+ const showBuiltinSearch = $derived(isFilterable && searchRender !== false);
1132
+ // searchPosition:'dropdown'(默认)搜索框在浮层顶部;'trigger' 搜索框内嵌触发器(对齐 Semi)。
1133
+ const searchInDropdown = $derived(showBuiltinSearch && searchPosition !== 'trigger');
1134
+ const searchInTrigger = $derived(showBuiltinSearch && searchPosition === 'trigger');
1135
+ // 搜索框占位文案:searchPlaceholder prop 优先,回退 i18n。
1136
+ const resolvedSearchPlaceholder = $derived(searchPlaceholder ?? loc().t('TreeSelect.searchPlaceholder'));
1000
1137
 
1001
1138
  // --- DOM 引用:触发根 + portal 面板(定位由 use:floating action 接管)---
1002
1139
  let rootEl = $state<HTMLDivElement | null>(null);
1003
1140
  let panelEl = $state<HTMLDivElement | null>(null);
1004
1141
 
1005
- // --- destroyOnClose:默认 false 时首开后保留浮层 DOM(仅隐藏),true 时关闭即卸载,重开重建。 ---
1142
+ // --- 浮层 DOM:首开后保留(仅隐藏),对齐 Semi(不销毁重建)。 ---
1006
1143
  let hasBeenOpened = $state(false);
1007
1144
  $effect(() => {
1008
1145
  if (isOpen) hasBeenOpened = true;
1009
1146
  });
1010
- const shouldRender = $derived(destroyOnClose ? isOpen : isOpen || hasBeenOpened);
1147
+ const shouldRender = $derived(isOpen || hasBeenOpened);
1011
1148
 
1012
1149
  // --- useDismiss (红线 #3): panel portal 出 root 子树后列入 extraTargets ---
1013
1150
  $effect(() => {
@@ -1036,6 +1173,11 @@
1036
1173
  .join(' '),
1037
1174
  );
1038
1175
 
1176
+ // triggerRender 的 value 参数:多选给收敛后的 key 数组,单选给单 key(对齐 onChange 语义)。
1177
+ const triggerValue = $derived<TreeKey | TreeKey[] | null>(
1178
+ multiple ? strategyKeys : currentValue,
1179
+ );
1180
+
1039
1181
  // optionListStyle 规范化为 style 字符串。
1040
1182
  const optionListStyleStr = $derived(
1041
1183
  typeof optionListStyle === 'string'
@@ -1048,6 +1190,16 @@
1048
1190
  );
1049
1191
  </script>
1050
1192
 
1193
+ {#snippet emptyBlock()}
1194
+ <div class="cd-tree-select__empty">
1195
+ {#if emptyContent !== undefined}
1196
+ {#if typeof emptyContent === 'string'}{emptyContent}{:else}{@render emptyContent()}{/if}
1197
+ {:else}
1198
+ {loc().t('TreeSelect.emptyText')}
1199
+ {/if}
1200
+ </div>
1201
+ {/snippet}
1202
+
1051
1203
  {#snippet nodeRow(
1052
1204
  node: TreeNode,
1053
1205
  level: number,
@@ -1076,7 +1228,7 @@
1076
1228
  aria-checked={multiple ? (cs.checked ? true : cs.half ? 'mixed' : false) : undefined}
1077
1229
  aria-expanded={expandable ? nodeOpen : undefined}
1078
1230
  aria-disabled={node.disabled || undefined}
1079
- style={[posStyle, `padding-inline-start: calc(${level} * var(--cd-tree-indent))`]
1231
+ style={[posStyle, `padding-inline-start: calc(${level} * var(--cd-spacing-tree-option-level-padding-left))`]
1080
1232
  .filter(Boolean)
1081
1233
  .join('; ')}
1082
1234
  onclick={() => selectNode(node)}
@@ -1105,9 +1257,7 @@
1105
1257
  }
1106
1258
  }}
1107
1259
  >
1108
- <svg viewBox="0 0 16 16" width="10" height="10" aria-hidden="true" focusable="false">
1109
- <path fill="currentColor" d="M6 4l4 4-4 4V4Z" />
1110
- </svg>
1260
+ <IconTreeTriangleDown size="small" aria-hidden="true" />
1111
1261
  </span>
1112
1262
  {:else}
1113
1263
  <span class="cd-tree-select__expand cd-tree-select__expand--placeholder" aria-hidden="true"></span>
@@ -1120,20 +1270,14 @@
1120
1270
  aria-hidden="true"
1121
1271
  >
1122
1272
  {#if cs.checked}
1123
- <svg viewBox="0 0 16 16" width="12" height="12" aria-hidden="true" focusable="false">
1124
- <path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M3.5 8.5l3 3 6-6.5" />
1125
- </svg>
1273
+ <IconCheckboxTick aria-hidden="true" />
1126
1274
  {:else if cs.half}
1127
- <svg viewBox="0 0 16 16" width="12" height="12" aria-hidden="true" focusable="false">
1128
- <path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M4 8h8" />
1129
- </svg>
1275
+ <IconCheckboxIndeterminate aria-hidden="true" />
1130
1276
  {/if}
1131
1277
  </span>
1132
1278
  {/if}
1133
- {#if showIcon}
1134
- <span class="cd-tree-select__icon" aria-hidden="true">
1135
- {#if icon}{@render icon({ node, expanded: nodeOpen, level })}{/if}
1136
- </span>
1279
+ {#if node.icon != null}
1280
+ <span class="cd-tree-select__icon" aria-hidden="true">{node.icon}</span>
1137
1281
  {/if}
1138
1282
  <span class="cd-tree-select__node-label">
1139
1283
  {#if searchActive}
@@ -1147,6 +1291,63 @@
1147
1291
  </div>
1148
1292
  {/snippet}
1149
1293
 
1294
+ {#snippet restTagsTrigger()}
1295
+ <!-- +N 折叠触发器:aria-label 走 i18n restTagsCount(「还有 {count} 项」/「{count} more」)供屏幕阅读器朗读折叠数 -->
1296
+ <span
1297
+ class="cd-tree-select__rest-trigger"
1298
+ aria-label={loc().t('TreeSelect.restTagsCount', { count: hiddenTagCount })}
1299
+ >
1300
+ <Tag size={size === 'large' ? 'default' : 'small'}>+{hiddenTagCount}</Tag>
1301
+ </span>
1302
+ {/snippet}
1303
+
1304
+ <!--
1305
+ 内置搜索框:dropdown / trigger 两处位置复用。
1306
+ - dropdown(默认):带灰底 + 放大镜的 field,与列表分隔清晰(对齐 Semi)。
1307
+ - trigger(bare=true):朴素透明 input,与触发器融为一体,无额外灰底框(避免臃肿)。
1308
+ -->
1309
+ {#snippet builtinSearchInput(bare = false)}
1310
+ {#if typeof searchRender === 'function'}
1311
+ {@render searchRender({
1312
+ value: searchValue,
1313
+ onInput: setSearchValue,
1314
+ onKeydown: onSearchKeydown,
1315
+ placeholder: resolvedSearchPlaceholder,
1316
+ })}
1317
+ {:else if bare}
1318
+ <input
1319
+ class="cd-tree-select__search-input cd-tree-select__search-input--bare"
1320
+ type="text"
1321
+ role="combobox"
1322
+ aria-expanded={isOpen}
1323
+ aria-controls={treeId}
1324
+ aria-activedescendant={activeDescId}
1325
+ placeholder={resolvedSearchPlaceholder}
1326
+ aria-label={resolvedSearchPlaceholder}
1327
+ value={searchValue}
1328
+ oninput={onSearchInput}
1329
+ onkeydown={onSearchKeydown}
1330
+ />
1331
+ {:else}
1332
+ <span class="cd-tree-select__search-field">
1333
+ <IconSearch class="cd-tree-select__search-icon" aria-hidden="true" />
1334
+ <input
1335
+ class="cd-tree-select__search-input"
1336
+ type="text"
1337
+ role="combobox"
1338
+ aria-expanded={isOpen}
1339
+ aria-controls={treeId}
1340
+ aria-activedescendant={activeDescId}
1341
+ placeholder={resolvedSearchPlaceholder}
1342
+ aria-label={resolvedSearchPlaceholder}
1343
+ value={searchValue}
1344
+ oninput={onSearchInput}
1345
+ onkeydown={onSearchKeydown}
1346
+ />
1347
+ </span>
1348
+ {/if}
1349
+ {/snippet}
1350
+
1150
1351
  {#snippet treeNodes(nodes: TreeNode[], level: number)}
1151
1352
  {@const setSize = nodes.length}
1152
1353
  {#each nodes as node, i (node.key)}
@@ -1162,6 +1363,9 @@
1162
1363
 
1163
1364
  <div class={cls} bind:this={rootEl} {style}>
1164
1365
  <!-- combobox 容器用 div 以合法承载多选 tags / clear 等内部交互元素 -->
1366
+ {#if triggerRender}
1367
+ {@render triggerRender({ value: triggerValue, placeholder, isOpen, disabled })}
1368
+ {:else}
1165
1369
  <div
1166
1370
  class="cd-tree-select__trigger"
1167
1371
  role="combobox"
@@ -1170,6 +1374,10 @@
1170
1374
  aria-controls={treeId}
1171
1375
  aria-activedescendant={isOpen && !searchActive ? activeDescId : undefined}
1172
1376
  aria-label={ariaLabel}
1377
+ aria-labelledby={ariaLabelledby}
1378
+ aria-describedby={ariaDescribedby}
1379
+ aria-errormessage={ariaErrormessage}
1380
+ aria-required={ariaRequired || undefined}
1173
1381
  aria-invalid={effStatus === 'error' || undefined}
1174
1382
  aria-disabled={disabled || undefined}
1175
1383
  tabindex={disabled ? -1 : 0}
@@ -1199,34 +1407,71 @@
1199
1407
  {#if typeof prefix === 'string'}{prefix}{:else}{@render prefix()}{/if}
1200
1408
  </span>
1201
1409
  {/if}
1202
- <span class="cd-tree-select__content">
1410
+ {#if insetLabel}
1411
+ <span class="cd-tree-select__inset-label" id={insetLabelId}>
1412
+ {#if typeof insetLabel === 'string'}{insetLabel}{:else}{@render insetLabel()}{/if}
1413
+ </span>
1414
+ {/if}
1415
+ <span class="cd-tree-select__content" class:cd-tree-select__content--search-trigger={searchInTrigger}>
1416
+ {#if searchInTrigger}
1417
+ <!-- searchPosition='trigger':朴素 input 内嵌触发器,与触发器融为一体(bare 模式,无灰底框)。 -->
1418
+ <span class="cd-tree-select__trigger-search">{@render builtinSearchInput(true)}</span>
1419
+ {/if}
1203
1420
  {#if multiple}
1204
1421
  {#if checkedNodes.length > 0}
1205
1422
  <span class="cd-tree-select__tags">
1206
1423
  {#each visibleTagNodes as node (node.key)}
1207
- <Tag
1208
- size={size === 'large' ? 'default' : 'small'}
1209
- closable={!disabled}
1210
- onClose={() => removeChecked(node)}
1211
- >
1212
- {node.label}
1213
- </Tag>
1424
+ {#if renderSelectedItem}
1425
+ {@render renderSelectedItem({ node, onRemove: () => removeChecked(node) })}
1426
+ {:else}
1427
+ <Tag
1428
+ size={size === 'large' ? 'default' : 'small'}
1429
+ closable={!disabled}
1430
+ onClose={() => removeChecked(node)}
1431
+ >
1432
+ {node.label}
1433
+ </Tag>
1434
+ {/if}
1214
1435
  {/each}
1215
1436
  {#if hiddenTagCount > 0}
1216
- <Tag size={size === 'large' ? 'default' : 'small'}>+{hiddenTagCount}</Tag>
1437
+ {#if showRestTagsPopover}
1438
+ <!-- showRestTagsPopover:hover +N 用本库 Popover 展示折叠掉的剩余 Tag(restTagsPopoverProps 可覆盖默认 props) -->
1439
+ <Popover trigger="hover" position="top" {...(restTagsPopoverProps ?? {})}>
1440
+ {@render restTagsTrigger()}
1441
+ {#snippet content()}
1442
+ <span class="cd-tree-select__rest-tags">
1443
+ {#each hiddenTagNodes as node (node.key)}
1444
+ <Tag
1445
+ size={size === 'large' ? 'default' : 'small'}
1446
+ closable={!disabled}
1447
+ onClose={() => removeChecked(node)}
1448
+ >
1449
+ {node.label}
1450
+ </Tag>
1451
+ {/each}
1452
+ </span>
1453
+ {/snippet}
1454
+ </Popover>
1455
+ {:else}
1456
+ {@render restTagsTrigger()}
1457
+ {/if}
1217
1458
  {/if}
1218
1459
  </span>
1219
1460
  {:else}
1220
1461
  <span class="cd-tree-select__placeholder">{placeholder}</span>
1221
1462
  {/if}
1222
1463
  {:else if hasSelection}
1223
- <span class="cd-tree-select__value">{displayLabel}</span>
1464
+ {#if renderSelectedItem && selectedNode}
1465
+ {@render renderSelectedItem({ node: selectedNode, onRemove: () => setValue(null) })}
1466
+ {:else}
1467
+ <span class="cd-tree-select__value">{displayLabel}</span>
1468
+ {/if}
1224
1469
  {:else}
1225
1470
  <span class="cd-tree-select__placeholder">{placeholder}</span>
1226
1471
  {/if}
1227
1472
  </span>
1228
1473
 
1229
- {#if showClear}
1474
+ {#if showClearBtn}
1230
1475
  <span
1231
1476
  class="cd-tree-select__clear"
1232
1477
  role="button"
@@ -1241,12 +1486,7 @@
1241
1486
  }
1242
1487
  }}
1243
1488
  >
1244
- <svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true" focusable="false">
1245
- <path
1246
- fill="currentColor"
1247
- 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"
1248
- />
1249
- </svg>
1489
+ <IconClear aria-hidden="true" />
1250
1490
  </span>
1251
1491
  {/if}
1252
1492
 
@@ -1259,56 +1499,38 @@
1259
1499
  {#if arrowIcon}
1260
1500
  {@render arrowIcon()}
1261
1501
  {:else}
1262
- <svg viewBox="0 0 16 16" width="12" height="12" focusable="false">
1263
- <path fill="currentColor" d="M3.5 6 8 10.5 12.5 6l-1-1L8 8.5 4.5 5l-1 1Z" />
1264
- </svg>
1502
+ <IconChevronDown aria-hidden="true" />
1265
1503
  {/if}
1266
1504
  </span>
1267
1505
  </div>
1506
+ {/if}
1268
1507
 
1269
1508
  {#if shouldRender}
1270
1509
  <div
1271
- class="cd-tree-select__panel"
1510
+ class={['cd-tree-select__panel', dropdownClassName].filter(Boolean).join(' ')}
1272
1511
  class:cd-tree-select__panel--hidden={!isOpen}
1512
+ class:cd-tree-select__panel--motion={motion && isOpen}
1273
1513
  bind:this={panelEl}
1274
1514
  use:floating={{
1275
1515
  trigger: rootEl,
1276
- placement: 'bottomStart',
1516
+ placement: dropdownPlacement,
1277
1517
  autoAdjust: true,
1278
- offset: 4,
1518
+ offset: dropdownOffset,
1279
1519
  matchWidth: dropdownMatchSelectWidth,
1280
1520
  getContainer: resolvePopupContainer,
1281
1521
  open: isOpen,
1282
1522
  }}
1283
1523
  id={treeId}
1524
+ style={dropdownStyleStr}
1284
1525
  >
1285
- {#if isFilterable}
1526
+ {#if searchInDropdown}
1286
1527
  <div class="cd-tree-select__search">
1287
- <input
1288
- class="cd-tree-select__search-input"
1289
- type="text"
1290
- role="combobox"
1291
- aria-expanded={isOpen}
1292
- aria-controls={treeId}
1293
- aria-activedescendant={activeDescId}
1294
- placeholder={loc().t('TreeSelect.searchPlaceholder')}
1295
- aria-label={loc().t('TreeSelect.searchPlaceholder')}
1296
- value={searchValue}
1297
- oninput={onSearchInput}
1298
- onkeydown={(e) => {
1299
- if (e.key === 'Escape') {
1300
- setOpen(false);
1301
- return;
1302
- }
1303
- // 搜索框聚焦时方向键/Home/End/Enter 在过滤后的可见树上 roving。
1304
- onTreeKeydown(e);
1305
- }}
1306
- />
1528
+ {@render builtinSearchInput()}
1307
1529
  </div>
1308
1530
  {/if}
1309
1531
  {#if mergedTree.length === 0}
1310
1532
  <div class="cd-tree-select__tree" role="tree">
1311
- <div class="cd-tree-select__empty">{loc().t('TreeSelect.emptyText')}</div>
1533
+ {@render emptyBlock()}
1312
1534
  </div>
1313
1535
  {:else if useVirtual}
1314
1536
  <!-- 虚拟滚动(复用 Tree 范式):role=tree 容器自身滚动,spacer 撑总高,行绝对定位按索引偏移。
@@ -1325,7 +1547,7 @@
1325
1547
  onkeydown={onTreeKeydown}
1326
1548
  >
1327
1549
  {#if visibleFlat.length === 0}
1328
- <div class="cd-tree-select__empty">{loc().t('TreeSelect.emptyText')}</div>
1550
+ {@render emptyBlock()}
1329
1551
  {:else}
1330
1552
  <div class="cd-tree-select__spacer" style={`block-size:${totalHeight}px`}>
1331
1553
  {#each renderFlat as f, i (f.node.key)}
@@ -1352,7 +1574,7 @@
1352
1574
  >
1353
1575
  {@render treeNodes(mergedTree, 0)}
1354
1576
  {#if searchActive && filterResult.matched.size === 0}
1355
- <div class="cd-tree-select__empty">{loc().t('TreeSelect.emptyText')}</div>
1577
+ {@render emptyBlock()}
1356
1578
  {/if}
1357
1579
  </div>
1358
1580
  {/if}
@@ -1405,12 +1627,47 @@
1405
1627
  background: var(--cd-select-bg);
1406
1628
  border-color: var(--cd-select-border-active);
1407
1629
  }
1630
+ /* warning 校验态:light-bg + 分态 border(对齐 Semi treeSelect warning,same as Input)。 */
1631
+ .cd-tree-select--warning .cd-tree-select__trigger {
1632
+ background: var(--cd-color-tree-select-warning-bg-default);
1633
+ border-color: var(--cd-color-tree-select-warning-border-default);
1634
+ }
1635
+ .cd-tree-select--warning:not(.cd-tree-select--open):not(.cd-tree-select--disabled)
1636
+ .cd-tree-select__trigger:hover {
1637
+ background: var(--cd-color-tree-select-warning-bg-hover);
1638
+ border-color: var(--cd-color-tree-select-warning-border-hover);
1639
+ }
1640
+ .cd-tree-select--warning .cd-tree-select__trigger:focus-visible,
1641
+ .cd-tree-select--warning.cd-tree-select--open .cd-tree-select__trigger {
1642
+ background: var(--cd-color-tree-select-warning-bg-focus);
1643
+ border-color: var(--cd-color-tree-select-warning-border-focus);
1644
+ }
1645
+ .cd-tree-select--warning .cd-tree-select__trigger:active {
1646
+ background: var(--cd-color-tree-select-warning-bg-active);
1647
+ border-color: var(--cd-color-tree-select-warning-border-active);
1648
+ }
1649
+ /* error 校验态:light-bg + 分态 border(对齐 Semi treeSelect danger,same as Input)。 */
1408
1650
  .cd-tree-select--error .cd-tree-select__trigger {
1409
- border-color: var(--cd-select-border-error);
1651
+ background: var(--cd-color-tree-select-danger-bg-default);
1652
+ border-color: var(--cd-color-tree-select-danger-border-default);
1653
+ }
1654
+ .cd-tree-select--error:not(.cd-tree-select--open):not(.cd-tree-select--disabled)
1655
+ .cd-tree-select__trigger:hover {
1656
+ background: var(--cd-color-tree-select-danger-bg-hover);
1657
+ border-color: var(--cd-color-tree-select-danger-border-hover);
1658
+ }
1659
+ .cd-tree-select--error .cd-tree-select__trigger:focus-visible,
1660
+ .cd-tree-select--error.cd-tree-select--open .cd-tree-select__trigger {
1661
+ background: var(--cd-color-tree-select-danger-bg-focus);
1662
+ border-color: var(--cd-color-tree-select-danger-border-focus);
1663
+ }
1664
+ .cd-tree-select--error .cd-tree-select__trigger:active {
1665
+ background: var(--cd-color-tree-select-danger-bg-active);
1666
+ border-color: var(--cd-color-tree-select-danger-border-active);
1410
1667
  }
1411
1668
  .cd-tree-select__trigger[aria-disabled='true'] {
1412
- background: var(--cd-color-disabled-fill, var(--cd-color-fill-0));
1413
- color: var(--cd-color-text-3);
1669
+ background: var(--cd-color-tree-select-input-disabled-bg-default, var(--cd-color-fill-0));
1670
+ color: var(--cd-color-tree-select-input-disabled-text-default);
1414
1671
  cursor: not-allowed;
1415
1672
  }
1416
1673
  .cd-tree-select__content {
@@ -1419,14 +1676,35 @@
1419
1676
  align-items: center;
1420
1677
  min-inline-size: 0;
1421
1678
  }
1679
+ /* searchPosition='trigger':搜索输入占据触发器主区,与已选值/占位并存。 */
1680
+ .cd-tree-select__trigger-search {
1681
+ display: flex;
1682
+ flex: 1 1 auto;
1683
+ min-inline-size: 0;
1684
+ }
1685
+ /* bare 搜索 input:透明、无边框,与触发器融为一体(避免臃肿的灰底框)。 */
1686
+ .cd-tree-select__search-input--bare {
1687
+ inline-size: 100%;
1688
+ min-inline-size: 0;
1689
+ block-size: auto;
1690
+ padding: 0;
1691
+ background: transparent;
1692
+ border: none;
1693
+ color: inherit;
1694
+ font: inherit;
1695
+ outline: none;
1696
+ }
1697
+ .cd-tree-select__search-input--bare::placeholder {
1698
+ color: var(--cd-color-text-2);
1699
+ }
1422
1700
  .cd-tree-select__value {
1423
1701
  overflow: hidden;
1424
1702
  white-space: nowrap;
1425
1703
  text-overflow: ellipsis;
1426
1704
  }
1427
1705
  .cd-tree-select__placeholder {
1428
- /* 对齐 Semi treeSelect 占位符 text-2(原共享 input-placeholder = text-3) */
1429
- color: var(--cd-color-text-2);
1706
+ /* 对齐 Semi treeSelect 占位符 input-placeholder-text-default = text-2 */
1707
+ color: var(--cd-color-tree-select-input-placeholder-text-default);
1430
1708
  }
1431
1709
  .cd-tree-select__clear,
1432
1710
  .cd-tree-select__arrow {
@@ -1434,13 +1712,14 @@
1434
1712
  align-items: center;
1435
1713
  justify-content: center;
1436
1714
  flex: 0 0 auto;
1437
- color: var(--cd-color-text-2);
1715
+ /* 对齐 Semi treeSelect default-icon-default = text-2 */
1716
+ color: var(--cd-color-tree-select-default-icon-default);
1438
1717
  }
1439
1718
  .cd-tree-select__clear {
1440
1719
  cursor: pointer;
1441
1720
  }
1442
1721
  .cd-tree-select__clear:hover {
1443
- color: var(--cd-color-text-0);
1722
+ color: var(--cd-color-tree-select-default-icon-hover);
1444
1723
  }
1445
1724
  .cd-tree-select__arrow {
1446
1725
  transition: transform var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
@@ -1456,29 +1735,83 @@
1456
1735
  border-radius: var(--cd-select-dropdown-radius);
1457
1736
  box-shadow: var(--cd-select-dropdown-shadow);
1458
1737
  }
1459
- /* destroyOnClose=false 关闭后保留 DOM 但不可见、不可交互、不占位 */
1738
+ /* 关闭后保留 DOM 但不可见、不可交互、不占位(对齐 Semi,不销毁重建) */
1460
1739
  .cd-tree-select__panel--hidden {
1461
1740
  display: none;
1462
1741
  }
1742
+ /* motion:下拉浮层开合进场淡入;reduced-motion 退化。
1743
+ 注意:定位 transform 由 use:floating 写入 inline style,动画 keyframe
1744
+ 绝不能设 transform(CSS animation 优先级高于 inline style,会把 floating 的
1745
+ translate(x,y) 覆盖成 0,浮层飘到容器左上角)。故仅动 opacity(与 Dropdown 一致)。 */
1746
+ .cd-tree-select__panel--motion {
1747
+ animation: cd-tree-select-in var(--cd-dropdown-motion-duration, 120ms)
1748
+ var(--cd-dropdown-motion-easing, ease) both;
1749
+ }
1750
+ @keyframes cd-tree-select-in {
1751
+ from {
1752
+ opacity: 0;
1753
+ }
1754
+ to {
1755
+ opacity: 1;
1756
+ }
1757
+ }
1758
+ /* insetLabel 内嵌标签:回填值前的标签文本,消费 tree-select label token */
1759
+ .cd-tree-select__inset-label {
1760
+ display: inline-flex;
1761
+ align-items: center;
1762
+ flex: 0 0 auto;
1763
+ margin-inline-end: var(--cd-spacing-tight);
1764
+ color: var(--cd-color-tree-select-label);
1765
+ font-weight: var(--cd-font-tree-select-label);
1766
+ white-space: nowrap;
1767
+ user-select: none;
1768
+ }
1463
1769
  .cd-tree-select__search {
1770
+ padding: var(--cd-spacing-tight);
1464
1771
  padding-block-end: var(--cd-spacing-extra-tight);
1465
- padding-inline: var(--cd-spacing-tight);
1772
+ }
1773
+ /* 搜索字段:灰底圆角 + 左侧放大镜图标(对齐 Semi 的和谐观感,与列表分隔清晰)。 */
1774
+ .cd-tree-select__search-field {
1775
+ display: flex;
1776
+ align-items: center;
1777
+ gap: var(--cd-spacing-extra-tight);
1778
+ inline-size: 100%;
1779
+ block-size: var(--cd-height-input-default);
1780
+ padding-inline: var(--cd-spacing-input-paddingleft);
1781
+ background: var(--cd-color-fill-0);
1782
+ border: 1px solid transparent;
1783
+ border-radius: var(--cd-radius-input-wrapper);
1784
+ transition:
1785
+ background-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard),
1786
+ border-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
1787
+ }
1788
+ .cd-tree-select__search-field:hover {
1789
+ background: var(--cd-color-fill-1);
1790
+ }
1791
+ .cd-tree-select__search-field:focus-within {
1792
+ background: var(--cd-color-bg-0);
1793
+ border-color: var(--cd-color-input-default-border-focus);
1794
+ box-shadow: var(--cd-focus-ring);
1795
+ }
1796
+ .cd-tree-select__search-icon {
1797
+ flex: 0 0 auto;
1798
+ color: var(--cd-color-text-2);
1466
1799
  }
1467
1800
  .cd-tree-select__search-input {
1801
+ flex: 1 1 auto;
1468
1802
  inline-size: 100%;
1469
- block-size: var(--cd-input-height-small);
1470
- padding-inline: var(--cd-input-padding-x);
1471
- background: var(--cd-input-bg, transparent);
1803
+ min-inline-size: 0;
1804
+ block-size: 100%;
1805
+ padding: 0;
1806
+ background: transparent;
1472
1807
  color: inherit;
1473
- border: 1px solid var(--cd-input-border);
1474
- border-radius: var(--cd-input-radius);
1808
+ border: none;
1475
1809
  font: inherit;
1476
1810
  font-size: var(--cd-font-size-small);
1477
- }
1478
- .cd-tree-select__search-input:focus-visible {
1479
1811
  outline: none;
1480
- border-color: var(--cd-input-border-active);
1481
- box-shadow: var(--cd-focus-ring);
1812
+ }
1813
+ .cd-tree-select__search-input::placeholder {
1814
+ color: var(--cd-color-text-2);
1482
1815
  }
1483
1816
  .cd-tree-select__tree {
1484
1817
  max-block-size: 14rem;
@@ -1496,8 +1829,8 @@
1496
1829
  }
1497
1830
  .cd-tree-select__highlight {
1498
1831
  padding: 0;
1499
- color: var(--cd-tree-search-highlight-color);
1500
- background: var(--cd-tree-search-highlight-bg);
1832
+ color: var(--cd-color-tree-option-highlight-text);
1833
+ background: inherit;
1501
1834
  }
1502
1835
  .cd-tree-select__node {
1503
1836
  display: flex;
@@ -1508,11 +1841,11 @@
1508
1841
  cursor: pointer;
1509
1842
  }
1510
1843
  .cd-tree-select__node:hover {
1511
- background: var(--cd-tree-node-bg-hover);
1844
+ background: var(--cd-color-tree-option-bg-hover);
1512
1845
  }
1513
1846
  .cd-tree-select__node--selected {
1514
- color: var(--cd-tree-node-color-selected);
1515
- background: var(--cd-tree-node-bg-active);
1847
+ color: var(--cd-color-tree-option-text-default);
1848
+ background: var(--cd-color-tree-option-bg-active);
1516
1849
  }
1517
1850
  /* 键盘 roving 高亮(aria-activedescendant 当前项),焦点环不依赖真实 DOM 焦点 */
1518
1851
  .cd-tree-select__node--active {
@@ -1533,19 +1866,23 @@
1533
1866
  flex: 0 0 auto;
1534
1867
  inline-size: 1rem;
1535
1868
  block-size: 1rem;
1536
- color: var(--cd-tree-expand-icon-color);
1869
+ color: var(--cd-color-tree-option-icon-default);
1537
1870
  cursor: pointer;
1538
1871
  transition: transform var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
1872
+ /* IconTreeTriangleDown 默认朝下(展开态);折叠态旋转 -90deg 朝右,对齐 Semi。 */
1873
+ transform: rotate(-90deg);
1539
1874
  }
1540
1875
  .cd-tree-select__expand--open {
1541
- transform: rotate(90deg);
1876
+ transform: rotate(0deg);
1542
1877
  }
1543
1878
  .cd-tree-select__expand--placeholder {
1544
1879
  cursor: default;
1880
+ transform: none;
1545
1881
  }
1546
1882
  .cd-tree-select__expand--loading {
1547
1883
  cursor: default;
1548
1884
  transition: none;
1885
+ transform: none;
1549
1886
  }
1550
1887
  .cd-tree-select__spinner {
1551
1888
  inline-size: 0.75rem;
@@ -1567,7 +1904,7 @@
1567
1904
  flex: 0 0 auto;
1568
1905
  inline-size: 0;
1569
1906
  block-size: 1rem;
1570
- color: var(--cd-tree-node-color);
1907
+ color: var(--cd-color-tree-option-text-default);
1571
1908
  }
1572
1909
  /* 有自定义图标内容时撑开尺寸(对齐 Tree 的 .cd-tree__icon) */
1573
1910
  .cd-tree-select__icon:not(:empty) {
@@ -1585,10 +1922,10 @@
1585
1922
  flex: 0 0 auto;
1586
1923
  inline-size: 1rem;
1587
1924
  block-size: 1rem;
1588
- color: #fff;
1925
+ color: var(--cd-color-white);
1589
1926
  background: var(--cd-color-bg-1, #fff);
1590
1927
  border: 1px solid var(--cd-color-border);
1591
- border-radius: var(--cd-radius-small, 3px);
1928
+ border-radius: var(--cd-border-radius-small);
1592
1929
  }
1593
1930
  .cd-tree-select__checkbox--checked,
1594
1931
  .cd-tree-select__checkbox--half {
@@ -1607,13 +1944,27 @@
1607
1944
  color: var(--cd-color-text-3);
1608
1945
  text-align: center;
1609
1946
  }
1947
+ /* +N 折叠触发器:内联包裹 Tag,承载 aria-label(Popover trigger 宿主) */
1948
+ .cd-tree-select__rest-trigger {
1949
+ display: inline-flex;
1950
+ align-items: center;
1951
+ }
1952
+ /* showRestTagsPopover 浮层内剩余 Tag 列表:换行铺排,限制最大宽避免过宽 */
1953
+ .cd-tree-select__rest-tags {
1954
+ display: flex;
1955
+ flex-wrap: wrap;
1956
+ gap: var(--cd-spacing-extra-tight);
1957
+ align-items: center;
1958
+ max-inline-size: 240px;
1959
+ }
1610
1960
  @media (prefers-reduced-motion: reduce) {
1611
1961
  .cd-tree-select__trigger,
1612
1962
  .cd-tree-select__arrow,
1613
1963
  .cd-tree-select__expand {
1614
1964
  transition: none;
1615
1965
  }
1616
- .cd-tree-select__spinner {
1966
+ .cd-tree-select__spinner,
1967
+ .cd-tree-select__panel--motion {
1617
1968
  animation: none;
1618
1969
  }
1619
1970
  }