niuma-ui 2.0.4 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/NOTICE +0 -1
  3. package/README.md +3 -3
  4. package/README.zh-CN.md +3 -3
  5. package/dist/components/_shared/index.d.ts +2 -2
  6. package/dist/components/_shared/src/overlay-utils.d.ts +44 -1
  7. package/dist/components/_shared/src/overlay-utils.js +87 -2
  8. package/dist/components/alert/index.d.ts +1 -0
  9. package/dist/components/alert/src/RsAlert.css +120 -65
  10. package/dist/components/alert/src/RsAlert.d.ts +24 -5
  11. package/dist/components/alert/src/RsAlert.impl.js +108 -36
  12. package/dist/components/alert/src/RsAlert.js +1 -1
  13. package/dist/components/alert/src/alert-utils.d.ts +37 -0
  14. package/dist/components/alert/src/alert-utils.js +71 -0
  15. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +1 -1
  16. package/dist/components/button/src/RsButton.css +75 -72
  17. package/dist/components/button/src/RsButton.d.ts +1 -4
  18. package/dist/components/button/src/RsButton.impl.js +3 -7
  19. package/dist/components/button/src/RsButton.js +1 -1
  20. package/dist/components/card/src/RsCard.d.ts +1 -1
  21. package/dist/components/code-block/index.d.ts +1 -0
  22. package/dist/components/code-block/src/RsCodeBlock.css +93 -52
  23. package/dist/components/code-block/src/RsCodeBlock.d.ts +36 -9
  24. package/dist/components/code-block/src/RsCodeBlock.impl.js +203 -84
  25. package/dist/components/code-block/src/RsCodeBlock.js +1 -1
  26. package/dist/components/code-block/src/code-block-highlight.d.ts +4 -0
  27. package/dist/components/code-block/src/code-block-highlight.js +34 -0
  28. package/dist/components/code-block/src/code-block-utils.d.ts +23 -0
  29. package/dist/components/code-block/src/code-block-utils.js +71 -0
  30. package/dist/components/code-editor/index.d.ts +1 -1
  31. package/dist/components/code-editor/src/RsCodeEditor.css +118 -92
  32. package/dist/components/code-editor/src/RsCodeEditor.d.ts +14 -3
  33. package/dist/components/code-editor/src/RsCodeEditor.impl.js +261 -94
  34. package/dist/components/code-editor/src/RsCodeEditor.js +1 -1
  35. package/dist/components/code-editor/src/code-editor-utils.d.ts +15 -0
  36. package/dist/components/code-editor/src/code-editor-utils.js +36 -1
  37. package/dist/components/code-editor/src/code-mirror-completion.d.ts +1 -1
  38. package/dist/components/code-editor/src/code-mirror-completion.js +8 -5
  39. package/dist/components/code-editor/src/code-mirror-diagnostics.d.ts +2 -3
  40. package/dist/components/code-editor/src/code-mirror-diagnostics.js +3 -4
  41. package/dist/components/code-editor/src/code-mirror-ghost.d.ts +1 -1
  42. package/dist/components/code-editor/src/code-mirror-ghost.js +12 -3
  43. package/dist/components/code-editor/src/code-mirror-inline-edit.js +8 -3
  44. package/dist/components/code-editor/src/code-mirror-intel.d.ts +2 -2
  45. package/dist/components/code-editor/src/code-mirror-intel.js +50 -39
  46. package/dist/components/code-editor/src/code-mirror-lang.js +4 -0
  47. package/dist/components/code-editor/src/code-mirror-session.d.ts +13 -0
  48. package/dist/components/code-editor/src/code-mirror-session.js +30 -0
  49. package/dist/components/config-provider/src/RsConfigProvider.css +1 -1
  50. package/dist/components/config-provider/src/RsConfigProvider.d.ts +2 -2
  51. package/dist/components/config-provider/src/RsConfigProvider.impl.js +7 -16
  52. package/dist/components/config-provider/src/RsConfigProvider.js +1 -1
  53. package/dist/components/context-menu/index.d.ts +1 -1
  54. package/dist/components/context-menu/src/RsContextMenu.css +115 -89
  55. package/dist/components/context-menu/src/RsContextMenu.d.ts +32 -11
  56. package/dist/components/context-menu/src/RsContextMenu.impl.js +795 -48
  57. package/dist/components/context-menu/src/RsContextMenuItems.d.ts +25 -1
  58. package/dist/components/context-menu/src/RsContextMenuItems.impl.js +110 -61
  59. package/dist/components/context-menu/src/context-menu-utils.d.ts +89 -3
  60. package/dist/components/context-menu/src/context-menu-utils.js +168 -3
  61. package/dist/components/date-picker/src/RsDatePicker.d.ts +2 -2
  62. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +2 -2
  63. package/dist/components/descriptions/index.d.ts +1 -1
  64. package/dist/components/descriptions/src/RsDescriptions.css +38 -11
  65. package/dist/components/descriptions/src/RsDescriptions.d.ts +20 -4
  66. package/dist/components/descriptions/src/RsDescriptions.impl.js +89 -19
  67. package/dist/components/descriptions/src/RsDescriptionsItem.impl.js +13 -6
  68. package/dist/components/descriptions/src/descriptions-utils.d.ts +19 -0
  69. package/dist/components/descriptions/src/descriptions-utils.js +39 -1
  70. package/dist/components/dialog/index.d.ts +1 -1
  71. package/dist/components/dialog/src/RsConfirmDialog.css +47 -21
  72. package/dist/components/dialog/src/RsConfirmDialog.d.ts +19 -7
  73. package/dist/components/dialog/src/RsConfirmDialog.impl.js +349 -119
  74. package/dist/components/dialog/src/RsConfirmDialog.js +2 -1
  75. package/dist/components/dialog/src/RsDialog.css +102 -109
  76. package/dist/components/dialog/src/RsDialog.d.ts +34 -24
  77. package/dist/components/dialog/src/RsDialog.impl.js +410 -177
  78. package/dist/components/dialog/src/RsDialog.js +2 -1
  79. package/dist/components/dialog/src/dialog-utils.d.ts +40 -1
  80. package/dist/components/dialog/src/dialog-utils.js +152 -1
  81. package/dist/components/dialog/src/dialog-window.js +29 -8
  82. package/dist/components/drawer/index.d.ts +1 -1
  83. package/dist/components/drawer/src/RsDrawer.css +61 -29
  84. package/dist/components/drawer/src/RsDrawer.d.ts +37 -21
  85. package/dist/components/drawer/src/RsDrawer.impl.js +441 -223
  86. package/dist/components/drawer/src/drawer-utils.d.ts +35 -0
  87. package/dist/components/drawer/src/drawer-utils.js +131 -1
  88. package/dist/components/dropdown/index.d.ts +1 -1
  89. package/dist/components/dropdown/src/RsDropdown.css +140 -61
  90. package/dist/components/dropdown/src/RsDropdown.d.ts +39 -6
  91. package/dist/components/dropdown/src/RsDropdown.impl.js +693 -63
  92. package/dist/components/dropdown/src/RsDropdownItemView.impl.js +17 -7
  93. package/dist/components/dropdown/src/RsDropdownItems.d.ts +32 -3
  94. package/dist/components/dropdown/src/RsDropdownItems.impl.js +171 -59
  95. package/dist/components/dropdown/src/dropdown-utils.d.ts +50 -0
  96. package/dist/components/dropdown/src/dropdown-utils.js +103 -3
  97. package/dist/components/empty/index.d.ts +1 -0
  98. package/dist/components/empty/src/RsEmpty.css +105 -23
  99. package/dist/components/empty/src/RsEmpty.d.ts +27 -4
  100. package/dist/components/empty/src/RsEmpty.impl.js +154 -11
  101. package/dist/components/empty/src/RsEmpty.js +2 -1
  102. package/dist/components/empty/src/empty-utils.d.ts +28 -0
  103. package/dist/components/empty/src/empty-utils.js +55 -0
  104. package/dist/components/form/src/RsForm.d.ts +1 -1
  105. package/dist/components/input-number/src/RsInputNumber.d.ts +1 -1
  106. package/dist/components/label/src/RsLabel.d.ts +1 -1
  107. package/dist/components/loading/index.d.ts +1 -0
  108. package/dist/components/loading/src/RsLoading.css +13 -97
  109. package/dist/components/loading/src/RsLoading.d.ts +52 -2
  110. package/dist/components/loading/src/RsLoading.impl.js +216 -33
  111. package/dist/components/loading/src/RsLoading.js +2 -1
  112. package/dist/components/loading/src/loading-status.css +210 -0
  113. package/dist/components/loading/src/loading-status.d.ts +34 -0
  114. package/dist/components/loading/src/loading-status.impl.js +84 -0
  115. package/dist/components/loading/src/loading-status.js +8 -0
  116. package/dist/components/loading/src/loading-utils.d.ts +51 -4
  117. package/dist/components/loading/src/loading-utils.js +122 -0
  118. package/dist/components/loading-bar/index.d.ts +1 -0
  119. package/dist/components/loading-bar/src/RsLoadingBar.css +72 -8
  120. package/dist/components/loading-bar/src/RsLoadingBar.d.ts +55 -11
  121. package/dist/components/loading-bar/src/RsLoadingBar.impl.js +298 -57
  122. package/dist/components/loading-bar/src/RsLoadingBar.js +1 -1
  123. package/dist/components/loading-bar/src/loading-bar-utils.d.ts +69 -0
  124. package/dist/components/loading-bar/src/loading-bar-utils.js +97 -0
  125. package/dist/components/log/src/RsLog.css +52 -144
  126. package/dist/components/log/src/RsLog.d.ts +12 -11
  127. package/dist/components/log/src/RsLog.impl.js +181 -148
  128. package/dist/components/log/src/RsLog.js +1 -1
  129. package/dist/components/log/src/RsLogRow.css +152 -0
  130. package/dist/components/log/src/RsLogRow.d.ts +35 -0
  131. package/dist/components/log/src/RsLogRow.impl.js +91 -0
  132. package/dist/components/log/src/RsLogRow.js +8 -0
  133. package/dist/components/log/src/log-utils.d.ts +8 -0
  134. package/dist/components/log/src/log-utils.js +71 -10
  135. package/dist/components/markdown/index.d.ts +1 -1
  136. package/dist/components/markdown/src/RsMarkdown.css +75 -32
  137. package/dist/components/markdown/src/RsMarkdown.d.ts +6 -2
  138. package/dist/components/markdown/src/RsMarkdown.impl.js +185 -17
  139. package/dist/components/markdown/src/markdown-utils.d.ts +26 -0
  140. package/dist/components/markdown/src/markdown-utils.js +114 -12
  141. package/dist/components/mentions/src/RsMentions.d.ts +2 -2
  142. package/dist/components/menu/index.d.ts +1 -1
  143. package/dist/components/menu/src/RsMenu.css +70 -29
  144. package/dist/components/menu/src/RsMenu.d.ts +58 -4
  145. package/dist/components/menu/src/RsMenu.impl.js +93 -46
  146. package/dist/components/menu/src/RsMenuItems.d.ts +22 -5
  147. package/dist/components/menu/src/RsMenuItems.impl.js +506 -154
  148. package/dist/components/menu/src/menu-utils.d.ts +56 -0
  149. package/dist/components/menu/src/menu-utils.js +139 -6
  150. package/dist/components/monaco-editor/index.d.ts +1 -1
  151. package/dist/components/monaco-editor/src/RsMonacoEditor.css +28 -16
  152. package/dist/components/monaco-editor/src/RsMonacoEditor.d.ts +39 -41
  153. package/dist/components/monaco-editor/src/RsMonacoEditor.impl.js +212 -133
  154. package/dist/components/monaco-editor/src/RsMonacoEditor.js +1 -1
  155. package/dist/components/monaco-editor/src/monaco-editor-utils.d.ts +126 -0
  156. package/dist/components/monaco-editor/src/monaco-editor-utils.js +302 -0
  157. package/dist/components/pagination/index.d.ts +2 -2
  158. package/dist/components/pagination/src/RsPagination.css +93 -46
  159. package/dist/components/pagination/src/RsPagination.d.ts +68 -8
  160. package/dist/components/pagination/src/RsPagination.impl.js +229 -86
  161. package/dist/components/pagination/src/RsPagination.js +1 -1
  162. package/dist/components/pagination/src/pagination-utils.d.ts +59 -0
  163. package/dist/components/pagination/src/pagination-utils.js +105 -1
  164. package/dist/components/popover/index.d.ts +1 -0
  165. package/dist/components/popover/src/RsPopover.css +124 -14
  166. package/dist/components/popover/src/RsPopover.d.ts +38 -7
  167. package/dist/components/popover/src/RsPopover.impl.js +546 -35
  168. package/dist/components/popover/src/RsPopover.js +2 -1
  169. package/dist/components/popover/src/popover-utils.d.ts +24 -2
  170. package/dist/components/popover/src/popover-utils.js +55 -0
  171. package/dist/components/sidebar/index.d.ts +1 -0
  172. package/dist/components/sidebar/src/RsSidebar.css +91 -33
  173. package/dist/components/sidebar/src/RsSidebar.d.ts +17 -9
  174. package/dist/components/sidebar/src/RsSidebar.impl.js +124 -22
  175. package/dist/components/sidebar/src/RsSidebar.js +1 -1
  176. package/dist/components/sidebar/src/RsSidebarGroup.css +23 -6
  177. package/dist/components/sidebar/src/RsSidebarGroup.d.ts +6 -2
  178. package/dist/components/sidebar/src/RsSidebarGroup.impl.js +17 -4
  179. package/dist/components/sidebar/src/RsSidebarGroup.js +1 -1
  180. package/dist/components/sidebar/src/RsSidebarItem.css +50 -20
  181. package/dist/components/sidebar/src/RsSidebarItem.d.ts +21 -3
  182. package/dist/components/sidebar/src/RsSidebarItem.impl.js +71 -20
  183. package/dist/components/sidebar/src/RsSidebarItem.js +1 -1
  184. package/dist/components/sidebar/src/sidebar-utils.d.ts +47 -0
  185. package/dist/components/sidebar/src/sidebar-utils.js +72 -0
  186. package/dist/components/split-pane/index.d.ts +2 -2
  187. package/dist/components/split-pane/src/RsSplitPane.css +41 -30
  188. package/dist/components/split-pane/src/RsSplitPane.d.ts +6 -2
  189. package/dist/components/split-pane/src/RsSplitPane.impl.js +153 -45
  190. package/dist/components/split-pane/src/split-pane-utils.d.ts +23 -0
  191. package/dist/components/split-pane/src/split-pane-utils.js +18 -1
  192. package/dist/components/stat-card/index.d.ts +1 -0
  193. package/dist/components/stat-card/src/RsStatCard.css +129 -25
  194. package/dist/components/stat-card/src/RsStatCard.d.ts +40 -4
  195. package/dist/components/stat-card/src/RsStatCard.impl.js +106 -12
  196. package/dist/components/stat-card/src/RsStatCard.js +1 -1
  197. package/dist/components/stat-card/src/stat-card-utils.d.ts +39 -0
  198. package/dist/components/stat-card/src/stat-card-utils.js +113 -0
  199. package/dist/components/steps/index.d.ts +1 -1
  200. package/dist/components/steps/src/RsSteps.css +158 -37
  201. package/dist/components/steps/src/RsSteps.d.ts +69 -5
  202. package/dist/components/steps/src/RsSteps.impl.js +168 -28
  203. package/dist/components/steps/src/RsSteps.js +1 -1
  204. package/dist/components/steps/src/steps-utils.d.ts +51 -1
  205. package/dist/components/steps/src/steps-utils.js +67 -1
  206. package/dist/components/table/src/RsTable.impl.js +4 -2
  207. package/dist/components/table/src/composables/useRsTableContextMenu.d.ts +16 -0
  208. package/dist/components/table/src/composables/useRsTableContextMenu.js +1 -1
  209. package/dist/components/table/src/composables/useRsTableEngine.js +6 -2
  210. package/dist/components/table/src/composables/useRsTableScrollLayout.js +2 -0
  211. package/dist/components/table/src/composables/useRsTableShell.d.ts +16 -0
  212. package/dist/components/table/src/rs-table-props.d.ts +1 -1
  213. package/dist/components/table/src/rs-table-props.js +0 -1
  214. package/dist/components/table/src/table-body/RsTableBody.impl.js +1 -0
  215. package/dist/components/table/src/table-body/RsTableCell.impl.js +1 -1
  216. package/dist/components/table/src/table-body/RsTableCellEditor.impl.js +10 -2
  217. package/dist/components/table/src/table-body/RsTableColGroup.impl.js +1 -0
  218. package/dist/components/table/src/table-footer/RsTableSummaryRow.impl.js +1 -0
  219. package/dist/components/table/src/table-header/RsTableHeader.impl.js +1 -0
  220. package/dist/components/table/src/utils/table-utils.d.ts +10 -6
  221. package/dist/components/table/src/utils/table-utils.js +27 -25
  222. package/dist/components/table/style/rs-table.css +86 -28
  223. package/dist/components/tabs/index.d.ts +2 -2
  224. package/dist/components/tabs/src/RsTabs.css +225 -101
  225. package/dist/components/tabs/src/RsTabs.d.ts +37 -8
  226. package/dist/components/tabs/src/RsTabs.impl.js +400 -270
  227. package/dist/components/tabs/src/tabs-utils.d.ts +41 -2
  228. package/dist/components/tabs/src/tabs-utils.js +55 -1
  229. package/dist/components/terminal/index.d.ts +1 -1
  230. package/dist/components/terminal/src/RsTerminal.css +60 -37
  231. package/dist/components/terminal/src/RsTerminal.d.ts +36 -4
  232. package/dist/components/terminal/src/RsTerminal.impl.js +288 -68
  233. package/dist/components/terminal/src/RsTerminal.js +1 -1
  234. package/dist/components/terminal/src/terminal-utils.d.ts +42 -4
  235. package/dist/components/terminal/src/terminal-utils.js +113 -10
  236. package/dist/components/textarea/src/RsTextarea.d.ts +1 -1
  237. package/dist/components/time-picker/src/RsTimePicker.d.ts +2 -2
  238. package/dist/components/toaster/src/RsToaster.css +156 -203
  239. package/dist/components/toaster/src/RsToaster.d.ts +32 -2
  240. package/dist/components/toaster/src/RsToaster.impl.js +309 -34
  241. package/dist/components/toaster/src/toast-store.d.ts +95 -0
  242. package/dist/components/toaster/src/toast-store.js +177 -0
  243. package/dist/components/toaster/src/toast-utils.d.ts +60 -0
  244. package/dist/components/toaster/src/toast-utils.js +86 -0
  245. package/dist/components/toolbar/index.d.ts +1 -1
  246. package/dist/components/toolbar/src/RsToolbar.css +206 -32
  247. package/dist/components/toolbar/src/RsToolbar.d.ts +41 -16
  248. package/dist/components/toolbar/src/RsToolbar.impl.js +146 -18
  249. package/dist/components/toolbar/src/RsToolbar.js +2 -1
  250. package/dist/components/toolbar/src/toolbar-utils.d.ts +20 -0
  251. package/dist/components/toolbar/src/toolbar-utils.js +105 -0
  252. package/dist/components/tooltip/index.d.ts +1 -0
  253. package/dist/components/tooltip/src/RsTooltip.css +104 -26
  254. package/dist/components/tooltip/src/RsTooltip.d.ts +38 -16
  255. package/dist/components/tooltip/src/RsTooltip.impl.js +420 -51
  256. package/dist/components/tooltip/src/RsTooltip.js +2 -1
  257. package/dist/components/tooltip/src/RsTooltipProvider.d.ts +4 -4
  258. package/dist/components/tooltip/src/RsTooltipProvider.impl.js +51 -14
  259. package/dist/components/tooltip/src/tooltip-utils.d.ts +30 -0
  260. package/dist/components/tooltip/src/tooltip-utils.js +23 -0
  261. package/dist/components/tree/index.d.ts +2 -2
  262. package/dist/components/tree/src/RsTree.css +84 -75
  263. package/dist/components/tree/src/RsTree.d.ts +20 -20
  264. package/dist/components/tree/src/RsTree.impl.js +292 -66
  265. package/dist/components/tree/src/RsTree.js +1 -1
  266. package/dist/components/tree/src/tree-utils.d.ts +22 -0
  267. package/dist/components/tree/src/tree-utils.js +18 -4
  268. package/dist/components/tree-select/src/RsTreeSelect.d.ts +1 -1
  269. package/dist/components/virtual-list/index.d.ts +1 -1
  270. package/dist/components/virtual-list/src/RsVirtualList.css +64 -9
  271. package/dist/components/virtual-list/src/RsVirtualList.d.ts +31 -5
  272. package/dist/components/virtual-list/src/RsVirtualList.impl.js +425 -76
  273. package/dist/components/virtual-list/src/RsVirtualList.js +1 -1
  274. package/dist/components/virtual-list/src/virtual-list-utils.d.ts +64 -1
  275. package/dist/components/virtual-list/src/virtual-list-utils.js +215 -1
  276. package/dist/composables/useRsLoadingBar.d.ts +2 -5
  277. package/dist/composables/useRsLoadingBar.js +21 -5
  278. package/dist/composables/useRsTabsNav.d.ts +3 -1
  279. package/dist/composables/useRsTabsNav.js +96 -28
  280. package/dist/composables/useRsToast.d.ts +11 -13
  281. package/dist/composables/useRsToast.js +66 -17
  282. package/dist/index.d.ts +30 -21
  283. package/dist/index.js +14 -0
  284. package/dist/locale/apply.js +6 -1
  285. package/dist/locale/messages.js +128 -2
  286. package/dist/styles.css +465 -808
  287. package/dist/theme/brand.example.css +3 -2
  288. package/dist/vite-plugins/niuma-ui-host.js +1 -1
  289. package/package.json +2 -5
  290. package/dist/components/_shared/src/reka.d.ts +0 -2
  291. package/dist/components/_shared/src/reka.js +0 -2
