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
@@ -1,26 +1,45 @@
1
- import type { RsFeedbackTone } from '../../_shared/src/overlay-utils';
1
+ import { type RsComponentSize, type RsRadius } from '../../../theme/types';
2
+ import { type RsAlertExpose, type RsAlertTone, type RsAlertVariant } from './alert-utils';
3
+ export type { RsAlertExpose, RsAlertTone, RsAlertVariant };
2
4
  type __VLS_Props = {
3
- type?: RsFeedbackTone;
5
+ /** 色相。与 type 同时传时以 tone 为准。 */
6
+ tone?: RsAlertTone;
7
+ /** type 的兼容别名,语义与 tone 相同。 */
8
+ type?: RsAlertTone;
9
+ variant?: RsAlertVariant;
4
10
  title?: string;
11
+ description?: string;
5
12
  closable?: boolean;
6
13
  bordered?: boolean;
14
+ showIcon?: boolean;
15
+ banner?: boolean;
16
+ closeText?: string;
17
+ size?: RsComponentSize;
18
+ radius?: RsRadius;
19
+ id?: string;
20
+ ariaLabel?: string;
7
21
  };
8
- declare var __VLS_1: {}, __VLS_8: {}, __VLS_10: {};
22
+ declare var __VLS_1: {}, __VLS_8: {}, __VLS_10: {}, __VLS_12: {}, __VLS_14: {};
9
23
  type __VLS_Slots = {} & {
10
24
  icon?: (props: typeof __VLS_1) => any;
11
25
  } & {
12
26
  title?: (props: typeof __VLS_8) => any;
13
27
  } & {
14
28
  default?: (props: typeof __VLS_10) => any;
29
+ } & {
30
+ action?: (props: typeof __VLS_12) => any;
31
+ } & {
32
+ close?: (props: typeof __VLS_14) => any;
15
33
  };
16
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
34
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, RsAlertExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
35
  close: (event: MouseEvent) => any;
18
36
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
37
  onClose?: ((event: MouseEvent) => any) | undefined;
20
38
  }>, {
21
- type: RsFeedbackTone;
22
39
  bordered: boolean;
23
40
  closable: boolean;
41
+ showIcon: boolean;
42
+ banner: boolean;
24
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
44
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
45
  declare const _default: typeof __VLS_export;
@@ -1,26 +1,42 @@
1
+ import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
1
2
  import { useRsI18n } from "../../../composables/useRsI18n.js";
2
3
  import RsIcon_default from "../../icon/src/RsIcon.js";
3
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref } from "vue";
4
+ import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
5
+ import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
6
+ import { hasAlertDescription, hasAlertTitle, resolveAlertIcon, resolveAlertRole, resolveAlertSize, resolveAlertTone, resolveAlertVariant, shouldShowAlertIcon } from "./alert-utils.js";
7
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, toDisplayString, useId, useSlots } from "vue";
4
8
  //#region src/components/alert/src/RsAlert.vue?vue&type=script&setup=true&lang.ts
