niuma-ui 2.0.4 → 2.0.9

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 (279) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/components/_shared/index.d.ts +2 -2
  3. package/dist/components/_shared/src/overlay-utils.d.ts +44 -1
  4. package/dist/components/_shared/src/overlay-utils.js +87 -2
  5. package/dist/components/_shared/src/reka.js +2 -2
  6. package/dist/components/alert/index.d.ts +1 -0
  7. package/dist/components/alert/src/RsAlert.css +120 -65
  8. package/dist/components/alert/src/RsAlert.d.ts +24 -5
  9. package/dist/components/alert/src/RsAlert.impl.js +108 -36
  10. package/dist/components/alert/src/RsAlert.js +1 -1
  11. package/dist/components/alert/src/alert-utils.d.ts +37 -0
  12. package/dist/components/alert/src/alert-utils.js +71 -0
  13. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +1 -1
  14. package/dist/components/button/src/RsButton.impl.js +1 -1
  15. package/dist/components/card/src/RsCard.d.ts +1 -1
  16. package/dist/components/code-block/index.d.ts +1 -0
  17. package/dist/components/code-block/src/RsCodeBlock.css +93 -52
  18. package/dist/components/code-block/src/RsCodeBlock.d.ts +36 -9
  19. package/dist/components/code-block/src/RsCodeBlock.impl.js +203 -84
  20. package/dist/components/code-block/src/RsCodeBlock.js +1 -1
  21. package/dist/components/code-block/src/code-block-highlight.d.ts +4 -0
  22. package/dist/components/code-block/src/code-block-highlight.js +34 -0
  23. package/dist/components/code-block/src/code-block-utils.d.ts +23 -0
  24. package/dist/components/code-block/src/code-block-utils.js +71 -0
  25. package/dist/components/code-editor/index.d.ts +1 -1
  26. package/dist/components/code-editor/src/RsCodeEditor.css +118 -92
  27. package/dist/components/code-editor/src/RsCodeEditor.d.ts +14 -3
  28. package/dist/components/code-editor/src/RsCodeEditor.impl.js +261 -94
  29. package/dist/components/code-editor/src/RsCodeEditor.js +1 -1
  30. package/dist/components/code-editor/src/code-editor-utils.d.ts +15 -0
  31. package/dist/components/code-editor/src/code-editor-utils.js +36 -1
  32. package/dist/components/code-editor/src/code-mirror-completion.d.ts +1 -1
  33. package/dist/components/code-editor/src/code-mirror-completion.js +8 -5
  34. package/dist/components/code-editor/src/code-mirror-diagnostics.d.ts +2 -3
  35. package/dist/components/code-editor/src/code-mirror-diagnostics.js +3 -4
  36. package/dist/components/code-editor/src/code-mirror-ghost.d.ts +1 -1
  37. package/dist/components/code-editor/src/code-mirror-ghost.js +12 -3
  38. package/dist/components/code-editor/src/code-mirror-inline-edit.js +8 -3
  39. package/dist/components/code-editor/src/code-mirror-intel.d.ts +2 -2
  40. package/dist/components/code-editor/src/code-mirror-intel.js +50 -39
  41. package/dist/components/code-editor/src/code-mirror-lang.js +4 -0
  42. package/dist/components/code-editor/src/code-mirror-session.d.ts +13 -0
  43. package/dist/components/code-editor/src/code-mirror-session.js +30 -0
  44. package/dist/components/context-menu/index.d.ts +1 -1
  45. package/dist/components/context-menu/src/RsContextMenu.css +115 -89
  46. package/dist/components/context-menu/src/RsContextMenu.d.ts +32 -11
  47. package/dist/components/context-menu/src/RsContextMenu.impl.js +795 -48
  48. package/dist/components/context-menu/src/RsContextMenuItems.d.ts +25 -1
  49. package/dist/components/context-menu/src/RsContextMenuItems.impl.js +110 -61
  50. package/dist/components/context-menu/src/context-menu-utils.d.ts +89 -3
  51. package/dist/components/context-menu/src/context-menu-utils.js +168 -3
  52. package/dist/components/date-picker/src/RsDatePicker.d.ts +2 -2
  53. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +2 -2
  54. package/dist/components/descriptions/index.d.ts +1 -1
  55. package/dist/components/descriptions/src/RsDescriptions.css +38 -11
  56. package/dist/components/descriptions/src/RsDescriptions.d.ts +20 -4
  57. package/dist/components/descriptions/src/RsDescriptions.impl.js +89 -19
  58. package/dist/components/descriptions/src/RsDescriptionsItem.impl.js +13 -6
  59. package/dist/components/descriptions/src/descriptions-utils.d.ts +19 -0
  60. package/dist/components/descriptions/src/descriptions-utils.js +39 -1
  61. package/dist/components/dialog/index.d.ts +1 -1
  62. package/dist/components/dialog/src/RsConfirmDialog.css +47 -21
  63. package/dist/components/dialog/src/RsConfirmDialog.d.ts +19 -7
  64. package/dist/components/dialog/src/RsConfirmDialog.impl.js +349 -119
  65. package/dist/components/dialog/src/RsConfirmDialog.js +2 -1
  66. package/dist/components/dialog/src/RsDialog.css +102 -109
  67. package/dist/components/dialog/src/RsDialog.d.ts +34 -24
  68. package/dist/components/dialog/src/RsDialog.impl.js +410 -177
  69. package/dist/components/dialog/src/RsDialog.js +2 -1
  70. package/dist/components/dialog/src/dialog-utils.d.ts +40 -1
  71. package/dist/components/dialog/src/dialog-utils.js +152 -1
  72. package/dist/components/dialog/src/dialog-window.js +29 -8
  73. package/dist/components/drawer/index.d.ts +1 -1
  74. package/dist/components/drawer/src/RsDrawer.css +61 -29
  75. package/dist/components/drawer/src/RsDrawer.d.ts +37 -21
  76. package/dist/components/drawer/src/RsDrawer.impl.js +441 -223
  77. package/dist/components/drawer/src/drawer-utils.d.ts +35 -0
  78. package/dist/components/drawer/src/drawer-utils.js +131 -1
  79. package/dist/components/dropdown/index.d.ts +1 -1
  80. package/dist/components/dropdown/src/RsDropdown.css +140 -61
  81. package/dist/components/dropdown/src/RsDropdown.d.ts +39 -6
  82. package/dist/components/dropdown/src/RsDropdown.impl.js +693 -63
  83. package/dist/components/dropdown/src/RsDropdownItemView.impl.js +17 -7
  84. package/dist/components/dropdown/src/RsDropdownItems.d.ts +32 -3
  85. package/dist/components/dropdown/src/RsDropdownItems.impl.js +171 -59
  86. package/dist/components/dropdown/src/dropdown-utils.d.ts +50 -0
  87. package/dist/components/dropdown/src/dropdown-utils.js +103 -3
  88. package/dist/components/empty/index.d.ts +1 -0
  89. package/dist/components/empty/src/RsEmpty.css +105 -23
  90. package/dist/components/empty/src/RsEmpty.d.ts +27 -4
  91. package/dist/components/empty/src/RsEmpty.impl.js +154 -11
  92. package/dist/components/empty/src/RsEmpty.js +2 -1
  93. package/dist/components/empty/src/empty-utils.d.ts +28 -0
  94. package/dist/components/empty/src/empty-utils.js +55 -0
  95. package/dist/components/form/src/RsForm.d.ts +1 -1
  96. package/dist/components/input-number/src/RsInputNumber.d.ts +1 -1
  97. package/dist/components/label/src/RsLabel.d.ts +1 -1
  98. package/dist/components/loading/index.d.ts +1 -0
  99. package/dist/components/loading/src/RsLoading.css +13 -97
  100. package/dist/components/loading/src/RsLoading.d.ts +52 -2
  101. package/dist/components/loading/src/RsLoading.impl.js +216 -33
  102. package/dist/components/loading/src/RsLoading.js +2 -1
  103. package/dist/components/loading/src/loading-status.css +210 -0
  104. package/dist/components/loading/src/loading-status.d.ts +34 -0
  105. package/dist/components/loading/src/loading-status.impl.js +84 -0
  106. package/dist/components/loading/src/loading-status.js +8 -0
  107. package/dist/components/loading/src/loading-utils.d.ts +51 -4
  108. package/dist/components/loading/src/loading-utils.js +122 -0
  109. package/dist/components/loading-bar/index.d.ts +1 -0
  110. package/dist/components/loading-bar/src/RsLoadingBar.css +72 -8
  111. package/dist/components/loading-bar/src/RsLoadingBar.d.ts +55 -11
  112. package/dist/components/loading-bar/src/RsLoadingBar.impl.js +298 -57
  113. package/dist/components/loading-bar/src/RsLoadingBar.js +1 -1
  114. package/dist/components/loading-bar/src/loading-bar-utils.d.ts +69 -0
  115. package/dist/components/loading-bar/src/loading-bar-utils.js +97 -0
  116. package/dist/components/log/src/RsLog.css +52 -144
  117. package/dist/components/log/src/RsLog.d.ts +12 -11
  118. package/dist/components/log/src/RsLog.impl.js +181 -148
  119. package/dist/components/log/src/RsLog.js +1 -1
  120. package/dist/components/log/src/RsLogRow.css +152 -0
  121. package/dist/components/log/src/RsLogRow.d.ts +35 -0
  122. package/dist/components/log/src/RsLogRow.impl.js +91 -0
  123. package/dist/components/log/src/RsLogRow.js +8 -0
  124. package/dist/components/log/src/log-utils.d.ts +8 -0
  125. package/dist/components/log/src/log-utils.js +71 -10
  126. package/dist/components/markdown/index.d.ts +1 -1
  127. package/dist/components/markdown/src/RsMarkdown.css +75 -32
  128. package/dist/components/markdown/src/RsMarkdown.d.ts +6 -2
  129. package/dist/components/markdown/src/RsMarkdown.impl.js +185 -17
  130. package/dist/components/markdown/src/markdown-utils.d.ts +26 -0
  131. package/dist/components/markdown/src/markdown-utils.js +114 -12
  132. package/dist/components/mentions/src/RsMentions.d.ts +2 -2
  133. package/dist/components/menu/index.d.ts +1 -1
  134. package/dist/components/menu/src/RsMenu.css +70 -29
  135. package/dist/components/menu/src/RsMenu.d.ts +58 -4
  136. package/dist/components/menu/src/RsMenu.impl.js +93 -46
  137. package/dist/components/menu/src/RsMenuItems.d.ts +22 -5
  138. package/dist/components/menu/src/RsMenuItems.impl.js +506 -154
  139. package/dist/components/menu/src/menu-utils.d.ts +56 -0
  140. package/dist/components/menu/src/menu-utils.js +139 -6
  141. package/dist/components/monaco-editor/index.d.ts +1 -1
  142. package/dist/components/monaco-editor/src/RsMonacoEditor.css +28 -16
  143. package/dist/components/monaco-editor/src/RsMonacoEditor.d.ts +39 -41
  144. package/dist/components/monaco-editor/src/RsMonacoEditor.impl.js +212 -133
  145. package/dist/components/monaco-editor/src/RsMonacoEditor.js +1 -1
  146. package/dist/components/monaco-editor/src/monaco-editor-utils.d.ts +126 -0
  147. package/dist/components/monaco-editor/src/monaco-editor-utils.js +302 -0
  148. package/dist/components/pagination/index.d.ts +2 -2
  149. package/dist/components/pagination/src/RsPagination.css +93 -46
  150. package/dist/components/pagination/src/RsPagination.d.ts +68 -8
  151. package/dist/components/pagination/src/RsPagination.impl.js +229 -86
  152. package/dist/components/pagination/src/RsPagination.js +1 -1
  153. package/dist/components/pagination/src/pagination-utils.d.ts +59 -0
  154. package/dist/components/pagination/src/pagination-utils.js +105 -1
  155. package/dist/components/popover/index.d.ts +1 -0
  156. package/dist/components/popover/src/RsPopover.css +124 -14
  157. package/dist/components/popover/src/RsPopover.d.ts +38 -7
  158. package/dist/components/popover/src/RsPopover.impl.js +546 -35
  159. package/dist/components/popover/src/RsPopover.js +2 -1
  160. package/dist/components/popover/src/popover-utils.d.ts +24 -2
  161. package/dist/components/popover/src/popover-utils.js +55 -0
  162. package/dist/components/sidebar/index.d.ts +1 -0
  163. package/dist/components/sidebar/src/RsSidebar.css +91 -33
  164. package/dist/components/sidebar/src/RsSidebar.d.ts +17 -9
  165. package/dist/components/sidebar/src/RsSidebar.impl.js +124 -22
  166. package/dist/components/sidebar/src/RsSidebar.js +1 -1
  167. package/dist/components/sidebar/src/RsSidebarGroup.css +23 -6
  168. package/dist/components/sidebar/src/RsSidebarGroup.d.ts +6 -2
  169. package/dist/components/sidebar/src/RsSidebarGroup.impl.js +17 -4
  170. package/dist/components/sidebar/src/RsSidebarGroup.js +1 -1
  171. package/dist/components/sidebar/src/RsSidebarItem.css +50 -20
  172. package/dist/components/sidebar/src/RsSidebarItem.d.ts +21 -3
  173. package/dist/components/sidebar/src/RsSidebarItem.impl.js +71 -20
  174. package/dist/components/sidebar/src/RsSidebarItem.js +1 -1
  175. package/dist/components/sidebar/src/sidebar-utils.d.ts +47 -0
  176. package/dist/components/sidebar/src/sidebar-utils.js +72 -0
  177. package/dist/components/split-pane/index.d.ts +2 -2
  178. package/dist/components/split-pane/src/RsSplitPane.css +41 -30
  179. package/dist/components/split-pane/src/RsSplitPane.d.ts +6 -2
  180. package/dist/components/split-pane/src/RsSplitPane.impl.js +153 -45
  181. package/dist/components/split-pane/src/split-pane-utils.d.ts +23 -0
  182. package/dist/components/split-pane/src/split-pane-utils.js +18 -1
  183. package/dist/components/stat-card/index.d.ts +1 -0
  184. package/dist/components/stat-card/src/RsStatCard.css +129 -25
  185. package/dist/components/stat-card/src/RsStatCard.d.ts +40 -4
  186. package/dist/components/stat-card/src/RsStatCard.impl.js +106 -12
  187. package/dist/components/stat-card/src/RsStatCard.js +1 -1
  188. package/dist/components/stat-card/src/stat-card-utils.d.ts +39 -0
  189. package/dist/components/stat-card/src/stat-card-utils.js +113 -0
  190. package/dist/components/steps/index.d.ts +1 -1
  191. package/dist/components/steps/src/RsSteps.css +158 -37
  192. package/dist/components/steps/src/RsSteps.d.ts +69 -5
  193. package/dist/components/steps/src/RsSteps.impl.js +168 -28
  194. package/dist/components/steps/src/RsSteps.js +1 -1
  195. package/dist/components/steps/src/steps-utils.d.ts +51 -1
  196. package/dist/components/steps/src/steps-utils.js +67 -1
  197. package/dist/components/table/src/RsTable.impl.js +4 -2
  198. package/dist/components/table/src/composables/useRsTableContextMenu.d.ts +16 -0
  199. package/dist/components/table/src/composables/useRsTableContextMenu.js +1 -1
  200. package/dist/components/table/src/composables/useRsTableEngine.js +6 -2
  201. package/dist/components/table/src/composables/useRsTableScrollLayout.js +2 -0
  202. package/dist/components/table/src/composables/useRsTableShell.d.ts +16 -0
  203. package/dist/components/table/src/rs-table-props.d.ts +1 -1
  204. package/dist/components/table/src/rs-table-props.js +0 -1
  205. package/dist/components/table/src/table-body/RsTableBody.impl.js +1 -0
  206. package/dist/components/table/src/table-body/RsTableCellEditor.impl.js +10 -2
  207. package/dist/components/table/src/table-body/RsTableColGroup.impl.js +1 -0
  208. package/dist/components/table/src/table-footer/RsTableSummaryRow.impl.js +1 -0
  209. package/dist/components/table/src/table-header/RsTableHeader.impl.js +1 -0
  210. package/dist/components/table/src/utils/table-utils.d.ts +10 -6
  211. package/dist/components/table/src/utils/table-utils.js +27 -25
  212. package/dist/components/table/style/rs-table.css +34 -20
  213. package/dist/components/tabs/index.d.ts +2 -2
  214. package/dist/components/tabs/src/RsTabs.css +225 -101
  215. package/dist/components/tabs/src/RsTabs.d.ts +37 -8
  216. package/dist/components/tabs/src/RsTabs.impl.js +400 -270
  217. package/dist/components/tabs/src/tabs-utils.d.ts +41 -2
  218. package/dist/components/tabs/src/tabs-utils.js +55 -1
  219. package/dist/components/terminal/index.d.ts +1 -1
  220. package/dist/components/terminal/src/RsTerminal.css +60 -37
  221. package/dist/components/terminal/src/RsTerminal.d.ts +36 -4
  222. package/dist/components/terminal/src/RsTerminal.impl.js +288 -68
  223. package/dist/components/terminal/src/RsTerminal.js +1 -1
  224. package/dist/components/terminal/src/terminal-utils.d.ts +42 -4
  225. package/dist/components/terminal/src/terminal-utils.js +113 -10
  226. package/dist/components/textarea/src/RsTextarea.d.ts +1 -1
  227. package/dist/components/time-picker/src/RsTimePicker.d.ts +2 -2
  228. package/dist/components/toaster/src/RsToaster.css +156 -203
  229. package/dist/components/toaster/src/RsToaster.d.ts +32 -2
  230. package/dist/components/toaster/src/RsToaster.impl.js +309 -34
  231. package/dist/components/toaster/src/toast-store.d.ts +95 -0
  232. package/dist/components/toaster/src/toast-store.js +177 -0
  233. package/dist/components/toaster/src/toast-utils.d.ts +60 -0
  234. package/dist/components/toaster/src/toast-utils.js +86 -0
  235. package/dist/components/toolbar/index.d.ts +1 -1
  236. package/dist/components/toolbar/src/RsToolbar.css +206 -32
  237. package/dist/components/toolbar/src/RsToolbar.d.ts +41 -16
  238. package/dist/components/toolbar/src/RsToolbar.impl.js +146 -18
  239. package/dist/components/toolbar/src/RsToolbar.js +2 -1
  240. package/dist/components/toolbar/src/toolbar-utils.d.ts +20 -0
  241. package/dist/components/toolbar/src/toolbar-utils.js +105 -0
  242. package/dist/components/tooltip/index.d.ts +1 -0
  243. package/dist/components/tooltip/src/RsTooltip.css +104 -26
  244. package/dist/components/tooltip/src/RsTooltip.d.ts +38 -16
  245. package/dist/components/tooltip/src/RsTooltip.impl.js +420 -51
  246. package/dist/components/tooltip/src/RsTooltip.js +2 -1
  247. package/dist/components/tooltip/src/RsTooltipProvider.d.ts +4 -4
  248. package/dist/components/tooltip/src/RsTooltipProvider.impl.js +51 -14
  249. package/dist/components/tooltip/src/tooltip-utils.d.ts +30 -0
  250. package/dist/components/tooltip/src/tooltip-utils.js +23 -0
  251. package/dist/components/tree/index.d.ts +2 -2
  252. package/dist/components/tree/src/RsTree.css +84 -75
  253. package/dist/components/tree/src/RsTree.d.ts +20 -20
  254. package/dist/components/tree/src/RsTree.impl.js +292 -66
  255. package/dist/components/tree/src/RsTree.js +1 -1
  256. package/dist/components/tree/src/tree-utils.d.ts +22 -0
  257. package/dist/components/tree/src/tree-utils.js +18 -4
  258. package/dist/components/tree-select/src/RsTreeSelect.d.ts +1 -1
  259. package/dist/components/virtual-list/index.d.ts +1 -1
  260. package/dist/components/virtual-list/src/RsVirtualList.css +64 -9
  261. package/dist/components/virtual-list/src/RsVirtualList.d.ts +31 -5
  262. package/dist/components/virtual-list/src/RsVirtualList.impl.js +425 -76
  263. package/dist/components/virtual-list/src/RsVirtualList.js +1 -1
  264. package/dist/components/virtual-list/src/virtual-list-utils.d.ts +64 -1
  265. package/dist/components/virtual-list/src/virtual-list-utils.js +215 -1
  266. package/dist/composables/useRsLoadingBar.d.ts +2 -5
  267. package/dist/composables/useRsLoadingBar.js +21 -5
  268. package/dist/composables/useRsTabsNav.d.ts +3 -1
  269. package/dist/composables/useRsTabsNav.js +96 -28
  270. package/dist/composables/useRsToast.d.ts +11 -13
  271. package/dist/composables/useRsToast.js +66 -17
  272. package/dist/index.d.ts +30 -21
  273. package/dist/index.js +14 -0
  274. package/dist/locale/apply.js +6 -1
  275. package/dist/locale/messages.js +128 -2
  276. package/dist/styles.css +460 -797
  277. package/dist/theme/brand.example.css +2 -1
  278. package/dist/vite-plugins/niuma-ui-host.js +1 -1
  279. package/package.json +2 -3
