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,5 +1,5 @@
1
1
 
2
- .rs-btn[data-v-423f0a90] {
2
+ .rs-btn[data-v-8974aec3] {
3
3
  position: relative;
4
4
  display: inline-flex;
5
5
  align-items: center;
@@ -23,127 +23,122 @@
23
23
  padding var(--rs-transition-normal),
24
24
  gap var(--rs-transition-normal);
25
25
  }
26
- .rs-btn--ssm[data-v-423f0a90] {
26
+ .rs-btn--ssm[data-v-8974aec3] {
27
27
  min-height: var(--rs-control-height-ssm);
28
28
  padding: 0 var(--rs-space-xs);
29
29
  font-size: var(--rs-font-size-xs);
30
30
  gap: var(--rs-space-xs);
31
31
  }
32
- .rs-btn--sm[data-v-423f0a90] {
32
+ .rs-btn--sm[data-v-8974aec3] {
33
33
  min-height: var(--rs-control-height-sm);
34
34
  padding: 0 var(--rs-space-sm);
35
35
  font-size: var(--rs-font-size-xs);
36
36
  gap: var(--rs-space-xs);
37
37
  }
38
- .rs-btn--lg[data-v-423f0a90] {
38
+ .rs-btn--lg[data-v-8974aec3] {
39
39
  min-height: var(--rs-control-height-lg);
40
40
  padding: 0 var(--rs-space-xl);
41
41
  font-size: var(--rs-font-size-base);
42
42
  }
43
- .rs-btn[data-v-423f0a90]:disabled {
43
+ .rs-btn[data-v-8974aec3]:disabled {
44
44
  opacity: 0.38;
45
45
  cursor: not-allowed;
46
46
  }
47
- .rs-btn--loading[data-v-423f0a90] {
47
+ .rs-btn--loading[data-v-8974aec3] {
48
48
  pointer-events: none;
49
49
  cursor: wait;
50
50
  transition: none;
51
51
  }
52
52
  /* loading 时不使用 disabled,避免部分浏览器暂停子元素 CSS 动画 */
53
- .rs-btn--loading[data-v-423f0a90]:disabled {
53
+ .rs-btn--loading[data-v-8974aec3]:disabled {
54
54
  opacity: 1;
55
55
  cursor: wait;
56
56
  }
57
- .rs-btn--loading.rs-btn--default[data-v-423f0a90] {
57
+ .rs-btn--loading.rs-btn--default[data-v-8974aec3] {
58
58
  color: var(--rs-text);
59
59
  border-color: var(--rs-border);
60
60
  background: var(--rs-surface);
61
61
  }
62
- .rs-btn--loading.rs-btn--default[data-v-423f0a90]:not(.rs-btn--tone-neutral) {
62
+ .rs-btn--loading.rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral) {
63
63
  color: var(--rs-btn-tone-on-container);
64
64
  border-color: color-mix(in srgb, var(--rs-btn-tone) 42%, var(--rs-border));
65
65
  background: var(--rs-btn-tone-container);
66
66
  }
67
- .rs-btn--loading.rs-btn--ghost[data-v-423f0a90],
68
- .rs-btn--loading.rs-btn--text[data-v-423f0a90] {
67
+ .rs-btn--loading.rs-btn--ghost[data-v-8974aec3],
68
+ .rs-btn--loading.rs-btn--text[data-v-8974aec3] {
69
69
  color: var(--rs-btn-tone, var(--rs-text));
70
70
  background: var(--rs-surface-hover);
71
71
  }
72
- .rs-btn[data-v-423f0a90]:focus-visible {
72
+ .rs-btn[data-v-8974aec3]:focus-visible {
73
73
  outline: none;
74
74
  box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
75
75
  }
76
- .rs-btn--icon-only[data-v-423f0a90] {
76
+ .rs-btn--icon-only[data-v-8974aec3] {
77
77
  padding: 0;
78
78
  min-width: var(--rs-control-height-md);
79
79
  }
80
- .rs-btn--icon-only.rs-btn--ssm[data-v-423f0a90] {
80
+ .rs-btn--icon-only.rs-btn--ssm[data-v-8974aec3] {
81
81
  min-width: var(--rs-control-height-ssm);
82
82
  }
83
- .rs-btn--icon-only.rs-btn--sm[data-v-423f0a90] {
83
+ .rs-btn--icon-only.rs-btn--sm[data-v-8974aec3] {
84
84
  min-width: var(--rs-control-height-sm);
85
85
  }
86
- .rs-btn--icon-only.rs-btn--lg[data-v-423f0a90] {
86
+ .rs-btn--icon-only.rs-btn--lg[data-v-8974aec3] {
87
87
  min-width: var(--rs-control-height-lg);
88
88
  }
89
- .rs-btn--primary[data-v-423f0a90] {
89
+ .rs-btn--primary[data-v-8974aec3] {
90
90
  background: var(--rs-primary);
91
91
  color: var(--rs-primary-foreground);
92
92
  box-shadow: var(--rs-shadow-sm);
93
93
  }
94
- .rs-btn--primary[data-v-423f0a90]:hover:not(:disabled) {
94
+ .rs-btn--primary[data-v-8974aec3]:hover:not(:disabled) {
95
95
  background: var(--rs-primary-hover);
96
96
  box-shadow: var(--rs-shadow);
97
97
  }
98
- .rs-btn--primary[data-v-423f0a90]:active:not(:disabled) {
98
+ .rs-btn--primary[data-v-8974aec3]:active:not(:disabled) {
99
99
  box-shadow: none;
100
100
  }
101
- .rs-btn--default[data-v-423f0a90] {
101
+ .rs-btn--default[data-v-8974aec3] {
102
102
  border: 1px solid var(--rs-btn-outline-border, var(--rs-border));
103
103
  background: var(--rs-btn-secondary-bg, var(--rs-surface-hover));
104
104
  color: var(--rs-text);
105
105
  box-shadow: none;
106
106
  }
107
- .rs-btn--default[data-v-423f0a90]:hover:not(:disabled) {
107
+ .rs-btn--default[data-v-8974aec3]:hover:not(:disabled) {
108
108
  color: var(--rs-primary);
109
109
  border-color: var(--rs-primary);
110
110
  background: var(--rs-btn-secondary-bg-hover, var(--rs-primary-container));
111
111
  }
112
- .rs-btn--default[data-v-423f0a90]:active:not(:disabled) {
112
+ .rs-btn--default[data-v-8974aec3]:active:not(:disabled) {
113
113
  color: var(--rs-primary-hover);
114
114
  border-color: var(--rs-primary-hover);
115
115
  background: var(--rs-btn-secondary-bg-active, var(--rs-primary-container));
116
116
  }
117
- .rs-btn--ghost[data-v-423f0a90] {
117
+ .rs-btn--ghost[data-v-8974aec3] {
118
118
  background: transparent;
119
119
  border: 1px solid var(--rs-btn-outline-border, var(--rs-border));
120
120
  color: var(--rs-btn-tone, var(--rs-text));
121
121
  }
122
- .rs-btn--ghost[data-v-423f0a90]:hover:not(:disabled) {
122
+ .rs-btn--ghost[data-v-8974aec3]:hover:not(:disabled) {
123
123
  background: var(--rs-surface-hover);
124
124
  border-color: var(--rs-btn-outline-border, var(--rs-border));
125
125
  color: var(--rs-btn-tone-hover, var(--rs-btn-tone, var(--rs-text)));
126
126
  }
127
- .rs-btn--ghost[data-v-423f0a90]:active:not(:disabled) {
127
+ .rs-btn--ghost[data-v-8974aec3]:active:not(:disabled) {
128
128
  background: color-mix(in srgb, var(--rs-btn-tone, var(--rs-text)) 12%, var(--rs-surface-hover));
129
129
  }
130
- .rs-btn--borderless[data-v-423f0a90],
131
- .rs-btn--borderless[data-v-423f0a90]:hover:not(:disabled),
132
- .rs-btn--borderless[data-v-423f0a90]:active:not(:disabled) {
133
- border-color: transparent;
134
- }
135
- .rs-btn--danger[data-v-423f0a90] {
130
+ .rs-btn--danger[data-v-8974aec3] {
136
131
  background: var(--rs-danger-container);
137
132
  border-color: color-mix(in srgb, var(--rs-danger) 30%, transparent);
138
133
  color: var(--rs-on-danger-container);
139
134
  }
140
- .rs-btn--danger[data-v-423f0a90]:hover:not(:disabled) {
135
+ .rs-btn--danger[data-v-8974aec3]:hover:not(:disabled) {
141
136
  border-color: var(--rs-danger);
142
137
  background: color-mix(in srgb, var(--rs-danger) 20%, var(--rs-danger-container));
143
138
  }
144
139
 
145
140
  /* 行内链接:可下划线;色调由 tone 控制(默认 primary) */
146
- .rs-btn--link[data-v-423f0a90] {
141
+ .rs-btn--link[data-v-8974aec3] {
147
142
  min-height: auto;
148
143
  padding: 0;
149
144
  border-color: transparent;
@@ -153,7 +148,7 @@
153
148
  box-shadow: none;
154
149
  font-weight: var(--rs-font-weight-medium);
155
150
  }
156
- .rs-btn--link[data-v-423f0a90]:hover:not(:disabled) {
151
+ .rs-btn--link[data-v-8974aec3]:hover:not(:disabled) {
157
152
  color: var(--rs-btn-tone-hover, var(--rs-primary-hover));
158
153
  text-decoration: underline;
159
154
  }
@@ -162,7 +157,7 @@
162
157
  * text:工具栏 / 表格操作 quaternary
163
158
  * 无底无边,靠 tone 着色;hover 使用同色浅底
164
159
  */
165
- .rs-btn--text[data-v-423f0a90] {
160
+ .rs-btn--text[data-v-8974aec3] {
166
161
  min-height: var(--rs-control-height-sm);
167
162
  padding: 0 var(--rs-space-sm);
168
163
  border-color: transparent;
@@ -171,61 +166,61 @@
171
166
  font-weight: var(--rs-font-weight-regular);
172
167
  color: var(--rs-btn-tone, var(--rs-text));
173
168
  }
174
- .rs-btn--text.rs-btn--ssm[data-v-423f0a90] {
169
+ .rs-btn--text.rs-btn--ssm[data-v-8974aec3] {
175
170
  min-height: var(--rs-control-height-ssm);
176
171
  }
177
- .rs-btn--text.rs-btn--md[data-v-423f0a90] {
172
+ .rs-btn--text.rs-btn--md[data-v-8974aec3] {
178
173
  min-height: var(--rs-control-height-md);
179
174
  }
180
- .rs-btn--text.rs-btn--lg[data-v-423f0a90] {
175
+ .rs-btn--text.rs-btn--lg[data-v-8974aec3] {
181
176
  min-height: var(--rs-control-height-lg);
182
177
  }
183
- .rs-btn--text[data-v-423f0a90]:hover:not(:disabled) {
178
+ .rs-btn--text[data-v-8974aec3]:hover:not(:disabled) {
184
179
  background: color-mix(in srgb, var(--rs-btn-tone, var(--rs-text)) 8%, transparent);
185
180
  border-color: transparent;
186
181
  color: var(--rs-btn-tone-hover, var(--rs-btn-tone, var(--rs-text)));
187
182
  }
188
- .rs-btn--text[data-v-423f0a90]:active:not(:disabled) {
183
+ .rs-btn--text[data-v-8974aec3]:active:not(:disabled) {
189
184
  background: color-mix(in srgb, var(--rs-btn-tone, var(--rs-text)) 12%, transparent);
190
185
  }
191
186
 
192
187
  /* tone:色相 token,供所有变体消费(形态 × 色相) */
193
- .rs-btn--tone-neutral[data-v-423f0a90] {
188
+ .rs-btn--tone-neutral[data-v-8974aec3] {
194
189
  --rs-btn-tone: var(--rs-text);
195
190
  --rs-btn-tone-hover: var(--rs-text);
196
191
  --rs-btn-tone-fg: var(--rs-text);
197
192
  --rs-btn-tone-container: var(--rs-btn-secondary-bg, var(--rs-surface-hover));
198
193
  --rs-btn-tone-on-container: var(--rs-text);
199
194
  }
200
- .rs-btn--tone-primary[data-v-423f0a90] {
195
+ .rs-btn--tone-primary[data-v-8974aec3] {
201
196
  --rs-btn-tone: var(--rs-primary);
202
197
  --rs-btn-tone-hover: var(--rs-primary-hover);
203
198
  --rs-btn-tone-fg: var(--rs-primary-foreground);
204
199
  --rs-btn-tone-container: var(--rs-primary-container);
205
200
  --rs-btn-tone-on-container: var(--rs-on-primary-container);
206
201
  }
207
- .rs-btn--tone-danger[data-v-423f0a90] {
202
+ .rs-btn--tone-danger[data-v-8974aec3] {
208
203
  --rs-btn-tone: var(--rs-danger);
209
204
  --rs-btn-tone-hover: var(--rs-danger);
210
205
  --rs-btn-tone-fg: var(--rs-text-inverse);
211
206
  --rs-btn-tone-container: var(--rs-danger-container);
212
207
  --rs-btn-tone-on-container: var(--rs-on-danger-container);
213
208
  }
214
- .rs-btn--tone-success[data-v-423f0a90] {
209
+ .rs-btn--tone-success[data-v-8974aec3] {
215
210
  --rs-btn-tone: var(--rs-success, #18a058);
216
211
  --rs-btn-tone-hover: var(--rs-success, #18a058);
217
212
  --rs-btn-tone-fg: var(--rs-text-inverse);
218
213
  --rs-btn-tone-container: var(--rs-success-container, color-mix(in srgb, var(--rs-success, #18a058) 14%, var(--rs-surface)));
219
214
  --rs-btn-tone-on-container: var(--rs-on-success-container, var(--rs-success, #18a058));
220
215
  }
221
- .rs-btn--tone-warning[data-v-423f0a90] {
216
+ .rs-btn--tone-warning[data-v-8974aec3] {
222
217
  --rs-btn-tone: var(--rs-warning, #f0a020);
223
218
  --rs-btn-tone-hover: var(--rs-warning, #f0a020);
224
219
  --rs-btn-tone-fg: var(--rs-text-inverse);
225
220
  --rs-btn-tone-container: var(--rs-warning-container, color-mix(in srgb, var(--rs-warning, #f0a020) 14%, var(--rs-surface)));
226
221
  --rs-btn-tone-on-container: var(--rs-on-warning-container, var(--rs-warning, #f0a020));
227
222
  }
228
- .rs-btn--tone-info[data-v-423f0a90] {
223
+ .rs-btn--tone-info[data-v-8974aec3] {
229
224
  --rs-btn-tone: var(--rs-info, #2080f0);
230
225
  --rs-btn-tone-hover: var(--rs-info, #2080f0);
231
226
  --rs-btn-tone-fg: var(--rs-text-inverse);
@@ -234,42 +229,50 @@
234
229
  }
235
230
 
236
231
  /* default + 语义色:轮廓 + 浅底(Ant outlined / Element plain) */
237
- .rs-btn--default[data-v-423f0a90]:not(.rs-btn--tone-neutral) {
232
+ .rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral) {
238
233
  color: var(--rs-btn-tone-on-container);
239
234
  border-color: color-mix(in srgb, var(--rs-btn-tone) 42%, var(--rs-border));
240
235
  background: var(--rs-btn-tone-container);
241
236
  }
242
- .rs-btn--default[data-v-423f0a90]:not(.rs-btn--tone-neutral):hover:not(:disabled) {
237
+ .rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral):hover:not(:disabled) {
243
238
  color: var(--rs-btn-tone);
244
239
  border-color: var(--rs-btn-tone);
245
240
  background: color-mix(in srgb, var(--rs-btn-tone) 14%, var(--rs-btn-tone-container));
246
241
  }
247
- .rs-btn--default[data-v-423f0a90]:not(.rs-btn--tone-neutral):active:not(:disabled) {
242
+ .rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral):active:not(:disabled) {
248
243
  color: var(--rs-btn-tone-hover);
249
244
  border-color: var(--rs-btn-tone-hover);
250
245
  background: color-mix(in srgb, var(--rs-btn-tone) 20%, var(--rs-btn-tone-container));
251
246
  }
252
247
 
253
248
  /* primary + 非主色:实心语义色 */
254
- .rs-btn--primary[data-v-423f0a90]:not(.rs-btn--tone-primary) {
249
+ .rs-btn--primary[data-v-8974aec3]:not(.rs-btn--tone-primary) {
255
250
  background: var(--rs-btn-tone);
256
251
  color: var(--rs-btn-tone-fg);
257
252
  border-color: transparent;
258
253
  }
259
- .rs-btn--primary[data-v-423f0a90]:not(.rs-btn--tone-primary):hover:not(:disabled) {
254
+ .rs-btn--primary[data-v-8974aec3]:not(.rs-btn--tone-primary):hover:not(:disabled) {
260
255
  background: var(--rs-btn-tone-hover);
261
256
  }
262
257
 
263
258
  /* ghost + 语义色:描边跟色相 */
264
- .rs-btn--ghost[data-v-423f0a90]:not(.rs-btn--tone-neutral) {
259
+ .rs-btn--ghost[data-v-8974aec3]:not(.rs-btn--tone-neutral) {
265
260
  border-color: color-mix(in srgb, var(--rs-btn-tone) 45%, var(--rs-border));
266
261
  }
267
- .rs-btn--ghost[data-v-423f0a90]:not(.rs-btn--tone-neutral):hover:not(:disabled) {
262
+ .rs-btn--ghost[data-v-8974aec3]:not(.rs-btn--tone-neutral):hover:not(:disabled) {
268
263
  border-color: var(--rs-btn-tone);
269
264
  background: color-mix(in srgb, var(--rs-btn-tone) 14%, var(--rs-surface));
270
265
  color: var(--rs-btn-tone);
271
266
  }
272
- .rs-btn__spinner[data-v-423f0a90] {
267
+
268
+ /* 未传 bordered 时压过上面各变体后写的 border-color */
269
+ .rs-btn.rs-btn--borderless[data-v-8974aec3],
270
+ .rs-btn.rs-btn--borderless[data-v-8974aec3]:hover:not(:disabled),
271
+ .rs-btn.rs-btn--borderless[data-v-8974aec3]:active:not(:disabled),
272
+ .rs-btn.rs-btn--borderless.rs-btn--loading[data-v-8974aec3] {
273
+ border-color: transparent;
274
+ }
275
+ .rs-btn__spinner[data-v-8974aec3] {
273
276
  display: inline-flex;
274
277
  align-items: center;
275
278
  justify-content: center;
@@ -278,7 +281,7 @@
278
281
  flex-shrink: 0;
279
282
  pointer-events: none;
280
283
  }
281
- .rs-btn__spinner-ring[data-v-423f0a90] {
284
+ .rs-btn__spinner-ring[data-v-8974aec3] {
282
285
  display: block;
283
286
  width: 100%;
284
287
  height: 100%;
@@ -286,27 +289,27 @@
286
289
  border-top-color: var(--rs-primary);
287
290
  border-radius: var(--rs-radius-full);
288
291
  transform-origin: center center;
289
- animation: rs-spin-423f0a90 0.75s linear infinite;
292
+ animation: rs-spin-8974aec3 0.75s linear infinite;
290
293
  }
291
- .rs-btn--default .rs-btn__spinner-ring[data-v-423f0a90],
292
- .rs-btn--ghost .rs-btn__spinner-ring[data-v-423f0a90] {
294
+ .rs-btn--default .rs-btn__spinner-ring[data-v-8974aec3],
295
+ .rs-btn--ghost .rs-btn__spinner-ring[data-v-8974aec3] {
293
296
  border-color: color-mix(in srgb, var(--rs-btn-tone, var(--rs-primary)) 28%, transparent);
294
297
  border-top-color: var(--rs-btn-tone, var(--rs-primary));
295
298
  }
296
- .rs-btn--text .rs-btn__spinner-ring[data-v-423f0a90],
297
- .rs-btn--link .rs-btn__spinner-ring[data-v-423f0a90] {
299
+ .rs-btn--text .rs-btn__spinner-ring[data-v-8974aec3],
300
+ .rs-btn--link .rs-btn__spinner-ring[data-v-8974aec3] {
298
301
  border-color: color-mix(in srgb, var(--rs-btn-tone, var(--rs-primary)) 28%, transparent);
299
302
  border-top-color: var(--rs-btn-tone, var(--rs-primary));
300
303
  }
301
- .rs-btn--primary .rs-btn__spinner-ring[data-v-423f0a90] {
304
+ .rs-btn--primary .rs-btn__spinner-ring[data-v-8974aec3] {
302
305
  border-color: color-mix(in srgb, currentcolor 35%, transparent);
303
306
  border-top-color: currentcolor;
304
307
  }
305
- .rs-btn--danger .rs-btn__spinner-ring[data-v-423f0a90] {
308
+ .rs-btn--danger .rs-btn__spinner-ring[data-v-8974aec3] {
306
309
  border-color: color-mix(in srgb, var(--rs-danger) 28%, transparent);
307
310
  border-top-color: var(--rs-danger);
308
311
  }
309
- .rs-btn__icon[data-v-423f0a90] {
312
+ .rs-btn__icon[data-v-8974aec3] {
310
313
  display: inline-flex;
311
314
  flex-shrink: 0;
312
315
  align-items: center;
@@ -315,7 +318,7 @@
315
318
  color: inherit;
316
319
  }
317
320
  /* 插槽内自定义图标+文案时也能水平对齐 */
318
- .rs-btn__label[data-v-423f0a90] {
321
+ .rs-btn__label[data-v-8974aec3] {
319
322
  display: inline-flex;
320
323
  align-items: center;
321
324
  gap: inherit;
@@ -323,7 +326,7 @@
323
326
  line-height: 1;
324
327
  white-space: nowrap;
325
328
  }
326
- .rs-btn__label--reveal[data-v-423f0a90] {
329
+ .rs-btn__label--reveal[data-v-8974aec3] {
327
330
  display: inline-block;
328
331
  max-width: 0;
329
332
  opacity: 0;
@@ -334,12 +337,12 @@
334
337
  max-width 0.2s ease,
335
338
  opacity 0.15s ease;
336
339
  }
337
- .rs-btn--reveal-label:hover:not(:disabled) .rs-btn__label--reveal[data-v-423f0a90],
338
- .rs-btn--reveal-label:focus-visible .rs-btn__label--reveal[data-v-423f0a90] {
340
+ .rs-btn--reveal-label:hover:not(:disabled) .rs-btn__label--reveal[data-v-8974aec3],
341
+ .rs-btn--reveal-label:focus-visible .rs-btn__label--reveal[data-v-8974aec3] {
339
342
  max-width: 12rem;
340
343
  opacity: 1;
341
344
  }
342
- .rs-btn__tooltip[data-v-423f0a90] {
345
+ .rs-btn__tooltip[data-v-8974aec3] {
343
346
  position: fixed;
344
347
  /* Portal 挂 body,必须高于 Dialog/Drawer(100/101),与 RsTooltip 同一档 */
345
348
  z-index: calc(var(--rs-z-modal) + 2);
@@ -355,17 +358,17 @@
355
358
  box-shadow: var(--rs-shadow-sm);
356
359
  pointer-events: none;
357
360
  }
358
- @keyframes rs-spin-423f0a90 {
361
+ @keyframes rs-spin-8974aec3 {
359
362
  to {
360
363
  transform: rotate(360deg);
361
364
  }
362
365
  }
363
366
  @media (prefers-reduced-motion: reduce) {
364
- .rs-btn[data-v-423f0a90],
365
- .rs-btn__label--reveal[data-v-423f0a90] {
367
+ .rs-btn[data-v-8974aec3],
368
+ .rs-btn__label--reveal[data-v-8974aec3] {
366
369
  transition: none;
367
370
  }
368
- .rs-btn__spinner-ring[data-v-423f0a90] {
371
+ .rs-btn__spinner-ring[data-v-8974aec3] {
369
372
  animation: none;
370
373
  border-top-color: transparent;
371
374
  }
@@ -15,10 +15,7 @@ type __VLS_Props = {
15
15
  type?: 'button' | 'submit' | 'reset';
16
16
  disabled?: boolean;
17
17
  loading?: boolean;
18
- /**
19
- * 是否显示外边框。未传时 text / link 无边,其余有边。
20
- * 默认必须是 undefined:Vue 会把未传的 Boolean 收成 false。
21
- */
18
+ /** 是否绘制外边框。未传为 false,与 2.0.3 之前一致。 */
22
19
  bordered?: boolean;
23
20
  /** 前缀图标(Lucide kebab-case 名称) */
24
21
  icon?: string;
@@ -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
@@ -39,7 +39,7 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
39
39
  },
40
40
  bordered: {
41
41
  type: Boolean,
42
- default: void 0
42
+ default: false
43
43
  },
44
44
  icon: {},
45
45
  iconSize: {},
@@ -64,11 +64,7 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
64
64
  const rootStyle = computed(() => ({ "--rs-btn-radius": rsRadiusCss(resolvedRadius.value) }));
65
65
  const hasLabel = computed(() => Boolean(slots.default));
66
66
  const resolvedVariant = computed(() => resolveRsButtonVariant(props.variant ?? "primary"));
67
- /** text 默认无边框;其它变体默认有边框(可由 bordered 覆盖) */
68
- const resolvedBordered = computed(() => {
69
- if (props.bordered !== void 0) return props.bordered;
70
- return resolvedVariant.value !== "text" && resolvedVariant.value !== "link";
71
- });
67
+ const resolvedBordered = computed(() => props.bordered);
72
68
  /** 形态 × 色相:所有变体都带 tone class,由 CSS 决定如何上色。 */
73
69
  const resolvedTone = computed(() => resolveRsButtonTone(props.variant ?? "primary", props.tone));
74
70
  const rootClass = computed(() => ({
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsButton_vue_vue_type_script_setup_true_lang_default from "./RsButton.impl.js";
4
4
 
5
5
  //#region src/components/button/src/RsButton.vue
6
- var RsButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsButton_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-423f0a90"]]);
6
+ var RsButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsButton_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8974aec3"]]);
7
7
  //#endregion
8
8
  export { RsButton_default as default };
@@ -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
+ }