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
@@ -0,0 +1,60 @@
1
+ import type { RsToastPosition, RsToastType } from '../../_shared/src/overlay-utils';
2
+ /** 未传 duration 时的自动关闭(ms)。 */
3
+ export declare const RS_TOAST_DEFAULT_DURATION = 4000;
4
+ /** 同一方位同时画在页面上的条数。 */
5
+ export declare const RS_TOAST_DEFAULT_VISIBLE = 3;
6
+ /** 每个宿主在内存里最多保留的条数,防止循环调用把队列撑满。 */
7
+ export declare const RS_TOAST_MAX = 24;
8
+ /** 离场过渡。减少动态时为 0,节点马上卸掉。 */
9
+ export declare const RS_TOAST_LEAVE_MS = 180;
10
+ /** 滑动超过该距离才关闭。 */
11
+ export declare const RS_TOAST_SWIPE_PX = 72;
12
+ export type RsToastKind = RsToastType | 'loading' | 'default';
13
+ export interface RsToastAction {
14
+ label: string;
15
+ onClick?: (event: MouseEvent) => void;
16
+ }
17
+ export interface RsToastOptions {
18
+ title: string;
19
+ description?: string;
20
+ position?: RsToastPosition;
21
+ /** 毫秒。0 或 Infinity 表示不自动关闭。未传则用宿主默认。 */
22
+ duration?: number;
23
+ id?: string;
24
+ toasterId?: string;
25
+ dismissible?: boolean;
26
+ closeButton?: boolean;
27
+ richColors?: boolean;
28
+ action?: RsToastAction;
29
+ cancel?: RsToastAction;
30
+ onDismiss?: (id: string) => void;
31
+ onAutoClose?: (id: string) => void;
32
+ }
33
+ export type RsToastInput = string | RsToastOptions;
34
+ export type RsToastPromiseMessage<T> = string | RsToastOptions | ((value: T) => string | RsToastOptions);
35
+ export interface RsToastPromiseMessages<T> {
36
+ loading: string | RsToastOptions;
37
+ success?: RsToastPromiseMessage<T>;
38
+ error?: RsToastPromiseMessage<unknown>;
39
+ id?: string;
40
+ toasterId?: string;
41
+ }
42
+ export declare function normalizeRsToastInput(input: RsToastInput): RsToastOptions;
43
+ export declare function normalizePromiseMessage<T>(message: RsToastPromiseMessage<T> | undefined, value: T): RsToastOptions | null;
44
+ /** 未传走 fallback;≤0 或非有限数表示常驻。 */
45
+ export declare function resolveRsToastDuration(duration: number | undefined, fallback: number): number;
46
+ export declare function shouldArmToastTimer(duration: number, hasWindow: boolean): boolean;
47
+ export declare function clampVisibleToasts(value: number | undefined): number;
48
+ export declare function clampToastGap(value: number | undefined): number;
49
+ /** 最新在前。超出上限时丢掉队尾。 */
50
+ export declare function trimToastList<T>(items: T[], max: number): T[];
51
+ export declare function resolveToastPosition(item: RsToastPosition | undefined, host: RsToastPosition): RsToastPosition;
52
+ export declare function toastLiveRole(type: RsToastKind): 'alert' | 'status';
53
+ export declare function toastAriaLive(type: RsToastKind): 'assertive' | 'polite';
54
+ export declare function toastIconName(type: RsToastKind): string;
55
+ export declare function prefersReducedToastMotion(): boolean;
56
+ export declare function toastLeaveDelay(): number;
57
+ export declare function isToastTypingTarget(target: EventTarget | null): boolean;
58
+ /** `alt+t` 这种写法。空字符串表示不注册快捷键。 */
59
+ export declare function matchToastHotkey(event: KeyboardEvent, spec: string | undefined): boolean;
60
+ export declare function errorToastText(error: unknown): string;
@@ -0,0 +1,86 @@
1
+ //#region src/components/toaster/src/toast-utils.ts
2
+ /** 未传 duration 时的自动关闭(ms)。 */
3
+ var RS_TOAST_DEFAULT_DURATION = 4e3;
4
+ function normalizeRsToastInput(input) {
5
+ if (typeof input === "string") return { title: input };
6
+ return input;
7
+ }
8
+ function normalizePromiseMessage(message, value) {
9
+ if (message == null) return null;
10
+ const resolved = typeof message === "function" ? message(value) : message;
11
+ if (typeof resolved === "string") return { title: resolved };
12
+ return resolved;
13
+ }
14
+ /** 未传走 fallback;≤0 或非有限数表示常驻。 */
15
+ function resolveRsToastDuration(duration, fallback) {
16
+ if (duration == null || Number.isNaN(duration)) return resolveRsToastDuration(fallback, RS_TOAST_DEFAULT_DURATION);
17
+ if (duration <= 0 || !Number.isFinite(duration)) return Number.POSITIVE_INFINITY;
18
+ return duration;
19
+ }
20
+ function shouldArmToastTimer(duration, hasWindow) {
21
+ return hasWindow && Number.isFinite(duration) && duration > 0;
22
+ }
23
+ function clampVisibleToasts(value) {
24
+ if (value == null || !Number.isFinite(value) || value < 1) return 3;
25
+ return Math.min(24, Math.floor(value));
26
+ }
27
+ function clampToastGap(value) {
28
+ if (value == null || !Number.isFinite(value) || value < 0) return 4;
29
+ return value;
30
+ }
31
+ /** 最新在前。超出上限时丢掉队尾。 */
32
+ function trimToastList(items, max) {
33
+ if (items.length <= max) return items;
34
+ return items.slice(0, max);
35
+ }
36
+ function resolveToastPosition(item, host) {
37
+ return item ?? host;
38
+ }
39
+ function toastLiveRole(type) {
40
+ return type === "error" ? "alert" : "status";
41
+ }
42
+ function toastAriaLive(type) {
43
+ return type === "error" ? "assertive" : "polite";
44
+ }
45
+ function toastIconName(type) {
46
+ switch (type) {
47
+ case "success": return "circle-check";
48
+ case "error": return "circle-alert";
49
+ case "warning": return "triangle-alert";
50
+ case "loading": return "loader-circle";
51
+ default: return "info";
52
+ }
53
+ }
54
+ function prefersReducedToastMotion() {
55
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return false;
56
+ return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
57
+ }
58
+ function toastLeaveDelay() {
59
+ return prefersReducedToastMotion() ? 0 : 180;
60
+ }
61
+ function isToastTypingTarget(target) {
62
+ if (typeof HTMLElement === "undefined" || !(target instanceof HTMLElement)) return false;
63
+ const tag = target.tagName;
64
+ return tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT" || target.isContentEditable;
65
+ }
66
+ /** `alt+t` 这种写法。空字符串表示不注册快捷键。 */
67
+ function matchToastHotkey(event, spec) {
68
+ if (!spec || event.repeat) return false;
69
+ const parts = spec.toLowerCase().split("+").map((part) => part.trim()).filter(Boolean);
70
+ if (parts.length === 0) return false;
71
+ const key = parts[parts.length - 1];
72
+ const needAlt = parts.includes("alt");
73
+ const needCtrl = parts.includes("ctrl") || parts.includes("control");
74
+ const needShift = parts.includes("shift");
75
+ const needMeta = parts.includes("meta");
76
+ if (event.altKey !== needAlt || event.ctrlKey !== needCtrl) return false;
77
+ if (event.shiftKey !== needShift || event.metaKey !== needMeta) return false;
78
+ return event.key.toLowerCase() === key;
79
+ }
80
+ function errorToastText(error) {
81
+ if (typeof error === "string") return error;
82
+ if (error instanceof Error && error.message) return error.message;
83
+ return "";
84
+ }
85
+ //#endregion
86
+ export { RS_TOAST_DEFAULT_DURATION, clampToastGap, clampVisibleToasts, errorToastText, isToastTypingTarget, matchToastHotkey, normalizePromiseMessage, normalizeRsToastInput, prefersReducedToastMotion, resolveRsToastDuration, resolveToastPosition, shouldArmToastTimer, toastAriaLive, toastIconName, toastLeaveDelay, toastLiveRole, trimToastList };
@@ -1,2 +1,2 @@
1
1
  export { default as RsToolbar } from './src/RsToolbar.js';