@@ -8,23 +8,33 @@ var _hoisted_3 = {
8
8
  key: 0,
9
9
  class: "rs-dropdown__item-hint"
10
10
  };
11
+ var _hoisted_4 = {
12
+ key: 1,
13
+ class: "rs-dropdown__item-shortcut"
14
+ };
11
15
  var RsDropdownItemView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
16
+ name: "RsDropdownItemView",
12
17
  __name: "RsDropdownItemView",
13
18
  props: {
14
19
  item: {},
15
20
  size: { default: "md" }
16
21
  },
17
22
  setup(__props) {
18
- /** 下拉项内容:图标 + 标题 + 可选说明,密度由 size 控制。 */
23
+ /** 下拉项内容:图标 + 标题 + 可选说明 / 快捷键,密度由 size 控制。 */
19
24
  const props = __props;
20
25
  const iconSize = computed(() => RS_COMPONENT_SIZE_ICON_PX[props.size]);
21
26
  return (_ctx, _cache) => {
22
- return openBlock(), createElementBlock(Fragment, null, [__props.item.icon ? (openBlock(), createBlock(RsIcon_default, {
23
- key: 0,
24
- name: __props.item.icon,
25
- size: iconSize.value,
26
- class: "rs-dropdown__item-icon"
27
- }, null, 8, ["name", "size"])) : createCommentVNode("", true), createElementVNode("span", _hoisted_1, [createElementVNode("span", _hoisted_2, toDisplayString(__props.item.label), 1), __props.item.hint ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.item.hint), 1)) : createCommentVNode("", true)])], 64);
27
+ return openBlock(), createElementBlock(Fragment, null, [
28
+ __props.item.icon ? (openBlock(), createBlock(RsIcon_default, {
29
+ key: 0,
30
+ name: __props.item.icon,
31
+ size: iconSize.value,
32
+ class: "rs-dropdown__item-icon",
33
+ "aria-hidden": "true"
34
+ }, null, 8, ["name", "size"])) : createCommentVNode("", true),
35
+ createElementVNode("span", _hoisted_1, [createElementVNode("span", _hoisted_2, toDisplayString(__props.item.label), 1), __props.item.hint ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.item.hint), 1)) : createCommentVNode("", true)]),
36
+ __props.item.shortcut ? (openBlock(), createElementBlock("kbd", _hoisted_4, toDisplayString(__props.item.shortcut), 1)) : createCommentVNode("", true)
37
+ ], 64);
28
38
  };