@@ -35,3 +35,38 @@ export declare function resolveDrawerOverlayStyle(options?: {
35
35
  overlayOpacity?: number;
36
36
  overlayBlur?: number | string;
37
37
  }): Record<string, string> | undefined;
38
+ /** 滑入 / 滑出时长,与样式 token 默认值一致。减少动态时退出不等待。 */
39
+ export declare const RS_DRAWER_MOTION_IN_MS = 240;
40
+ export declare const RS_DRAWER_MOTION_OUT_MS = 180;
41
+ export interface RsDrawerExpose {
42
+ /** 请求关闭(走 beforeClose)。被拦截时返回 false。 */
43
+ close: (reason?: RsDrawerCloseReason) => Promise<boolean>;
44
+ /** 打开抽屉 */
45
+ openDrawer: () => void;
46
+ /** 把焦点移进面板(模态打开时也会自动调用) */
47
+ focus: () => void;
48
+ }
49
+ export type RsDrawerInstance = RsDrawerExpose;
50
+ export declare function rsDrawerMotionOutMs(): number;
51
+ /** Tab 循环用。不读布局,避免在按键路径上强制回流。 */
52
+ export declare function listRsDrawerFocusables(root: HTMLElement): HTMLElement[];
53
+ /**
54
+ * 点在面板内,或点在从面板里弹出的列表 / 菜单 / 提示 / 对话框上,不算“外部”。
55
+ * 另一个抽屉不算,上层抽屉仍能吃掉对下层的点击。
56
+ */
57
+ export declare function isRsDrawerDismissExempt(target: EventTarget | null, content: HTMLElement | null): boolean;
58
+ export declare function pushRsDrawerLayer(id: string): () => void;
59
+ export declare function isTopRsDrawer(id: string): boolean;
60
+ export declare function resetRsDrawerStack(): void;
61
+ /**
62
+ * 模态抽屉锁 body 滚动,并补上滚动条宽度,避免页面横跳。
63
+ * 引用计数;释放函数可重复调用。无 document 时返回空操作。
64
+ */
65
+ export declare function acquireRsDrawerScrollLock(): () => void;
66
+ export declare function resetRsDrawerScrollLock(): void;
67
+ /** 打开手势是否还按着指针。多实例共用一套监听,卸载减到 0 才摘掉。 */
68
+ export declare function acquireRsDrawerPointerTracking(): () => void;
69
+ export declare function rsDrawerPointersDown(): number;
70
+ export declare function resetRsDrawerPointerTracking(): void;
71
+ /** 单测收尾:栈、滚动锁、指针监听一起清掉。 */
72
+ export declare function resetRsDrawerRuntime(): void;
@@ -55,5 +55,135 @@ function resolveDrawerOverlayStyle(options) {
55
55
  if (dialogStyle["--rs-dialog-overlay-blur"]) style["--rs-drawer-overlay-blur"] = dialogStyle["--rs-dialog-overlay-blur"];
56
56
  return Object.keys(style).length ? style : void 0;
57
57
  }
