@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,196 +1,218 @@
1
1
  <!--
2
- Dropdown — see specs/components/navigation/Dropdown.spec.md
3
- 基础子集:click/hover/contextMenu 触发、12 方位、菜单项、useDismiss、closeOnSelect、键盘导航。
4
- 定位:portal body + position:fixed,core computePosition + autoAdjustOverflow flip。
5
- contextMenu:右键 preventDefault + 记录光标 x/y,浮层 portal body 并 fixed 落点光标。
6
- 嵌套子菜单 / divider / group:与 Menu 对齐的判别联合(types.ts),菜单体经 DropdownItemNode 递归渲染,
7
- 子浮层 hover/聚焦展开并 floating 到父项右侧(溢出翻转左侧);键盘 →/←/↑↓/Esc 逐层导航。
8
- 键盘 roving:焦点式(query 当前层可聚焦 menuitem 移动焦点),兼容嵌套与 divider/group。
9
- destroyOnClose:默认 false 时首开后保留浮层 DOM(仅 --hidden 显隐),true 时关闭即卸载 {#if},重开重建。
10
- getPopupContainer:自定义浮层挂载容器(默认 body);非 body 容器时 floating 切 position:absolute 相对容器定位,
11
- 嵌套子菜单经 ctx 透传同容器,contextMenu 浮层亦挂同容器。
2
+ Dropdown — 向下弹出的菜单,对齐 Semi Design(semi-ui/dropdown)。
3
+
4
+ 架构对齐:Semi Dropdown 封装 Tooltip 作纯定位层。本库无独立「纯定位组件」,等价 primitive
5
+ _floating/use-floating action(Tooltip/Popover 内部亦复用它),故 Dropdown 直接复用同一 use:floating
6
+ 定位层自绘浮层 wrapper(只带 shadow/radius/bg,无 padding,DOM 最贴 Semi)。
7
+
8
+ DOM 镜像 Semi:触发器 span.cd-dropdown-trigger(aria-haspopup/expanded 附在其上);浮层
9
+ div.cd-dropdown(wrapper)> div.cd-dropdown-content > (render | menu 生成的 Dropdown.Menu)。
10
+ 菜单为 ul.cd-dropdown-menu[role=menu][aria-orientation=vertical],项为 li.cd-dropdown-item[role=menuitem]。
11
+
12
+ 触发方式(对齐 Semi TRIGGER_SET):hover / focus / click / custom / contextMenu。
13
+ - hover:mouseEnterDelay/mouseLeaveDelay 延迟开关;disableFocusListener=false 时聚焦触发器亦开(Semi issue#977)。
14
+ - focus:聚焦触发器开、失焦关。
15
+ - click:点击切换;打开后焦点自动落首个非禁用项(Semi foundation handleVisibleChange)。
16
+ - custom:显隐完全受控(visible + onVisibleChange),不自动响应任何鼠标/键盘。
17
+ - contextMenu:右键 preventDefault + 记录光标 x/y,浮层落点光标(v2.42+)。
18
+
19
+ 嵌套:与 Semi 一致——用户在 render 内手动嵌套 <Dropdown>(其 children 为 Dropdown.Item 作触发器),
20
+ 子 Dropdown 经 context.level 判定嵌套:默认间距用 NESTED_SPACING(2),嵌套项 click 走 mousedown 语义。
21
+
22
+ 键盘(对齐 Semi foundation):触发器 Enter/Space click 打开、ArrowDown 焦点首项、ArrowUp 焦点末项、Esc 关闭;
23
+ 菜单内 ArrowDown/Up 漫游、Esc 关闭回触发器。
12
24
  -->
13
25
  <script lang="ts">
14
- import { setContext, type Snippet } from 'svelte';
26
+ import { setContext, getContext, untrack, type Snippet } from 'svelte';
15
27
  import { useId, useDismiss, type Placement } from '@chenzy-design/core';
16
- import { useLocale } from '../locale-provider/index.js';
17
28
  import { getGlobalPopupContainer } from '../config-provider/index.js';
18
29
  import { floating } from '../_floating/use-floating.js';
19
- import DropdownItemNode from './DropdownItemNode.svelte';
20
- import { isDropdownDivider, isDropdownGroup } from './types.js';
30
+ import DropdownMenu from './DropdownMenu.svelte';
31
+ import DropdownItem from './DropdownItem.svelte';
32
+ import DropdownTitle from './DropdownTitle.svelte';
33
+ import DropdownDivider from './DropdownDivider.svelte';
21
34
  import { DROPDOWN_CTX, type DropdownContext } from './context.js';
22
- import type { DropdownItem } from './types.js';
35
+ import type { DropdownMenuItem } from './types.js';
36
+
37
+ // 触发方式全集(对齐 Semi strings.TRIGGER_SET)
38
+ type Trigger = 'hover' | 'focus' | 'click' | 'custom' | 'contextMenu';
23
39
 
24
- type ItemKey = string | number;
25
- type Trigger = 'hover' | 'click' | 'contextMenu';
26
- // 12 方位全集(兼容旧的 bottomStart/bottomEnd/topStart)
27
- type Position = Placement;
28
- type Size = 'small' | 'default' | 'large';
40
+ // 默认间距(对齐 Semi numbers):顶层 4、嵌套 2。
41
+ const SPACING = 4;
42
+ const NESTED_SPACING = 2;
43
+ // 默认延迟(对齐 Semi:mouseLeaveDelay 默认 DEFAULT_LEAVE_DELAY=100,mouseEnterDelay 默认 50)。
44
+ const DEFAULT_ENTER_DELAY = 50;
45
+ const DEFAULT_LEAVE_DELAY = 100;
29
46
 
30
47
  interface Props {
31
- items?: DropdownItem[];
48
+ /** 弹出层内容,由 Dropdown.Menu / Dropdown.Item / Dropdown.Title / Dropdown.Divider 构成(对齐 Semi render)。 */
49
+ render?: Snippet;
50
+ /** 通过 JSON Array 快速配置 Dropdown 内容(对齐 Semi menu);render 存在时忽略 menu。 */
51
+ menu?: DropdownMenuItem[];
52
+ /** 触发弹出层的 Trigger 元素(对齐 Semi children)。 */
53
+ children?: Snippet;
54
+ /** 触发下拉的行为:hover / focus / click / custom / contextMenu。默认 hover。 */
32
55
  trigger?: Trigger;
33
- open?: boolean;
34
- defaultOpen?: boolean;
35
- position?: Position;
36
- size?: Size;
37
- disabled?: boolean;
38
- closeOnSelect?: boolean;
39
- closeOnEsc?: boolean;
56
+ /** 是否显示菜单,需配合 trigger='custom' 使用(对齐 Semi visible,受控)。 */
57
+ visible?: boolean;
58
+ /** 非受控初始显隐。 */
59
+ defaultVisible?: boolean;
60
+ /**
61
+ * 弹出菜单的位置(对齐 Semi position)。本库统一用 12 方位 Placement 命名,
62
+ * 语义与 Semi 一一对应(bottomStart≈bottomLeft、rightStart≈rightTop)。默认 bottom。
63
+ */
64
+ position?: Placement;
65
+ /** 弹出层被遮挡时是否自动调整方向(对齐 Semi autoAdjustOverflow)。默认 true。 */
66
+ autoAdjustOverflow?: boolean;
67
+ /** 鼠标移入 Trigger 后延迟显示时间(ms),仅 hover/focus 生效(对齐 Semi mouseEnterDelay)。 */
40
68
  mouseEnterDelay?: number;
69
+ /** 鼠标移出弹出层后延迟消失时间(ms),仅 hover/focus 生效(对齐 Semi mouseLeaveDelay)。 */
41
70
  mouseLeaveDelay?: number;
42
71
  /**
43
- * 浮层与触发元素的间距(px)。数值映射到 floating 主轴 offset;
44
- * 传 { x, y } 时按当前 position 主轴方向取值(上下取 y、左右取 x)。默认 4。
72
+ * 弹出层与 Trigger 的距离(px)(对齐 Semi spacing)。嵌套时缺省用 NESTED_SPACING(2),顶层 SPACING(4)。
73
+ * 传 { x, y } 时按 position 主轴方向取值(上下取 y、左右取 x)。
45
74
  */
46
75
  spacing?: number | { x: number; y: number };
47
- /**
48
- * hover 模式下点击菜单项是否关闭浮层(默认 true)。
49
- * 设为 false hover 触发下点击项不关闭,仅靠移出/Esc/外部点击收起。
50
- * 仅影响 hover 触发;click/contextMenu 触发的关闭仍由 closeOnSelect 决定。
51
- */
52
- clickToHide?: boolean;
53
- /** 浮层层级(z-index),默认 1050。写入浮层内联 style 覆盖 token 默认值。 */
76
+ /** 弹出层计算溢出时增加的冗余值(px)(对齐 Semi margin,作用同 Tooltip margin)。 */
77
+ margin?: number;
78
+ /** 弹出层 z-index(对齐 Semi zIndex)。默认 1050(Tooltip DEFAULT_Z_INDEX)。 */
54
79
  zIndex?: number;
55
- /**
56
- * 空间不足时自动翻转/移位到可视区(默认 true)。
57
- * 透传 floating action autoAdjust:false 时严格按 position 定位不翻转。
58
- */
59
- autoAdjustOverflow?: boolean;
60
- /** 关闭即卸载浮层内容({#if}),重开重建。默认 false:首开后保留 DOM 仅隐藏。 */
61
- destroyOnClose?: boolean;
62
- /**
63
- * 首次打开前不渲染浮层内容(默认 true:惰性渲染,首开才挂载)。
64
- * 设为 false 时即使从未打开也预渲染浮层 DOM(仅隐藏),可减少首开开销。
65
- */
66
- lazyRender?: boolean;
67
- /**
68
- * 关闭后保留浮层 DOM(与 destroyOnClose 互斥;为 true 时强制保留,忽略 destroyOnClose)。
69
- * 默认 false:保留策略由 destroyOnClose 决定。
70
- */
71
- keepDOM?: boolean;
72
- /** 浮层挂载容器,缺省 document.body。非 body 容器时改 absolute 定位相对该容器。 */
73
- getPopupContainer?: () => HTMLElement | null | undefined;
74
- /**
75
- * 已选中的 Item 右侧显示 ✓ 勾选标记(默认 false)。
76
- * 通过 context 透传给 DropdownItemNode 渲染。
77
- */
78
- showTick?: boolean;
79
- /**
80
- * 下拉动画开关(默认 true)。
81
- * false 时禁用菜单展开/收起过渡动画。
82
- */
80
+ /** 下拉动画开关(对齐 Semi motion)。默认 true。 */
83
81
  motion?: boolean;
84
- /**
85
- * 阻断下拉框内点击事件冒泡(默认 true)。
86
- * 包裹菜单的 onclick/pointerdown 停止冒泡,防止触发上层监听器。
87
- */
82
+ /** 下拉弹层外层样式类名(对齐 Semi className,作用于 div.cd-dropdown)。 */
83
+ className?: string;
84
+ /** 下拉菜单根元素类名(对齐 Semi contentClassName,作用于 div.cd-dropdown-content)。 */
85
+ contentClassName?: string;
86
+ /** 弹出层内联样式(对齐 Semi style,作用于 div.cd-dropdown-content;勿含 position/transform)。 */
87
+ style?: string;
88
+ /** 是否自动在 active 的 Dropdown.Item 左侧展示对勾(对齐 Semi showTick)。默认 false。 */
89
+ showTick?: boolean;
90
+ /** 是否阻止弹出层上的点击事件冒泡(对齐 Semi stopPropagation)。默认 false。 */
88
91
  stopPropagation?: boolean;
89
- onSelect?: (key: ItemKey) => void;
90
- onOpenChange?: (open: boolean) => void;
91
- triggerContent?: Snippet;
92
- children?: Snippet;
92
+ /** trigger 或弹出层按 Esc 键是否关闭面板,受控时不生效(对齐 Semi closeOnEsc)。默认 true。 */
93
+ closeOnEsc?: boolean;
94
+ /** 更新该值手动触发弹出层重新定位(对齐 Semi rePosKey)。 */
95
+ rePosKey?: string | number;
96
+ /** hover 时不响应键盘聚焦弹出事件(对齐 Semi disableFocusListener,issue#977)。默认 false。 */
97
+ disableFocusListener?: boolean;
98
+ /** 弹出层内点击时是否自动关闭弹出层(对齐 Semi clickToHide)。默认随触发方式:hover/click 为 true。 */
99
+ clickToHide?: boolean;
100
+ /** 关闭时是否保留内部组件 DOM 不销毁(对齐 Semi keepDOM)。默认 false。 */
101
+ keepDOM?: boolean;
102
+ /** 指定父级 DOM,弹层渲染至该 DOM(对齐 Semi getPopupContainer)。默认 document.body。 */
103
+ getPopupContainer?: () => HTMLElement | null | undefined;
104
+ /** 弹出层显示状态改变时的回调(对齐 Semi onVisibleChange)。 */
105
+ onVisibleChange?: (visible: boolean) => void;
106
+ /** 在 trigger 或弹出层按 Esc 键时调用(对齐 Semi onEscKeyDown),在关闭逻辑之前。 */
107
+ onEscKeyDown?: (e: KeyboardEvent) => void;
108
+ /** 展示状态下点击非 children、非弹出层区域时回调(对齐 Semi onClickOutSide,仅 custom/click 有效)。 */
109
+ onClickOutSide?: (e: PointerEvent) => void;
93
110
  }
94
111
 
95
112
  let {
96
- items = [],
113
+ render,
114
+ menu,
115
+ children,
97
116
  trigger = 'hover',
98
- open,
99
- defaultOpen = false,
100
- position = 'bottomStart',
101
- size = 'default',
102
- disabled = false,
103
- closeOnSelect = true,
104
- closeOnEsc = true,
105
- mouseEnterDelay = 150,
106
- mouseLeaveDelay = 150,
107
- spacing = 4,
108
- clickToHide = true,
109
- zIndex = 1050,
117
+ visible,
118
+ defaultVisible = false,
119
+ position = 'bottom',
110
120
  autoAdjustOverflow = true,
111
- destroyOnClose = false,
112
- lazyRender = true,
121
+ mouseEnterDelay = DEFAULT_ENTER_DELAY,
122
+ mouseLeaveDelay = DEFAULT_LEAVE_DELAY,
123
+ spacing,
124
+ margin,
125
+ zIndex = 1050,
126
+ motion = true,
127
+ className,
128
+ contentClassName,
129
+ style: contentStyle,
130
+ showTick = false,
131
+ stopPropagation = false,
132
+ closeOnEsc = true,
133
+ rePosKey,
134
+ disableFocusListener = false,
135
+ clickToHide,
113
136
  keepDOM = false,
114
137
  getPopupContainer,
115
- showTick = false,
116
- motion = true,
117
- stopPropagation = true,
118
- onSelect,
119
- onOpenChange,
120
- triggerContent,
121
- children,
138
+ onVisibleChange,
139
+ onEscKeyDown,
140
+ onClickOutSide,
122
141
  }: Props = $props();
123
142
 
124
- const loc = useLocale();
125
- // ConfigProvider 全局浮层容器默认;自身 getPopupContainer prop 优先,未传时回退此值(再回退 body)。
143
+ // 父级 Dropdown 上下文(嵌套判定):顶层无父 ctx(level 视为 0),render 内的 Item 处于 level 1,
144
+ // 其内的子 Dropdown 读到 parent.level=1,自身内容 level=2。
145
+ const parentCtx = getContext<DropdownContext | undefined>(DROPDOWN_CTX);
146
+ const parentLevel = parentCtx?.level ?? 0;
147
+ const isNested = $derived(parentLevel > 0);
148
+
149
+ // ConfigProvider 全局浮层容器默认;自身 getPopupContainer prop 优先,否则继承父级容器(嵌套同容器)。
126
150
  const globalPopupContainer = getGlobalPopupContainer();
127
- // 合并后的容器解析器:prop 优先,否则全局默认;两处(context 共享 + portal)共用。
128
- const resolvePopupContainer = $derived(getPopupContainer ?? globalPopupContainer);
151
+ const resolvePopupContainer = $derived(
152
+ getPopupContainer ?? parentCtx?.getContainer ?? globalPopupContainer,
153
+ );
129
154
 
130
155
  const menuId = useId('cd-dropdown-menu');
131
- // 触发元素 id:菜单浮层 aria-labelledby 指向它,让 AT 用触发文案命名菜单(spec §6)。
132
156
  const triggerId = useId('cd-dropdown-trigger');
133
157
 
134
- // spacing → floating 主轴 offset:number 直用;{ x, y } 按 position 主轴方向取值
135
- // (top/bottom 系主轴是垂直取 y;left/right 系主轴是水平取 x)。
158
+ // spacing → floating 主轴 offset:未传时顶层 SPACING / 嵌套 NESTED_SPACING;
159
+ // number 直用;{ x, y } 按 position 主轴方向取值(上下取 y、左右取 x)。
136
160
  const offset = $derived.by(() => {
137
- if (typeof spacing === 'number') return spacing;
161
+ const s = spacing ?? (isNested ? NESTED_SPACING : SPACING);
162
+ if (typeof s === 'number') return s;
138
163
  const horizontal = position.startsWith('left') || position.startsWith('right');
139
- return horizontal ? spacing.x : spacing.y;
164
+ return horizontal ? s.x : s.y;
140
165
  });
141
166
 
142
- // 子菜单浮层经此 context 共享同一挂载容器(getPopupContainer);
143
- // showTick 透传给叶子 DropdownItemNode 渲染勾选标记。
167
+ // 溢出冗余(Semi margin):透传给 floating padding(视口边缘保留距离);未传时用默认。
168
+ const DEFAULT_FLOAT_PADDING = 8;
169
+ const floatPadding = $derived(typeof margin === 'number' ? margin : DEFAULT_FLOAT_PADDING);
170
+
171
+ // clickToHide 解析:未传时 hover/click 默认 true(点击项关闭),custom/contextMenu 不受此控制。
172
+ const resolvedClickToHide = $derived(clickToHide ?? true);
173
+
174
+ // 供 render/menu 内 Dropdown.Item 点击后自动关闭(clickToHide)。经 context 上抛,
175
+ // render(用户手写 Item)与 menu(生成 Item)行为一致。
176
+ function requestCloseOnSelect() {
177
+ if (trigger === 'custom') return;
178
+ if (resolvedClickToHide) setOpen(false);
179
+ }
180
+
181
+ // 向子树透传:showTick / level+1 / trigger / 容器(子菜单浮层挂同容器)/ 关闭请求。
144
182
  setContext<DropdownContext>(DROPDOWN_CTX, {
145
- get getContainer() {
146
- return resolvePopupContainer;
147
- },
148
183
  get showTick() {
149
184
  return showTick;
150
185
  },
186
+ level: parentLevel + 1,
187
+ get trigger() {
188
+ return trigger;
189
+ },
190
+ get getContainer() {
191
+ return resolvePopupContainer;
192
+ },
193
+ requestClose: requestCloseOnSelect,
151
194
  });
152
195
 
153
- // --- 受控 open (红线 #1):不无条件回写 open,仅 onOpenChange ---
154
- const isControlled = $derived(open !== undefined);
155
- let innerOpen = $state(getInitialOpen());
156
- const isOpen = $derived(isControlled ? !!open : innerOpen);
157
-
158
- // --- 渲染策略:lazyRender 控制首开前是否预渲染;keepDOM/destroyOnClose 控制关闭后是否保留 ---
159
- // lazyRender=false 时即使从未打开也预渲染(仅隐藏)。
160
- // 关闭后保留:keepDOM=true 强制保留(忽略 destroyOnClose);否则 destroyOnClose=false 保留 / true 卸载。
161
- let hasBeenOpened = $state(false);
162
- $effect(() => {
163
- if (isOpen) hasBeenOpened = true;
164
- });
165
- // 关闭后是否保留 DOM:keepDOM 优先,否则取 !destroyOnClose。
166
- const retainOnClose = $derived(keepDOM || !destroyOnClose);
167
- const shouldRender = $derived(
168
- isOpen ||
169
- // 已开过且关闭后需保留
170
- (hasBeenOpened && retainOnClose) ||
171
- // 非惰性:从未打开也预渲染
172
- !lazyRender,
173
- );
174
-
175
- function getInitialOpen(): boolean {
176
- return defaultOpen;
177
- }
196
+ // --- 受控 open(红线 #1):custom trigger 完全受控;其余以 visible 受控优先,否则内部态 ---
197
+ const isControlled = $derived(visible !== undefined);
198
+ // eslint-disable-next-line -- 仅取 defaultVisible 初值作为非受控初始态
199
+ let innerOpen = $state(untrack(() => defaultVisible));
200
+ const isOpen = $derived(isControlled ? !!visible : innerOpen);
178
201
 
179
202
  function setOpen(next: boolean) {
180
203
  if (next === isOpen) return;
181
204
  if (!isControlled) innerOpen = next;
182
- onOpenChange?.(next);
205
+ onVisibleChange?.(next);
183
206
  }
184
207
 
185
- function selectLeaf(key: ItemKey) {
186
- onSelect?.(key);
187
- // hover 模式下 clickToHide=false 时点击项不关闭浮层(仅靠移出/Esc/外部点击收起);
188
- // click/contextMenu 触发不受 clickToHide 影响,关闭仍由 closeOnSelect 决定。
189
- if (trigger === 'hover' && !clickToHide) return;
190
- if (closeOnSelect) setOpen(false);
191
- }
208
+ // --- 渲染保留策略:keepDOM=true 关闭后保留浮层 DOM(仅隐藏),否则关闭即卸载 ---
209
+ let hasBeenOpened = $state(false);
210
+ $effect(() => {
211
+ if (isOpen) hasBeenOpened = true;
212
+ });
213
+ const shouldRender = $derived(isOpen || (hasBeenOpened && keepDOM));
192
214
 
193
- // --- hover 延迟开关:setTimeout 存普通变量,cleanup 清除 ---
215
+ // --- hover / focus 延迟开关 ---
194
216
  let enterTimer: ReturnType<typeof setTimeout> | undefined;
195
217
  let leaveTimer: ReturnType<typeof setTimeout> | undefined;
196
218
 
@@ -206,50 +228,82 @@
206
228
  }
207
229
 
208
230
  function onPointerEnter() {
209
- if (disabled || trigger !== 'hover') return;
231
+ if (trigger !== 'hover') return;
210
232
  clearTimers();
211
233
  enterTimer = setTimeout(() => setOpen(true), mouseEnterDelay);
212
234
  }
213
235
 
214
- function onPointerLeave() {
215
- if (disabled || trigger !== 'hover') return;
236
+ function onPointerLeave(e: PointerEvent) {
237
+ if (trigger !== 'hover') return;
238
+ // 指针移入浮层(portal 到 body,在触发根之外)时不关闭。
239
+ const related = e.relatedTarget as Node | null;
240
+ if (related instanceof Element && menuWrapperEl?.contains(related)) return;
216
241
  clearTimers();
217
242
  leaveTimer = setTimeout(() => setOpen(false), mouseLeaveDelay);
218
243
  }
219
244
 
220
245
  function onTriggerClick() {
221
- if (disabled || trigger !== 'click') return;
246
+ if (trigger !== 'click') return;
222
247
  setOpen(!isOpen);
223
248
  }
224
249
 
225
- // --- contextMenu 触发:右键弹菜单,菜单定位到鼠标光标处 ---
226
- // 鼠标坐标存普通 $state,仅用于浮层 fixed 定位(红线 #3:命令式监听 + cleanup)。
250
+ function onTriggerFocusIn() {
251
+ // focus 触发;或 hover 触发但未禁用 focus 监听(Semi disableFocusListener)。
252
+ if (trigger === 'focus' || (trigger === 'hover' && !disableFocusListener)) {
253
+ clearTimers();
254
+ setOpen(true);
255
+ }
256
+ }
257
+
258
+ function onTriggerFocusOut(e: FocusEvent) {
259
+ if (trigger !== 'focus') return;
260
+ const related = e.relatedTarget as Node | null;
261
+ if (related instanceof Element && menuWrapperEl?.contains(related)) return;
262
+ if (rootEl && related instanceof Node && rootEl.contains(related)) return;
263
+ setOpen(false);
264
+ }
265
+
266
+ // --- contextMenu 触发:右键弹菜单,定位到鼠标光标处 ---
227
267
  let cursorX = $state(0);
228
268
  let cursorY = $state(0);
229
269
 
230
270
  function onContextMenu(e: MouseEvent) {
231
- if (disabled || trigger !== 'contextMenu') return;
271
+ if (trigger !== 'contextMenu') return;
232
272
  e.preventDefault();
233
273
  cursorX = e.clientX;
234
274
  cursorY = e.clientY;
235
275
  setOpen(true);
236
276
  }
237
277
 
238
- // 顶层菜单可聚焦项:本层直属(不含子浮层里的)未禁用 menuitem。
239
- function topMenuItems(): HTMLElement[] {
240
- if (!menuEl) return [];
241
- return [...menuEl.querySelectorAll<HTMLElement>('[role="menuitem"]')].filter(
242
- (el) => el.getAttribute('aria-disabled') !== 'true' && belongsToTopLevel(el),
243
- );
244
- }
278
+ // --- DOM 引用 ---
279
+ let rootEl = $state<HTMLSpanElement | null>(null);
280
+ let menuWrapperEl = $state<HTMLDivElement | null>(null);
281
+
282
+ // floating 定位锚点:非嵌套时 = rootEl(inline-block span,有正常 rect);
283
+ // 嵌套时 rootEl 为 display:contents 的 span(rect 全 0,不可锚定),改锚定其内部真实元素
284
+ // (子 Dropdown 的触发器 Dropdown.Item <li>)。
285
+ const anchorEl = $derived.by(() => {
286
+ if (!rootEl) return rootEl;
287
+ if (!isNested) return rootEl;
288
+ return (rootEl.firstElementChild as HTMLElement | null) ?? rootEl;
289
+ });
245
290
 
246
- // 元素是否属于顶层菜单(不在任何子浮层 .cd-dropdown__sub 内)。
247
- function belongsToTopLevel(el: HTMLElement): boolean {
248
- return el.closest('.cd-dropdown__sub') === null;
291
+ // 浮层内可聚焦菜单项(本层直属 li[role=menuitem],未禁用;不含嵌套子 Dropdown 浮层里的)。
292
+ function menuItems(): HTMLElement[] {
293
+ const scope = menuWrapperEl;
294
+ if (!scope) return [];
295
+ return [...scope.querySelectorAll<HTMLElement>('li[role="menuitem"]')].filter(
296
+ (el) =>
297
+ el.getAttribute('aria-disabled') !== 'true' &&
298
+ // 仅本层:排除嵌套子 Dropdown 浮层(各自 portal,不在本 wrapper 内即天然排除;
299
+ // 若同容器 absolute 定位则可能在内,按最近的 .cd-dropdown wrapper 归属过滤)。
300
+ el.closest('.cd-dropdown-content') ===
301
+ scope.querySelector('.cd-dropdown-content'),
302
+ );
249
303
  }
250
304
 
251
- function focusTopItem(delta: number) {
252
- const list = topMenuItems();
305
+ function focusItem(delta: number) {
306
+ const list = menuItems();
253
307
  if (list.length === 0) return;
254
308
  const cur = list.findIndex((el) => el === document.activeElement);
255
309
  let next: number;
@@ -258,30 +312,69 @@
258
312
  list[next]?.focus();
259
313
  }
260
314
 
315
+ // 触发器 aria action(对齐 Semi cloneElement 语义):把 aria-haspopup/expanded/controls 写到
316
+ // 用户提供的真实触发器元素(span 的首个 element child)本身,而非包裹 span——避免在无 role 的 span 上
317
+ // 出现受限 aria(aria-allowed-attr),也避免 span role=button 与可聚焦 children 形成嵌套交互控件
318
+ // (nested-interactive)。嵌套触发器(Dropdown.Item <li role=menuitem>)不写(其 menuitem 语义自足)。
319
+ function triggerAria(node: HTMLElement, params: { open: boolean; controls: string; nested: boolean }) {
320
+ function apply(open: boolean, controls: string, nested: boolean) {
321
+ const target = node.firstElementChild as HTMLElement | null;
322
+ if (!target || nested) return;
323
+ target.setAttribute('aria-haspopup', 'menu');
324
+ target.setAttribute('aria-expanded', String(open));
325
+ target.setAttribute('aria-controls', controls);
326
+ }
327
+ apply(params.open, params.controls, params.nested);
328
+ return {
329
+ update(next: { open: boolean; controls: string; nested: boolean }) {
330
+ apply(next.open, next.controls, next.nested);
331
+ },
332
+ };
333
+ }
334
+
335
+ // 打开后浮层需在下一帧挂载完成才能聚焦。
336
+ function focusEdgeWhenReady(delta: number) {
337
+ requestAnimationFrame(() => {
338
+ const list = menuItems();
339
+ (delta > 0 ? list[0] : list[list.length - 1])?.focus();
340
+ });
341
+ }
342
+
261
343
  function onTriggerKeydown(e: KeyboardEvent) {
262
- if (disabled) return;
344
+ if (trigger === 'custom') return;
263
345
  switch (e.key) {
264
346
  case 'Enter':
265
347
  case ' ':
348
+ // Semi:Enter/Space 直接 click 触发器(click 触发下打开并聚焦首项)。
349
+ e.preventDefault();
350
+ onTriggerClick();
351
+ if (isOpen || trigger === 'click') focusEdgeWhenReady(1);
352
+ break;
353
+ case 'ArrowDown':
266
354
  e.preventDefault();
267
355
  if (!isOpen) {
268
356
  setOpen(true);
269
- focusFirstWhenReady();
357
+ focusEdgeWhenReady(1);
358
+ } else {
359
+ focusEdgeWhenReady(1);
270
360
  }
271
361
  break;
272
- case 'ArrowDown':
362
+ case 'ArrowUp':
273
363
  e.preventDefault();
274
364
  if (!isOpen) {
275
365
  setOpen(true);
276
- focusFirstWhenReady();
366
+ focusEdgeWhenReady(-1);
277
367
  } else {
278
- focusTopItem(1);
368
+ focusEdgeWhenReady(-1);
279
369
  }
280
370
  break;
281
371
  case 'Escape':
282
- if (isOpen && closeOnEsc) {
283
- e.preventDefault();
284
- setOpen(false);
372
+ if (isOpen) {
373
+ onEscKeyDown?.(e);
374
+ if (closeOnEsc && !isControlled) {
375
+ e.preventDefault();
376
+ setOpen(false);
377
+ }
285
378
  }
286
379
  break;
287
380
  default:
@@ -289,29 +382,34 @@
289
382
  }
290
383
  }
291
384
 
292
- // 打开后浮层需在下一帧挂载完成才能聚焦首项。
293
- function focusFirstWhenReady() {
294
- requestAnimationFrame(() => {
295
- const list = topMenuItems();
296
- list[0]?.focus();
297
- });
298
- }
299
-
300
385
  function onMenuKeydown(e: KeyboardEvent) {
301
386
  if (!isOpen) return;
302
387
  switch (e.key) {
388
+ case 'Enter':
389
+ case ' ':
390
+ // 对齐 Semi foundation:Enter/Space 激活当前聚焦的菜单项(触发其 onClick)。
391
+ if (
392
+ document.activeElement instanceof HTMLElement &&
393
+ document.activeElement.getAttribute('role') === 'menuitem'
394
+ ) {
395
+ e.preventDefault();
396
+ document.activeElement.click();
397
+ }
398
+ break;
303
399
  case 'ArrowDown':
304
400
  e.preventDefault();
305
- focusTopItem(1);
401
+ focusItem(1);
306
402
  break;
307
403
  case 'ArrowUp':
308
404
  e.preventDefault();
309
- focusTopItem(-1);
405
+ focusItem(-1);
310
406
  break;
311
407
  case 'Escape':
312
- if (closeOnEsc) {
408
+ onEscKeyDown?.(e);
409
+ if (closeOnEsc && !isControlled) {
313
410
  e.preventDefault();
314
411
  setOpen(false);
412
+ rootEl?.querySelector<HTMLElement>('[tabindex]')?.focus();
315
413
  }
316
414
  break;
317
415
  default:
@@ -319,46 +417,60 @@
319
417
  }
320
418
  }
321
419
 
322
- // --- DOM 引用:触发根 + portal 浮层菜单(定位由 use:floating action 接管)---
323
- let rootEl = $state<HTMLDivElement | null>(null);
324
- let menuEl = $state<HTMLUListElement | null>(null);
420
+ // click 触发打开后,焦点自动落首个非禁用项(Semi foundation.handleVisibleChange)。
421
+ $effect(() => {
422
+ if (isOpen && trigger === 'click') {
423
+ focusEdgeWhenReady(1);
424
+ }
425
+ });
325
426
 
326
- // --- useDismiss (红线 #3):仅复用 Escape;outside-click 自管理。---
327
- // 子菜单浮层各自 portal 到 body(动态多层),无法逐一列入 extraTargets,
328
- // 故 outside 判定改为:点在触发根 / 顶层菜单 / 任意 .cd-dropdown__sub 浮层内即「内部」。
427
+ // --- useDismiss(红线 #3):Escape 复用;outside-click 自管理(识别嵌套子浮层为内部)---
329
428
  $effect(() => {
330
- if (!isOpen || !rootEl) return;
429
+ if (!isOpen || !rootEl || trigger === 'custom') return;
331
430
  const cleanup = useDismiss(rootEl, {
332
- onDismiss: () => setOpen(false),
431
+ onDismiss: () => {
432
+ if (closeOnEsc) setOpen(false);
433
+ },
333
434
  escape: closeOnEsc,
334
435
  outsideClick: false,
335
- extraTargets: [menuEl],
436
+ extraTargets: [menuWrapperEl],
336
437
  });
337
438
  return cleanup;
338
439
  });
339
440
 
340
- // outside-click 命令式监听 + cleanup(红线 #3):识别多层子浮层为内部。
441
+ // outside-click 命令式监听 + cleanup(红线 #3):custom/contextMenu 不自动关的语义除外。
442
+ // custom 完全受控不监听;其余 click/hover/focus/contextMenu 点外部关闭并回调 onClickOutSide。
341
443
  $effect(() => {
342
- if (!isOpen || !rootEl) return;
444
+ if (!isOpen || !rootEl || trigger === 'custom') return;
343
445
  const root = rootEl;
344
446
  function onPointerDown(e: PointerEvent) {
345
447
  const t = e.target as Node | null;
346
- if (root.contains(t)) return;
347
- if (menuEl && menuEl.contains(t)) return;
348
- if (t instanceof Element && t.closest('.cd-dropdown__sub')) return;
448
+ if (t && root.contains(t)) return;
449
+ if (menuWrapperEl && t && menuWrapperEl.contains(t)) return;
450
+ // 嵌套子 Dropdown 浮层(各自 portal)识别为内部。
451
+ if (t instanceof Element && t.closest('.cd-dropdown')) return;
452
+ onClickOutSide?.(e);
349
453
  setOpen(false);
350
454
  }
351
455
  document.addEventListener('pointerdown', onPointerDown, true);
352
456
  return () => document.removeEventListener('pointerdown', onPointerDown, true);
353
457
  });
354
458
 
355
- // contextMenu 浮层定位:portal 到 body + position:fixed 到光标 x/y。
356
- // floating action 只支持元素锚点,故 contextMenu 用此命令式 action 直接落点光标。
459
+ // contextmenu 监听绑触发根(命令式 + cleanup)。
460
+ $effect(() => {
461
+ if (trigger !== 'contextMenu' || !rootEl) return;
462
+ const el = rootEl;
463
+ el.addEventListener('contextmenu', onContextMenu);
464
+ return () => el.removeEventListener('contextmenu', onContextMenu);
465
+ });
466
+
467
+ $effect(() => clearTimers);
468
+
469
+ // contextMenu 浮层定位:portal + fixed 到光标 x/y(floating action 只支持元素锚点)。
357
470
  function cursorFloating(node: HTMLElement, coords: { x: number; y: number }) {
358
471
  if (typeof document === 'undefined') {
359
472
  return { update() {}, destroy() {} };
360
473
  }
361
- // 自定义容器(getPopupContainer)时挂同容器并改 absolute 相对容器定位。
362
474
  const container = resolvePopupContainer?.() ?? document.body;
363
475
  const useAbsolute = container !== document.body;
364
476
  container.appendChild(node);
@@ -367,11 +479,9 @@
367
479
 
368
480
  function place(x: number, y: number) {
369
481
  const rect = node.getBoundingClientRect();
370
- // 防止越出视口右/下边缘:超出则向左/上贴边。
371
482
  let left = Math.max(0, Math.min(x, window.innerWidth - rect.width));
372
483
  let top = Math.max(0, Math.min(y, window.innerHeight - rect.height));
373
484
  if (useAbsolute) {
374
- // 光标坐标是视口系;转为容器局部坐标(减容器盒原点 + 加容器滚动)。
375
485
  const cRect = container.getBoundingClientRect();
376
486
  left = left - cRect.left + container.scrollLeft;
377
487
  top = top - cRect.top + container.scrollTop;
@@ -391,172 +501,144 @@
391
501
  };
392
502
  }
393
503
 
394
- // contextmenu 监听绑触发根,命令式 + cleanup(红线 #3)。
395
- $effect(() => {
396
- if (trigger !== 'contextMenu' || !rootEl) return;
397
- const el = rootEl;
398
- el.addEventListener('contextmenu', onContextMenu);
399
- return () => el.removeEventListener('contextmenu', onContextMenu);
400
- });
401
-
402
- $effect(() => clearTimers);
403
-
404
- // portal 后 menu 不在 root 子树内,hover 移到 menu 上需维持 open。
405
- function onMenuPointerEnter() {
406
- if (trigger !== 'hover') return;
407
- clearTimers();
408
- }
409
- function onMenuPointerLeave(e: PointerEvent) {
410
- if (trigger !== 'hover') return;
411
- // 指针移入子菜单浮层(portal 到 body,在顶层 ul 之外)时不关闭整体。
412
- const related = e.relatedTarget as Node | null;
413
- if (related instanceof Element && related.closest('.cd-dropdown__sub')) return;
414
- clearTimers();
415
- leaveTimer = setTimeout(() => setOpen(false), mouseLeaveDelay);
504
+ // 浮层内点击:stopPropagation(Semi 默认 false);clickToHide 关闭由 Item onClick 上抛(见下方 selectClose)。
505
+ function onMenuClick(e: Event) {
506
+ if (stopPropagation) e.stopPropagation();
416
507
  }
417
508
 
418
- const cls = $derived(
419
- [
420
- 'cd-dropdown',
421
- `cd-dropdown--${size}`,
422
- disabled && 'cd-dropdown--disabled',
423
- isOpen && 'cd-dropdown--open',
424
- ]
425
- .filter(Boolean)
426
- .join(' '),
427
- );
428
509
 
429
- // stopPropagation:菜单内 click/pointerdown 停止冒泡(防触发上层监听器)。
430
- function onMenuEvent(e: Event) {
431
- if (stopPropagation) e.stopPropagation();
432
- }
510
+ const wrapperCls = $derived(
511
+ ['cd-dropdown', className].filter(Boolean).join(' '),
512
+ );
513
+ const contentCls = $derived(
514
+ ['cd-dropdown-content', contentClassName].filter(Boolean).join(' '),
515
+ );
516
+ const wrapperInlineStyle = $derived(`z-index:${zIndex}`);
433
517
  </script>
434
518
 
519
+ {#snippet popContent()}
520
+ <div class={contentCls} style={contentStyle}>
521
+ {#if render}
522
+ {@render render()}
523
+ {:else if menu}
524
+ <DropdownMenu>
525
+ {#each menu as m, i (i)}
526
+ {#if m.node === 'title'}
527
+ <DropdownTitle>{m.name}</DropdownTitle>
528
+ {:else if m.node === 'divider'}
529
+ <DropdownDivider />
530
+ {:else if m.node === 'item'}
531
+ <DropdownItem
532
+ key={m.key}
533
+ disabled={m.disabled}
534
+ active={m.active}
535
+ type={m.type}
536
+ icon={m.icon}
537
+ onClick={m.onClick}
538
+ onMouseEnter={m.onMouseEnter}
539
+ onMouseLeave={m.onMouseLeave}
540
+ onContextMenu={m.onContextMenu}
541
+ >
542
+ {m.name}
543
+ </DropdownItem>
544
+ {/if}
545
+ {/each}
546
+ </DropdownMenu>
547
+ {/if}
548
+ </div>
549
+ {/snippet}
550
+
435
551
  <!-- svelte-ignore a11y_no_static_element_interactions -->
436
- <div
437
- class={cls}
552
+ <!--
553
+ 触发器包裹 span:承载交互(keydown/click/hover/focus 事件由内部可聚焦 children 冒泡至此),
554
+ 自身无 role/aria——aria-haspopup/expanded/controls 经 use:triggerAria 写到真实触发器元素本身
555
+ (对齐 Semi cloneElement 语义),避免 aria-allowed-attr / nested-interactive 违规。
556
+ 嵌套时 span 为 display:contents 无盒子,内部 li(Dropdown.Item role=menuitem)语义自足。
557
+ -->
558
+ <span
559
+ class="cd-dropdown-trigger"
560
+ class:cd-dropdown-trigger--nested={isNested}
561
+ id={triggerId}
438
562
  bind:this={rootEl}
563
+ use:triggerAria={{ open: isOpen, controls: menuId, nested: isNested }}
439
564
  onpointerenter={onPointerEnter}
440
565
  onpointerleave={onPointerLeave}
566
+ onclick={onTriggerClick}
567
+ onfocusin={onTriggerFocusIn}
568
+ onfocusout={onTriggerFocusOut}
569
+ onkeydown={onTriggerKeydown}
441
570
  >
571
+ {@render children?.()}
572
+ </span>
573
+
574
+ {#if isOpen && trigger === 'contextMenu'}
575
+ <!-- contextMenu:wrapper portal 到 body 并定位到光标 x/y -->
442
576
  <div
443
- class="cd-dropdown__trigger"
444
- id={triggerId}
445
- role="button"
446
- tabindex={disabled ? -1 : 0}
447
- aria-haspopup="menu"
448
- aria-expanded={isOpen}
449
- aria-controls={menuId}
450
- aria-disabled={disabled || undefined}
451
- onclick={onTriggerClick}
452
- onkeydown={onTriggerKeydown}
577
+ class={wrapperCls}
578
+ id={menuId}
579
+ bind:this={menuWrapperEl}
580
+ style={wrapperInlineStyle}
581
+ class:cd-dropdown--motion={motion}
582
+ use:cursorFloating={{ x: cursorX, y: cursorY }}
583
+ onkeydown={onMenuKeydown}
584
+ onclick={onMenuClick}
585
+ onpointerdown={onMenuClick}
586
+ role="presentation"
453
587
  >
454
- {#if triggerContent}
455
- {@render triggerContent()}
456
- {:else}
457
- <span class="cd-dropdown__trigger-default">{loc().t('Dropdown.trigger')}</span>
458
- {/if}
588
+ {@render popContent()}
459
589
  </div>
460
-
461
- {#snippet menuBody()}
462
- {#if children}
463
- {@render children()}
464
- {:else}
465
- {#each items as item, i (isDropdownDivider(item) || isDropdownGroup(item) ? `__cd-dd-top-${i}` : item.key)}
466
- <DropdownItemNode
467
- {item}
468
- onSelectLeaf={selectLeaf}
469
- onCloseAll={() => {}}
470
- />
471
- {/each}
472
- {/if}
473
- {/snippet}
474
-
475
- {#if isOpen && trigger === 'contextMenu'}
476
- <!-- contextMenu:浮层 portal 到 body 并定位到光标 x/y -->
477
- <ul
478
- class="cd-dropdown__menu"
479
- class:cd-dropdown__menu--motion={motion}
480
- id={menuId}
481
- bind:this={menuEl}
482
- style="z-index: {zIndex}"
483
- use:cursorFloating={{ x: cursorX, y: cursorY }}
484
- role="menu"
485
- aria-labelledby={triggerId}
486
- tabindex="-1"
487
- onkeydown={onMenuKeydown}
488
- onclick={onMenuEvent}
489
- onpointerdown={onMenuEvent}
490
- >
491
- {@render menuBody()}
492
- </ul>
493
- {:else if shouldRender}
494
- <!-- destroyOnClose=false 时关闭仍保留 DOM(--hidden 隐藏),true 时 !isOpen 即被 {#if} 卸载。 -->
495
- <ul
496
- class="cd-dropdown__menu"
497
- class:cd-dropdown__menu--hidden={!isOpen}
498
- class:cd-dropdown__menu--motion={motion && isOpen}
499
- id={menuId}
500
- bind:this={menuEl}
501
- style="z-index: {zIndex}"
502
- use:floating={{ trigger: rootEl, placement: position, autoAdjust: autoAdjustOverflow, offset, getContainer: resolvePopupContainer, open: isOpen }}
503
- role="menu"
504
- aria-labelledby={triggerId}
505
- tabindex="-1"
506
- aria-hidden={!isOpen || undefined}
507
- onkeydown={onMenuKeydown}
508
- onpointerenter={onMenuPointerEnter}
509
- onpointerleave={onMenuPointerLeave}
510
- onclick={onMenuEvent}
511
- onpointerdown={onMenuEvent}
512
- >
513
- {@render menuBody()}
514
- </ul>
515
- {/if}
516
- </div>
590
+ {:else if shouldRender}
591
+ <div
592
+ class={wrapperCls}
593
+ id={menuId}
594
+ bind:this={menuWrapperEl}
595
+ style={wrapperInlineStyle}
596
+ class:cd-dropdown--hidden={!isOpen}
597
+ class:cd-dropdown--motion={motion && isOpen}
598
+ use:floating={{ trigger: anchorEl, placement: position, autoAdjust: autoAdjustOverflow, offset, padding: floatPadding, getContainer: resolvePopupContainer, open: isOpen, rePosKey }}
599
+ onkeydown={onMenuKeydown}
600
+ onpointerenter={() => trigger === 'hover' && clearTimers()}
601
+ onpointerleave={onPointerLeave}
602
+ onclick={onMenuClick}
603
+ onpointerdown={onMenuClick}
604
+ role="presentation"
605
+ >
606
+ {@render popContent()}
607
+ </div>
608
+ {/if}
517
609
 
518
610
  <style>
519
- .cd-dropdown {
520
- position: relative;
611
+ .cd-dropdown-trigger {
521
612
  display: inline-block;
522
613
  }
523
- .cd-dropdown__trigger {
524
- display: inline-flex;
525
- align-items: center;
526
- cursor: pointer;
527
- }
528
- .cd-dropdown__trigger:focus-visible {
614
+ .cd-dropdown-trigger:focus-visible {
529
615
  outline: none;
530
- box-shadow: var(--cd-focus-ring);
531
- border-radius: var(--cd-border-radius-small);
532
616
  }
533
- .cd-dropdown--disabled .cd-dropdown__trigger {
534
- color: var(--cd-color-text-3);
535
- cursor: not-allowed;
617
+ /* 嵌套:子 Dropdown 触发器为 Dropdown.Item(<li>),需直接参与父 ul 布局,
618
+ 故包裹 span 用 display:contents 不产生盒子(li 视觉归位 ul,事件仍经 span 冒泡处理)。 */
619
+ .cd-dropdown-trigger--nested {
620
+ display: contents;
536
621
  }
537
- /* 浮层 portal 到 body,由 JS 写 position:fixed + transform 定位 */
538
- .cd-dropdown__menu {
539
- margin: 0;
540
- padding-block: var(--cd-spacing-extra-tight);
541
- padding-inline: 0;
542
- list-style: none;
543
- z-index: var(--cd-dropdown-z);
544
- min-inline-size: var(--cd-dropdown-min-width);
545
- background: var(--cd-dropdown-bg);
546
- border-radius: var(--cd-dropdown-radius);
547
- box-shadow: var(--cd-dropdown-shadow);
622
+ /* 浮层 wrapper:portal 到 body,由 use:floating 写 position:fixed + transform 定位。
623
+ 对齐 Semi .semi-dropdown(+ wrapper 的 shadow/radius/bg/z)。 */
624
+ .cd-dropdown {
625
+ z-index: var(--cd-z-dropdown);
626
+ border-radius: var(--cd-radius-dropdown);
627
+ background: var(--cd-color-dropdown-bg-default);
628
+ box-shadow: var(--cd-shadow-elevated);
629
+ backdrop-filter: var(--cd-filter-dropdown-bg);
630
+ overflow-y: auto;
631
+ font-size: var(--cd-font-size-regular);
632
+ line-height: var(--cd-line-height-regular);
548
633
  }
549
- /* destroyOnClose=false 关闭后保留 DOM 但不可见、不可交互、不占位 */
550
- .cd-dropdown__menu--hidden {
634
+ /* keepDOM 关闭后保留 DOM 但不可见 */
635
+ .cd-dropdown--hidden {
551
636
  display: none;
552
637
  }
553
- /* motion:进场淡入;reduced-motion 退化。
554
- 注意:定位 transform use:floating 写入 inline style,动画 keyframe
555
- 绝不能设置 transform(CSS animation 优先级高于 inline style,会把
556
- floating translate(x,y) 覆盖成 0,浮层飘到容器左上角)。故只动 opacity。 */
557
- .cd-dropdown__menu--motion {
558
- animation: cd-dropdown-in var(--cd-dropdown-motion-duration, 120ms)
559
- var(--cd-dropdown-motion-easing, ease) both;
638
+ /* motion:进场淡入;定位 transform 由 use:floating 写入 inline style,
639
+ keyframe 绝不能设 transform(会覆盖 translate 使浮层飘走),故只动 opacity。 */
640
+ .cd-dropdown--motion {
641
+ animation: cd-dropdown-in var(--cd-motion-duration-fast) var(--cd-motion-ease-standard) both;
560
642
  }
561
643
  @keyframes cd-dropdown-in {
562
644
  from {
@@ -567,7 +649,7 @@
567
649
  }
568
650
  }
569
651
  @media (prefers-reduced-motion: reduce) {
570
- .cd-dropdown__menu--motion {
652
+ .cd-dropdown--motion {
571
653
  animation: none;
572
654
  }
573
655
  }