29
39
  }
30
40
  });
@@ -1,18 +1,47 @@
1
- import { type RsDropdownItems } from './dropdown-utils';
2
- import type { RsComponentSize } from '../../../theme/types';
1
+ import { type RsDropdownItem, type RsDropdownItems } from './dropdown-utils';
2
+ import { type RsComponentSize } from '../../../theme/types';
3
3
  type __VLS_Props = {
4
4
  items: RsDropdownItems;
5
5
  /** true:单选互斥;false:操作项 */
6
6
  selectable?: boolean;
7
7
  size?: RsComponentSize;
8
+ selectedValue?: string;
9
+ highlightedValue?: string;
10
+ openSubmenuValue?: string;
8
11
  };
9
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ declare var __VLS_10: {
13
+ item: RsDropdownItem;
14
+ selected: boolean;
15
+ highlighted: boolean;
16
+ }, __VLS_31: {
17
+ item: RsDropdownItem;
18
+ selected: boolean;
19
+ highlighted: boolean;
20
+ };
21
+ type __VLS_Slots = {} & {
22
+ item?: (props: typeof __VLS_10) => any;
23
+ } & {
24
+ item?: (props: typeof __VLS_31) => any;
25
+ };
26
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
27
  select: (value: string) => any;
28
+ highlight: (value: string) => any;
29
+ openSubmenu: (value: string) => any;
30
+ itemEnter: (item: RsDropdownItem) => any;
11
31
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
32
  onSelect?: ((value: string) => any) | undefined;