58
+ function rsDrawerMotionOutMs() {
59
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return 180;
60
+ try {
61
+ if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return 0;
62
+ } catch {
63
+ return 180;
64
+ }
65
+ return 180;
66
+ }
67
+ var FOCUSABLE_SELECTOR = [
68
+ "a[href]",
69
+ "button:not([disabled])",
70
+ "input:not([disabled]):not([type=\"hidden\"])",
71
+ "select:not([disabled])",
72
+ "textarea:not([disabled])",
73
+ "[tabindex]:not([tabindex=\"-1\"])"
74
+ ].join(",");
75
+ /** Tab 循环用。不读布局,避免在按键路径上强制回流。 */
76
+ function listRsDrawerFocusables(root) {
77
+ const nodes = root.querySelectorAll(FOCUSABLE_SELECTOR);
78
+ const out = [];
79
+ for (const el of nodes) {
80
+ if (el.closest("[hidden], [inert]")) continue;
81
+ if (el.getAttribute("aria-hidden") === "true") continue;
82
+ out.push(el);
83
+ }
84
+ return out;
85
+ }
86
+ var OWNED_POPUP_SELECTOR = [
87
+ "[role=\"listbox\"]",
88
+ "[role=\"menu\"]",
89
+ "[role=\"tooltip\"]",
90
+ "[data-rs-popup]",
91
+ ".rs-dialog__content",
92
+ ".rs-dialog__overlay"
93
+ ].join(",");
94
+ /**
95
+ * 点在面板内,或点在从面板里弹出的列表 / 菜单 / 提示 / 对话框上,不算“外部”。
96
+ * 另一个抽屉不算,上层抽屉仍能吃掉对下层的点击。
97
+ */
98
+ function isRsDrawerDismissExempt(target, content) {
99
+ if (!(target instanceof Node) || !content) return false;
100
+ if (content.contains(target)) return true;
101
+ const el = target instanceof Element ? target : target.parentElement;
102
+ if (!el) return false;
103
+ const popup = el.closest(OWNED_POPUP_SELECTOR);
104
+ if (!popup || popup === content || content.contains(popup)) return Boolean(popup);
105
+ if (popup.classList.contains("rs-drawer__content") || popup.classList.contains("rs-drawer__overlay")) return false;
106
+ return true;
107
+ }
108
+ var stack = [];
109
+ function pushRsDrawerLayer(id) {
110
+ if (!stack.includes(id)) stack.push(id);
111
+ let released = false;
112
+ return () => {
113
+ if (released) return;
114
+ released = true;
115
+ const index = stack.indexOf(id);
116
+ if (index >= 0) stack.splice(index, 1);
117
+ };
118
+ }
119
+ function isTopRsDrawer(id) {
120
+ return stack.length > 0 && stack[stack.length - 1] === id;
121
+ }
122
+ var lockCount = 0;
123
+ var prevOverflow = null;
124
+ var prevPaddingRight = null;
125
+ /**
126
+ * 模态抽屉锁 body 滚动,并补上滚动条宽度,避免页面横跳。
127
+ * 引用计数;释放函数可重复调用。无 document 时返回空操作。
128
+ */
129
+ function acquireRsDrawerScrollLock() {
130
+ if (typeof document === "undefined" || !document.body) return () => {};
131
+ if (lockCount === 0) {
132
+ prevOverflow = document.body.style.overflow;
133
+ prevPaddingRight = document.body.style.paddingRight;
134
+ const gap = window.innerWidth - document.documentElement.clientWidth;
135
+ const current = Number.parseFloat(getComputedStyle(document.body).paddingRight) || 0;
136
+ document.body.style.overflow = "hidden";
137
+ if (gap > 0) document.body.style.paddingRight = `${current + gap}px`;
138
+ }
139
+ lockCount += 1;
140
+ let released = false;
141
+ return () => {
142
+ if (released) return;
143
+ released = true;
144
+ lockCount = Math.max(0, lockCount - 1);
145
+ if (lockCount === 0 && document.body) {
146
+ document.body.style.overflow = prevOverflow ?? "";
147
+ document.body.style.paddingRight = prevPaddingRight ?? "";
148
+ prevOverflow = null;
149
+ prevPaddingRight = null;
150
+ }
151
+ };
152
+ }
153
+ var pointerUsers = 0;
154
+ var pointersDown = 0;
155
+ function onDrawerPointerDown() {
156
+ pointersDown += 1;
157
+ }
158
+ function onDrawerPointerUp() {
159
+ pointersDown = Math.max(0, pointersDown - 1);
160
+ }
161
+ /** 打开手势是否还按着指针。多实例共用一套监听,卸载减到 0 才摘掉。 */
162
+ function acquireRsDrawerPointerTracking() {
163
+ if (typeof window === "undefined") return () => {};
164
+ if (pointerUsers === 0) {
165
+ window.addEventListener("pointerdown", onDrawerPointerDown, true);
166
+ window.addEventListener("pointerup", onDrawerPointerUp, true);
167
+ window.addEventListener("pointercancel", onDrawerPointerUp, true);
168
+ }
169
+ pointerUsers += 1;
170
+ let released = false;
171
+ return () => {
172
+ if (released) return;
173
+ released = true;
174
+ pointerUsers = Math.max(0, pointerUsers - 1);
175
+ if (pointerUsers === 0) detachRsDrawerPointerTracking();
176
+ };
177
+ }
178
+ function detachRsDrawerPointerTracking() {
179
+ if (typeof window === "undefined") return;
180
+ window.removeEventListener("pointerdown", onDrawerPointerDown, true);
181
+ window.removeEventListener("pointerup", onDrawerPointerUp, true);
182
+ window.removeEventListener("pointercancel", onDrawerPointerUp, true);
183
+ pointersDown = 0;
184
+ }
185
+ function rsDrawerPointersDown() {
186
+ return pointersDown;
187
+ }
58
188
  //#endregion
