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
@@ -3,15 +3,15 @@
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  width: 100%;
6
- /* 标题与内容间距;可由 contentGap 或样式覆盖 */
7
6
  --rs-tabs-content-gap: 0px;
8
7
  }
9
-
10
- /* 非激活面板必须彻底隐藏,避免多页内容叠层 */
11
8
  .rs-tabs__panel[data-state='inactive'],
12
9
  .rs-tabs__panel[hidden] {
13
10
  display: none !important;
14
11
  }
12
+ .rs-tabs__panel {
13
+ outline: none;
14
+ }
15
15
  .rs-tabs__shell,
16
16
  .rs-tabs__body {
17
17
  display: flex;
@@ -65,10 +65,10 @@
65
65
  .rs-tabs__trigger {
66
66
  display: inline-flex;
67
67
  align-items: center;
68
- gap: 0.375rem;
68
+ gap: var(--rs-tabs-trigger-gap);
69
69
  border: none;
70
70
  background: transparent;
71
- color: var(--rs-muted);
71
+ color: var(--rs-tabs-text);
72
72
  font-size: var(--rs-font-size-sm);
73
73
  line-height: var(--rs-line-height-tight);
74
74
  white-space: nowrap;
@@ -84,24 +84,33 @@
84
84
  border-radius: var(--rs-radius-xs);
85
85
  }
86
86
  .rs-tabs__trigger:disabled {
87
- opacity: 0.38;
87
+ opacity: var(--rs-tabs-disabled-opacity);
88
88
  cursor: not-allowed;
89
89
  }
90
90
  .rs-tabs__trigger--dragging {
91
91
  opacity: 0.45;
92
92
  }
93
93
  .rs-tabs__trigger--drag-over {
94
- box-shadow: inset 0 -2px 0 0 var(--rs-primary);
94
+ box-shadow: inset 0 -2px 0 0 var(--rs-tabs-ink);
95
95
  }
96
96
  .rs-tabs__trigger--fixed {
97
97
  font-weight: var(--rs-font-weight-medium);
98
98
  }
99
- .rs-tabs--draggable .rs-tabs__trigger--movable {
100
- cursor: grab;
101
- }
99
+ .rs-tabs--draggable .rs-tabs__trigger--movable,
102
100
  .rs-tabs--draggable .rs-tabs__trigger--movable:active,
103
101
  .rs-tabs--draggable .rs-tabs__trigger--dragging {
104
- cursor: grabbing;
102
+ cursor: move;
103
+ }
104
+ .rs-tabs__drag {
105
+ display: inline-flex;
106
+ width: 0.5rem;
107
+ height: 0.75rem;
108
+ flex: 0 0 auto;
109
+ color: var(--rs-tabs-text);
110
+ opacity: 0.45;
111
+ background-image: radial-gradient(circle, currentColor 1px, transparent 1.15px);
112
+ background-size: 3px 3.333px;
113
+ background-repeat: repeat;
105
114
  }
106
115
  .rs-tabs__pin {
107
116
  flex: 0 0 auto;
@@ -114,13 +123,13 @@
114
123
  }
115
124
  .rs-tabs__label {
116
125
  min-width: 0;
117
- max-width: 12rem;
126
+ max-width: var(--rs-tabs-label-max);
118
127
  overflow: hidden;
119
128
  text-overflow: ellipsis;
120
129
  }
121
130
  .rs-tabs__rename-input {
122
131
  width: 6.5rem;
123
- max-width: 12rem;
132
+ max-width: var(--rs-tabs-label-max);
124
133
  min-height: 1.5rem;
125
134
  padding: 0 0.375rem;
126
135
  border: 1px solid var(--rs-border);
@@ -137,32 +146,31 @@
137
146
  .rs-tabs__badge {
138
147
  padding: 0 0.375rem;
139
148
  border-radius: var(--rs-radius-full);
140
- background: var(--rs-surface-hover);
141
- color: var(--rs-muted);
149
+ background: var(--rs-tabs-badge-bg);
150
+ color: var(--rs-tabs-text);
142
151
  font-size: var(--rs-font-size-xs);
143
152
  font-weight: var(--rs-font-weight-medium);
144
153
  font-variant-numeric: tabular-nums;
145
154
  line-height: 1.4;
146
155
  }
147
156
  .rs-tabs__trigger[data-state='active'] .rs-tabs__badge {
148
- background: color-mix(in srgb, var(--rs-primary) 12%, transparent);
149
- color: var(--rs-primary);
157
+ background: var(--rs-tabs-badge-active-bg);
158
+ color: var(--rs-tabs-text-active);
150
159
  }
151
160
  .rs-tabs__close {
152
161
  display: inline-flex;
153
162
  align-items: center;
154
163
  justify-content: center;
155
- width: 1rem;
156
- height: 1rem;
164
+ width: var(--rs-tabs-close-size);
165
+ height: var(--rs-tabs-close-size);
157
166
  flex: 0 0 auto;
158
167
  margin-inline-start: 0.125rem;
159
168
  padding: 0;
160
169
  border: none;
161
170
  border-radius: var(--rs-radius-xs);
162
171
  background: transparent;
163
- color: var(--rs-muted);
172
+ color: var(--rs-tabs-text);
164
173
  cursor: pointer;
165
- /* 非激活:默认隐藏,悬停标签时再显示;占位保留避免宽度跳动 */
166
174
  opacity: 0;
167
175
  pointer-events: none;
168
176
  transition:
@@ -192,11 +200,9 @@
192
200
  .rs-tabs__trigger:hover .rs-tabs__close:disabled,
193
201
  .rs-tabs__trigger:focus-within .rs-tabs__close:disabled,
194
202
  .rs-tabs__trigger[data-state='active'] .rs-tabs__close:disabled {
195
- opacity: 0.38;
203
+ opacity: var(--rs-tabs-disabled-opacity);
196
204
  pointer-events: none;
197
205
  }
198
-
199
- /* 触摸设备无悬停:可关闭标签始终显示关闭按钮 */
200
206
  @media (hover: none) {
201
207
  .rs-tabs__close {
202
208
  opacity: 0.85;
@@ -207,7 +213,7 @@
207
213
  }
208
214
  .rs-tabs__close:disabled,
209
215
  .rs-tabs__trigger[data-state='active'] .rs-tabs__close:disabled {
210
- opacity: 0.38;
216
+ opacity: var(--rs-tabs-disabled-opacity);
211
217
  pointer-events: none;
212
218
  }
213
219
  }
@@ -222,7 +228,7 @@
222
228
  border: none;
223
229
  border-radius: var(--rs-radius-xs);
224
230
  background: transparent;
225
- color: var(--rs-muted);
231
+ color: var(--rs-tabs-text);
226
232
  cursor: pointer;
227
233
  transition:
228
234
  color var(--rs-transition-fast),
@@ -235,7 +241,7 @@
235
241
  }
236
242
  .rs-tabs__add:hover,
237
243
  .rs-tabs__scroll-btn:hover {
238
- color: var(--rs-primary);
244
+ color: var(--rs-tabs-text-active);
239
245
  background: var(--rs-surface-hover);
240
246
  }
241
247
  .rs-tabs__extra {
@@ -246,7 +252,7 @@
246
252
  gap: var(--rs-space-xs);
247
253
  margin-inline-start: auto;
248
254
  padding-inline: var(--rs-space-sm);
249
- border-inline-start: 1px solid var(--rs-border-subtle);
255
+ border-inline-start: 1px solid var(--rs-tabs-border-subtle);
250
256
  }
251
257
  .rs-tabs__overflow-wrap {
252
258
  display: flex;
@@ -255,7 +261,7 @@
255
261
  align-self: stretch;
256
262
  margin-inline-start: var(--rs-space-xs);
257
263
  padding-inline-start: var(--rs-space-sm);
258
- border-inline-start: 1px solid var(--rs-border-subtle);
264
+ border-inline-start: 1px solid var(--rs-tabs-border-subtle);
259
265
  }
260
266
  .rs-tabs__more {
261
267
  display: inline-flex;
@@ -266,7 +272,7 @@
266
272
  border: none;
267
273
  border-radius: 0;
268
274
  background: transparent;
269
- color: var(--rs-muted);
275
+ color: var(--rs-tabs-text);
270
276
  font-size: var(--rs-font-size-sm);
271
277
  line-height: var(--rs-line-height-tight);
272
278
  white-space: nowrap;
@@ -277,7 +283,7 @@
277
283
  background var(--rs-transition-fast);
278
284
  }
279
285
  .rs-tabs__more:hover {
280
- color: var(--rs-text);
286
+ color: var(--rs-tabs-text-hover);
281
287
  }
282
288
  .rs-tabs__more:focus-visible {
283
289
  outline: none;
@@ -288,7 +294,7 @@
288
294
  overflow: hidden;
289
295
  text-overflow: ellipsis;
290
296
  white-space: nowrap;
291
- max-width: 7rem;
297
+ max-width: var(--rs-tabs-more-label-max);
292
298
  }
293
299
  .rs-tabs__more-icon {
294
300
  flex-shrink: 0;
@@ -296,57 +302,26 @@
296
302
  opacity: 0.72;
297
303
  }
298
304
  .rs-tabs__more--active {
299
- color: var(--rs-primary);
305
+ color: var(--rs-tabs-text-active);
300
306
  font-weight: var(--rs-font-weight-medium);
301
307
  }
302
- .rs-tabs__more-menu {
303
- z-index: var(--rs-z-dropdown);
304
- min-width: 8rem;
305
- max-width: 14rem;
306
- padding: var(--rs-space-xs);
307
- border-radius: var(--rs-radius);
308
- border: 1px solid var(--rs-border);
309
- background: var(--rs-surface-elevated);
310
- box-shadow: var(--rs-shadow);
311
- outline: none;
312
- }
313
- .rs-tabs__more-item {
314
- display: flex;
315
- align-items: center;
316
- padding: var(--rs-space-sm) var(--rs-space-md);
317
- border-radius: var(--rs-radius-sm);
318
- font-size: var(--rs-font-size-sm);
319
- line-height: var(--rs-line-height-tight);
320
- color: var(--rs-text);
321
- cursor: pointer;
322
- outline: none;
323
- }
324
- .rs-tabs__more-item[data-highlighted] {
325
- background: var(--rs-item-hover);
326
- color: var(--rs-text);
327
- }
328
- .rs-tabs__more-item--active {
329
- color: var(--rs-primary);
330
- font-weight: var(--rs-font-weight-medium);
331
- background: color-mix(in srgb, var(--rs-primary) 12%, transparent);
332
- }
333
308
 
334
309
  /* —— line —— */
335
310
  .rs-tabs--line .rs-tabs__body {
336
- border: 1px solid var(--rs-border);
311
+ border: 1px solid var(--rs-tabs-border);
337
312
  border-radius: var(--rs-radius);
338
- background: var(--rs-surface);
313
+ background: var(--rs-tabs-surface);
339
314
  overflow: hidden;
340
315
  }
341
316
  .rs-tabs--line .rs-tabs__list {
342
317
  gap: 0;
343
318
  padding: 0 var(--rs-space-sm);
344
- border-bottom: 1px solid var(--rs-border-subtle);
319
+ border-bottom: 1px solid var(--rs-tabs-border-subtle);
345
320
  }
346
321
  .rs-tabs--dropdown-overflow.rs-tabs--line .rs-tabs__nav {
347
322
  align-items: stretch;
348
323
  padding-inline: 0;
349
- border-bottom: 1px solid var(--rs-border-subtle);
324
+ border-bottom: 1px solid var(--rs-tabs-border-subtle);
350
325
  }
351
326
  .rs-tabs--dropdown-overflow.rs-tabs--line .rs-tabs__list {
352
327
  flex: 1;
@@ -365,15 +340,19 @@
365
340
  position: absolute;
366
341
  inset-inline: var(--rs-space-sm);
367
342
  bottom: 0;
368
- height: 2px;
343
+ height: var(--rs-tabs-ink-size);
369
344
  border-radius: 2px 2px 0 0;
370
- background: var(--rs-primary);
345
+ background: var(--rs-tabs-ink);
371
346
  }
372
347
  .rs-tabs--line.rs-tabs--sm .rs-tabs__more {
373
348
  min-height: var(--rs-control-height-sm);
374
349
  padding: 0 var(--rs-space-sm);
375
350
  font-size: var(--rs-font-size-xs);
376
351
  }
352
+ .rs-tabs--line.rs-tabs--lg .rs-tabs__more {
353
+ min-height: var(--rs-control-height-lg);
354
+ padding: 0 var(--rs-space-lg);
355
+ }
377
356
  .rs-tabs--line .rs-tabs__trigger {
378
357
  position: relative;
379
358
  margin-bottom: -1px;
@@ -388,6 +367,11 @@
388
367
  min-height: var(--rs-control-height-md);
389
368
  padding: 0 var(--rs-space-md);
390
369
  }
370
+ .rs-tabs--line.rs-tabs--lg .rs-tabs__trigger {
371
+ min-height: var(--rs-control-height-lg);
372
+ padding: 0 var(--rs-space-lg);
373
+ font-size: var(--rs-font-size-base);
374
+ }
391
375
  .rs-tabs--line .rs-tabs__add,
392
376
  .rs-tabs--line .rs-tabs__scroll-btn,
393
377
  .rs-tabs--line .rs-tabs__extra {
@@ -398,11 +382,16 @@
398
382
  .rs-tabs--line.rs-tabs--sm .rs-tabs__extra {
399
383
  min-height: var(--rs-control-height-sm);
400
384
  }
385
+ .rs-tabs--line.rs-tabs--lg .rs-tabs__add,
386
+ .rs-tabs--line.rs-tabs--lg .rs-tabs__scroll-btn,
387
+ .rs-tabs--line.rs-tabs--lg .rs-tabs__extra {
388
+ min-height: var(--rs-control-height-lg);
389
+ }
401
390
  .rs-tabs--line .rs-tabs__trigger:hover:not(:disabled):not([data-state='active']) {
402
- color: var(--rs-text);
391
+ color: var(--rs-tabs-text-hover);
403
392
  }
404
393
  .rs-tabs--line .rs-tabs__trigger[data-state='active'] {
405
- color: var(--rs-primary);
394
+ color: var(--rs-tabs-text-active);
406
395
  font-weight: var(--rs-font-weight-medium);
407
396
  }
408
397
  .rs-tabs--line .rs-tabs__trigger[data-state='active']::after {
@@ -410,9 +399,9 @@
410
399
  position: absolute;
411
400
  inset-inline: var(--rs-space-sm);
412
401
  bottom: 0;
413
- height: 2px;
402
+ height: var(--rs-tabs-ink-size);
414
403
  border-radius: 2px 2px 0 0;
415
- background: var(--rs-primary);
404
+ background: var(--rs-tabs-ink);
416
405
  }
417
406
  .rs-tabs--line .rs-tabs__panel-inner {
418
407
  padding: var(--rs-space-md) var(--rs-space-lg);
@@ -424,9 +413,13 @@
424
413
  padding: var(--rs-space-sm) var(--rs-space-md);
425
414
  font-size: var(--rs-font-size-xs);
426
415
  }
416
+ .rs-tabs--line.rs-tabs--lg .rs-tabs__panel-inner {
417
+ padding: var(--rs-space-lg) var(--rs-space-xl);
418
+ font-size: var(--rs-font-size-base);
419
+ }
427
420
  .rs-tabs--line.rs-tabs--panelless .rs-tabs__nav {
428
- border-bottom: 1px solid var(--rs-border);
429
- background: var(--rs-surface);
421
+ border-bottom: 1px solid var(--rs-tabs-border);
422
+ background: var(--rs-tabs-surface);
430
423
  }
431
424
  .rs-tabs--line.rs-tabs--panelless .rs-tabs__list {
432
425
  border-bottom: none;
@@ -437,9 +430,9 @@
437
430
 
438
431
  /* —— segmented —— */
439
432
  .rs-tabs--segmented .rs-tabs__body {
440
- border: 1px solid var(--rs-border);
433
+ border: 1px solid var(--rs-tabs-border);
441
434
  border-radius: var(--rs-radius);
442
- background: var(--rs-surface);
435
+ background: var(--rs-tabs-surface);
443
436
  overflow: hidden;
444
437
  }
445
438
  .rs-tabs--segmented .rs-tabs__list {
@@ -449,7 +442,7 @@
449
442
  margin: var(--rs-space-sm);
450
443
  padding: 0.25rem;
451
444
  border-radius: var(--rs-radius-sm);
452
- background: var(--rs-surface-hover);
445
+ background: var(--rs-tabs-segmented-track);
453
446
  }
454
447
  .rs-tabs--segmented .rs-tabs__trigger {
455
448
  border-radius: var(--rs-radius-xs);
@@ -463,13 +456,18 @@
463
456
  min-height: var(--rs-control-height-md);
464
457
  padding: 0 0.75rem;
465
458
  }
459
+ .rs-tabs--segmented.rs-tabs--lg .rs-tabs__trigger {
460
+ min-height: var(--rs-control-height-lg);
461
+ padding: 0 var(--rs-space-lg);
462
+ font-size: var(--rs-font-size-base);
463
+ }
466
464
  .rs-tabs--segmented .rs-tabs__trigger:hover:not(:disabled):not([data-state='active']) {
467
- color: var(--rs-text);
468
- background: var(--rs-surface);
465
+ color: var(--rs-tabs-text-hover);
466
+ background: var(--rs-tabs-surface);
469
467
  }
470
468
  .rs-tabs--segmented .rs-tabs__trigger[data-state='active'] {
471
- color: var(--rs-primary);
472
- background: var(--rs-surface);
469
+ color: var(--rs-tabs-text-active);
470
+ background: var(--rs-tabs-surface);
473
471
  font-weight: var(--rs-font-weight-medium);
474
472
  box-shadow: 0 1px 2px color-mix(in srgb, var(--rs-text) 8%, transparent);
475
473
  }
@@ -481,14 +479,14 @@
481
479
  }
482
480
  .rs-tabs--segmented.rs-tabs--panelless .rs-tabs__list {
483
481
  margin: 0;
484
- background: var(--rs-surface-hover);
482
+ background: var(--rs-tabs-segmented-track);
485
483
  }
486
484
 
487
- /* —— card(Ant editable-card) —— */
485
+ /* —— card —— */
488
486
  .rs-tabs--card .rs-tabs__body {
489
- border: 1px solid var(--rs-border);
487
+ border: 1px solid var(--rs-tabs-border);
490
488
  border-radius: var(--rs-radius);
491
- background: var(--rs-surface);
489
+ background: var(--rs-tabs-surface);
492
490
  overflow: hidden;
493
491
  }
494
492
  .rs-tabs--card .rs-tabs__list {
@@ -511,22 +509,27 @@
511
509
  min-height: var(--rs-control-height-md);
512
510
  padding: 0 var(--rs-space-md);
513
511
  }
512
+ .rs-tabs--card.rs-tabs--lg .rs-tabs__trigger {
513
+ min-height: var(--rs-control-height-lg);
514
+ padding: 0 var(--rs-space-lg);
515
+ font-size: var(--rs-font-size-base);
516
+ }
514
517
  .rs-tabs--card .rs-tabs__trigger:hover:not(:disabled):not([data-state='active']) {
515
- color: var(--rs-text);
516
- background: var(--rs-surface);
517
- border-color: var(--rs-border-subtle);
518
+ color: var(--rs-tabs-text-hover);
519
+ background: var(--rs-tabs-surface);
520
+ border-color: var(--rs-tabs-border-subtle);
518
521
  }
519
522
  .rs-tabs--card .rs-tabs__trigger[data-state='active'] {
520
- color: var(--rs-primary);
523
+ color: var(--rs-tabs-text-active);
521
524
  font-weight: var(--rs-font-weight-medium);
522
- background: var(--rs-surface);
523
- border-color: var(--rs-border);
525
+ background: var(--rs-tabs-surface);
526
+ border-color: var(--rs-tabs-border);
524
527
  margin-bottom: -1px;
525
528
  z-index: 1;
526
529
  }
527
530
  .rs-tabs--card .rs-tabs__panel-inner {
528
531
  padding: var(--rs-space-md) var(--rs-space-lg);
529
- border-top: 1px solid var(--rs-border-subtle);
532
+ border-top: 1px solid var(--rs-tabs-border-subtle);
530
533
  color: var(--rs-text);
531
534
  font-size: var(--rs-font-size-sm);
532
535
  line-height: var(--rs-line-height-normal);
@@ -539,8 +542,6 @@
539
542
  margin-bottom: 0;
540
543
  border-inline-start: none;
541
544
  }
542
-
543
- /* —— contentGap:标题与内容间距(borderless 默认 0,业务可设 sm/md/lg/xl) —— */
544
545
  .rs-tabs--content-gap-sm {
545
546
  --rs-tabs-content-gap: var(--rs-space-sm);
546
547
  }
@@ -553,8 +554,6 @@
553
554
  .rs-tabs--content-gap-xl {
554
555
  --rs-tabs-content-gap: var(--rs-space-xl);
555
556
  }
556
-
557
- /* —— borderless:无外框 / 无导航底色(业务用具名插槽,无需 :deep) —— */
558
557
  .rs-tabs--borderless.rs-tabs--line .rs-tabs__body,
559
558
  .rs-tabs--borderless.rs-tabs--segmented .rs-tabs__body,
560
559
  .rs-tabs--borderless.rs-tabs--card .rs-tabs__body {
@@ -588,13 +587,11 @@
588
587
  box-shadow: none;
589
588
  }
590
589
  .rs-tabs--borderless .rs-tabs__panel-inner {
591
- padding-top: var(--rs-tabs-content-gap);
590
+ padding-block-start: var(--rs-tabs-content-gap);
592
591
  }
593
592
  .rs-tabs--borderless.rs-tabs--card .rs-tabs__panel-inner {
594
593
  border-top: none;
595
594
  }
596
-
597
- /* —— justify:标签栏对齐(stretch/evenly 铺满,免业务 :deep) —— */
598
595
  .rs-tabs--justify-center .rs-tabs__list {
599
596
  justify-content: center;
600
597
  }
@@ -614,3 +611,130 @@
614
611
  .rs-tabs--justify-stretch.rs-tabs--line .rs-tabs__trigger[data-state='active']::after {
615
612
  inset-inline: 18%;
616
613
  }
614
+
615
+ /* —— position:底 / 左 / 右 —— */
616
+ .rs-tabs--position-bottom .rs-tabs__body,
617
+ .rs-tabs--position-bottom .rs-tabs__shell {
618
+ flex-direction: column-reverse;
619
+ }
620
+ .rs-tabs--position-left .rs-tabs__body,
621
+ .rs-tabs--position-left .rs-tabs__shell,
622
+ .rs-tabs--position-right .rs-tabs__body,
623
+ .rs-tabs--position-right .rs-tabs__shell {
624
+ flex-direction: row;
625
+ align-items: stretch;
626
+ }
627
+ .rs-tabs--position-right .rs-tabs__body,
628
+ .rs-tabs--position-right .rs-tabs__shell {
629
+ flex-direction: row-reverse;
630
+ }
631
+ .rs-tabs--vertical .rs-tabs__nav {
632
+ flex-direction: column;
633
+ width: auto;
634
+ min-width: var(--rs-tabs-rail-min);
635
+ max-width: var(--rs-tabs-rail-max);
636
+ }
637
+ .rs-tabs--vertical .rs-tabs__nav-viewport {
638
+ min-height: 0;
639
+ }
640
+ .rs-tabs--vertical.rs-tabs--scrollable .rs-tabs__nav-viewport {
641
+ overflow-x: hidden;
642
+ overflow-y: auto;
643
+ }
644
+ .rs-tabs--vertical .rs-tabs__list {
645
+ flex-direction: column;
646
+ flex-wrap: nowrap;
647
+ width: 100%;
648
+ }
649
+ .rs-tabs--vertical .rs-tabs__extra {
650
+ margin-inline-start: 0;
651
+ margin-block-start: auto;
652
+ border-inline-start: none;
653
+ border-block-start: 1px solid var(--rs-tabs-border-subtle);
654
+ }
655
+ .rs-tabs--vertical .rs-tabs__overflow-wrap {
656
+ margin-inline-start: 0;
657
+ padding-inline-start: 0;
658
+ border-inline-start: none;
659
+ border-block-start: 1px solid var(--rs-tabs-border-subtle);
660
+ }
661
+ .rs-tabs--position-left.rs-tabs--line .rs-tabs__list,
662
+ .rs-tabs--position-left.rs-tabs--line.rs-tabs--panelless .rs-tabs__nav,
663
+ .rs-tabs--position-left.rs-tabs--dropdown-overflow.rs-tabs--line .rs-tabs__nav {
664
+ border-bottom: none;
665
+ border-inline-end: 1px solid var(--rs-tabs-border-subtle);
666
+ }
667
+ .rs-tabs--position-right.rs-tabs--line .rs-tabs__list,
668
+ .rs-tabs--position-right.rs-tabs--line.rs-tabs--panelless .rs-tabs__nav,
669
+ .rs-tabs--position-right.rs-tabs--dropdown-overflow.rs-tabs--line .rs-tabs__nav {
670
+ border-bottom: none;
671
+ border-inline-start: 1px solid var(--rs-tabs-border-subtle);
672
+ }
673
+ .rs-tabs--position-bottom.rs-tabs--line .rs-tabs__list,
674
+ .rs-tabs--position-bottom.rs-tabs--line.rs-tabs--panelless .rs-tabs__nav {
675
+ border-bottom: none;
676
+ border-top: 1px solid var(--rs-tabs-border-subtle);
677
+ }
678
+ .rs-tabs--vertical.rs-tabs--line .rs-tabs__trigger {
679
+ margin-bottom: 0;
680
+ width: 100%;
681
+ }
682
+ .rs-tabs--position-left.rs-tabs--line .rs-tabs__trigger[data-state='active']::after {
683
+ inset-inline: auto;
684
+ inset-inline-end: 0;
685
+ top: 18%;
686
+ bottom: 18%;
687
+ width: var(--rs-tabs-ink-size);
688
+ height: auto;
689
+ border-radius: 2px 0 0 2px;
690
+ }
691
+ .rs-tabs--position-right.rs-tabs--line .rs-tabs__trigger[data-state='active']::after {
692
+ inset-inline: auto;
693
+ inset-inline-start: 0;
694
+ top: 18%;
695
+ bottom: 18%;
696
+ width: var(--rs-tabs-ink-size);
697
+ height: auto;
698
+ border-radius: 0 2px 2px 0;
699
+ }
700
+ .rs-tabs--position-bottom.rs-tabs--line .rs-tabs__trigger[data-state='active']::after {
701
+ bottom: auto;
702
+ top: 0;
703
+ border-radius: 0 0 2px 2px;
704
+ }
705
+ .rs-tabs--vertical.rs-tabs--card .rs-tabs__list {
706
+ padding: var(--rs-space-sm) 0 var(--rs-space-sm) var(--rs-space-sm);
707
+ }
708
+ .rs-tabs--position-right.rs-tabs--card .rs-tabs__list {
709
+ padding: var(--rs-space-sm) var(--rs-space-sm) var(--rs-space-sm) 0;
710
+ }
711
+ .rs-tabs--vertical.rs-tabs--card .rs-tabs__trigger {
712
+ border-bottom: 1px solid transparent;
713
+ border-radius: var(--rs-radius-sm) 0 0 var(--rs-radius-sm);
714
+ margin-inline-end: -1px;
715
+ }
716
+ .rs-tabs--position-right.rs-tabs--card .rs-tabs__trigger {
717
+ border-radius: 0 var(--rs-radius-sm) var(--rs-radius-sm) 0;
718
+ margin-inline-end: 0;
719
+ margin-inline-start: -1px;
720
+ }
721
+ .rs-tabs--vertical.rs-tabs--card .rs-tabs__panel-inner {
722
+ border-top: none;
723
+ border-inline-start: 1px solid var(--rs-tabs-border-subtle);
724
+ }
725
+ .rs-tabs--position-right.rs-tabs--card .rs-tabs__panel-inner {
726
+ border-inline-start: none;
727
+ border-inline-end: 1px solid var(--rs-tabs-border-subtle);
728
+ }
729
+ .rs-tabs--vertical .rs-tabs__scroll-btn .rs-icon {
730
+ transform: rotate(90deg);
731
+ }
732
+ @media (prefers-reduced-motion: reduce) {
733
+ .rs-tabs__trigger,
734
+ .rs-tabs__close,
735
+ .rs-tabs__add,
736
+ .rs-tabs__scroll-btn,
737
+ .rs-tabs__more {
738
+ transition: none;
739
+ }
740
+ }
@@ -1,4 +1,4 @@
1
- import { type RsTabItem, type RsTabsCloseAction, type RsTabsContentGap, type RsTabsJustify, type RsTabsOverflow, type RsTabsSize, type RsTabsVariant } from './tabs-utils';
1
+ import { type RsTabItem, type RsTabsActivation, type RsTabsCloseAction, type RsTabsContentGap, type RsTabsExpose, type RsTabsJustify, type RsTabsOverflow, type RsTabsPosition, type RsTabsSize, type RsTabsVariant } from './tabs-utils';
2
2
  type __VLS_Props = {
3
3
  items: RsTabItem[];
4
4
  size?: RsTabsSize;
@@ -22,14 +22,22 @@ type __VLS_Props = {
22
22
  * 标签栏对齐方式;stretch/evenly 用于等分铺满,避免业务 :deep 改 list。
23
23
  */
24
24
  justify?: RsTabsJustify;
25
+ /** 标签栏位置。竖排时 overflow=scroll 改为纵向滚动。 */
26
+ tabPosition?: RsTabsPosition;
27
+ /**
28
+ * 键盘激活(APG)。automatic 方向键即切换;manual 只移焦点,Enter / Space 才切换。
29
+ */
30
+ activation?: RsTabsActivation;
25
31
  closable?: boolean;
26
32
  addable?: boolean;
27
33
  maxCount?: number;
28
34
  /** 双击标签重命名 */
29
35
  renamable?: boolean;
30
- /** 按住标签拖动排序(整项可拖,不展示手柄) */
36
+ /** 按住标签拖动排序(整项可拖) */
31
37
  draggable?: boolean;
32
- /** 标签过多:scroll 横向滚动 · dropdown 折叠到「更多」 */
38
+ /** 可拖时是否画左侧六点 grip。false 仍可整项拖,只是不显示图标。 */
39
+ showDragHandle?: boolean;
40
+ /** 标签过多:scroll 横向/纵向滚动 · dropdown 折叠到「更多」 */
33
41
  overflow?: RsTabsOverflow | false;
34
42
  /**
35
43
  * 顶栏导航右键菜单:关闭 / 关闭其他 / 关闭左侧 / 关闭右侧 / 关闭全部
@@ -41,18 +49,34 @@ type __VLS_Props = {
41
49
  * 返回 false 时阻止切换;支持异步。
42
50
  */
43
51
  beforeLeave?: (to: string, from: string) => boolean | void | Promise<boolean | void>;
52
+ /** 首次激活才挂载面板;已访问过的会保留。destroyInactive 优先。 */
53
+ lazy?: boolean;
54
+ /**
55
+ * 离开即卸载面板(默认 true,与原先 Reka TabsContent 一致)。
56
+ * 需要保留表单状态时传 false。
57
+ */
58
+ destroyInactive?: boolean;
59
+ id?: string;
60
+ ariaLabel?: string;
44
61
  };
45
62
  type __VLS_ModelProps = {
46
63
  modelValue: string;
47
64
  };
48
65
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
49
- declare var __VLS_109: {}, __VLS_118: string, __VLS_119: {};
66
+ declare var __VLS_19: {
67
+ item: RsTabItem;
68
+ active: boolean;
69
+ disabled: boolean;
70
+ }, __VLS_60: {}, __VLS_63: string, __VLS_64: {};
50
71
  type __VLS_Slots = {} & {
51
- [K in NonNullable<typeof __VLS_118>]?: (props: typeof __VLS_119) => any;
72
+ [K in NonNullable<typeof __VLS_63>]?: (props: typeof __VLS_64) => any;
73
+ } & {
74
+ tab?: (props: typeof __VLS_19) => any;
52
75
  } & {
53
- extra?: (props: typeof __VLS_109) => any;
76
+ extra?: (props: typeof __VLS_60) => any;
54
77
  };
55
- declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
78
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsTabsExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
79
+ change: (value: string) => any;
56
80
  close: (value: string) => any;
57
81
  add: () => any;
58
82
  "update:modelValue": (value: string) => any;
@@ -61,6 +85,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
61
85
  rename: (value: string, label: string) => any;
62
86
  reorder: (dragValue: string, dropValue: string) => any;
63
87
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
88
+ onChange?: ((value: string) => any) | undefined;
64
89
  onClose?: ((value: string) => any) | undefined;
65
90
  onAdd?: (() => any) | undefined;
66
91
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
@@ -70,17 +95,21 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
70
95
  onReorder?: ((dragValue: string, dropValue: string) => any) | undefined;
71
96
  }>, {
72
97
  variant: RsTabsVariant;
73
- size: RsTabsSize;
74
98
  overflow: RsTabsOverflow | false;
75
99
  closable: boolean;
76
100
  borderless: boolean;
101
+ lazy: boolean;
77
102
  draggable: boolean;
103
+ showDragHandle: boolean;
78
104
  panelless: boolean;
79
105
  contentGap: RsTabsContentGap;
80
106
  justify: RsTabsJustify;
107
+ tabPosition: RsTabsPosition;
108
+ activation: RsTabsActivation;
81
109
  addable: boolean;
82
110
  renamable: boolean;
83
111
  contextMenu: boolean;
112
+ destroyInactive: boolean;
84
113
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
85
114
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
86
115
  declare const _default: typeof __VLS_export;