33
+ onHighlight?: ((value: string) => any) | undefined;
34
+ onOpenSubmenu?: ((value: string) => any) | undefined;
35
+ onItemEnter?: ((item: RsDropdownItem) => any) | undefined;
13
36
  }>, {
14
37
  size: RsComponentSize;
15
38
  selectable: boolean;
16
39
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
40
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
41
  declare const _default: typeof __VLS_export;
18
42
  export default _default;
43
+ type __VLS_WithSlots<T, S> = T & {
44
+ new (): {
45
+ $slots: S;
46
+ };
47
+ };
@@ -1,9 +1,20 @@
1
- import { DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioItem } from "../../_shared/src/reka.js";
2
- import { isDropdownItemGroup } from "./dropdown-utils.js";
1
+ import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
2
+ import RsIcon_default from "../../icon/src/RsIcon.js";
3
+ import { hasDropdownChildren, isDropdownDivider, isDropdownItemGroup, resolveDropdownExternalRel } from "./dropdown-utils.js";
3
4
  import RsDropdownItemView_default from "./RsDropdownItemView.js";
4
- import { Fragment, createBlock, createElementBlock, createTextVNode, createVNode, defineComponent, openBlock, renderList, toDisplayString, unref, withCtx } from "vue";
5
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
5
6
  //#region src/components/dropdown/src/RsDropdownItems.vue?vue&type=script&setup=true&lang.ts
7
+ var _hoisted_1 = ["aria-label"];
8
+ var _hoisted_2 = {
9
+ class: "rs-dropdown__group-label",
10
+ "aria-hidden": "true"
11
+ };
12
+ var _hoisted_3 = {
13
+ key: 0,
14
+ class: "rs-dropdown__divider"
15
+ };
6
16
  var RsDropdownItems_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
17
+ name: "RsDropdownItems",
7
18
  __name: "RsDropdownItems",
8
19
  props: {
9
20
  items: {},
@@ -11,75 +22,176 @@ var RsDropdownItems_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
11
22
  type: Boolean,
12
23
  default: false
13
24
  },
14
- size: { default: "md" }
25
+ size: { default: "md" },
26
+ selectedValue: {},
27
+ highlightedValue: {},
28
+ openSubmenuValue: {}
15
29
  },