59
- export { RS_DRAWER_MAX_VIEWPORT_RATIO, RS_DRAWER_MIN_SIZE_PX, clampRsDrawerSize, resolveDrawerOverlayStyle, resolveRsDrawerDimensionCss, resolveRsDrawerSizeCss, resolveRsDrawerSizePx, runRsDrawerBeforeClose };
189
+ export { RS_DRAWER_MAX_VIEWPORT_RATIO, RS_DRAWER_MIN_SIZE_PX, acquireRsDrawerPointerTracking, acquireRsDrawerScrollLock, clampRsDrawerSize, isRsDrawerDismissExempt, isTopRsDrawer, listRsDrawerFocusables, pushRsDrawerLayer, resolveDrawerOverlayStyle, resolveRsDrawerDimensionCss, resolveRsDrawerSizeCss, resolveRsDrawerSizePx, rsDrawerMotionOutMs, rsDrawerPointersDown, runRsDrawerBeforeClose };
@@ -1,2 +1,2 @@
1
1
  export { default as RsDropdown } from './src/RsDropdown.js';
2
- export type { RsDropdownContentWidth, RsDropdownItem, RsDropdownItemGroup, RsDropdownItems } from './src/dropdown-utils';
2
+ export type { RsDropdownContentWidth, RsDropdownExpose, RsDropdownGetPopupContainer, RsDropdownInstance, RsDropdownItem, RsDropdownItemGroup, RsDropdownItemSlot, RsDropdownItems, RsDropdownPlacement, RsDropdownTone, RsDropdownTrigger, } from './src/dropdown-utils';
@@ -1,14 +1,27 @@
1
1
 