5
- var _hoisted_1 = {
9
+ var _hoisted_1 = [
10
+ "id",
11
+ "role",
12
+ "aria-label",
13
+ "aria-labelledby",
14
+ "aria-describedby",
15
+ "tabindex"
16
+ ];
17
+ var _hoisted_2 = {
18
+ key: 0,
6
19
  class: "rs-alert__icon",
7
20
  "aria-hidden": "true"
8
21
  };
9
- var _hoisted_2 = { class: "rs-alert__body" };
10
- var _hoisted_3 = {
11
- key: 0,
12
- class: "rs-alert__title"
13
- };
14
- var _hoisted_4 = {
22
+ var _hoisted_3 = { class: "rs-alert__body" };
23
+ var _hoisted_4 = ["id"];
24
+ var _hoisted_5 = ["id"];
25
+ var _hoisted_6 = {
15
26
  key: 1,
16
- class: "rs-alert__content"
27
+ class: "rs-alert__action"
17
28
  };
18
- var _hoisted_5 = ["aria-label"];
29
+ var _hoisted_7 = ["aria-label"];
30
+ var _hoisted_8 = { key: 0 };
19
31
  var RsAlert_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
32
+ name: "RsAlert",
20
33
  __name: "RsAlert",
21
34
  props: {
22
- type: { default: "info" },
35
+ tone: {},
36
+ type: {},
37
+ variant: {},
23
38
  title: {},
39
+ description: {},
24
40
  closable: {
25
41
  type: Boolean,
26
42
  default: false
@@ -28,54 +44,110 @@ var RsAlert_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
28
44
  bordered: {
29
45
  type: Boolean,
30
46
  default: true
31
- }
47
+ },
48
+ showIcon: {
49
+ type: Boolean,
50
+ default: true
51
+ },
52
+ banner: {
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ closeText: {},
57
+ size: {},
58
+ radius: {},
59
+ id: {},
60
+ ariaLabel: {}
32
61
  },
33
62
  emits: ["close"],
34
- setup(__props, { emit: __emit }) {
63
+ setup(__props, { expose: __expose, emit: __emit }) {
35
64
  const props = __props;
36
65
  const emit = __emit;
37
66
  const { t } = useRsI18n();
38
- const iconName = computed(() => {
39
- switch (props.type) {
40
- case "success": return "circle-check";
41
- case "warning": return "triangle-alert";
42
- case "danger": return "circle-alert";
43
- case "default": return "info";
44
- default: return "info";
45
- }
46
- });
67
+ const slots = useSlots();
68
+ const uid = useId();
69
+ const rootRef = ref(null);
70
+ const closeRef = ref(null);
71
+ const inheritedSize = useResolvedRsComponentSize(() => props.size);
72
+ const resolvedSize = computed(() => resolveAlertSize(inheritedSize.value));
73
+ const resolvedRadius = useResolvedRsRadius(() => props.banner ? "none" : props.radius, "md");
74
+ const resolvedTone = computed(() => resolveAlertTone(props.tone, props.type));
75
+ const resolvedVariant = computed(() => resolveAlertVariant(props.variant));
76
+ const iconName = computed(() => resolveAlertIcon(resolvedTone.value));
77
+ const liveRole = computed(() => resolveAlertRole(resolvedTone.value));
78
+ const showIcon = computed(() => shouldShowAlertIcon(props.showIcon, Boolean(slots.icon)));
79
+ const showTitle = computed(() => hasAlertTitle(props.title, Boolean(slots.title)));
80
+ const showDescription = computed(() => hasAlertDescription(props.description, Boolean(slots.default)));
81
+ const iconSize = computed(() => RS_COMPONENT_SIZE_ICON_PX[resolvedSize.value === "sm" ? "sm" : resolvedSize.value]);
82
+ const closeIconSize = computed(() => RS_COMPONENT_SIZE_ICON_PX[resolvedSize.value === "lg" ? "md" : "ssm"]);
83
+ const titleDomId = computed(() => showTitle.value ? `${props.id || uid}-title` : void 0);
84
+ const descDomId = computed(() => showDescription.value ? `${props.id || uid}-desc` : void 0);
85
+ const closeLabel = computed(() => props.closeText || t("alert.close"));
47
86
  const rootClass = computed(() => [
48
87
  "rs-alert",
49
- `rs-alert--${props.type}`,
88
+ `rs-alert--${resolvedTone.value}`,
89
+ `rs-alert--${resolvedVariant.value}`,
90
+ `rs-alert--${resolvedSize.value}`,
50
91
  {
51
92
  "rs-alert--bordered": props.bordered,
52
- "rs-alert--closable": props.closable
93
+ "rs-alert--closable": props.closable,
94
+ "rs-alert--banner": props.banner,
95
+ "rs-alert--no-icon": !showIcon.value
53
96
  }
54
97
  ]);
98
+ const rootStyle = computed(() => ({ "--rs-alert-radius": props.banner ? "0" : rsRadiusCss(resolvedRadius.value) }));
55
99
  function onClose(event) {
56
100
  emit("close", event);
57
101
  }
102
+ function focus() {
103
+ if (closeRef.value) {
104
+ closeRef.value.focus();
105
+ return;
106
+ }
107
+ rootRef.value?.focus();
108
+ }
109
+ __expose({ focus });
58
110
  return (_ctx, _cache) => {
59
111
  return openBlock(), createElementBlock("div", {
112
+ id: __props.id,
113
+ ref_key: "rootRef",
114
+ ref: rootRef,
60
115
  class: normalizeClass(rootClass.value),
61
- role: "alert"
116
+ style: normalizeStyle(rootStyle.value),
117
+ role: liveRole.value,
118
+ "aria-label": __props.ariaLabel,
119
+ "aria-labelledby": titleDomId.value,
120
+ "aria-describedby": descDomId.value,
121
+ tabindex: __props.closable ? void 0 : -1
62
122
  }, [
63
- createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(RsIcon_default, {
123
+ showIcon.value ? (openBlock(), createElementBlock("span", _hoisted_2, [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(RsIcon_default, {
64
124
  name: iconName.value,
65
- size: 16
66
- }, null, 8, ["name"])], true)]),
67
- createElementVNode("div", _hoisted_2, [__props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "title", {}, () => [createTextVNode(toDisplayString(__props.title), 1)], true)])) : createCommentVNode("", true), _ctx.$slots.default ? (openBlock(), createElementBlock("div", _hoisted_4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])) : createCommentVNode("", true)]),
68
- __props.closable ? (openBlock(), createElementBlock("button", {
125
+ size: iconSize.value
126
+ }, null, 8, ["name", "size"])], true)])) : createCommentVNode("", true),
127
+ createElementVNode("div", _hoisted_3, [showTitle.value ? (openBlock(), createElementBlock("div", {
69
128
  key: 0,
129
+ id: titleDomId.value,
130
+ class: "rs-alert__title"
131
+ }, [renderSlot(_ctx.$slots, "title", {}, () => [createTextVNode(toDisplayString(__props.title), 1)], true)], 8, _hoisted_4)) : createCommentVNode("", true), showDescription.value ? (openBlock(), createElementBlock("div", {
132
+ key: 1,
133
+ id: descDomId.value,
134
+ class: "rs-alert__content"
135
+ }, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(__props.description), 1)], true)], 8, _hoisted_5)) : createCommentVNode("", true)]),
136
+ _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_6, [renderSlot(_ctx.$slots, "action", {}, void 0, true)])) : createCommentVNode("", true),
137
+ __props.closable ? (openBlock(), createElementBlock("button", {
138
+ key: 2,
139
+ ref_key: "closeRef",
140
+ ref: closeRef,
70
141
  type: "button",
71
- class: "rs-alert__close",
72
- "aria-label": unref(t)("alert.close"),
142
+ class: normalizeClass(["rs-alert__close", { "rs-alert__close--text": Boolean(__props.closeText || _ctx.$slots.close) }]),
143
+ "aria-label": closeLabel.value,
73
144
  onClick: onClose
74
- }, [createVNode(RsIcon_default, {
145
+ }, [renderSlot(_ctx.$slots, "close", {}, () => [__props.closeText ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(__props.closeText), 1)) : (openBlock(), createBlock(RsIcon_default, {
146
+ key: 1,
75
147
  name: "x",
76
- size: 14
77
- })], 8, _hoisted_5)) : createCommentVNode("", true)
78
- ], 2);
148
+ size: closeIconSize.value
149
+ }, null, 8, ["size"]))], true)], 10, _hoisted_7)) : createCommentVNode("", true)
150
+ ], 14, _hoisted_1);
79
151
  };