16
- emits: ["select"],
30
+ emits: [
31
+ "select",
32
+ "highlight",
33
+ "openSubmenu",
34
+ "itemEnter"
35
+ ],
17
36
  setup(__props, { emit: __emit }) {
37
+ const props = __props;
18
38
  const emit = __emit;
19
- function onActionSelect(item) {
20
- if (item.disabled) return;
39
+ const chevronSize = computed(() => RS_COMPONENT_SIZE_ICON_PX[props.size]);
40
+ function itemRole(item) {
41
+ if (props.selectable && !hasDropdownChildren(item)) return "menuitemradio";
42
+ return "menuitem";
43
+ }
44
+ function isSelected(item) {
45
+ return props.selectable && item.value === props.selectedValue && !hasDropdownChildren(item);
46
+ }
47
+ function isHighlighted(item) {
48
+ return item.value === props.highlightedValue;
49
+ }
50
+ function onActivate(item, event) {
51
+ if (item.disabled) {
52
+ event.preventDefault();
53
+ return;
54
+ }
55
+ emit("highlight", item.value);
56
+ if (hasDropdownChildren(item)) {
57
+ emit("openSubmenu", item.value);
58
+ return;
59
+ }
21
60
  emit("select", item.value);
22
61
  }
62
+ function onEnter(item) {
63
+ if (item.disabled) return;
64
+ emit("itemEnter", item);
65
+ }
23
66
  return (_ctx, _cache) => {
24
67
  return openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (entry, index) => {
25
- return openBlock(), createElementBlock(Fragment, { key: index }, [unref(isDropdownItemGroup)(entry) ? (openBlock(), createBlock(unref(DropdownMenuGroup), {
26
- key: `group-${index}`,
27
- class: "rs-dropdown__group"
28
- }, {
29
- default: withCtx(() => [createVNode(unref(DropdownMenuLabel), { class: "rs-dropdown__group-label" }, {
30
- default: withCtx(() => [createTextVNode(toDisplayString(entry.label), 1)]),
68
+ return openBlock(), createElementBlock(Fragment, { key: index }, [unref(isDropdownItemGroup)(entry) ? (openBlock(), createElementBlock("div", {
69
+ key: 0,
70
+ class: "rs-dropdown__group",
71
+ role: "group",
72
+ "aria-label": entry.label
73
+ }, [createElementVNode("span", _hoisted_2, toDisplayString(entry.label), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(entry.options, (item) => {
74
+ return openBlock(), createElementBlock(Fragment, { key: item.value }, [unref(isDropdownDivider)(item) ? (openBlock(), createElementBlock("hr", _hoisted_3)) : (openBlock(), createBlock(resolveDynamicComponent(item.href && !unref(hasDropdownChildren)(item) ? "a" : "button"), {
75
+ key: 1,
76
+ class: normalizeClass(["rs-dropdown__item", {
77
+ "rs-dropdown__item--danger": item.tone === "danger",
78
+ "rs-dropdown__item--submenu": unref(hasDropdownChildren)(item)
79
+ }]),
80
+ "data-dropdown-value": item.value,
81
+ type: item.href && !unref(hasDropdownChildren)(item) ? void 0 : "button",
82
+ href: item.href && !unref(hasDropdownChildren)(item) && !item.disabled ? item.href : void 0,
83
+ target: item.href && !unref(hasDropdownChildren)(item) ? item.target : void 0,
84
+ rel: item.href && !unref(hasDropdownChildren)(item) ? unref(resolveDropdownExternalRel)(item) : void 0,
85
+ role: itemRole(item),
86
+ disabled: item.href ? void 0 : item.disabled,
87
+ "aria-disabled": item.disabled ? "true" : void 0,
88
+ "aria-checked": itemRole(item) === "menuitemradio" ? isSelected(item) : void 0,
89
+ "aria-haspopup": unref(hasDropdownChildren)(item) ? "menu" : void 0,
90
+ "aria-expanded": unref(hasDropdownChildren)(item) ? item.value === __props.openSubmenuValue : void 0,
91
+ tabindex: isHighlighted(item) ? 0 : -1,
92
+ "data-state": isSelected(item) ? "checked" : void 0,
93
+ "data-highlighted": isHighlighted(item) ? "" : void 0,
94
+ "data-disabled": item.disabled ? "" : void 0,
95
+ onClick: ($event) => onActivate(item, $event),
96
+ onMouseenter: ($event) => onEnter(item)
97
+ }, {
98
+ default: withCtx(() => [renderSlot(_ctx.$slots, "item", mergeProps({ ref_for: true }, {
99
+ item,
100
+ selected: isSelected(item),
101
+ highlighted: isHighlighted(item)
102
+ }), () => [createVNode(RsDropdownItemView_default, {
103
+ item,
104
+ size: __props.size
105
+ }, null, 8, ["item", "size"])]), unref(hasDropdownChildren)(item) ? (openBlock(), createBlock(RsIcon_default, {
106
+ key: 0,
107
+ name: "chevron-right",
108
+ size: chevronSize.value,
109
+ class: "rs-dropdown__item-chevron",
110
+ "aria-hidden": "true"
111
+ }, null, 8, ["size"])) : createCommentVNode("", true)]),
31
112
  _: 2
32
- }, 1024), __props.selectable ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(entry.options, (item) => {
33
- return openBlock(), createBlock(unref(DropdownMenuRadioItem), {
34
- key: item.value,
35
- value: item.value,
36
- disabled: item.disabled,
37
- class: "rs-dropdown__item"
38
- }, {
39
- default: withCtx(() => [createVNode(RsDropdownItemView_default, {
40
- item,
41
- size: __props.size
42
- }, null, 8, ["item", "size"])]),
43
- _: 2
44
- }, 1032, ["value", "disabled"]);
45
- }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(entry.options, (item) => {
46
- return openBlock(), createBlock(unref(DropdownMenuItem), {
47
- key: item.value,
48
- disabled: item.disabled,
49
- class: "rs-dropdown__item",
50
- onSelect: ($event) => onActionSelect(item)
51
- }, {
52
- default: withCtx(() => [createVNode(RsDropdownItemView_default, {
53
- item,
54
- size: __props.size
55
- }, null, 8, ["item", "size"])]),
56
- _: 2
57
- }, 1032, ["disabled", "onSelect"]);
58
- }), 128))]),
59
- _: 2
60
- }, 1024)) : __props.selectable ? (openBlock(), createBlock(unref(DropdownMenuRadioItem), {
61
- key: `radio-${entry.value}`,
62
- value: entry.value,
63
- disabled: entry.disabled,
64
- class: "rs-dropdown__item"
113
+ }, 1064, [
114
+ "data-dropdown-value",
115
+ "class",
116
+ "type",
117
+ "href",
118
+ "target",
119
+ "rel",
120
+ "role",
121
+ "disabled",
122
+ "aria-disabled",
123
+ "aria-checked",
124
+ "aria-haspopup",
125
+ "aria-expanded",
126
+ "tabindex",
127
+ "data-state",
128
+ "data-highlighted",
129
+ "data-disabled",
130
+ "onClick",
131
+ "onMouseenter"
132
+ ]))], 64);
133
+ }), 128))], 8, _hoisted_1)) : unref(isDropdownDivider)(entry) ? (openBlock(), createElementBlock("hr", {
134
+ key: `div-${index}`,
135
+ class: "rs-dropdown__divider"
136
+ })) : (openBlock(), createBlock(resolveDynamicComponent(entry.href && !unref(hasDropdownChildren)(entry) ? "a" : "button"), {
137
+ key: `item-${entry.value}`,
138
+ class: normalizeClass(["rs-dropdown__item", {
139
+ "rs-dropdown__item--danger": entry.tone === "danger",
140
+ "rs-dropdown__item--submenu": unref(hasDropdownChildren)(entry)
141
+ }]),
142
+ "data-dropdown-value": entry.value,
143
+ type: entry.href && !unref(hasDropdownChildren)(entry) ? void 0 : "button",
144
+ href: entry.href && !unref(hasDropdownChildren)(entry) && !entry.disabled ? entry.href : void 0,
145
+ target: entry.href && !unref(hasDropdownChildren)(entry) ? entry.target : void 0,
146
+ rel: entry.href && !unref(hasDropdownChildren)(entry) ? unref(resolveDropdownExternalRel)(entry) : void 0,
147
+ role: itemRole(entry),
148
+ disabled: entry.href ? void 0 : entry.disabled,
149
+ "aria-disabled": entry.disabled ? "true" : void 0,
150
+ "aria-checked": itemRole(entry) === "menuitemradio" ? isSelected(entry) : void 0,
151
+ "aria-haspopup": unref(hasDropdownChildren)(entry) ? "menu" : void 0,
152
+ "aria-expanded": unref(hasDropdownChildren)(entry) ? entry.value === __props.openSubmenuValue : void 0,
153
+ tabindex: isHighlighted(entry) ? 0 : -1,
154
+ "data-state": isSelected(entry) ? "checked" : void 0,
155
+ "data-highlighted": isHighlighted(entry) ? "" : void 0,
156
+ "data-disabled": entry.disabled ? "" : void 0,
157
+ onClick: ($event) => onActivate(entry, $event),
158
+ onMouseenter: ($event) => onEnter(entry)
65
159
  }, {
66
- default: withCtx(() => [createVNode(RsDropdownItemView_default, {
160
+ default: withCtx(() => [renderSlot(_ctx.$slots, "item", mergeProps({ ref_for: true }, {
67
161
  item: entry,
68
- size: __props.size
69
- }, null, 8, ["item", "size"])]),
70
- _: 2
71
- }, 1032, ["value", "disabled"])) : (openBlock(), createBlock(unref(DropdownMenuItem), {
72
- key: `action-${entry.value}`,
73
- disabled: entry.disabled,
74
- class: "rs-dropdown__item",
75
- onSelect: ($event) => onActionSelect(entry)
76
- }, {
77
- default: withCtx(() => [createVNode(RsDropdownItemView_default, {
162
+ selected: isSelected(entry),
163
+ highlighted: isHighlighted(entry)
164
+ }), () => [createVNode(RsDropdownItemView_default, {
78
165
  item: entry,
79
166
  size: __props.size
80
- }, null, 8, ["item", "size"])]),
167
+ }, null, 8, ["item", "size"])]), unref(hasDropdownChildren)(entry) ? (openBlock(), createBlock(RsIcon_default, {
168
+ key: 0,
169
+ name: "chevron-right",
170
+ size: chevronSize.value,
171
+ class: "rs-dropdown__item-chevron",
172
+ "aria-hidden": "true"
173
+ }, null, 8, ["size"])) : createCommentVNode("", true)]),
81
174
  _: 2
82
- }, 1032, ["disabled", "onSelect"]))], 64);
175
+ }, 1064, [
176
+ "data-dropdown-value",
177
+ "class",
178
+ "type",
179
+ "href",
180
+ "target",
181
+ "rel",
182
+ "role",
183
+ "disabled",
184
+ "aria-disabled",
185
+ "aria-checked",
186
+ "aria-haspopup",
187
+ "aria-expanded",
188
+ "tabindex",
189
+ "data-state",
190
+ "data-highlighted",
191
+ "data-disabled",
192
+ "onClick",
193
+ "onMouseenter"
194
+ ]))], 64);
83
195
  }), 128);