2
- /* Dropdown 为浮层菜单,样式独立于 RsSelect 列表,对齐 RsContextMenu / 设计规范 */
3
2
  .rs-dropdown {
4
3
  display: inline-block;
5
- min-width: 10rem;
4
+ min-width: var(--rs-dropdown-trigger-min-width);
6
5
  }
7
6
  .rs-dropdown--action {
8
7
  min-width: auto;
9
8
  }
10
-
11
- /* 自定义 #trigger:不套默认输入框铬边,由业务控制外观 */
9
+ .rs-dropdown--ssm {
10
+ --rs-dropdown-trigger-height: var(--rs-control-height-ssm);
11
+ --rs-dropdown-item-font-size: var(--rs-font-size-xs);
12
+ }
13
+ .rs-dropdown--sm {
14
+ --rs-dropdown-trigger-height: var(--rs-control-height-sm);
15
+ --rs-dropdown-item-font-size: var(--rs-font-size-sm);
16
+ }
17
+ .rs-dropdown--md {
18
+ --rs-dropdown-trigger-height: var(--rs-control-height-md);
19
+ --rs-dropdown-item-font-size: var(--rs-font-size-sm);
20
+ }
21
+ .rs-dropdown--lg {
22
+ --rs-dropdown-trigger-height: var(--rs-control-height-lg);
23
+ --rs-dropdown-item-font-size: var(--rs-font-size-base);
24
+ }
12
25
  .rs-dropdown__trigger-slot {
13
26
  display: inline-flex;
14
27
  max-width: 100%;
@@ -22,8 +35,9 @@
22
35
  cursor: pointer;
23
36
  }