2
- export type { RsToolbarBorder, RsToolbarSize } from './src/RsToolbar.js';
2
+ export type { RsToolbarBorder, RsToolbarExpose, RsToolbarInstance, RsToolbarOrientation, RsToolbarSize, } from './src/toolbar-utils';
@@ -1,61 +1,235 @@
1
1
 
2
- .rs-toolbar {
2
+ .rs-toolbar[data-v-7b347879] {
3
+ --rs-toolbar-bg: var(--rs-surface);
4
+ --rs-toolbar-fg: var(--rs-text-primary);
5
+ --rs-toolbar-border: var(--rs-border-subtle);
6
+ --rs-toolbar-gap: var(--rs-space-md);
7
+ --rs-toolbar-item-gap: var(--rs-space-xs);
8
+ --rs-toolbar-pad-block: 0px;
9
+ --rs-toolbar-pad-inline: var(--rs-space-md);
10
+ --rs-toolbar-height: var(--rs-control-height-lg);
11
+ --rs-toolbar-font-size: var(--rs-font-size-sm);
12
+ --rs-toolbar-rail-min: 0px;
13
+ --rs-toolbar-blur: 16px;
14
+ --rs-toolbar-sticky-offset: 0px;
15
+ --rs-toolbar-disabled-opacity: 0.5;
16
+ --rs-toolbar-z: 1;
3
17
  display: flex;
4
18
  align-items: center;
5
- gap: var(--rs-space-sm);
19
+ gap: var(--rs-toolbar-gap);
6
20
  box-sizing: border-box;
7
21
  width: 100%;
8
22
  min-width: 0;
9
23
  flex-shrink: 0;
10
- padding: 0 var(--rs-space-sm);
11
- background: var(--rs-surface);
12
- color: var(--rs-text);
24
+ white-space: nowrap;
25
+ padding-block: var(--rs-toolbar-pad-block);
26
+ padding-inline: var(--rs-toolbar-pad-inline);
27
+ min-height: var(--rs-toolbar-height);
28
+ background: var(--rs-toolbar-bg);
29
+ color: var(--rs-toolbar-fg);
30
+ font-size: var(--rs-toolbar-font-size);
31
+ font-weight: var(--rs-font-weight-regular);
32
+ line-height: var(--rs-line-height-tight);
13
33
  }
14
- .rs-toolbar--compact {
15
- padding-inline: var(--rs-space-xs);
16
- gap: var(--rs-space-xs);
34
+ .rs-toolbar--has-center[data-v-7b347879]:not(.rs-toolbar--wrap):not(.rs-toolbar--vertical) {
35
+ display: grid;
36
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
17
37
  }
18
- .rs-toolbar--elevated {
19
- background: var(--rs-surface-elevated);
38
+ .rs-toolbar--compact[data-v-7b347879] {
39
+ --rs-toolbar-pad-inline: var(--rs-space-sm);
40
+ --rs-toolbar-gap: var(--rs-space-sm);
20
41
  }
21
- .rs-toolbar--sm {
22
- height: 2rem;
42
+ .rs-toolbar--elevated[data-v-7b347879] {
43
+ --rs-toolbar-bg: var(--rs-surface-elevated);
23
44
  }
24
- .rs-toolbar--md {
25
- height: 2.25rem;
45
+ .rs-toolbar--ssm[data-v-7b347879] {
46
+ --rs-toolbar-height: calc(var(--rs-control-height-sm) + var(--rs-space-xs));
47
+ --rs-toolbar-font-size: var(--rs-font-size-xs);
48
+ --rs-toolbar-pad-inline: var(--rs-space-sm);
49
+ --rs-toolbar-gap: var(--rs-space-sm);
26
50
  }
27
- .rs-toolbar--lg {
28
- height: 2.75rem;
51
+ .rs-toolbar--sm[data-v-7b347879] {
52
+ --rs-toolbar-height: var(--rs-control-height-md);
53
+ --rs-toolbar-font-size: var(--rs-font-size-xs);
29
54
  }
30
- .rs-toolbar--border-bottom {
31
- border-bottom: 1px solid var(--rs-border-subtle);
55
+ .rs-toolbar--md[data-v-7b347879] {
56
+ --rs-toolbar-height: var(--rs-control-height-lg);
32
57
  }
33
- .rs-toolbar--border-top {
34
- border-top: 1px solid var(--rs-border-subtle);
58
+ .rs-toolbar--lg[data-v-7b347879] {
59
+ --rs-toolbar-height: calc(var(--rs-control-height-lg) + var(--rs-space-sm));
60
+ --rs-toolbar-pad-inline: var(--rs-space-lg);
35
61
  }
36
- .rs-toolbar--border-both {
37
- border-top: 1px solid var(--rs-border-subtle);
38
- border-bottom: 1px solid var(--rs-border-subtle);
62
+ .rs-toolbar--border-bottom[data-v-7b347879] {
63
+ border-block-end: 1px solid var(--rs-toolbar-border);
39
64
  }
40
- .rs-toolbar--border-none {
65
+ .rs-toolbar--border-top[data-v-7b347879] {
66
+ border-block-start: 1px solid var(--rs-toolbar-border);
67
+ }
68
+ .rs-toolbar--border-both[data-v-7b347879] {
69
+ border-block-start: 1px solid var(--rs-toolbar-border);
70
+ border-block-end: 1px solid var(--rs-toolbar-border);
71
+ }
72
+ .rs-toolbar--border-none[data-v-7b347879] {
41
73
  border: none;
42
74
  }
43
- .rs-toolbar__start,
44
- .rs-toolbar__center,
45
- .rs-toolbar__end {
75
+ .rs-toolbar--vertical[data-v-7b347879] {
76
+ flex-direction: column;
77
+ align-items: stretch;
78
+ align-self: stretch;
79
+ width: max-content;
80
+ max-width: 100%;
81
+ min-width: var(--rs-toolbar-rail-min);
82
+ min-height: 0;
83
+ height: auto;
84
+ padding-block: var(--rs-toolbar-pad-inline);
85
+ padding-inline: var(--rs-toolbar-pad-block);
86
+ }
87
+ .rs-toolbar--vertical.rs-toolbar--has-center[data-v-7b347879]:not(.rs-toolbar--wrap) {
88
+ display: grid;
89
+ grid-template-columns: minmax(0, max-content);
90
+ grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr);
91
+ justify-items: stretch;
92
+ }
93
+ .rs-toolbar--vertical.rs-toolbar--border-bottom[data-v-7b347879] {
94
+ border-block-end: none;
95
+ border-inline-end: 1px solid var(--rs-toolbar-border);
96
+ }
97
+ .rs-toolbar--vertical.rs-toolbar--border-top[data-v-7b347879] {
98
+ border-block-start: none;
99
+ border-inline-start: 1px solid var(--rs-toolbar-border);
100
+ }
101
+ .rs-toolbar--vertical.rs-toolbar--border-both[data-v-7b347879] {
102
+ border-block-start: none;
103
+ border-block-end: none;
104
+ border-inline-start: 1px solid var(--rs-toolbar-border);
105
+ border-inline-end: 1px solid var(--rs-toolbar-border);
106
+ }
107
+ .rs-toolbar--wrap[data-v-7b347879] {
108
+ display: flex;
109
+ flex-wrap: wrap;
110
+ align-items: center;
111
+ align-content: center;
112
+ height: auto;
113
+ white-space: normal;
114
+ gap: var(--rs-toolbar-item-gap) var(--rs-toolbar-gap);
115
+ }
116
+ .rs-toolbar--sticky[data-v-7b347879] {
117
+ position: sticky;
118
+ inset-block-start: var(--rs-toolbar-sticky-offset);
119
+ z-index: var(--rs-toolbar-z);
120
+ background: color-mix(in srgb, var(--rs-toolbar-bg) 78%, transparent);
121
+ backdrop-filter: saturate(1.2) blur(var(--rs-toolbar-blur));
122
+ -webkit-backdrop-filter: saturate(1.2) blur(var(--rs-toolbar-blur));
123
+ }
124
+ .rs-toolbar--disabled[data-v-7b347879] {
125
+ opacity: var(--rs-toolbar-disabled-opacity);
126
+ }
127
+ .rs-toolbar__start[data-v-7b347879],
128
+ .rs-toolbar__center[data-v-7b347879],
129
+ .rs-toolbar__end[data-v-7b347879] {
46
130
  display: flex;
47
131
  align-items: center;
48
- gap: var(--rs-space-xs);
132
+ gap: var(--rs-toolbar-item-gap);
49
133
  min-width: 0;
134
+ max-width: 100%;
50
135
  }
51
- .rs-toolbar__start {
136
+ .rs-toolbar__start[data-v-7b347879] {
52
137
  flex: 1 1 auto;
53
- overflow: hidden;
138
+ justify-content: flex-start;
139
+ overflow: clip;
140
+ overflow-clip-margin: var(--rs-focus-ring-width, 2px);
54
141
  }
55
- .rs-toolbar__center {
142
+ .rs-toolbar__center[data-v-7b347879] {
56
143
  flex: 0 0 auto;
144
+ justify-content: center;
145
+ min-width: max-content;
146
+ }
147
+ .rs-toolbar__end[data-v-7b347879] {
148
+ flex: 0 0 auto;
149
+ justify-content: flex-end;
150
+ margin-inline-start: auto;
151
+ }
152
+ .rs-toolbar--has-center:not(.rs-toolbar--wrap):not(.rs-toolbar--vertical) .rs-toolbar__start[data-v-7b347879],
153
+ .rs-toolbar--has-center:not(.rs-toolbar--wrap):not(.rs-toolbar--vertical) .rs-toolbar__end[data-v-7b347879] {
154
+ width: 100%;
155
+ overflow: clip;
156
+ overflow-clip-margin: var(--rs-focus-ring-width, 2px);
157
+ }
158
+ .rs-toolbar--has-center:not(.rs-toolbar--wrap):not(.rs-toolbar--vertical) .rs-toolbar__start[data-v-7b347879] {
159
+ grid-column: 1;
160
+ justify-self: stretch;
161
+ margin-inline-start: 0;
162
+ }
163
+ .rs-toolbar--has-center:not(.rs-toolbar--wrap):not(.rs-toolbar--vertical) .rs-toolbar__center[data-v-7b347879] {
164
+ grid-column: 2;
165
+ justify-self: center;
166
+ }
167
+ .rs-toolbar--has-center:not(.rs-toolbar--wrap):not(.rs-toolbar--vertical) .rs-toolbar__end[data-v-7b347879] {
168
+ grid-column: 3;
169
+ justify-self: stretch;
170
+ margin-inline-start: 0;
57
171
  }
58
- .rs-toolbar__end {
172
+ .rs-toolbar--vertical .rs-toolbar__start[data-v-7b347879],
173
+ .rs-toolbar--vertical .rs-toolbar__center[data-v-7b347879],
174
+ .rs-toolbar--vertical .rs-toolbar__end[data-v-7b347879] {
59
175
  flex: 0 0 auto;
176
+ flex-direction: column;
177
+ align-items: stretch;
178
+ justify-content: flex-start;
179
+ width: 100%;
180
+ max-width: none;
181
+ margin-inline-start: 0;
182
+ overflow: visible;
183
+ }
184
+ .rs-toolbar--vertical .rs-toolbar__end[data-v-7b347879] {
185
+ margin-block-start: auto;
186
+ }
187
+ .rs-toolbar--vertical.rs-toolbar--has-center:not(.rs-toolbar--wrap) .rs-toolbar__start[data-v-7b347879] {
188
+ grid-column: 1;
189
+ grid-row: 1;
190
+ justify-self: stretch;
191
+ align-self: start;
192
+ margin: 0;
193
+ }
194
+ .rs-toolbar--vertical.rs-toolbar--has-center:not(.rs-toolbar--wrap) .rs-toolbar__center[data-v-7b347879] {
195
+ grid-column: 1;
196
+ grid-row: 2;
197
+ justify-self: stretch;
198
+ align-self: center;
199
+ margin: 0;
200
+ }
201
+ .rs-toolbar--vertical.rs-toolbar--has-center:not(.rs-toolbar--wrap) .rs-toolbar__end[data-v-7b347879] {
202
+ grid-column: 1;
203
+ grid-row: 3;
204
+ justify-self: stretch;
205
+ align-self: end;
206
+ margin: 0;
207
+ }
208
+ .rs-toolbar--wrap .rs-toolbar__start[data-v-7b347879] {
209
+ flex-wrap: wrap;
210
+ overflow: visible;
211
+ }
212
+ .rs-toolbar--wrap:not(.rs-toolbar--vertical) .rs-toolbar__end[data-v-7b347879] {
60
213
  margin-inline-start: auto;
61
214
  }
215
+ @media (prefers-reduced-transparency: reduce) {
216
+ .rs-toolbar--sticky[data-v-7b347879] {
217
+ background: var(--rs-toolbar-bg);
218
+ backdrop-filter: none;
219
+ -webkit-backdrop-filter: none;
220
+ }
221
+ }
222
+ @media (forced-colors: active) {
223
+ .rs-toolbar[data-v-7b347879] {
224
+ --rs-toolbar-bg: Canvas;
225
+ --rs-toolbar-fg: CanvasText;
226
+ --rs-toolbar-border: CanvasText;
227
+ }
228
+ .rs-toolbar--elevated[data-v-7b347879],
229
+ .rs-toolbar--sticky[data-v-7b347879] {
230
+ --rs-toolbar-bg: Canvas;
231
+ background: Canvas;
232
+ backdrop-filter: none;
233
+ -webkit-backdrop-filter: none;
234
+ }
235
+ }
@@ -1,37 +1,62 @@
1
- /** 工具栏高度密度,对应常见面板顶栏。 */
2
- export type RsToolbarSize = 'sm' | 'md' | 'lg';
3
- /** 分割线位置。 */
4
- export type RsToolbarBorder = 'bottom' | 'top' | 'both' | 'none';
1
+ import type { RsComponentSize } from '../../../theme/types';
2
+ import { type RsToolbarBorder, type RsToolbarExpose, type RsToolbarOrientation } from './toolbar-utils';
3
+ export type { RsToolbarBorder, RsToolbarExpose, RsToolbarOrientation };
4
+ export type { RsToolbarSize } from './toolbar-utils';
5
5
  type __VLS_Props = {
6
6
  /** 根元素标签名。 */
7
7
  tag?: string;
8
- /** 高度密度:sm≈32px / md≈36px / lg≈44px。 */
9
- size?: RsToolbarSize;
10
- /** 分割线位置。 */
8
+ /** 高度密度。未传跟 ConfigProvider,再回退 md。 */
9
+ size?: RsComponentSize;
10
+ /** 分割线位置。竖排时映射到逻辑 inline 边。 */
11
11
  border?: RsToolbarBorder;
12
- /** 使用抬升底色(`--rs-surface-elevated`)。 */
12
+ orientation?: RsToolbarOrientation;
13
+ /** 使用抬升底色(`--rs-toolbar-bg` → `--rs-surface-elevated`)。 */
13
14
  elevated?: boolean;
14
15
  /** 收紧水平内边距。 */
15
16
  compact?: boolean;
16
- /** 无障碍标签(`role="toolbar"`)。 */
17
+ /** 允许换行,不再裁切 start 区。 */
18
+ wrap?: boolean;
19
+ /** sticky 吸附。偏移写入 `--rs-toolbar-sticky-offset`。 */
20
+ sticky?: boolean;
21
+ stickyOffset?: number;
22
+ disabled?: boolean;
23
+ /**
24
+ * APG 键盘:方向键 / Home / End 在命令控件间移动。
25
+ * 输入框不拦截。false 时不改 tabindex,每项仍是独立 Tab 停。
26
+ */
27
+ keyboard?: boolean;
28
+ /** 方向键在首尾循环。 */
29
+ loop?: boolean;
30
+ ariaLabel?: string;
31
+ /** 兼容旧名,等同 ariaLabel。 */
17
32
  label?: string;
33
+ id?: string;
18
34
  };
19
- declare var __VLS_8: {}, __VLS_10: {}, __VLS_12: {}, __VLS_14: {};
35
+ declare var __VLS_12: {}, __VLS_14: {}, __VLS_16: {}, __VLS_18: {}, __VLS_20: {}, __VLS_22: {};
20
36
  type __VLS_Slots = {} & {
21
- left?: (props: typeof __VLS_8) => any;
37
+ start?: (props: typeof __VLS_12) => any;
22
38
  } & {
23
- default?: (props: typeof __VLS_10) => any;
39
+ left?: (props: typeof __VLS_14) => any;
24
40
  } & {
25
- center?: (props: typeof __VLS_12) => any;
41
+ default?: (props: typeof __VLS_16) => any;
26
42
  } & {
27
- right?: (props: typeof __VLS_14) => any;
43
+ center?: (props: typeof __VLS_18) => any;
44
+ } & {
45
+ end?: (props: typeof __VLS_20) => any;
46
+ } & {
47
+ right?: (props: typeof __VLS_22) => any;
28
48
  };
29
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
49
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, RsToolbarExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
30
50
  tag: string;
31
- size: RsToolbarSize;
51
+ disabled: boolean;
32
52
  border: RsToolbarBorder;
53
+ orientation: RsToolbarOrientation;
33
54
  elevated: boolean;
34
55
  compact: boolean;
56
+ wrap: boolean;
57
+ sticky: boolean;
58
+ keyboard: boolean;
59
+ loop: boolean;
35
60
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
61
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
37
62
  declare const _default: typeof __VLS_export;