84
196
  };
85
197
  }
@@ -1,3 +1,4 @@
1
+ import type { RsOverlayAnchorBox, RsOverlayBox, RsOverlayPopupSize, RsOverlayViewport } from '../../_shared/src/overlay-utils';
1
2
  export interface RsDropdownItem {
2
3
  label: string;
3
4
  value: string;
@@ -5,6 +6,16 @@ export interface RsDropdownItem {
5
6
  /** 次要说明,工具条动作菜单等场景使用 */
6
7
  hint?: string;
7
8
  disabled?: boolean;
9
+ /** divider 只画分隔线,不参与选中 */
10
+ type?: 'item' | 'divider';
11
+ /** danger 用于删除等破坏性命令 */
12
+ tone?: RsDropdownTone;
13
+ href?: string;
14
+ target?: string;
15
+ rel?: string;
16
+ /** 展示用快捷键,不代绑全局热键 */
17
+ shortcut?: string;
18
+ children?: RsDropdownItem[];
8
19
  }
9
20
  export interface RsDropdownItemGroup {
10
21
  label: string;
@@ -13,5 +24,44 @@ export interface RsDropdownItemGroup {
13
24
  export type RsDropdownItems = RsDropdownItem[] | RsDropdownItemGroup[];
14
25
  /** 菜单宽度:trigger 对齐触发器;fit 随内容,不跟窄图标按钮 */
15
26
  export type RsDropdownContentWidth = 'trigger' | 'fit';
27
+ export type RsDropdownTrigger = 'click' | 'hover' | 'contextmenu';
28
+ export type RsDropdownPlacement = 'bottom' | 'top' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
29
+ export type RsDropdownTone = 'neutral' | 'danger';
30
+ export type RsDropdownGetPopupContainer = (trigger?: HTMLElement) => HTMLElement | null | undefined;
31
+ export interface RsDropdownExpose {
32
+ open: () => void;
33
+ close: () => void;
34
+ focus: () => void;
35
+ blur: () => void;
36
+ }
37
+ /** 模板 ref 实例:expose + 根节点 */
38
+ export type RsDropdownInstance = RsDropdownExpose & {
39
+ $el: HTMLElement;
40
+ };
41
+ export interface RsDropdownItemSlot {
42
+ item: RsDropdownItem;
43
+ selected: boolean;
44
+ highlighted: boolean;
45
+ }
16
46
  export declare function isDropdownItemGroup(item: RsDropdownItem | RsDropdownItemGroup): item is RsDropdownItemGroup;
47
+ export declare function isDropdownDivider(item: RsDropdownItem): boolean;
48
+ export declare function hasDropdownChildren(item: RsDropdownItem): boolean;
17
49
  export declare function flattenDropdownItems(items: RsDropdownItems): RsDropdownItem[];
50
+ /** 当前菜单层可点的项(不含分隔线与子菜单后代)。 */
51
+ export declare function listDropdownLayerItems(items: RsDropdownItems): RsDropdownItem[];
52
+ export declare function normalizeDropdownTriggers(trigger: RsDropdownTrigger | RsDropdownTrigger[] | undefined): RsDropdownTrigger[];
53
+ export declare function resolveDropdownPortalTarget(getPopupContainer: RsDropdownGetPopupContainer | undefined, trigger?: HTMLElement | null): string | HTMLElement;
54
+ export declare function resolveDropdownMenuKeys(rtl: boolean): {
55
+ next: string;
56
+ prev: string;
57
+ openSub: string;
58
+ closeSub: string;
59
+ };
60
+ export declare function matchDropdownTypeahead(items: readonly RsDropdownItem[], query: string, fromIndex?: number): number;
61
+ export declare function escapeDropdownSelector(value: string): string;
62
+ export declare function resolveDropdownExternalRel(item: RsDropdownItem): string | undefined;
63
+ /**
64
+ * 下拉面板贴触发器:可指定上下与 start/end。
65
+ * 视口不够仍翻转;start/end 在 RTL 对调。
66
+ */
67
+ export declare function placeDropdownPopup(anchor: RsOverlayAnchorBox, popup: RsOverlayPopupSize, viewport: RsOverlayViewport, placement: RsDropdownPlacement, rtl?: boolean, gap?: number): RsOverlayBox;
@@ -2,11 +2,111 @@
2
2
  function isDropdownItemGroup(item) {
3
3
  return "options" in item && Array.isArray(item.options);
4
4
  }
5
+ function isDropdownDivider(item) {
6
+ return item.type === "divider";
7
+ }
8
+ function hasDropdownChildren(item) {
9
+ return Boolean(item.children?.length);
10
+ }
5
11
  function flattenDropdownItems(items) {
6
12
  const result = [];
7
- for (const item of items) if (isDropdownItemGroup(item)) result.push(...item.options);
8
- else result.push(item);
13
+ for (const item of items) {
14
+ if (isDropdownItemGroup(item)) {
15
+ result.push(...flattenDropdownItems(item.options));
16
+ continue;
17
+ }
18
+ if (isDropdownDivider(item)) continue;
19
+ result.push(item);
20
+ if (item.children?.length) result.push(...flattenDropdownItems(item.children));
21
+ }
22
+ return result;
23
+ }
24
+ /** 当前菜单层可点的项(不含分隔线与子菜单后代)。 */
25
+ function listDropdownLayerItems(items) {
26
+ const result = [];
27
+ for (const item of items) {
28
+ if (isDropdownItemGroup(item)) {
29
+ for (const option of item.options) if (!isDropdownDivider(option)) result.push(option);
30
+ continue;
31
+ }
32
+ if (!isDropdownDivider(item)) result.push(item);
33
+ }
9
34
  return result;
10
35
  }
36
+ function normalizeDropdownTriggers(trigger) {
37
+ let list;
38
+ if (Array.isArray(trigger)) list = trigger;
39
+ else if (trigger) list = [trigger];
40
+ else list = ["click"];
41
+ const allowed = /* @__PURE__ */ new Set([
42
+ "click",
43
+ "hover",
44
+ "contextmenu"
45
+ ]);
46
+ const next = list.filter((item) => allowed.has(item));
47
+ return next.length ? next : ["click"];
48
+ }
49
+ function resolveDropdownPortalTarget(getPopupContainer, trigger) {
50
+ if (typeof document === "undefined") return "body";
51
+ if (!getPopupContainer) return "body";
52
+ return getPopupContainer(trigger ?? void 0) ?? "body";
53
+ }
54
+ function resolveDropdownMenuKeys(rtl) {
55
+ return {
56
+ next: "ArrowDown",
57
+ prev: "ArrowUp",
58
+ openSub: rtl ? "ArrowLeft" : "ArrowRight",
59
+ closeSub: rtl ? "ArrowRight" : "ArrowLeft"
60
+ };
61
+ }
62
+ function matchDropdownTypeahead(items, query, fromIndex = -1) {
63
+ const needle = query.trim().toLowerCase();
64
+ if (!needle || !items.length) return -1;
65
+ const start = Math.max(-1, fromIndex);
66
+ for (let step = 1; step <= items.length; step += 1) {
67
+ const index = (start + step) % items.length;
68
+ const item = items[index];
69
+ if (!item || item.disabled || isDropdownDivider(item)) continue;
70
+ if (item.label.toLowerCase().startsWith(needle)) return index;
71
+ }
72
+ return -1;
73
+ }
74
+ function escapeDropdownSelector(value) {
75
+ if (typeof CSS !== "undefined" && typeof CSS.escape === "function") return CSS.escape(value);
76
+ return value;
77
+ }
78
+ function resolveDropdownExternalRel(item) {
79
+ if (!item.href) return void 0;
80
+ if (item.rel) return item.rel;
81
+ if (item.target === "_blank") return "noopener noreferrer";
82
+ }
83
+ /**
84
+ * 下拉面板贴触发器:可指定上下与 start/end。
85
+ * 视口不够仍翻转;start/end 在 RTL 对调。
86
+ */
87
+ function placeDropdownPopup(anchor, popup, viewport, placement, rtl = false, gap = 4) {
88
+ const preferTop = placement.startsWith("top");
89
+ const below = anchor.top + anchor.height + gap;
90
+ const above = anchor.top - popup.height - gap;
91
+ const roomBelow = below + popup.height <= viewport.height;
92
+ const roomAbove = above >= gap;
93
+ let side;
94
+ if (preferTop) side = roomAbove || !roomBelow ? "top" : "bottom";
95
+ else side = roomBelow || !roomAbove ? "bottom" : "top";
96
+ const top = side === "bottom" ? below : Math.max(gap, above);
97
+ const width = Math.min(popup.width, Math.max(0, viewport.width - gap * 2));
98
+ const wantEnd = placement.endsWith("end");
99
+ const alignRight = rtl ? !wantEnd : wantEnd;
100
+ const startLeft = anchor.left;
101
+ const endLeft = anchor.left + (anchor.width ?? 0) - width;
102
+ const rawLeft = alignRight ? endLeft : startLeft;
103
+ const maxLeft = Math.max(gap, viewport.width - width - gap);
104
+ return {
105
+ top,
106
+ left: Math.min(Math.max(gap, rawLeft), maxLeft),
107
+ width,
108
+ placement: side
109
+ };
110
+ }
11
111
  //#endregion
12
- export { flattenDropdownItems, isDropdownItemGroup };
112
+ export { escapeDropdownSelector, flattenDropdownItems, hasDropdownChildren, isDropdownDivider, isDropdownItemGroup, listDropdownLayerItems, matchDropdownTypeahead, normalizeDropdownTriggers, placeDropdownPopup, resolveDropdownExternalRel, resolveDropdownMenuKeys, resolveDropdownPortalTarget };
@@ -1 +1,2 @@
1
1
  export { default as RsEmpty } from './src/RsEmpty.js';
2
+ export type { RsEmptyPreset, RsEmptySize } from './src/empty-utils';