24
37
  .rs-dropdown__trigger-slot[data-disabled] {
25
- opacity: 0.38;
38
+ opacity: var(--rs-dropdown-disabled-opacity);
26
39
  cursor: not-allowed;
40
+ pointer-events: none;
27
41
  }
28
42
  .rs-dropdown__trigger {
29
43
  display: flex;
@@ -31,34 +45,35 @@
31
45
  justify-content: space-between;
32
46
  gap: var(--rs-space-sm);
33
47
  width: 100%;
34
- min-height: var(--rs-control-height-md);
35
- padding: 0 var(--rs-space-md);
36
- border-radius: var(--rs-radius-sm);
37
- border: 1px solid var(--rs-input-border, var(--rs-border));
38
- background: var(--rs-input-bg);
39
- color: var(--rs-text);
40
- font-size: var(--rs-font-size-sm);
48
+ min-height: var(--rs-dropdown-trigger-height);
49
+ padding-block: 0;
50
+ padding-inline: var(--rs-space-md);
51
+ border-radius: var(--rs-dropdown-item-radius);
52
+ border: 1px solid var(--rs-dropdown-trigger-border);
53
+ background: var(--rs-dropdown-trigger-bg);
54
+ color: var(--rs-dropdown-fg);
55
+ font-size: var(--rs-dropdown-item-font-size);
41
56
  line-height: var(--rs-line-height-normal);
42
57
  cursor: pointer;
43
- box-shadow: var(--rs-input-shadow, none);
58
+ box-shadow: var(--rs-dropdown-trigger-shadow);
44
59
  transition:
45
60
  border-color var(--rs-transition-fast),
46
61
  box-shadow var(--rs-transition-fast),
47
62
  background var(--rs-transition-fast);
48
63
  }