80
152
  }
81
153
  });
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsAlert_vue_vue_type_script_setup_true_lang_default from "./RsAlert.impl.js";
4
4
 
5
5
  //#region src/components/alert/src/RsAlert.vue
6
- var RsAlert_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsAlert_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2fd45305"]]);
6
+ var RsAlert_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsAlert_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8c18fdd0"]]);
7
7
  //#endregion
8
8
  export { RsAlert_default as default };
@@ -0,0 +1,37 @@
1
+ import type { RsComponentSize } from '../../../theme/types';
2
+ /** 与 RsFeedbackTone 同一套色相。历史 prop 名是 type,新代码用 tone。 */
3
+ export type RsAlertTone = 'default' | 'info' | 'success' | 'warning' | 'danger';
4
+ /** 形态轴:浅底 / 描边 / 实心。色相走 tone,不要用 variant 表示危险。 */
5
+ export type RsAlertVariant = 'soft' | 'outline' | 'solid';
6
+ /** 密度。ssm 落到 sm,避免提示条做成控件极小档。 */
7
+ export type RsAlertSize = 'sm' | 'md' | 'lg';
8
+ export type RsAlertRole = 'alert' | 'status';
9
+ export interface RsAlertExpose {
10
+ /** 焦点落到关闭钮;没有关闭钮时落到根节点。 */
11
+ focus: () => void;
12
+ }
13
+ export type RsAlertInstance = RsAlertExpose & {
14
+ $el: HTMLElement;
15
+ };
16
+ export declare const RS_ALERT_TONES: readonly ["default", "info", "success", "warning", "danger"];
17
+ export declare const RS_ALERT_VARIANTS: readonly ["soft", "outline", "solid"];
18
+ export declare const RS_ALERT_SIZES: readonly ["sm", "md", "lg"];
19
+ export declare const RS_ALERT_DEFAULT_TONE: RsAlertTone;
20
+ export declare const RS_ALERT_DEFAULT_VARIANT: RsAlertVariant;
21
+ export declare const RS_ALERT_DEFAULT_SIZE: RsAlertSize;
22
+ export declare function isRsAlertTone(value: unknown): value is RsAlertTone;
23
+ export declare function isRsAlertVariant(value: unknown): value is RsAlertVariant;
24
+ export declare function isRsAlertSize(value: unknown): value is RsAlertSize;
25
+ /**
26
+ * tone 优先,type 是兼容别名。两边都无效时回落 info(与旧默认一致)。
27
+ */
28
+ export declare function resolveAlertTone(tone?: string | null, type?: string | null): RsAlertTone;
29
+ export declare function resolveAlertVariant(variant?: string | null): RsAlertVariant;
30
+ /** 未传或非法落到 md;ssm 并到 sm。 */
31
+ export declare function resolveAlertSize(size?: RsComponentSize | RsAlertSize | null): RsAlertSize;
32
+ export declare function resolveAlertIcon(tone: RsAlertTone): string;
33
+ /** 警告 / 错误用 alert(断言);信息 / 成功 / 中性用 status,避免进页就打断读屏。 */
34
+ export declare function resolveAlertRole(tone: RsAlertTone): RsAlertRole;
35
+ export declare function shouldShowAlertIcon(showIcon: boolean, hasIconSlot: boolean): boolean;
36
+ export declare function hasAlertTitle(title?: string | null, hasTitleSlot?: boolean): boolean;
37
+ export declare function hasAlertDescription(description?: string | null, hasDefaultSlot?: boolean): boolean;
@@ -0,0 +1,71 @@
1
+ //#region src/components/alert/src/alert-utils.ts
2
+ var RS_ALERT_TONES = [
3
+ "default",
4
+ "info",
5
+ "success",
6
+ "warning",
7
+ "danger"
8
+ ];
9
+ var RS_ALERT_VARIANTS = [
10
+ "soft",
11
+ "outline",
12
+ "solid"
13
+ ];
14
+ var RS_ALERT_SIZES = [
15
+ "sm",
16
+ "md",
17
+ "lg"
18
+ ];
19
+ var RS_ALERT_DEFAULT_TONE = "info";
20
+ var RS_ALERT_DEFAULT_VARIANT = "soft";
21
+ var ALERT_ICONS = {
22
+ default: "info",
23
+ info: "info",
24
+ success: "circle-check",
25
+ warning: "triangle-alert",
26
+ danger: "circle-alert"
27
+ };
28
+ function isRsAlertTone(value) {
29
+ return typeof value === "string" && RS_ALERT_TONES.includes(value);
30
+ }
31
+ function isRsAlertVariant(value) {
32
+ return typeof value === "string" && RS_ALERT_VARIANTS.includes(value);
33
+ }
34
+ function isRsAlertSize(value) {
35
+ return typeof value === "string" && RS_ALERT_SIZES.includes(value);
36
+ }
37
+ /**
38
+ * tone 优先,type 是兼容别名。两边都无效时回落 info(与旧默认一致)。
39
+ */
40
+ function resolveAlertTone(tone, type) {
41
+ if (isRsAlertTone(tone)) return tone;
42
+ if (isRsAlertTone(type)) return type;
43
+ return RS_ALERT_DEFAULT_TONE;
44
+ }
45
+ function resolveAlertVariant(variant) {
46
+ return isRsAlertVariant(variant) ? variant : RS_ALERT_DEFAULT_VARIANT;
47
+ }
48
+ /** 未传或非法落到 md;ssm 并到 sm。 */
49
+ function resolveAlertSize(size) {
50
+ if (size === "ssm" || size === "sm") return "sm";
51
+ if (isRsAlertSize(size)) return size;
52
+ return "md";
53
+ }
54
+ function resolveAlertIcon(tone) {
55
+ return ALERT_ICONS[tone];
56
+ }
57
+ /** 警告 / 错误用 alert(断言);信息 / 成功 / 中性用 status,避免进页就打断读屏。 */
58
+ function resolveAlertRole(tone) {
59
+ return tone === "warning" || tone === "danger" ? "alert" : "status";
60
+ }
61
+ function shouldShowAlertIcon(showIcon, hasIconSlot) {
62
+ return hasIconSlot || showIcon;
63
+ }
64
+ function hasAlertTitle(title, hasTitleSlot = false) {
65
+ return hasTitleSlot || Boolean(title);
66
+ }
67
+ function hasAlertDescription(description, hasDefaultSlot = false) {
68
+ return hasDefaultSlot || Boolean(description);
69
+ }
70
+ //#endregion
71
+ export { RS_ALERT_DEFAULT_TONE, RS_ALERT_DEFAULT_VARIANT, RS_ALERT_SIZES, RS_ALERT_TONES, RS_ALERT_VARIANTS, hasAlertDescription, hasAlertTitle, isRsAlertSize, isRsAlertTone, isRsAlertVariant, resolveAlertIcon, resolveAlertRole, resolveAlertSize, resolveAlertTone, resolveAlertVariant, shouldShowAlertIcon };
@@ -64,8 +64,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsAut
64
64
  disabled: boolean;
65
65
  loading: boolean;
66
66
  allowClear: boolean;
67
- options: ReadonlyArray<RsAutoCompleteOptionInput>;
68
67
  emptyText: string;
68
+ options: ReadonlyArray<RsAutoCompleteOptionInput>;
69
69
  filterOption: RsAutoCompleteFilterOption | boolean;
70
70
  debounce: number;
71
71
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;