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
@@ -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>;
@@ -1,7 +1,7 @@
1
1
  import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
2
2
  import RsIcon_default from "../../icon/src/RsIcon.js";
3
- import { placeRsButtonTip, resolveRsButtonTone, resolveRsButtonVariant } from "./button-utils.js";
4
3
  import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
4
+ import { placeRsButtonTip, resolveRsButtonTone, resolveRsButtonVariant } from "./button-utils.js";
5
5
  import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
6
6
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderSlot, toDisplayString, unref, useId, useSlots, watch } from "vue";
7
7
  //#region src/components/button/src/RsButton.vue?vue&type=script&setup=true&lang.ts
@@ -54,9 +54,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
54
54
  padding: boolean;
55
55
  size: RsCardSize;
56
56
  elevated: boolean;
57
- as: string;
58
57
  borderless: boolean;
59
58
  clip: boolean;
59
+ as: string;
60
60
  hoverable: boolean;
61
61
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
62
62
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1 +1,2 @@
1
1
  export { default as RsCodeBlock } from './src/RsCodeBlock.js';
2
+ export type { RsCodeBlockExpose, RsCodeBlockSelection } from './src/code-block-utils';
@@ -1,102 +1,143 @@
1
1
 
2
- .rs-code-block[data-v-438706f0] {
2
+ .rs-code-block[data-v-227d5b66] {
3
+ position: relative;
3
4
  margin: 0;
4
- border: 1px solid var(--rs-border-subtle);
5
+ min-inline-size: 0;
6
+ max-inline-size: 100%;
7
+ border: 1px solid var(--rs-code-block-border, var(--rs-border-subtle));
5
8
  border-radius: var(--rs-radius);
6
9
  overflow: hidden;
7
- background: var(--rs-surface-elevated);
10
+ background: var(--rs-code-block-bg, var(--rs-surface-elevated));
8
11
  font-size: var(--rs-font-size-sm);
12
+ color: var(--rs-code-block-fg, var(--rs-text-primary));
9
13
  }
10
- .rs-code-block--plain[data-v-438706f0] {
14
+ .rs-code-block--plain[data-v-227d5b66] {
11
15
  border: 0;
12
16
  border-radius: 0;
13
17
  }
14
- .rs-code-block--plain .rs-code-block__editor[data-v-438706f0] .cm-editor {
15
- max-height: none;
16
- }
17
- .rs-code-block__bar[data-v-438706f0] {
18
+ .rs-code-block__bar[data-v-227d5b66] {
18
19
  display: flex;
19
20
  align-items: center;
20
21
  justify-content: space-between;
21
- padding: var(--rs-space-xs) var(--rs-space-md);
22
- border-bottom: 1px solid var(--rs-border-subtle);
23
- background: color-mix(in srgb, var(--rs-surface-elevated) 80%, var(--rs-border) 20%);
22
+ gap: var(--rs-space-sm);
23
+ padding-block: var(--rs-space-xs);
24
+ padding-inline: var(--rs-space-md);
25
+ border-block-end: 1px solid var(--rs-code-block-border, var(--rs-border-subtle));
26
+ background: var(--rs-code-block-bar-bg, var(--rs-surface-elevated));
27
+ }
28
+ .rs-code-block__meta[data-v-227d5b66] {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: var(--rs-space-sm);
32
+ min-inline-size: 0;
24
33
  }
25
- .rs-code-block__lang[data-v-438706f0] {
34
+ .rs-code-block__file[data-v-227d5b66] {
35
+ min-inline-size: 0;
36
+ overflow: hidden;
26
37
  font-family: var(--rs-code-font-family, var(--rs-font-mono));
27
38
  font-size: var(--rs-font-size-xs);
28
- color: var(--rs-muted);
39
+ color: var(--rs-code-block-fg, var(--rs-text-primary));
40
+ text-overflow: ellipsis;
41
+ white-space: nowrap;
42
+ }
43
+ .rs-code-block__lang[data-v-227d5b66] {
44
+ flex-shrink: 0;
45
+ font-family: var(--rs-code-font-family, var(--rs-font-mono));
46
+ font-size: var(--rs-font-size-xs);
47
+ color: var(--rs-code-block-muted, var(--rs-text-tertiary));
29
48
  text-transform: lowercase;
30
49
  }
31
- .rs-code-block__actions[data-v-438706f0] {
50
+ .rs-code-block__actions[data-v-227d5b66] {
32
51
  display: flex;
52
+ flex-shrink: 0;
33
53
  align-items: center;
34
54
  gap: var(--rs-space-xs);
35
55
  }
36
- .rs-code-block__copy[data-v-438706f0] {
37
- padding: 2px var(--rs-space-sm);
38
- border: 1px solid var(--rs-border-subtle);
56
+ .rs-code-block__copy[data-v-227d5b66] {
57
+ padding-block: calc(var(--rs-space-xs) / 2);
58
+ padding-inline: var(--rs-space-sm);
59
+ border: 1px solid var(--rs-code-block-border, var(--rs-border-subtle));
39
60
  border-radius: var(--rs-radius-sm);
40
61
  background: transparent;
41
- color: var(--rs-muted);
62
+ color: var(--rs-code-block-muted, var(--rs-text-tertiary));
42
63
  font-size: var(--rs-font-size-xs);
43
64
  cursor: pointer;
44
- transition: color 120ms, border-color 120ms, background 120ms;
65
+ transition:
66
+ color var(--rs-code-block-transition, 120ms),
67
+ border-color var(--rs-code-block-transition, 120ms),
68
+ background var(--rs-code-block-transition, 120ms);
45
69
  }
46
- .rs-code-block__copy[data-v-438706f0]:hover {
47
- color: var(--rs-text);
70
+ .rs-code-block__copy[data-v-227d5b66]:hover {
71
+ color: var(--rs-code-block-fg, var(--rs-text-primary));
48
72
  border-color: var(--rs-border);
49
73
  background: var(--rs-item-hover);
50
74
  }
51
-
52
- /* CodeMirror 编辑器区域:覆盖默认样式以融入设计系统 */
53
- .rs-code-block__editor[data-v-438706f0] .cm-editor {
54
- background: var(--rs-surface-elevated) !important;
55
- /* 最大高度限制,超出时内部滚动 */
56
- max-height: 32rem;
75
+ .rs-code-block__copy[data-v-227d5b66]:focus-visible {
76
+ outline: none;
77
+ box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
78
+ }
79
+ .rs-code-block__sr[data-v-227d5b66] {
80
+ position: absolute;
81
+ inline-size: 1px;
82
+ block-size: 1px;
83
+ padding: 0;
84
+ margin: -1px;
85
+ overflow: hidden;
86
+ clip: rect(0, 0, 0, 0);
87
+ white-space: nowrap;
88
+ border: 0;
89
+ }
90
+ .rs-code-block__editor[data-v-227d5b66] .cm-editor {
91
+ background: var(--rs-code-block-bg, var(--rs-surface-elevated)) !important;
92
+ max-height: var(--rs-code-block-max-height, 32rem);
57
93
  overflow-y: auto;
58
94
  }
59
-
60
- /* 浅色模式:代码区用深色文字 */
61
- .rs-code-block__editor[data-v-438706f0] .cm-content {
62
- color: var(--rs-foreground);
95
+ .rs-code-block--plain .rs-code-block__editor[data-v-227d5b66] .cm-editor {
96
+ max-height: none;
63
97
  }
64
-
65
- /* 行号区域背景与主体一致 */
66
- .rs-code-block__editor[data-v-438706f0] .cm-gutters {
67
- background: color-mix(in srgb, var(--rs-surface-elevated) 85%, var(--rs-border) 15%) !important;
68
- border-right-color: var(--rs-border-subtle) !important;
69
- color: var(--rs-muted);
98
+ .rs-code-block--capped .rs-code-block__editor[data-v-227d5b66] .cm-editor {
99
+ max-height: var(--rs-code-block-max-height, 32rem);
70
100
  }
71
-
72
- /* 激活行高亮跟随设计系统 */
73
- .rs-code-block__editor[data-v-438706f0] .cm-activeLine {
101
+ .rs-code-block__editor[data-v-227d5b66] .cm-content {
102
+ color: var(--rs-code-block-fg, var(--rs-text-primary));
103
+ }
104
+ .rs-code-block__editor[data-v-227d5b66] .cm-gutters {
105
+ background: var(--rs-code-block-gutter, var(--rs-surface-elevated)) !important;
106
+ border-right-color: var(--rs-code-block-border, var(--rs-border-subtle)) !important;
107
+ color: var(--rs-code-block-muted, var(--rs-text-tertiary));
108
+ }
109
+ .rs-code-block--no-lines .rs-code-block__editor[data-v-227d5b66] .cm-gutters {
110
+ display: none;
111
+ }
112
+ .rs-code-block__editor[data-v-227d5b66] .cm-activeLine {
74
113
  background: color-mix(in srgb, var(--rs-primary) 4%, transparent) !important;
75
114
  }
76
- .rs-code-block__editor[data-v-438706f0] .cm-activeLineGutter {
115
+ .rs-code-block__editor[data-v-227d5b66] .cm-activeLineGutter {
77
116
  background: color-mix(in srgb, var(--rs-primary) 6%, transparent) !important;
78
117
  }
79
- .rs-code-block__editor[data-v-438706f0] .cm-scroller {
118
+ .rs-code-block__editor[data-v-227d5b66] .cm-scroller {
80
119
  font-family: var(--rs-code-font-family, var(--rs-font-mono));
81
120
  font-size: var(--rs-code-font-size, var(--rs-font-size-sm));
82
121
  line-height: var(--rs-code-line-height, var(--rs-line-height-relaxed));
83
122
  }
84
-
85
- /* 只读时隐藏光标,保持纯展示外观 */
86
- .rs-code-block[data-v-438706f0]:not(.rs-code-block--editable) .cm-cursor {
123
+ .rs-code-block[data-v-227d5b66]:not(.rs-code-block--editable) .cm-cursor {
87
124
  display: none;
88
125
  }
89
-
90
- /* 去掉 CodeMirror 默认焦点描边,统一为 macOS 风格聚焦环 */
91
- .rs-code-block__editor[data-v-438706f0] .cm-editor.cm-focused {
126
+ .rs-code-block__editor[data-v-227d5b66] .cm-editor.cm-focused {
92
127
  outline: none;
93
128
  box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
94
129
  }
95
-
96
- /* 选中区跟随设计系统主色 */
97
- .rs-code-block__editor[data-v-438706f0] .cm-selectionBackground {
130
+ .rs-code-block__editor[data-v-227d5b66] .cm-selectionBackground {
98
131
  background: color-mix(in srgb, var(--rs-primary) 22%, transparent) !important;
99
132
  }
100
- .rs-code-block__editor[data-v-438706f0] .cm-focused .cm-selectionBackground {
133
+ .rs-code-block__editor[data-v-227d5b66] .cm-focused .cm-selectionBackground {
101
134
  background: color-mix(in srgb, var(--rs-primary) 28%, transparent) !important;
102
135
  }
136
+ .rs-code-block__editor[data-v-227d5b66] .cm-rs-code-line--highlight {
137
+ background-color: var(--rs-code-block-highlight, color-mix(in srgb, var(--rs-primary) 14%, transparent));
138
+ }
139
+ @media (prefers-reduced-motion: reduce) {
140
+ .rs-code-block__copy[data-v-227d5b66] {
141
+ transition: none;
142
+ }
143
+ }
@@ -1,34 +1,61 @@
1
+ import { type RsCodeBlockSelection } from './code-block-utils';
1
2
  type __VLS_Props = {
2
3
  code: string;
3
4
  lang?: string;
4
- /** 覆盖内置"复制"文案 */
5
+ /** 语言条上的文件名。不参与下载。 */
6
+ filename?: string;
7
+ /** 覆盖内置「复制」文案 */
5
8
  copyLabel?: string;
6
- /** 覆盖内置"已复制"文案 */
9
+ /** 覆盖内置「已复制」文案 */
7
10
  copiedLabel?: string;
11
+ /** 覆盖内置「复制失败」文案 */
12
+ copyFailedLabel?: string;
8
13
  /** 提供时显示下载按钮,值为建议文件名 */
9
14
  downloadFilename?: string;
10
- /** 覆盖内置"下载"文案 */
15
+ /** 覆盖内置「下载」文案 */
11
16
  downloadLabel?: string;
12
17
  /** 为 true 时允许改正文,并向外同步 */
13
18
  editable?: boolean;
14
19
  /** 为 false 时隐藏语言条与复制/下载(嵌入编辑器用) */
15
20
  showBar?: boolean;
21
+ /** 为 false 时藏起行号槽。默认仍显示。 */
22
+ lineNumbers?: boolean;
23
+ /** 为 false 时不折行。默认折行。 */
24
+ wordWrap?: boolean;
25
+ /** 从 1 开始的行号,高亮这些行 */
26
+ highlightLines?: readonly number[];
27
+ /** 覆盖最大高度。showBar 为 false 且未传时不限制。 */
28
+ maxHeight?: string;
29
+ ariaLabel?: string;
30
+ id?: string;
16
31
  };
17
- declare function getSelection(): {
18
- text: string;
19
- startLine: number;
20
- endLine: number;
21
- } | null;
22
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
32
+ declare function getSelection(): RsCodeBlockSelection | null;
33
+ declare function focus(): void;
34
+ declare var __VLS_1: {};
35
+ type __VLS_Slots = {} & {
36
+ actions?: (props: typeof __VLS_1) => any;
37
+ };
38
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
23
39
  getSelection: typeof getSelection;
40
+ focus: typeof focus;
24
41
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
42
+ copy: (text: string) => any;
25
43
  "update:code": (value: string) => any;
26
44
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
45
+ onCopy?: ((text: string) => any) | undefined;
27
46
  "onUpdate:code"?: ((value: string) => any) | undefined;
28
47
  }>, {
29
48
  lang: string;
49
+ wordWrap: boolean;
30
50
  editable: boolean;
51
+ lineNumbers: boolean;
31
52
  showBar: boolean;
32
53
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
54
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
33
55
  declare const _default: typeof __VLS_export;
34
56
  export default _default;
57
+ type __VLS_WithSlots<T, S> = T & {
58
+ new (): {
59
+ $slots: S;
60
+ };
61
+ };