49
- .rs-dropdown__trigger:hover:not([data-disabled]) {
50
- border-color: var(--rs-input-border-hover, var(--rs-border));
64
+ .rs-dropdown__trigger:hover:not(:disabled) {
65
+ border-color: var(--rs-dropdown-trigger-border-hover);
51
66
  }
52
67
  .rs-dropdown__trigger:focus-visible {
53
68
  outline: none;
54
69
  border-color: var(--rs-focus-border, var(--rs-primary));
55
- background: var(--rs-input-bg);
70
+ background: var(--rs-dropdown-trigger-bg);
56
71
  box-shadow:
57
- var(--rs-input-shadow, none),
72
+ var(--rs-dropdown-trigger-shadow),
58
73
  0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
59
74
  }
60
- .rs-dropdown__trigger[data-disabled] {
61
- opacity: 0.38;
75
+ .rs-dropdown__trigger:disabled {
76
+ opacity: var(--rs-dropdown-disabled-opacity);
62
77
  cursor: not-allowed;
63
78
  background: var(--rs-surface-hover);
64
79
  }
@@ -74,58 +89,83 @@
74
89
  white-space: nowrap;
75
90
  }
76
91
  .rs-dropdown__label--placeholder {
77
- color: var(--rs-placeholder);
92
+ color: var(--rs-dropdown-fg-placeholder);
78
93
  }
79
94
  .rs-dropdown__icon {
80
95
  flex-shrink: 0;
81
- color: var(--rs-muted);
96
+ color: var(--rs-dropdown-fg-muted);
82
97
  }
83
98
  .rs-dropdown__content {
99
+ position: fixed;
84
100
  z-index: var(--rs-z-dropdown);
85
- min-width: var(--reka-dropdown-menu-trigger-width);
86
- padding: var(--rs-space-xs);
101
+ min-width: var(--rs-dropdown-trigger-width, var(--rs-dropdown-trigger-min-width));
102
+ max-height: var(--rs-dropdown-max-height);
103
+ padding: var(--rs-dropdown-pad);
87
104
  border-radius: var(--rs-radius);
88
- border: 1px solid var(--rs-border);
89
- background: var(--rs-surface-elevated);
105
+ border: 1px solid var(--rs-dropdown-border);
106
+ background: var(--rs-dropdown-bg);
90
107
  box-shadow: var(--rs-shadow);
91
108
  outline: none;
92
- overflow: hidden;
109
+ overflow: auto;
110
+ overscroll-behavior: contain;
111
+ }
112
+ .rs-dropdown__content--fit {
113
+ min-width: var(--rs-dropdown-fit-min-width);
114
+ width: max-content;
93
115
  }
94
116
  .rs-dropdown__group + .rs-dropdown__group {
95
- margin-top: var(--rs-space-md);
96
- padding-top: 0;
97
- border-top: 1px solid var(--rs-border-subtle);
117
+ margin-block-start: var(--rs-space-md);
118
+ padding-block-start: 0;
119
+ border-block-start: 1px solid var(--rs-dropdown-divider);
98
120
  }
99
121
  .rs-dropdown__group-label {
100
122
  display: block;
101
- padding: 0.375rem var(--rs-space-md) 0.125rem;
123
+ padding-block: 0.375rem 0.125rem;
124
+ padding-inline: var(--rs-space-md);
102
125
  font-size: var(--rs-font-size-xs);
103
126
  font-weight: var(--rs-font-weight-semibold);
104
- color: var(--rs-muted);
127
+ color: var(--rs-dropdown-fg-muted);
105
128
  letter-spacing: 0.04em;
106
129
  line-height: var(--rs-line-height-tight);
107
130
  user-select: none;
108
131
  }
109
132
  .rs-dropdown__group + .rs-dropdown__group .rs-dropdown__group-label {
110
133
  position: relative;
111
- top: -0.55em;
112
- margin-bottom: 0.125rem;
113
- padding: 0 0.375rem;
134
+ inset-block-start: -0.55em;
135
+ margin-block-end: 0.125rem;
136
+ padding-block: 0;
137
+ padding-inline: 0.375rem;
114
138
  margin-inline-start: var(--rs-space-md);
115
139
  width: fit-content;
116
140
  max-width: calc(100% - var(--rs-space-md) * 2);
117
- background: var(--rs-surface-elevated);
141
+ background: var(--rs-dropdown-bg);
118
142
  line-height: 1;
119
143
  }
144
+ .rs-dropdown__divider {
145
+ display: block;
146
+ height: 0;
147
+ margin-block: var(--rs-space-xs);
148
+ margin-inline: var(--rs-space-sm);
149
+ border: 0;
150
+ border-block-start: 1px solid var(--rs-dropdown-divider);
151
+ }
120
152
  .rs-dropdown__item {
121
153
  display: flex;
122
154
  align-items: center;
123
- gap: var(--rs-space-sm);
124
- padding: var(--rs-space-sm) var(--rs-space-md);
125
- border-radius: var(--rs-radius-sm);
126
- font-size: var(--rs-font-size-sm);
155
+ gap: var(--rs-dropdown-item-gap);
156
+ width: 100%;
157
+ min-height: var(--rs-dropdown-trigger-height);
158
+ padding-block: var(--rs-dropdown-item-pad-block);
159
+ padding-inline: var(--rs-dropdown-item-pad-inline);
160
+ border: 0;
161
+ border-radius: var(--rs-dropdown-item-radius);
162
+ background: transparent;
163
+ font: inherit;
164
+ font-size: var(--rs-dropdown-item-font-size);
127
165
  line-height: var(--rs-line-height-tight);
128
- color: var(--rs-text);
166
+ color: var(--rs-dropdown-fg);
167
+ text-align: start;
168
+ text-decoration: none;
129
169
  cursor: pointer;
130
170
  outline: none;
131
171
  user-select: none;
@@ -135,7 +175,7 @@
135
175
  }
136
176
  .rs-dropdown__item-icon {
137
177
  flex-shrink: 0;
138
- color: var(--rs-muted);
178
+ color: var(--rs-dropdown-fg-muted);
139
179
  }
140
180
  .rs-dropdown__item-label {
141
181
  flex: 1;
@@ -144,49 +184,88 @@
144
184
  text-overflow: ellipsis;
145
185
  white-space: nowrap;
146
186
  }
147
- .rs-dropdown__item[data-highlighted] {
148
- background: var(--rs-item-hover);
149
- }
150
- .rs-dropdown__item[data-state='checked'] {
151
- color: var(--rs-primary);
152
- background: color-mix(in srgb, var(--rs-primary) 12%, transparent);
153
- }
154
- .rs-dropdown__item[data-disabled] {
155
- opacity: 0.38;
156
- cursor: not-allowed;
157
- }
158
187
  .rs-dropdown__item-copy {
159
188
  display: flex;
160
189
  flex-direction: column;
161
190
  gap: 1px;
162
191
  min-width: 0;
192
+ flex: 1;
163
193
  }
164
194
  .rs-dropdown__item-hint {
165
195
  font-size: var(--rs-font-size-xs);
166
- color: var(--rs-muted);
196
+ color: var(--rs-dropdown-fg-muted);
167
197
  line-height: var(--rs-line-height-tight);
168
198
  white-space: normal;
169
199
  display: -webkit-box;
170
200
  -webkit-line-clamp: 2;
201
+ line-clamp: 2;
171
202
  -webkit-box-orient: vertical;
172
203
  overflow: hidden;
173
204
  }
174
- .rs-dropdown__content--fit {
175
- min-width: 10.5rem;
176
- width: max-content;
205
+ .rs-dropdown__item-shortcut {
206
+ flex-shrink: 0;
207
+ margin-inline-start: auto;
208
+ padding-block: 0;
209
+ padding-inline: var(--rs-space-xs);
210
+ border-radius: var(--rs-radius-xs);
211
+ border: 1px solid var(--rs-dropdown-divider);
212
+ font-family: var(--rs-font-mono);
213
+ font-size: var(--rs-font-size-xs);
214
+ line-height: var(--rs-line-height-tight);
215
+ color: var(--rs-dropdown-fg-muted);
216
+ }
217
+ .rs-dropdown__item-chevron {
218
+ flex-shrink: 0;
219
+ margin-inline-start: auto;
220
+ color: var(--rs-dropdown-fg-muted);
221
+ }
222
+ .rs-dropdown__item[data-highlighted] {
223
+ background: var(--rs-dropdown-item-hover);
224
+ }
225
+ .rs-dropdown__item:focus-visible {
226
+ outline: none;
227
+ box-shadow: inset 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
228
+ }
229
+ .rs-dropdown__item[data-state='checked'] {
230
+ color: var(--rs-dropdown-item-active-fg);
231
+ background: var(--rs-dropdown-item-active-bg);
232
+ }
233
+ .rs-dropdown__item--danger {
234
+ color: var(--rs-dropdown-danger-fg);
235
+ }
236
+ .rs-dropdown__item--danger[data-highlighted] {
237
+ background: color-mix(in srgb, var(--rs-dropdown-danger-fg) 12%, transparent);
238
+ }
239
+ .rs-dropdown__item[data-disabled] {
240
+ opacity: var(--rs-dropdown-disabled-opacity);
241
+ cursor: not-allowed;
177
242
  }
178
243
  .rs-dropdown__content--ssm .rs-dropdown__item {
179
- min-height: 26px;
180
- padding: 5px 8px;
244
+ min-height: var(--rs-control-height-ssm);
245
+ padding-block: var(--rs-space-xs);
246
+ padding-inline: var(--rs-space-sm);
181
247
  gap: var(--rs-space-xs);
182
248
  font-size: var(--rs-font-size-xs);
183
249
  align-items: flex-start;
184
250
  }
185
251
  .rs-dropdown__content--ssm .rs-dropdown__item-icon {
186
- margin-top: 2px;
252
+ margin-block-start: 2px;
187
253
  }
188
254
  .rs-dropdown__content--sm .rs-dropdown__item {
189
- min-height: 28px;
190
- padding: 6px 10px;
255
+ min-height: var(--rs-control-height-sm);
256
+ padding-block: var(--rs-space-xs);
257
+ padding-inline: var(--rs-space-sm);
191
258
  font-size: var(--rs-font-size-sm);
192
259
  }
260
+ @media (prefers-reduced-motion: reduce) {
261
+ .rs-dropdown__trigger,
262
+ .rs-dropdown__item {
263
+ transition: none;
264
+ }
265
+ }
266
+ @media (forced-colors: active) {
267
+ .rs-dropdown__item[data-highlighted],
268
+ .rs-dropdown__item[data-state='checked'] {
269
+ outline: 2px solid Highlight;
270
+ }
271
+ }
@@ -1,5 +1,6 @@
1
- import { type RsDropdownContentWidth, type RsDropdownItems as RsDropdownData } from './dropdown-utils';
2
- import type { RsComponentSize } from '../../../theme/types';
1
+ import { type RsComponentSize, type RsRadius } from '../../../theme/types';
2
+ import { type RsDropdownContentWidth, type RsDropdownExpose, type RsDropdownGetPopupContainer, type RsDropdownItem, type RsDropdownItems as RsDropdownData, type RsDropdownPlacement, type RsDropdownTrigger } from './dropdown-utils';
3
+ export type { RsDropdownContentWidth, RsDropdownExpose, RsDropdownGetPopupContainer, RsDropdownInstance, RsDropdownItem, RsDropdownItemGroup, RsDropdownItemSlot, RsDropdownItems, RsDropdownPlacement, RsDropdownTone, RsDropdownTrigger, } from './dropdown-utils';
3
4
  type __VLS_Props = {
4
5
  items: RsDropdownData;
5
6
  placeholder?: string;
@@ -8,28 +9,60 @@ type __VLS_Props = {
8
9
  showSelected?: boolean;
9
10
  /** 菜单项密度,与控件 size 对齐 */
10
11
  size?: RsComponentSize;
12
+ radius?: RsRadius;
11
13
  /** 菜单宽度;工具条图标按钮用 fit,避免被触发器宽度压扁 */
12
14
  contentWidth?: RsDropdownContentWidth;
15
+ trigger?: RsDropdownTrigger | RsDropdownTrigger[];
16
+ placement?: RsDropdownPlacement;
17
+ hideOnClick?: boolean;
18
+ getPopupContainer?: RsDropdownGetPopupContainer;
19
+ popupClassName?: string;
20
+ maxHeight?: number;
21
+ ariaLabel?: string;
22
+ id?: string;
23
+ destroyOnHide?: boolean;
13
24
  };
14
25
  type __VLS_ModelProps = {
15
26
  modelValue?: string;
27
+ 'open'?: boolean;
16
28
  };
17
29
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
18
- declare var __VLS_14: {};
30
+ declare var __VLS_1: {}, __VLS_26: {
31
+ item: RsDropdownItem;
32
+ selected: boolean;
33
+ highlighted: boolean;
34
+ }, __VLS_39: {
35
+ item: RsDropdownItem;
36
+ selected: boolean;
37
+ highlighted: boolean;
38
+ };
19
39
  type __VLS_Slots = {} & {
20
- trigger?: (props: typeof __VLS_14) => any;
40
+ trigger?: (props: typeof __VLS_1) => any;
41
+ } & {
42
+ item?: (props: typeof __VLS_26) => any;
43
+ } & {
44
+ item?: (props: typeof __VLS_39) => any;
21
45
  };
22
- declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
46
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsDropdownExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
47
+ change: (value: string) => any;
23
48
  select: (value: string) => any;
24
49
  "update:modelValue": (value: string | undefined) => any;
50
+ openChange: (open: boolean) => any;
51
+ "update:open": (value: boolean) => any;
25
52
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
53
+ onChange?: ((value: string) => any) | undefined;
26
54
  onSelect?: ((value: string) => any) | undefined;
27
55
  "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
56
+ onOpenChange?: ((open: boolean) => any) | undefined;
57
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
28
58
  }>, {
29
- size: RsComponentSize;
30
59
  disabled: boolean;
60
+ trigger: RsDropdownTrigger | RsDropdownTrigger[];
31
61
  showSelected: boolean;
32
62
  contentWidth: RsDropdownContentWidth;
63
+ placement: RsDropdownPlacement;
64
+ hideOnClick: boolean;
65
+ destroyOnHide: boolean;
33
66
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
34
67
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
35
68
  declare const _default: typeof __VLS_export;