niuma-ui 2.0.3 → 2.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/dist/components/_shared/index.d.ts +2 -2
  3. package/dist/components/_shared/src/overlay-utils.d.ts +44 -1
  4. package/dist/components/_shared/src/overlay-utils.js +87 -2
  5. package/dist/components/_shared/src/reka.d.ts +1 -1
  6. package/dist/components/_shared/src/reka.js +2 -2
  7. package/dist/components/alert/index.d.ts +1 -0
  8. package/dist/components/alert/src/RsAlert.css +120 -65
  9. package/dist/components/alert/src/RsAlert.d.ts +24 -5
  10. package/dist/components/alert/src/RsAlert.impl.js +108 -36
  11. package/dist/components/alert/src/RsAlert.js +1 -1
  12. package/dist/components/alert/src/alert-utils.d.ts +37 -0
  13. package/dist/components/alert/src/alert-utils.js +71 -0
  14. package/dist/components/anchor/index.d.ts +1 -1
  15. package/dist/components/anchor/src/RsAnchor.css +63 -32
  16. package/dist/components/anchor/src/RsAnchor.d.ts +29 -2
  17. package/dist/components/anchor/src/RsAnchor.impl.js +199 -81
  18. package/dist/components/anchor/src/RsAnchor.js +1 -1
  19. package/dist/components/anchor/src/anchor-utils.d.ts +36 -4
  20. package/dist/components/anchor/src/anchor-utils.js +81 -19
  21. package/dist/components/auto-complete/index.d.ts +2 -0
  22. package/dist/components/auto-complete/src/RsAutoComplete.css +122 -0
  23. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +47 -7
  24. package/dist/components/auto-complete/src/RsAutoComplete.impl.js +180 -72
  25. package/dist/components/auto-complete/src/RsAutoComplete.js +4 -1
  26. package/dist/components/auto-complete/src/auto-complete-utils.d.ts +7 -0
  27. package/dist/components/auto-complete/src/auto-complete-utils.js +17 -0
  28. package/dist/components/avatar/index.d.ts +1 -0
  29. package/dist/components/avatar/src/RsAvatar.css +36 -19
  30. package/dist/components/avatar/src/RsAvatar.d.ts +9 -3
  31. package/dist/components/avatar/src/RsAvatar.impl.js +57 -33
  32. package/dist/components/avatar/src/RsAvatar.js +2 -1
  33. package/dist/components/avatar/src/avatar-utils.d.ts +16 -7
  34. package/dist/components/avatar/src/avatar-utils.js +41 -3
  35. package/dist/components/breadcrumb/index.d.ts +1 -1
  36. package/dist/components/breadcrumb/src/RsBreadcrumb.css +50 -17
  37. package/dist/components/breadcrumb/src/RsBreadcrumb.d.ts +45 -6
  38. package/dist/components/breadcrumb/src/RsBreadcrumb.impl.js +111 -12
  39. package/dist/components/breadcrumb/src/RsBreadcrumb.js +2 -1
  40. package/dist/components/breadcrumb/src/breadcrumb-utils.d.ts +37 -5
  41. package/dist/components/breadcrumb/src/breadcrumb-utils.js +70 -9
  42. package/dist/components/button/src/RsButton.impl.js +1 -1
  43. package/dist/components/calendar-grid/index.d.ts +2 -0
  44. package/dist/components/calendar-grid/src/RsCalendarGrid.css +105 -45
  45. package/dist/components/calendar-grid/src/RsCalendarGrid.d.ts +62 -2
  46. package/dist/components/calendar-grid/src/RsCalendarGrid.impl.js +265 -94
  47. package/dist/components/calendar-grid/src/RsCalendarGrid.js +1 -1
  48. package/dist/components/calendar-grid/src/calendar-grid-utils.d.ts +72 -0
  49. package/dist/components/calendar-grid/src/calendar-grid-utils.js +122 -0
  50. package/dist/components/card/index.d.ts +1 -1
  51. package/dist/components/card/src/RsCard.css +108 -98
  52. package/dist/components/card/src/RsCard.d.ts +4 -13
  53. package/dist/components/card/src/RsCard.impl.js +29 -25
  54. package/dist/components/card/src/RsCard.js +2 -1
  55. package/dist/components/card/src/card-utils.d.ts +25 -0
  56. package/dist/components/card/src/card-utils.js +10 -0
  57. package/dist/components/cascader/index.d.ts +1 -0
  58. package/dist/components/cascader/src/RsCascader.css +175 -30
  59. package/dist/components/cascader/src/RsCascader.d.ts +15 -3
  60. package/dist/components/cascader/src/RsCascader.impl.js +277 -48
  61. package/dist/components/cascader/src/RsCascader.js +1 -1
  62. package/dist/components/cascader/src/cascader-utils.d.ts +2 -0
  63. package/dist/components/cascader/src/cascader-utils.js +8 -1
  64. package/dist/components/checkbox/index.d.ts +1 -0
  65. package/dist/components/checkbox/src/RsCheckbox.css +46 -23
  66. package/dist/components/checkbox/src/RsCheckbox.d.ts +11 -1
  67. package/dist/components/checkbox/src/RsCheckbox.impl.js +37 -9
  68. package/dist/components/checkbox/src/RsCheckbox.js +2 -1
  69. package/dist/components/checkbox/src/checkbox-utils.d.ts +4 -0
  70. package/dist/components/checkbox/src/checkbox-utils.js +12 -0
  71. package/dist/components/code-block/index.d.ts +1 -0
  72. package/dist/components/code-block/src/RsCodeBlock.css +93 -52
  73. package/dist/components/code-block/src/RsCodeBlock.d.ts +36 -9
  74. package/dist/components/code-block/src/RsCodeBlock.impl.js +203 -84
  75. package/dist/components/code-block/src/RsCodeBlock.js +1 -1
  76. package/dist/components/code-block/src/code-block-highlight.d.ts +4 -0
  77. package/dist/components/code-block/src/code-block-highlight.js +34 -0
  78. package/dist/components/code-block/src/code-block-utils.d.ts +23 -0
  79. package/dist/components/code-block/src/code-block-utils.js +71 -0
  80. package/dist/components/code-editor/index.d.ts +1 -1
  81. package/dist/components/code-editor/src/RsCodeEditor.css +118 -92
  82. package/dist/components/code-editor/src/RsCodeEditor.d.ts +14 -3
  83. package/dist/components/code-editor/src/RsCodeEditor.impl.js +261 -94
  84. package/dist/components/code-editor/src/RsCodeEditor.js +1 -1
  85. package/dist/components/code-editor/src/code-editor-utils.d.ts +15 -0
  86. package/dist/components/code-editor/src/code-editor-utils.js +36 -1
  87. package/dist/components/code-editor/src/code-mirror-completion.d.ts +1 -1
  88. package/dist/components/code-editor/src/code-mirror-completion.js +8 -5
  89. package/dist/components/code-editor/src/code-mirror-diagnostics.d.ts +2 -3
  90. package/dist/components/code-editor/src/code-mirror-diagnostics.js +3 -4
  91. package/dist/components/code-editor/src/code-mirror-ghost.d.ts +1 -1
  92. package/dist/components/code-editor/src/code-mirror-ghost.js +12 -3
  93. package/dist/components/code-editor/src/code-mirror-inline-edit.js +8 -3
  94. package/dist/components/code-editor/src/code-mirror-intel.d.ts +2 -2
  95. package/dist/components/code-editor/src/code-mirror-intel.js +50 -39
  96. package/dist/components/code-editor/src/code-mirror-lang.js +4 -0
  97. package/dist/components/code-editor/src/code-mirror-session.d.ts +13 -0
  98. package/dist/components/code-editor/src/code-mirror-session.js +30 -0
  99. package/dist/components/container/index.d.ts +1 -1
  100. package/dist/components/container/src/RsContainer.css +11 -11
  101. package/dist/components/container/src/RsContainer.d.ts +2 -12
  102. package/dist/components/container/src/RsContainer.impl.js +10 -57
  103. package/dist/components/container/src/RsContainer.js +1 -1
  104. package/dist/components/container/src/container-utils.d.ts +23 -0
  105. package/dist/components/container/src/container-utils.js +51 -0
  106. package/dist/components/context-menu/index.d.ts +1 -1
  107. package/dist/components/context-menu/src/RsContextMenu.css +115 -89
  108. package/dist/components/context-menu/src/RsContextMenu.d.ts +32 -11
  109. package/dist/components/context-menu/src/RsContextMenu.impl.js +795 -48
  110. package/dist/components/context-menu/src/RsContextMenuItems.d.ts +25 -1
  111. package/dist/components/context-menu/src/RsContextMenuItems.impl.js +110 -61
  112. package/dist/components/context-menu/src/context-menu-utils.d.ts +89 -3
  113. package/dist/components/context-menu/src/context-menu-utils.js +168 -3
  114. package/dist/components/date-picker/index.d.ts +4 -2
  115. package/dist/components/date-picker/src/RsDatePicker.css +42 -22
  116. package/dist/components/date-picker/src/RsDatePicker.d.ts +44 -20
  117. package/dist/components/date-picker/src/RsDatePicker.impl.js +484 -222
  118. package/dist/components/date-picker/src/RsDatePicker.js +1 -3
  119. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +33 -6
  120. package/dist/components/date-picker/src/RsDateTimePicker.impl.js +47 -6
  121. package/dist/components/date-picker/src/date-picker-utils.d.ts +19 -0
  122. package/dist/components/date-picker/src/date-picker-utils.js +33 -10
  123. package/dist/components/descriptions/index.d.ts +1 -1
  124. package/dist/components/descriptions/src/RsDescriptions.css +38 -11
  125. package/dist/components/descriptions/src/RsDescriptions.d.ts +20 -4
  126. package/dist/components/descriptions/src/RsDescriptions.impl.js +89 -19
  127. package/dist/components/descriptions/src/RsDescriptionsItem.impl.js +13 -6
  128. package/dist/components/descriptions/src/descriptions-utils.d.ts +19 -0
  129. package/dist/components/descriptions/src/descriptions-utils.js +39 -1
  130. package/dist/components/dialog/index.d.ts +1 -1
  131. package/dist/components/dialog/src/RsConfirmDialog.css +47 -21
  132. package/dist/components/dialog/src/RsConfirmDialog.d.ts +19 -7
  133. package/dist/components/dialog/src/RsConfirmDialog.impl.js +349 -119
  134. package/dist/components/dialog/src/RsConfirmDialog.js +2 -1
  135. package/dist/components/dialog/src/RsDialog.css +102 -109
  136. package/dist/components/dialog/src/RsDialog.d.ts +34 -24
  137. package/dist/components/dialog/src/RsDialog.impl.js +410 -177
  138. package/dist/components/dialog/src/RsDialog.js +2 -1
  139. package/dist/components/dialog/src/dialog-utils.d.ts +40 -1
  140. package/dist/components/dialog/src/dialog-utils.js +152 -1
  141. package/dist/components/dialog/src/dialog-window.js +29 -8
  142. package/dist/components/drawer/index.d.ts +1 -1
  143. package/dist/components/drawer/src/RsDrawer.css +61 -29
  144. package/dist/components/drawer/src/RsDrawer.d.ts +37 -21
  145. package/dist/components/drawer/src/RsDrawer.impl.js +441 -223
  146. package/dist/components/drawer/src/drawer-utils.d.ts +35 -0
  147. package/dist/components/drawer/src/drawer-utils.js +131 -1
  148. package/dist/components/dropdown/index.d.ts +1 -1
  149. package/dist/components/dropdown/src/RsDropdown.css +140 -61
  150. package/dist/components/dropdown/src/RsDropdown.d.ts +39 -6
  151. package/dist/components/dropdown/src/RsDropdown.impl.js +693 -63
  152. package/dist/components/dropdown/src/RsDropdownItemView.impl.js +17 -7
  153. package/dist/components/dropdown/src/RsDropdownItems.d.ts +32 -3
  154. package/dist/components/dropdown/src/RsDropdownItems.impl.js +171 -59
  155. package/dist/components/dropdown/src/dropdown-utils.d.ts +50 -0
  156. package/dist/components/dropdown/src/dropdown-utils.js +103 -3
  157. package/dist/components/dynamic-tags/index.d.ts +1 -1
  158. package/dist/components/dynamic-tags/src/RsDynamicTags.css +115 -38
  159. package/dist/components/dynamic-tags/src/RsDynamicTags.d.ts +58 -17
  160. package/dist/components/dynamic-tags/src/RsDynamicTags.impl.js +269 -106
  161. package/dist/components/dynamic-tags/src/RsDynamicTags.js +1 -1
  162. package/dist/components/dynamic-tags/src/dynamic-tags-utils.d.ts +19 -0
  163. package/dist/components/dynamic-tags/src/dynamic-tags-utils.js +60 -0
  164. package/dist/components/empty/index.d.ts +1 -0
  165. package/dist/components/empty/src/RsEmpty.css +105 -23
  166. package/dist/components/empty/src/RsEmpty.d.ts +27 -4
  167. package/dist/components/empty/src/RsEmpty.impl.js +154 -11
  168. package/dist/components/empty/src/RsEmpty.js +2 -1
  169. package/dist/components/empty/src/empty-utils.d.ts +28 -0
  170. package/dist/components/empty/src/empty-utils.js +55 -0
  171. package/dist/components/fieldset/src/RsFieldset.css +71 -41
  172. package/dist/components/fieldset/src/RsFieldset.d.ts +21 -2
  173. package/dist/components/fieldset/src/RsFieldset.impl.js +93 -26
  174. package/dist/components/fieldset/src/RsFieldset.js +1 -1
  175. package/dist/components/fieldset/src/fieldset-utils.d.ts +4 -0
  176. package/dist/components/fieldset/src/fieldset-utils.js +9 -1
  177. package/dist/components/form/index.d.ts +1 -0
  178. package/dist/components/form/src/RsForm.css +15 -12
  179. package/dist/components/form/src/RsForm.d.ts +21 -23
  180. package/dist/components/form/src/RsForm.impl.js +33 -20
  181. package/dist/components/form/src/RsForm.js +1 -1
  182. package/dist/components/form/src/form-utils.d.ts +7 -0
  183. package/dist/components/form/src/form-utils.js +28 -1
  184. package/dist/components/input/index.d.ts +1 -1
  185. package/dist/components/input/src/RsInput.css +78 -260
  186. package/dist/components/input/src/RsInput.d.ts +5 -3
  187. package/dist/components/input/src/RsInput.impl.js +8 -16
  188. package/dist/components/input/src/RsInput.js +1 -1
  189. package/dist/components/input/src/input-utils.d.ts +11 -0
  190. package/dist/components/input/src/input-utils.js +22 -0
  191. package/dist/components/input-number/index.d.ts +1 -0
  192. package/dist/components/input-number/src/RsInputNumber.css +31 -31
  193. package/dist/components/input-number/src/RsInputNumber.d.ts +16 -14
  194. package/dist/components/input-number/src/RsInputNumber.impl.js +17 -4
  195. package/dist/components/input-number/src/RsInputNumber.js +1 -1
  196. package/dist/components/label/src/RsLabel.css +30 -11
  197. package/dist/components/label/src/RsLabel.d.ts +18 -1
  198. package/dist/components/label/src/RsLabel.impl.js +63 -10
  199. package/dist/components/label/src/RsLabel.js +1 -1
  200. package/dist/components/label/src/label-utils.d.ts +6 -0
  201. package/dist/components/label/src/label-utils.js +16 -0
  202. package/dist/components/link/src/RsLink.d.ts +2 -2
  203. package/dist/components/loading/index.d.ts +1 -0
  204. package/dist/components/loading/src/RsLoading.css +13 -97
  205. package/dist/components/loading/src/RsLoading.d.ts +53 -3
  206. package/dist/components/loading/src/RsLoading.impl.js +216 -33
  207. package/dist/components/loading/src/RsLoading.js +2 -1
  208. package/dist/components/loading/src/loading-status.css +210 -0
  209. package/dist/components/loading/src/loading-status.d.ts +34 -0
  210. package/dist/components/loading/src/loading-status.impl.js +84 -0
  211. package/dist/components/loading/src/loading-status.js +8 -0
  212. package/dist/components/loading/src/loading-utils.d.ts +51 -4
  213. package/dist/components/loading/src/loading-utils.js +122 -0
  214. package/dist/components/loading-bar/index.d.ts +1 -0
  215. package/dist/components/loading-bar/src/RsLoadingBar.css +72 -8
  216. package/dist/components/loading-bar/src/RsLoadingBar.d.ts +55 -11
  217. package/dist/components/loading-bar/src/RsLoadingBar.impl.js +298 -57
  218. package/dist/components/loading-bar/src/RsLoadingBar.js +1 -1
  219. package/dist/components/loading-bar/src/loading-bar-utils.d.ts +69 -0
  220. package/dist/components/loading-bar/src/loading-bar-utils.js +97 -0
  221. package/dist/components/log/src/RsLog.css +52 -144
  222. package/dist/components/log/src/RsLog.d.ts +12 -11
  223. package/dist/components/log/src/RsLog.impl.js +181 -148
  224. package/dist/components/log/src/RsLog.js +1 -1
  225. package/dist/components/log/src/RsLogRow.css +152 -0
  226. package/dist/components/log/src/RsLogRow.d.ts +35 -0
  227. package/dist/components/log/src/RsLogRow.impl.js +91 -0
  228. package/dist/components/log/src/RsLogRow.js +8 -0
  229. package/dist/components/log/src/log-utils.d.ts +8 -0
  230. package/dist/components/log/src/log-utils.js +71 -10
  231. package/dist/components/markdown/index.d.ts +1 -1
  232. package/dist/components/markdown/src/RsMarkdown.css +75 -32
  233. package/dist/components/markdown/src/RsMarkdown.d.ts +6 -2
  234. package/dist/components/markdown/src/RsMarkdown.impl.js +185 -17
  235. package/dist/components/markdown/src/markdown-utils.d.ts +26 -0
  236. package/dist/components/markdown/src/markdown-utils.js +114 -12
  237. package/dist/components/mentions/index.d.ts +2 -1
  238. package/dist/components/mentions/src/RsMentions.css +119 -3
  239. package/dist/components/mentions/src/RsMentions.d.ts +57 -5
  240. package/dist/components/mentions/src/RsMentions.impl.js +298 -79
  241. package/dist/components/mentions/src/RsMentions.js +1 -3
  242. package/dist/components/mentions/src/mentions-utils.d.ts +5 -1
  243. package/dist/components/mentions/src/mentions-utils.js +28 -9
  244. package/dist/components/menu/index.d.ts +1 -1
  245. package/dist/components/menu/src/RsMenu.css +70 -29
  246. package/dist/components/menu/src/RsMenu.d.ts +58 -4
  247. package/dist/components/menu/src/RsMenu.impl.js +93 -46
  248. package/dist/components/menu/src/RsMenuItems.d.ts +22 -5
  249. package/dist/components/menu/src/RsMenuItems.impl.js +506 -154
  250. package/dist/components/menu/src/menu-utils.d.ts +56 -0
  251. package/dist/components/menu/src/menu-utils.js +139 -6
  252. package/dist/components/monaco-editor/index.d.ts +1 -1
  253. package/dist/components/monaco-editor/src/RsMonacoEditor.css +28 -16
  254. package/dist/components/monaco-editor/src/RsMonacoEditor.d.ts +39 -41
  255. package/dist/components/monaco-editor/src/RsMonacoEditor.impl.js +212 -133
  256. package/dist/components/monaco-editor/src/RsMonacoEditor.js +1 -1
  257. package/dist/components/monaco-editor/src/monaco-editor-utils.d.ts +126 -0
  258. package/dist/components/monaco-editor/src/monaco-editor-utils.js +302 -0
  259. package/dist/components/pagination/index.d.ts +2 -2
  260. package/dist/components/pagination/src/RsPagination.css +93 -46
  261. package/dist/components/pagination/src/RsPagination.d.ts +68 -8
  262. package/dist/components/pagination/src/RsPagination.impl.js +229 -86
  263. package/dist/components/pagination/src/RsPagination.js +1 -1
  264. package/dist/components/pagination/src/pagination-utils.d.ts +59 -0
  265. package/dist/components/pagination/src/pagination-utils.js +105 -1
  266. package/dist/components/popover/index.d.ts +1 -0
  267. package/dist/components/popover/src/RsPopover.css +124 -14
  268. package/dist/components/popover/src/RsPopover.d.ts +38 -7
  269. package/dist/components/popover/src/RsPopover.impl.js +546 -35
  270. package/dist/components/popover/src/RsPopover.js +2 -1
  271. package/dist/components/popover/src/popover-utils.d.ts +24 -2
  272. package/dist/components/popover/src/popover-utils.js +55 -0
  273. package/dist/components/radio/index.d.ts +1 -1
  274. package/dist/components/radio/src/RsRadio.css +7 -6
  275. package/dist/components/radio/src/RsRadio.d.ts +8 -5
  276. package/dist/components/radio/src/RsRadio.impl.js +34 -24
  277. package/dist/components/radio/src/RsRadio.js +2 -1
  278. package/dist/components/radio/src/RsRadioItem.css +61 -44
  279. package/dist/components/radio/src/RsRadioItem.d.ts +2 -2
  280. package/dist/components/radio/src/RsRadioItem.impl.js +53 -20
  281. package/dist/components/radio/src/RsRadioItem.js +2 -1
  282. package/dist/components/radio/src/radio-utils.d.ts +12 -1
  283. package/dist/components/radio/src/radio-utils.js +15 -1
  284. package/dist/components/scrollbar/src/RsScrollbar.css +71 -24
  285. package/dist/components/scrollbar/src/RsScrollbar.d.ts +9 -5
  286. package/dist/components/scrollbar/src/RsScrollbar.impl.js +372 -47
  287. package/dist/components/scrollbar/src/RsScrollbar.js +2 -1
  288. package/dist/components/scrollbar/src/scrollbar-utils.d.ts +34 -2
  289. package/dist/components/scrollbar/src/scrollbar-utils.js +64 -1
  290. package/dist/components/select/index.d.ts +1 -0
  291. package/dist/components/select/src/RsSelect.css +54 -42
  292. package/dist/components/select/src/RsSelect.d.ts +19 -2
  293. package/dist/components/select/src/RsSelect.impl.js +727 -312
  294. package/dist/components/select/src/RsSelect.js +1 -1
  295. package/dist/components/select/src/select-utils.d.ts +4 -2
  296. package/dist/components/select/src/select-utils.js +8 -3
  297. package/dist/components/select/src/use-rs-select.d.ts +1 -0
  298. package/dist/components/select/src/use-rs-select.js +23 -17
  299. package/dist/components/sidebar/index.d.ts +1 -0
  300. package/dist/components/sidebar/src/RsSidebar.css +91 -33
  301. package/dist/components/sidebar/src/RsSidebar.d.ts +17 -9
  302. package/dist/components/sidebar/src/RsSidebar.impl.js +124 -22
  303. package/dist/components/sidebar/src/RsSidebar.js +1 -1
  304. package/dist/components/sidebar/src/RsSidebarGroup.css +23 -6
  305. package/dist/components/sidebar/src/RsSidebarGroup.d.ts +6 -2
  306. package/dist/components/sidebar/src/RsSidebarGroup.impl.js +17 -4
  307. package/dist/components/sidebar/src/RsSidebarGroup.js +1 -1
  308. package/dist/components/sidebar/src/RsSidebarItem.css +50 -20
  309. package/dist/components/sidebar/src/RsSidebarItem.d.ts +21 -3
  310. package/dist/components/sidebar/src/RsSidebarItem.impl.js +71 -20
  311. package/dist/components/sidebar/src/RsSidebarItem.js +1 -1
  312. package/dist/components/sidebar/src/sidebar-utils.d.ts +47 -0
  313. package/dist/components/sidebar/src/sidebar-utils.js +72 -0
  314. package/dist/components/split-pane/index.d.ts +2 -2
  315. package/dist/components/split-pane/src/RsSplitPane.css +41 -30
  316. package/dist/components/split-pane/src/RsSplitPane.d.ts +6 -2
  317. package/dist/components/split-pane/src/RsSplitPane.impl.js +153 -45
  318. package/dist/components/split-pane/src/split-pane-utils.d.ts +23 -0
  319. package/dist/components/split-pane/src/split-pane-utils.js +18 -1
  320. package/dist/components/stat-card/index.d.ts +1 -0
  321. package/dist/components/stat-card/src/RsStatCard.css +129 -25
  322. package/dist/components/stat-card/src/RsStatCard.d.ts +40 -4
  323. package/dist/components/stat-card/src/RsStatCard.impl.js +106 -12
  324. package/dist/components/stat-card/src/RsStatCard.js +1 -1
  325. package/dist/components/stat-card/src/stat-card-utils.d.ts +39 -0
  326. package/dist/components/stat-card/src/stat-card-utils.js +113 -0
  327. package/dist/components/steps/index.d.ts +1 -1
  328. package/dist/components/steps/src/RsSteps.css +158 -37
  329. package/dist/components/steps/src/RsSteps.d.ts +69 -5
  330. package/dist/components/steps/src/RsSteps.impl.js +168 -28
  331. package/dist/components/steps/src/RsSteps.js +1 -1
  332. package/dist/components/steps/src/steps-utils.d.ts +51 -1
  333. package/dist/components/steps/src/steps-utils.js +67 -1
  334. package/dist/components/switch/index.d.ts +2 -1
  335. package/dist/components/switch/src/RsSwitch.css +36 -18
  336. package/dist/components/switch/src/RsSwitch.d.ts +18 -5
  337. package/dist/components/switch/src/RsSwitch.impl.js +61 -29
  338. package/dist/components/switch/src/RsSwitch.js +2 -1
  339. package/dist/components/switch/src/switch-utils.d.ts +4 -0
  340. package/dist/components/switch/src/switch-utils.js +9 -0
  341. package/dist/components/table/src/RsTable.impl.js +4 -2
  342. package/dist/components/table/src/composables/useRsTableContextMenu.d.ts +16 -0
  343. package/dist/components/table/src/composables/useRsTableContextMenu.js +1 -1
  344. package/dist/components/table/src/composables/useRsTableEngine.js +6 -2
  345. package/dist/components/table/src/composables/useRsTableScrollLayout.js +2 -0
  346. package/dist/components/table/src/composables/useRsTableShell.d.ts +16 -0
  347. package/dist/components/table/src/rs-table-props.d.ts +1 -1
  348. package/dist/components/table/src/rs-table-props.js +0 -1
  349. package/dist/components/table/src/table-body/RsTableBody.impl.js +1 -0
  350. package/dist/components/table/src/table-body/RsTableCellEditor.impl.js +10 -2
  351. package/dist/components/table/src/table-body/RsTableColGroup.impl.js +1 -0
  352. package/dist/components/table/src/table-footer/RsTableSummaryRow.impl.js +1 -0
  353. package/dist/components/table/src/table-header/RsTableHeader.impl.js +1 -0
  354. package/dist/components/table/src/utils/table-utils.d.ts +10 -6
  355. package/dist/components/table/src/utils/table-utils.js +27 -25
  356. package/dist/components/table/style/rs-table.css +34 -20
  357. package/dist/components/tabs/index.d.ts +2 -2
  358. package/dist/components/tabs/src/RsTabs.css +225 -101
  359. package/dist/components/tabs/src/RsTabs.d.ts +37 -8
  360. package/dist/components/tabs/src/RsTabs.impl.js +400 -270
  361. package/dist/components/tabs/src/tabs-utils.d.ts +41 -2
  362. package/dist/components/tabs/src/tabs-utils.js +55 -1
  363. package/dist/components/terminal/index.d.ts +1 -1
  364. package/dist/components/terminal/src/RsTerminal.css +60 -37
  365. package/dist/components/terminal/src/RsTerminal.d.ts +36 -4
  366. package/dist/components/terminal/src/RsTerminal.impl.js +288 -68
  367. package/dist/components/terminal/src/RsTerminal.js +1 -1
  368. package/dist/components/terminal/src/terminal-utils.d.ts +42 -4
  369. package/dist/components/terminal/src/terminal-utils.js +113 -10
  370. package/dist/components/textarea/src/RsTextarea.css +23 -23
  371. package/dist/components/textarea/src/RsTextarea.d.ts +7 -13
  372. package/dist/components/textarea/src/RsTextarea.impl.js +37 -46
  373. package/dist/components/textarea/src/RsTextarea.js +1 -1
  374. package/dist/components/textarea/src/textarea-utils.d.ts +27 -0
  375. package/dist/components/textarea/src/textarea-utils.js +61 -0
  376. package/dist/components/time-picker/index.d.ts +3 -2
  377. package/dist/components/time-picker/src/RsTimePicker.css +41 -24
  378. package/dist/components/time-picker/src/RsTimePicker.d.ts +52 -7
  379. package/dist/components/time-picker/src/RsTimePicker.impl.js +520 -156
  380. package/dist/components/time-picker/src/RsTimePicker.js +1 -3
  381. package/dist/components/time-picker/src/RsTimePickerColumns.css +26 -18
  382. package/dist/components/time-picker/src/RsTimePickerColumns.d.ts +3 -1
  383. package/dist/components/time-picker/src/RsTimePickerColumns.impl.js +62 -9
  384. package/dist/components/time-picker/src/RsTimePickerColumns.js +1 -1
  385. package/dist/components/time-picker/src/time-picker-utils.d.ts +38 -0
  386. package/dist/components/time-picker/src/time-picker-utils.js +97 -5
  387. package/dist/components/toaster/src/RsToaster.css +156 -203
  388. package/dist/components/toaster/src/RsToaster.d.ts +33 -3
  389. package/dist/components/toaster/src/RsToaster.impl.js +309 -34
  390. package/dist/components/toaster/src/toast-store.d.ts +95 -0
  391. package/dist/components/toaster/src/toast-store.js +177 -0
  392. package/dist/components/toaster/src/toast-utils.d.ts +60 -0
  393. package/dist/components/toaster/src/toast-utils.js +86 -0
  394. package/dist/components/toolbar/index.d.ts +1 -1
  395. package/dist/components/toolbar/src/RsToolbar.css +206 -32
  396. package/dist/components/toolbar/src/RsToolbar.d.ts +41 -16
  397. package/dist/components/toolbar/src/RsToolbar.impl.js +146 -18
  398. package/dist/components/toolbar/src/RsToolbar.js +2 -1
  399. package/dist/components/toolbar/src/toolbar-utils.d.ts +20 -0
  400. package/dist/components/toolbar/src/toolbar-utils.js +105 -0
  401. package/dist/components/tooltip/index.d.ts +1 -0
  402. package/dist/components/tooltip/src/RsTooltip.css +104 -26
  403. package/dist/components/tooltip/src/RsTooltip.d.ts +39 -17
  404. package/dist/components/tooltip/src/RsTooltip.impl.js +420 -51
  405. package/dist/components/tooltip/src/RsTooltip.js +2 -1
  406. package/dist/components/tooltip/src/RsTooltipProvider.d.ts +4 -4
  407. package/dist/components/tooltip/src/RsTooltipProvider.impl.js +51 -14
  408. package/dist/components/tooltip/src/tooltip-utils.d.ts +30 -0
  409. package/dist/components/tooltip/src/tooltip-utils.js +23 -0
  410. package/dist/components/tree/index.d.ts +2 -2
  411. package/dist/components/tree/src/RsTree.css +84 -75
  412. package/dist/components/tree/src/RsTree.d.ts +23 -23
  413. package/dist/components/tree/src/RsTree.impl.js +292 -66
  414. package/dist/components/tree/src/RsTree.js +1 -1
  415. package/dist/components/tree/src/tree-utils.d.ts +22 -0
  416. package/dist/components/tree/src/tree-utils.js +18 -4
  417. package/dist/components/tree-select/index.d.ts +2 -0
  418. package/dist/components/tree-select/src/RsTreeSelect.css +100 -25
  419. package/dist/components/tree-select/src/RsTreeSelect.d.ts +91 -7
  420. package/dist/components/tree-select/src/RsTreeSelect.impl.js +464 -79
  421. package/dist/components/tree-select/src/RsTreeSelect.js +1 -1
  422. package/dist/components/tree-select/src/tree-select-utils.d.ts +20 -0
  423. package/dist/components/tree-select/src/tree-select-utils.js +60 -0
  424. package/dist/components/upload/index.d.ts +2 -1
  425. package/dist/components/upload/src/RsUpload.css +223 -75
  426. package/dist/components/upload/src/RsUpload.d.ts +77 -1
  427. package/dist/components/upload/src/RsUpload.impl.js +404 -90
  428. package/dist/components/upload/src/RsUpload.js +1 -1
  429. package/dist/components/upload/src/upload-utils.d.ts +21 -2
  430. package/dist/components/upload/src/upload-utils.js +139 -9
  431. package/dist/components/virtual-list/index.d.ts +1 -1
  432. package/dist/components/virtual-list/src/RsVirtualList.css +64 -9
  433. package/dist/components/virtual-list/src/RsVirtualList.d.ts +31 -5
  434. package/dist/components/virtual-list/src/RsVirtualList.impl.js +425 -76
  435. package/dist/components/virtual-list/src/RsVirtualList.js +1 -1
  436. package/dist/components/virtual-list/src/virtual-list-utils.d.ts +64 -1
  437. package/dist/components/virtual-list/src/virtual-list-utils.js +215 -1
  438. package/dist/composables/useRsLoadingBar.d.ts +2 -5
  439. package/dist/composables/useRsLoadingBar.js +21 -5
  440. package/dist/composables/useRsTabsNav.d.ts +3 -1
  441. package/dist/composables/useRsTabsNav.js +96 -28
  442. package/dist/composables/useRsToast.d.ts +11 -13
  443. package/dist/composables/useRsToast.js +66 -17
  444. package/dist/index.d.ts +51 -32
  445. package/dist/index.js +20 -0
  446. package/dist/locale/apply.js +6 -1
  447. package/dist/locale/messages.js +174 -4
  448. package/dist/styles.css +1007 -980
  449. package/dist/theme/brand.example.css +3 -2
  450. package/dist/vite-plugins/niuma-ui-host.js +1 -1
  451. package/package.json +2 -3
  452. package/dist/components/breadcrumb/src/RsBreadcrumbItems.d.ts +0 -8
  453. package/dist/components/breadcrumb/src/RsBreadcrumbItems.impl.js +0 -40
  454. package/dist/components/breadcrumb/src/RsBreadcrumbItems.js +0 -5
  455. package/dist/components/date-picker/src/RsDatePicker-1.css +0 -157
  456. package/dist/components/mentions/src/RsMentions-1.css +0 -29
  457. package/dist/components/time-picker/src/RsTimePicker-1.css +0 -98
package/dist/styles.css CHANGED
@@ -1,647 +1,3 @@
1
-
2
- html[dir='ltr'],
3
- [data-sonner-toaster][dir='ltr'] {
4
- --toast-icon-margin-start: -3px;
5
- --toast-icon-margin-end: 4px;
6
- --toast-svg-margin-start: -1px;
7
- --toast-svg-margin-end: 0px;
8
- --toast-button-margin-start: auto;
9
- --toast-button-margin-end: 0;
10
- }
11
- html[dir='rtl'],
12
- [data-sonner-toaster][dir='rtl'] {
13
- --toast-icon-margin-start: 4px;
14
- --toast-icon-margin-end: -3px;
15
- --toast-svg-margin-start: 0px;
16
- --toast-svg-margin-end: -1px;
17
- --toast-button-margin-start: 0;
18
- --toast-button-margin-end: auto;
19
- }
20
- [data-sonner-toaster] {
21
- position: fixed;
22
- width: var(--width);
23
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial,
24
- Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
25
- --gray1: hsl(0, 0%, 99%);
26
- --gray2: hsl(0, 0%, 97.3%);
27
- --gray3: hsl(0, 0%, 95.1%);
28
- --gray4: hsl(0, 0%, 93%);
29
- --gray5: hsl(0, 0%, 90.9%);
30
- --gray6: hsl(0, 0%, 88.7%);
31
- --gray7: hsl(0, 0%, 85.8%);
32
- --gray8: hsl(0, 0%, 78%);
33
- --gray9: hsl(0, 0%, 56.1%);
34
- --gray10: hsl(0, 0%, 52.3%);
35
- --gray11: hsl(0, 0%, 43.5%);
36
- --gray12: hsl(0, 0%, 9%);
37
- --border-radius: 8px;
38
- box-sizing: border-box;
39
- padding: 0;
40
- margin: 0;
41
- list-style: none;
42
- outline: none;
43
- z-index: 999999999;
44
- transition: transform 400ms ease;
45
- }
46
- @media (hover: none) and (pointer: coarse) {
47
- [data-sonner-toaster][data-lifted='true'] {
48
- transform: none;
49
- }
50
- }
51
- [data-sonner-toaster][data-x-position='right'] {
52
- right: var(--offset-right);
53
- }
54
- [data-sonner-toaster][data-x-position='left'] {
55
- left: var(--offset-left);
56
- }
57
- [data-sonner-toaster][data-x-position='center'] {
58
- left: 50%;
59
- transform: translateX(-50%);
60
- }
61
- [data-sonner-toaster][data-y-position='top'] {
62
- top: var(--offset-top);
63
- }
64
- [data-sonner-toaster][data-y-position='bottom'] {
65
- bottom: var(--offset-bottom);
66
- }
67
- [data-sonner-toast] {
68
- --y: translateY(100%);
69
- --lift-amount: calc(var(--lift) * var(--gap));
70
- z-index: var(--z-index);
71
- position: absolute;
72
- opacity: 0;
73
- transform: var(--y);
74
- touch-action: none;
75
- transition: transform 400ms, opacity 400ms, height 400ms, box-shadow 200ms;
76
- box-sizing: border-box;
77
- outline: none;
78
- overflow-wrap: anywhere;
79
- }
80
- [data-sonner-toast][data-styled='true'] {
81
- padding: 16px;
82
- background: var(--normal-bg);
83
- border: 1px solid var(--normal-border);
84
- color: var(--normal-text);
85
- border-radius: var(--border-radius);
86
- box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
87
- width: var(--width);
88
- font-size: 13px;
89
- display: flex;
90
- align-items: center;
91
- gap: 6px;
92
- }
93
- [data-sonner-toast]:focus-visible {
94
- box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1), 0 0 0 2px rgba(0, 0, 0, 0.2);
95
- }
96
- [data-sonner-toast][data-y-position='top'] {
97
- top: 0;
98
- --y: translateY(-100%);
99
- --lift: 1;
100
- --lift-amount: calc(1 * var(--gap));
101
- }
102
- [data-sonner-toast][data-y-position='bottom'] {
103
- bottom: 0;
104
- --y: translateY(100%);
105
- --lift: -1;
106
- --lift-amount: calc(var(--lift) * var(--gap));
107
- }
108
- [data-sonner-toast][data-styled='true'] [data-description] {
109
- font-weight: 400;
110
- line-height: 1.4;
111
- color: #3f3f3f;
112
- }
113
- [data-rich-colors='true'][data-sonner-toast][data-styled='true'] [data-description] {
114
- color: inherit;
115
- }
116
- [data-sonner-toaster][data-sonner-theme='dark'] [data-description] {
117
- color: hsl(0, 0%, 91%);
118
- }
119
- [data-sonner-toast][data-styled='true'] [data-title] {
120
- font-weight: 500;
121
- line-height: 1.5;
122
- color: inherit;
123
- }
124
- [data-sonner-toast][data-styled='true'] [data-icon] {
125
- display: flex;
126
- height: 16px;
127
- width: 16px;
128
- position: relative;
129
- justify-content: flex-start;
130
- align-items: center;
131
- flex-shrink: 0;
132
- margin-left: var(--toast-icon-margin-start);
133
- margin-right: var(--toast-icon-margin-end);
134
- }
135
- [data-sonner-toast][data-promise='true'] [data-icon] > svg {
136
- opacity: 0;
137
- transform: scale(0.8);
138
- transform-origin: center;
139
- animation: sonner-fade-in 300ms ease forwards;
140
- }
141
- [data-sonner-toast][data-styled='true'] [data-icon] > * {
142
- flex-shrink: 0;
143
- }
144
- [data-sonner-toast][data-styled='true'] [data-icon] svg {
145
- margin-left: var(--toast-svg-margin-start);
146
- margin-right: var(--toast-svg-margin-end);
147
- }
148
- [data-sonner-toast][data-styled='true'] [data-content] {
149
- display: flex;
150
- flex-direction: column;
151
- gap: 2px;
152
- }
153
- [data-sonner-toast][data-styled='true'] [data-button] {
154
- border-radius: 4px;
155
- padding-left: 8px;
156
- padding-right: 8px;
157
- height: 24px;
158
- font-size: 12px;
159
- color: var(--normal-bg);
160
- background: var(--normal-text);
161
- margin-left: var(--toast-button-margin-start);
162
- margin-right: var(--toast-button-margin-end);
163
- border: none;
164
- font-weight: 500;
165
- cursor: pointer;
166
- outline: none;
167
- display: flex;
168
- align-items: center;
169
- flex-shrink: 0;
170
- transition: opacity 400ms, box-shadow 200ms;
171
- }
172
- [data-sonner-toast][data-styled='true'] [data-button]:focus-visible {
173
- box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4);
174
- }
175
- [data-sonner-toast][data-styled='true'] [data-button]:first-of-type {
176
- margin-left: var(--toast-button-margin-start);
177
- margin-right: var(--toast-button-margin-end);
178
- }
179
- [data-sonner-toast][data-styled='true'] [data-cancel] {
180
- color: var(--normal-text);
181
- background: rgba(0, 0, 0, 0.08);
182
- }
183
- [data-sonner-toaster][data-sonner-theme='dark'] [data-sonner-toast][data-styled='true'] [data-cancel] {
184
- background: rgba(255, 255, 255, 0.3);
185
- }
186
- [data-sonner-toaster] [data-close-button-position='top-left'] {
187
- --toast-close-button-left: 0;
188
- --toast-close-button-right: unset;
189
- --toast-close-button-top: 0;
190
- --toast-close-button-bottom: unset;
191
- --toast-close-button-transform: translate(-35%, -35%);
192
- }
193
- [data-sonner-toaster] [data-close-button-position='top-right'] {
194
- --toast-close-button-left: unset;
195
- --toast-close-button-right: 0;
196
- --toast-close-button-top: 0;
197
- --toast-close-button-bottom: unset;
198
- --toast-close-button-transform: translate(35%, -35%);
199
- }
200
- [data-sonner-toaster] [data-close-button-position='bottom-left'] {
201
- --toast-close-button-left: 0;
202
- --toast-close-button-right: unset;
203
- --toast-close-button-top: unset;
204
- --toast-close-button-bottom: 0;
205
- --toast-close-button-transform: translate(-35%, 35%);
206
- }
207
- [data-sonner-toaster] [data-close-button-position='bottom-right'] {
208
- --toast-close-button-left: unset;
209
- --toast-close-button-right: 0;
210
- --toast-close-button-top: unset;
211
- --toast-close-button-bottom: 0;
212
- --toast-close-button-transform: translate(35%, 35%);
213
- }
214
- [data-sonner-toast][data-styled='true'] [data-close-button] {
215
- position: absolute;
216
- left: var(--toast-close-button-left);
217
- right: var(--toast-close-button-right);
218
- top: var(--toast-close-button-top);
219
- bottom: var(--toast-close-button-bottom);
220
- height: 20px;
221
- width: 20px;
222
- display: flex;
223
- justify-content: center;
224
- align-items: center;
225
- padding: 0;
226
- color: var(--gray12);
227
- background: var(--normal-bg);
228
- border: 1px solid var(--gray4);
229
- transform: var(--toast-close-button-transform);
230
- border-radius: 50%;
231
- cursor: pointer;
232
- z-index: 1;
233
- transition: opacity 100ms, background 200ms, border-color 200ms;
234
- }
235
- [data-sonner-toast][data-styled='true'] [data-close-button]:focus-visible {
236
- box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1), 0 0 0 2px rgba(0, 0, 0, 0.2);
237
- }
238
- [data-sonner-toast][data-styled='true'] [data-disabled='true'] {
239
- cursor: not-allowed;
240
- }
241
- [data-sonner-toast][data-styled='true']:hover [data-close-button]:hover {
242
- background: var(--gray2);
243
- border-color: var(--gray5);
244
- }
245
- [data-sonner-toast][data-swiping='true']::before {
246
- content: '';
247
- position: absolute;
248
- left: -100%;
249
- right: -100%;
250
- height: 100%;
251
- z-index: -1;
252
- }
253
- [data-sonner-toast][data-y-position='top'][data-swiping='true']::before {
254
- bottom: 50%;
255
- transform: scaleY(3) translateY(50%);
256
- }
257
- [data-sonner-toast][data-y-position='bottom'][data-swiping='true']::before {
258
- top: 50%;
259
- transform: scaleY(3) translateY(-50%);
260
- }
261
- [data-sonner-toast][data-swiping='false'][data-removed='true']::before {
262
- content: '';
263
- position: absolute;
264
- inset: 0;
265
- transform: scaleY(2);
266
- }
267
- [data-sonner-toast][data-expanded='true']::after {
268
- content: '';
269
- position: absolute;
270
- left: 0;
271
- height: calc(var(--gap) + 1px);
272
- bottom: 100%;
273
- width: 100%;
274
- }
275
- [data-sonner-toast][data-mounted='true'] {
276
- --y: translateY(0);
277
- opacity: 1;
278
- }
279
- [data-sonner-toast][data-expanded='false'][data-front='false'] {
280
- --scale: var(--toasts-before) * 0.05 + 1;
281
- --y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--toasts-before) * 0.05 + 1));
282
- height: var(--front-toast-height);
283
- }
284
- [data-sonner-toast] > * {
285
- transition: opacity 400ms;
286
- }
287
- [data-sonner-toast][data-x-position='right'] {
288
- right: 0;
289
- }
290
- [data-sonner-toast][data-x-position='left'] {
291
- left: 0;
292
- }
293
- [data-sonner-toast][data-expanded='false'][data-front='false'][data-styled='true'] > * {
294
- opacity: 0;
295
- }
296
- [data-sonner-toast][data-visible='false'] {
297
- opacity: 0;
298
- pointer-events: none;
299
- }
300
- [data-sonner-toast][data-mounted='true'][data-expanded='true'] {
301
- --y: translateY(calc(var(--lift) * var(--offset)));
302
- height: var(--initial-height);
303
- }
304
- [data-sonner-toast][data-removed='true'][data-front='true'][data-swipe-out='false'] {
305
- --y: translateY(calc(var(--lift) * -100%));
306
- opacity: 0;
307
- }
308
- [data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='true'] {
309
- --y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));
310
- opacity: 0;
311
- }
312
- [data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='false'] {
313
- --y: translateY(40%);
314
- opacity: 0;
315
- transition: transform 500ms, opacity 200ms;
316
- }
317
- [data-sonner-toast][data-removed='true'][data-front='false']::before {
318
- height: calc(var(--initial-height) + 20%);
319
- }
320
- [data-sonner-toast][data-swiping='true'] {
321
- transform: var(--y) translateY(var(--swipe-amount-y, 0px)) translateX(var(--swipe-amount-x, 0px));
322
- transition: none;
323
- }
324
- [data-sonner-toast][data-swiped='true'] {
325
- user-select: none;
326
- }
327
- [data-sonner-toast][data-swipe-out='true'][data-y-position='bottom'],
328
- [data-sonner-toast][data-swipe-out='true'][data-y-position='top'] {
329
- animation-duration: 200ms;
330
- animation-timing-function: ease-out;
331
- animation-fill-mode: forwards;
332
- }
333
- [data-sonner-toast][data-swipe-out='true'][data-swipe-direction='left'] {
334
- animation-name: swipe-out-left;
335
- }
336
- [data-sonner-toast][data-swipe-out='true'][data-swipe-direction='right'] {
337
- animation-name: swipe-out-right;
338
- }
339
- [data-sonner-toast][data-swipe-out='true'][data-swipe-direction='up'] {
340
- animation-name: swipe-out-up;
341
- }
342
- [data-sonner-toast][data-swipe-out='true'][data-swipe-direction='down'] {
343
- animation-name: swipe-out-down;
344
- }
345
- @keyframes swipe-out-left {
346
- from {
347
- transform: var(--y) translateX(var(--swipe-amount-x));
348
- opacity: 1;
349
- }
350
- to {
351
- transform: var(--y) translateX(calc(var(--swipe-amount-x) - 100%));
352
- opacity: 0;
353
- }
354
- }
355
- @keyframes swipe-out-right {
356
- from {
357
- transform: var(--y) translateX(var(--swipe-amount-x));
358
- opacity: 1;
359
- }
360
- to {
361
- transform: var(--y) translateX(calc(var(--swipe-amount-x) + 100%));
362
- opacity: 0;
363
- }
364
- }
365
- @keyframes swipe-out-up {
366
- from {
367
- transform: var(--y) translateY(var(--swipe-amount-y));
368
- opacity: 1;
369
- }
370
- to {
371
- transform: var(--y) translateY(calc(var(--swipe-amount-y) - 100%));
372
- opacity: 0;
373
- }
374
- }
375
- @keyframes swipe-out-down {
376
- from {
377
- transform: var(--y) translateY(var(--swipe-amount-y));
378
- opacity: 1;
379
- }
380
- to {
381
- transform: var(--y) translateY(calc(var(--swipe-amount-y) + 100%));
382
- opacity: 0;
383
- }
384
- }
385
- @media (max-width: 600px) {
386
- [data-sonner-toaster] {
387
- position: fixed;
388
- right: var(--mobile-offset-right);
389
- left: var(--mobile-offset-left);
390
- width: 100%;
391
- }
392
- [data-sonner-toaster][dir='rtl'] {
393
- left: calc(var(--mobile-offset-left) * -1);
394
- }
395
- [data-sonner-toaster] [data-sonner-toast] {
396
- left: 0;
397
- right: 0;
398
- width: calc(100% - var(--mobile-offset-left) * 2);
399
- }
400
- [data-sonner-toaster][data-x-position='left'] {
401
- left: var(--mobile-offset-left);
402
- }
403
- [data-sonner-toaster][data-y-position='bottom'] {
404
- bottom: calc(var(--mobile-offset-bottom) + max(env(safe-area-inset-bottom), 0px));
405
- }
406
- [data-sonner-toaster][data-y-position='top'] {
407
- top: calc(var(--mobile-offset-top) + max(env(safe-area-inset-top), 0px));
408
- }
409
- [data-sonner-toaster][data-x-position='center'] {
410
- left: var(--mobile-offset-left);
411
- right: var(--mobile-offset-right);
412
- transform: none;
413
- }
414
- }
415
- [data-sonner-toaster][data-sonner-theme='light'] {
416
- --normal-bg: #fff;
417
- --normal-border: var(--gray4);
418
- --normal-text: var(--gray12);
419
-
420
- --success-bg: hsl(143, 85%, 96%);
421
- --success-border: hsl(145, 92%, 87%);
422
- --success-text: hsl(140, 100%, 27%);
423
-
424
- --info-bg: hsl(208, 100%, 97%);
425
- --info-border: hsl(221, 91%, 93%);
426
- --info-text: hsl(210, 92%, 45%);
427
-
428
- --warning-bg: hsl(49, 100%, 97%);
429
- --warning-border: hsl(49, 91%, 84%);
430
- --warning-text: hsl(31, 92%, 45%);
431
-
432
- --error-bg: hsl(359, 100%, 97%);
433
- --error-border: hsl(359, 100%, 94%);
434
- --error-text: hsl(360, 100%, 45%);
435
- }
436
- [data-sonner-toaster][data-sonner-theme='light'] [data-sonner-toast][data-invert='true'] {
437
- --normal-bg: #000;
438
- --normal-border: hsl(0, 0%, 20%);
439
- --normal-text: var(--gray1);
440
- }
441
- [data-sonner-toaster][data-sonner-theme='dark'] [data-sonner-toast][data-invert='true'] {
442
- --normal-bg: #fff;
443
- --normal-border: var(--gray3);
444
- --normal-text: var(--gray12);
445
- }
446
- [data-sonner-toaster][data-sonner-theme='dark'] {
447
- --normal-bg: #000;
448
- --normal-bg-hover: hsl(0, 0%, 12%);
449
- --normal-border: hsl(0, 0%, 20%);
450
- --normal-border-hover: hsl(0, 0%, 25%);
451
- --normal-text: var(--gray1);
452
-
453
- --success-bg: hsl(150, 100%, 6%);
454
- --success-border: hsl(147, 100%, 12%);
455
- --success-text: hsl(150, 86%, 65%);
456
-
457
- --info-bg: hsl(215, 100%, 6%);
458
- --info-border: hsl(223, 43%, 17%);
459
- --info-text: hsl(216, 87%, 65%);
460
-
461
- --warning-bg: hsl(64, 100%, 6%);
462
- --warning-border: hsl(60, 100%, 9%);
463
- --warning-text: hsl(46, 87%, 65%);
464
-
465
- --error-bg: hsl(358, 76%, 10%);
466
- --error-border: hsl(357, 89%, 16%);
467
- --error-text: hsl(358, 100%, 81%);
468
- }
469
- [data-sonner-toaster][data-sonner-theme='dark'] [data-sonner-toast] [data-close-button] {
470
- background: var(--normal-bg);
471
- border-color: var(--normal-border);
472
- color: var(--normal-text);
473
- }
474
- [data-sonner-toaster][data-sonner-theme='dark'] [data-sonner-toast] [data-close-button]:hover {
475
- background: var(--normal-bg-hover);
476
- border-color: var(--normal-border-hover);
477
- }
478
- [data-rich-colors='true'][data-sonner-toast][data-type='success'] {
479
- background: var(--success-bg);
480
- border-color: var(--success-border);
481
- color: var(--success-text);
482
- }
483
- [data-rich-colors='true'][data-sonner-toast][data-type='success'] [data-close-button] {
484
- background: var(--success-bg);
485
- border-color: var(--success-border);
486
- color: var(--success-text);
487
- }
488
- [data-rich-colors='true'][data-sonner-toast][data-type='info'] {
489
- background: var(--info-bg);
490
- border-color: var(--info-border);
491
- color: var(--info-text);
492
- }
493
- [data-rich-colors='true'][data-sonner-toast][data-type='info'] [data-close-button] {
494
- background: var(--info-bg);
495
- border-color: var(--info-border);
496
- color: var(--info-text);
497
- }
498
- [data-rich-colors='true'][data-sonner-toast][data-type='warning'] {
499
- background: var(--warning-bg);
500
- border-color: var(--warning-border);
501
- color: var(--warning-text);
502
- }
503
- [data-rich-colors='true'][data-sonner-toast][data-type='warning'] [data-close-button] {
504
- background: var(--warning-bg);
505
- border-color: var(--warning-border);
506
- color: var(--warning-text);
507
- }
508
- [data-rich-colors='true'][data-sonner-toast][data-type='error'] {
509
- background: var(--error-bg);
510
- border-color: var(--error-border);
511
- color: var(--error-text);
512
- }
513
- [data-rich-colors='true'][data-sonner-toast][data-type='error'] [data-close-button] {
514
- background: var(--error-bg);
515
- border-color: var(--error-border);
516
- color: var(--error-text);
517
- }
518
- .sonner-loading-wrapper {
519
- --size: 16px;
520
- height: var(--size);
521
- width: var(--size);
522
- position: absolute;
523
- inset: 0;
524
- z-index: 10;
525
- }
526
- .sonner-loading-wrapper[data-visible='false'] {
527
- transform-origin: center;
528
- animation: sonner-fade-out 0.2s ease forwards;
529
- }
530
- .sonner-spinner {
531
- position: relative;
532
- top: 50%;
533
- left: 50%;
534
- height: var(--size);
535
- width: var(--size);
536
- }
537
- .sonner-loading-bar {
538
- animation: sonner-spin 1.2s linear infinite;
539
- background: var(--gray11);
540
- border-radius: 6px;
541
- height: 8%;
542
- left: -10%;
543
- position: absolute;
544
- top: -3.9%;
545
- width: 24%;
546
- }
547
- .sonner-loading-bar:nth-child(1) {
548
- animation-delay: -1.2s;
549
- transform: rotate(0.0001deg) translate(146%);
550
- }
551
- .sonner-loading-bar:nth-child(2) {
552
- animation-delay: -1.1s;
553
- transform: rotate(30deg) translate(146%);
554
- }
555
- .sonner-loading-bar:nth-child(3) {
556
- animation-delay: -1s;
557
- transform: rotate(60deg) translate(146%);
558
- }
559
- .sonner-loading-bar:nth-child(4) {
560
- animation-delay: -0.9s;
561
- transform: rotate(90deg) translate(146%);
562
- }
563
- .sonner-loading-bar:nth-child(5) {
564
- animation-delay: -0.8s;
565
- transform: rotate(120deg) translate(146%);
566
- }
567
- .sonner-loading-bar:nth-child(6) {
568
- animation-delay: -0.7s;
569
- transform: rotate(150deg) translate(146%);
570
- }
571
- .sonner-loading-bar:nth-child(7) {
572
- animation-delay: -0.6s;
573
- transform: rotate(180deg) translate(146%);
574
- }
575
- .sonner-loading-bar:nth-child(8) {
576
- animation-delay: -0.5s;
577
- transform: rotate(210deg) translate(146%);
578
- }
579
- .sonner-loading-bar:nth-child(9) {
580
- animation-delay: -0.4s;
581
- transform: rotate(240deg) translate(146%);
582
- }
583
- .sonner-loading-bar:nth-child(10) {
584
- animation-delay: -0.3s;
585
- transform: rotate(270deg) translate(146%);
586
- }
587
- .sonner-loading-bar:nth-child(11) {
588
- animation-delay: -0.2s;
589
- transform: rotate(300deg) translate(146%);
590
- }
591
- .sonner-loading-bar:nth-child(12) {
592
- animation-delay: -0.1s;
593
- transform: rotate(330deg) translate(146%);
594
- }
595
- @keyframes sonner-fade-in {
596
- 0% {
597
- opacity: 0;
598
- transform: scale(0.8);
599
- }
600
- 100% {
601
- opacity: 1;
602
- transform: scale(1);
603
- }
604
- }
605
- @keyframes sonner-fade-out {
606
- 0% {
607
- opacity: 1;
608
- transform: scale(1);
609
- }
610
- 100% {
611
- opacity: 0;
612
- transform: scale(0.8);
613
- }
614
- }
615
- @keyframes sonner-spin {
616
- 0% {
617
- opacity: 1;
618
- }
619
- 100% {
620
- opacity: 0.15;
621
- }
622
- }
623
- @media (prefers-reduced-motion) {
624
- [data-sonner-toast],
625
- [data-sonner-toast] > *,
626
- .sonner-loading-bar {
627
- transition: none !important;
628
- animation: none !important;
629
- }
630
- }
631
- .sonner-loader {
632
- position: absolute;
633
- top: 50%;
634
- left: 50%;
635
- transform: translate(-50%, -50%);
636
- transform-origin: center;
637
- transition: opacity 200ms, transform 200ms;
638
- }
639
- .sonner-loader[data-visible='false'] {
640
- opacity: 0;
641
- transform: scale(0.8) translate(-50%, -50%);
642
- }
643
-
644
-
645
1
  /*
646
2
  * 内置图标:Lucide 走 --rs-icon-color;品牌 mark 走 --rs-icon-{name}-accent。
647
3
  * 色值在 styles/index.css 的主题块里,这里只写图形规则。
@@ -886,12 +242,22 @@ html {
886
242
  --rs-code-font-family: var(--rs-font-mono);
887
243
  --rs-code-font-size: var(--rs-font-size-sm);
888
244
  --rs-code-line-height: var(--rs-line-height-relaxed);
245
+ /* 行内编辑面板宽度。颜色不在这里,跟 data-rs-theme 的语义色。 */
246
+ --rs-code-editor-inline-width: 28rem;
889
247
 
890
248
  /* 富文本阅读面(RsProseEditor) */
891
249
  --rs-prose-font-family: var(--rs-font-serif);
892
250
  --rs-prose-font-size: var(--rs-font-size-base);
893
251
  --rs-prose-line-height: var(--rs-line-height-relaxed);
894
252
 
253
+ /* 日志排版。行高保持 1.45,虚拟行默认 24px 与之对齐。 */
254
+ --rs-log-font-family: var(--rs-font-mono);
255
+ --rs-log-font-size: var(--rs-font-size-xs);
256
+ --rs-log-line-height: 1.45;
257
+ --rs-log-marker-width: 0.2rem;
258
+ --rs-log-level-min: 3.6rem;
259
+ --rs-log-accent-width: 0.125rem;
260
+
895
261
  /* 终端排版(xterm 构造时读取;宿主可单独覆盖) */
896
262
  --rs-terminal-font-family: var(--rs-font-mono);
897
263
  --rs-terminal-font-size: var(--rs-font-size-sm);
@@ -923,6 +289,12 @@ html {
923
289
  /* 顶栏加载条:高于 modal,低于 toast,避免遮挡通知 */
924
290
  --rs-z-loading-bar: 190;
925
291
  --rs-z-toast: 200;
292
+ /* 挂到 body 的提示必须盖住 Dialog。--rs-z-tooltip 仍是页内低层,不要拿来做这层。 */
293
+ --rs-tooltip-z: calc(var(--rs-z-modal) + 2);
294
+ --rs-tooltip-max-width: min(20rem, 90vw);
295
+ --rs-tooltip-max-width-nowrap: min(48rem, 90vw);
296
+ --rs-tooltip-pad-block: 0.375rem;
297
+ --rs-tooltip-pad-inline: 0.625rem;
926
298
 
927
299
  --rs-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
928
300
  --rs-transition-normal: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
@@ -967,6 +339,155 @@ html {
967
339
  --rs-menu-item-font-size: var(--rs-font-size-sm);
968
340
  --rs-menu-item-radius: var(--rs-radius-sm);
969
341
  --rs-menu-item-active-weight: var(--rs-font-weight-medium);
342
+ --rs-menu-item-pad-inline: var(--rs-space-sm);
343
+ --rs-menu-gap: calc(var(--rs-space-xs) / 2);
344
+ --rs-menu-indent: 0.875rem;
345
+ --rs-menu-flyout-min-width: 10rem;
346
+ --rs-menu-flyout-max-width: 16rem;
347
+ --rs-menu-flyout-pad: var(--rs-space-xs);
348
+ --rs-menu-disabled-opacity: 0.38;
349
+
350
+ /* Dropdown(命令菜单)。尺寸静态;颜色在主题块内。 */
351
+ --rs-dropdown-trigger-min-width: 10rem;
352
+ --rs-dropdown-fit-min-width: 10.5rem;
353
+ --rs-dropdown-pad: var(--rs-space-xs);
354
+ --rs-dropdown-item-gap: var(--rs-space-sm);
355
+ --rs-dropdown-item-pad-block: var(--rs-space-sm);
356
+ --rs-dropdown-item-pad-inline: var(--rs-space-md);
357
+ --rs-dropdown-item-radius: var(--rs-radius-sm);
358
+ --rs-dropdown-item-font-size: var(--rs-font-size-sm);
359
+ --rs-dropdown-trigger-height: var(--rs-control-height-md);
360
+ --rs-dropdown-max-height: 16rem;
361
+ --rs-dropdown-disabled-opacity: 0.38;
362
+
363
+ /* Context menu。尺寸在此;颜色别名语义 token,随 data-rs-theme。挂到 body 须盖住 Dialog。 */
364
+ --rs-ctx-z: calc(var(--rs-z-modal) + 2);
365
+ --rs-ctx-min-width: 11rem;
366
+ --rs-ctx-max-width: 22rem;
367
+ --rs-ctx-pad: 5px;
368
+ --rs-ctx-radius: 10px;
369
+ --rs-ctx-item-height: 1.5rem;
370
+ --rs-ctx-item-radius: 6px;
371
+ --rs-ctx-font-size: var(--rs-font-size-xs);
372
+ --rs-ctx-icon-col: 28px;
373
+ --rs-ctx-disabled-opacity: 0.38;
374
+ --rs-ctx-motion-in: 0.13s;
375
+ --rs-ctx-motion-sub: 0.1s;
376
+ --rs-ctx-bg: var(--rs-surface-elevated);
377
+ --rs-ctx-fg: var(--rs-text-primary);
378
+ --rs-ctx-muted: var(--rs-text-tertiary);
379
+ --rs-ctx-border: var(--rs-border);
380
+ --rs-ctx-separator: var(--rs-border-subtle);
381
+ --rs-ctx-shadow: var(--rs-shadow-lg);
382
+ --rs-ctx-danger: var(--rs-danger);
383
+ --rs-ctx-item-active-bg: var(--rs-primary);
384
+ --rs-ctx-item-active-fg: var(--rs-primary-foreground);
385
+ --rs-ctx-item-active-muted: color-mix(in srgb, var(--rs-primary-foreground) 75%, transparent);
386
+
387
+ /* Popover(气泡卡片)。尺寸静态;颜色在主题块内。 */
388
+ --rs-popover-pad: 0.75rem;
389
+ --rs-popover-radius: var(--rs-radius-sm);
390
+ --rs-popover-font-size: var(--rs-font-size-sm);
391
+ --rs-popover-width-sm: 12rem;
392
+ --rs-popover-width-md: 16rem;
393
+ --rs-popover-width-lg: 22rem;
394
+ --rs-popover-width-auto-min: 10rem;
395
+ --rs-popover-title-gap: var(--rs-space-xs);
396
+ --rs-popover-shadow: var(--rs-shadow);
397
+
398
+ /*
399
+ * Anchor(页内目录)。颜色走主题 token 别名,随 data-rs-theme。
400
+ */
401
+ --rs-anchor-min-width: 8.5rem;
402
+ --rs-anchor-gap: 0.7rem;
403
+ --rs-anchor-rail-width: 2px;
404
+ --rs-anchor-indent: 0.75rem;
405
+ --rs-anchor-link-pad-block: 0.28rem;
406
+ --rs-anchor-link-pad-inline: 0.7rem;
407
+ --rs-anchor-affix-top: var(--rs-space-lg);
408
+ --rs-anchor-rail: color-mix(in srgb, var(--rs-border-subtle) 88%, var(--rs-text-secondary));
409
+ --rs-anchor-ink: var(--rs-primary);
410
+ --rs-anchor-ink-ring: color-mix(in srgb, var(--rs-primary) 18%, transparent);
411
+ --rs-anchor-link: var(--rs-text-secondary);
412
+ --rs-anchor-link-hover: var(--rs-text-primary);
413
+ --rs-anchor-link-active: var(--rs-primary);
414
+ --rs-anchor-link-active-weight: var(--rs-font-weight-semibold);
415
+ --rs-anchor-link-active-bg: color-mix(in srgb, var(--rs-primary) 10%, transparent);
416
+ --rs-anchor-disabled-opacity: 0.45;
417
+
418
+ /*
419
+ * Breadcrumb(跨页层级)。尺寸静态;颜色在主题块内,随 data-rs-theme。
420
+ */
421
+ --rs-breadcrumb-gap: var(--rs-space-xs);
422
+ --rs-breadcrumb-item-gap: var(--rs-space-xs);
423
+ --rs-breadcrumb-link-pad-block: calc(var(--rs-space-xs) / 2);
424
+ --rs-breadcrumb-link-pad-inline: var(--rs-space-xs);
425
+ --rs-breadcrumb-font-size: var(--rs-font-size-sm);
426
+ --rs-breadcrumb-current-weight: var(--rs-font-weight-medium);
427
+ --rs-breadcrumb-disabled-opacity: 0.45;
428
+
429
+ /*
430
+ * Steps(向导进度)。尺寸静态;颜色在主题块内,随 data-rs-theme。
431
+ */
432
+ --rs-steps-gap: var(--rs-space-md);
433
+ --rs-steps-item-gap: var(--rs-space-md);
434
+ --rs-steps-trigger-gap: var(--rs-space-sm);
435
+ --rs-steps-indicator-size-ssm: 1.25rem;
436
+ --rs-steps-indicator-size-sm: 1.5rem;
437
+ --rs-steps-indicator-size-md: 1.75rem;
438
+ --rs-steps-indicator-size-lg: 2rem;
439
+ --rs-steps-dot-size: 0.5rem;
440
+ --rs-steps-separator-size: 1px;
441
+ --rs-steps-separator-min: 1.5rem;
442
+ --rs-steps-title-weight: var(--rs-font-weight-semibold);
443
+ --rs-steps-disabled-opacity: 0.45;
444
+
445
+ /*
446
+ * Pagination(页码条)。尺寸静态;颜色在主题块内,随 data-rs-theme。
447
+ */
448
+ --rs-pagination-gap: var(--rs-space-sm);
449
+ --rs-pagination-item-gap: var(--rs-space-xs);
450
+ --rs-pagination-item-pad-inline: var(--rs-space-sm);
451
+ --rs-pagination-jumper-width: 3rem;
452
+ --rs-pagination-size-width: 7.25rem;
453
+ --rs-pagination-radius: var(--rs-radius-sm);
454
+ --rs-pagination-active-weight: var(--rs-font-weight-semibold);
455
+ --rs-pagination-disabled-opacity: 0.45;
456
+
457
+ /*
458
+ * Tabs(同级切换)。尺寸静态;颜色在主题块内,随 data-rs-theme。
459
+ */
460
+ --rs-tabs-trigger-gap: 0.375rem;
461
+ --rs-tabs-label-max: 12rem;
462
+ --rs-tabs-more-label-max: 7rem;
463
+ --rs-tabs-close-size: 1rem;
464
+ --rs-tabs-ink-size: 2px;
465
+ --rs-tabs-disabled-opacity: 0.38;
466
+ --rs-tabs-rail-min: 7rem;
467
+ --rs-tabs-rail-max: 14rem;
468
+ --rs-tabs-content-gap: 0px;
469
+
470
+ /*
471
+ * Sidebar(工作台侧栏)。尺寸静态;颜色在主题块内,随 data-rs-theme。
472
+ */
473
+ --rs-sidebar-width-sm: 14rem;
474
+ --rs-sidebar-width-md: 17rem;
475
+ --rs-sidebar-width-lg: 21rem;
476
+ --rs-sidebar-width-collapsed: 4rem;
477
+ --rs-sidebar-pad: var(--rs-space-md);
478
+ --rs-sidebar-body-pad: var(--rs-space-sm);
479
+ --rs-sidebar-gap: var(--rs-space-sm);
480
+ --rs-sidebar-group-gap: var(--rs-space-md);
481
+ --rs-sidebar-disabled-opacity: 0.38;
482
+
483
+ /*
484
+ * SplitPane(可拖分栏)。尺寸静态;颜色在主题块内,随 data-rs-theme。
485
+ */
486
+ --rs-split-resizer-size: 1px;
487
+ --rs-split-hit-slop: 4px;
488
+ --rs-split-grip-inline: 0.875rem;
489
+ --rs-split-grip-block: 1.5rem;
490
+ --rs-split-disabled-opacity: 0.5;
970
491
 
971
492
  /*
972
493
  * 表单标签(RsLabel / .rs-field__label 共用)
@@ -975,10 +496,94 @@ html {
975
496
  --rs-label-font-size: var(--rs-font-size-sm);
976
497
  --rs-label-font-weight: var(--rs-font-weight-medium);
977
498
  --rs-label-line-height: var(--rs-line-height-normal);
499
+ --rs-label-gap: var(--rs-space-xs);
500
+ --rs-label-mark-gap: calc(var(--rs-space-xs) / 2);
501
+ --rs-label-disabled-opacity: 0.5;
502
+
503
+ /*
504
+ * Fieldset(表单分区)。颜色走主题 token 的别名,随 data-rs-theme。
505
+ * Dialog / Drawer 可覆盖 --rs-fieldset-legend-bg,让 legend 盖住表面边框。
506
+ */
507
+ --rs-fieldset-radius: var(--rs-radius-sm);
508
+ --rs-fieldset-gap: var(--rs-space-md);
509
+ --rs-fieldset-gap-sm: var(--rs-space-sm);
510
+ --rs-fieldset-border: var(--rs-border);
511
+ --rs-fieldset-border-subtle: var(--rs-border-subtle);
512
+ --rs-fieldset-border-faded: color-mix(in srgb, var(--rs-border) 42%, transparent);
513
+ --rs-fieldset-border-invalid: var(--rs-danger);
514
+ --rs-fieldset-legend-bg: var(--rs-surface);
515
+ --rs-fieldset-title: var(--rs-text);
516
+ --rs-fieldset-title-strong: var(--rs-text-primary);
517
+ --rs-fieldset-title-muted: var(--rs-muted);
518
+ --rs-fieldset-hint: var(--rs-muted);
519
+ --rs-fieldset-error: var(--rs-danger);
520
+
521
+ /*
522
+ * Upload。颜色走主题 token 的别名,随 data-rs-theme。
523
+ * 尺寸档位在组件根上改 --rs-upload-dropzone-min-height / icon-box / card-size。
524
+ */
525
+ --rs-upload-gap: var(--rs-space-md);
526
+ --rs-upload-radius: var(--rs-radius);
527
+ --rs-upload-border: var(--rs-border);
528
+ --rs-upload-border-active: color-mix(in srgb, var(--rs-primary) 55%, var(--rs-border));
529
+ --rs-upload-bg: color-mix(in srgb, var(--rs-surface) 82%, var(--rs-bg));
530
+ --rs-upload-bg-active: color-mix(in srgb, var(--rs-primary) 6%, var(--rs-surface));
531
+ --rs-upload-dropzone-min-height-md: 8.5rem;
532
+ --rs-upload-icon-box-md: 3rem;
533
+ --rs-upload-card-size-md: 6.5rem;
534
+ --rs-upload-file-icon-size: 2rem;
535
+ --rs-upload-action-size: 1.75rem;
536
+ --rs-upload-disabled-opacity: 0.38;
537
+
538
+ /*
539
+ * CalendarGrid。颜色走主题 token 的别名,随 data-rs-theme。
540
+ * 格子高度跟 --rs-control-height-*,圆角由组件 radius 写入 --rs-calendar-grid-radius。
541
+ */
542
+ --rs-calendar-grid-gap: var(--rs-space-sm);
543
+ --rs-calendar-grid-cell-gap: calc(var(--rs-space-xs) / 2);
544
+ --rs-calendar-grid-week-col: var(--rs-control-height-sm);
545
+ --rs-calendar-grid-title: var(--rs-text-primary);
546
+ --rs-calendar-grid-nav: var(--rs-text-secondary);
547
+ --rs-calendar-grid-nav-hover: var(--rs-surface-hover);
548
+ --rs-calendar-grid-weekday: var(--rs-text-secondary);
549
+ --rs-calendar-grid-week: var(--rs-text-tertiary);
550
+ --rs-calendar-grid-day: var(--rs-text-primary);
551
+ --rs-calendar-grid-day-outside: var(--rs-text-tertiary);
552
+ --rs-calendar-grid-day-hover: var(--rs-item-hover);
553
+ --rs-calendar-grid-today: var(--rs-primary);
554
+ --rs-calendar-grid-selected: var(--rs-primary);
555
+ --rs-calendar-grid-selected-fg: var(--rs-primary-foreground);
556
+ --rs-calendar-grid-in-range: color-mix(in srgb, var(--rs-primary) 12%, transparent);
557
+ --rs-calendar-grid-disabled-opacity: 0.38;
978
558
 
979
559
  /* Lucide / 线性图标。品牌 mark 色在可选 niuma-ui/brand-icons.css */
980
560
  --rs-icon-color: currentColor;
981
561
 
562
+ /* 虚拟列表。超长时滚动条压缩,行本身仍是真实像素。 */
563
+ --rs-virtual-list-border: var(--rs-border-subtle);
564
+ --rs-virtual-list-bg: var(--rs-surface);
565
+ --rs-virtual-list-fg: var(--rs-text-primary);
566
+ --rs-virtual-list-accent: var(--rs-primary);
567
+ --rs-virtual-list-accent-width: 0.125rem;
568
+ --rs-virtual-list-active-bg: color-mix(in srgb, var(--rs-primary) 14%, var(--rs-surface));
569
+
570
+ /* Monaco。语法色继承 vs / vs-dark,表面色跟主题 token。 */
571
+ --rs-monaco-border: var(--rs-border);
572
+ --rs-monaco-bg: var(--rs-surface-elevated);
573
+ --rs-monaco-fg: var(--rs-text-primary);
574
+ --rs-monaco-gutter: var(--rs-surface);
575
+ --rs-monaco-gutter-fg: var(--rs-text-tertiary);
576
+ --rs-monaco-line-highlight: var(--rs-surface-hover);
577
+ --rs-monaco-selection: var(--rs-primary-container);
578
+ --rs-monaco-widget-bg: var(--rs-surface-elevated);
579
+ --rs-monaco-widget-border: var(--rs-border);
580
+ --rs-monaco-radius: var(--rs-radius);
581
+ --rs-monaco-padding: 0.5rem;
582
+ --rs-monaco-scrollbar-size: 0.5rem;
583
+ --rs-monaco-glyph-width: 1rem;
584
+ --rs-monaco-decoration-width: 0.25rem;
585
+ --rs-monaco-disabled-opacity: 0.72;
586
+
982
587
  /* macOS 风格原生滚动条(与 RsScrollbar 视觉一致) */
983
588
  --rs-scrollbar-size: 13px;
984
589
  --rs-scrollbar-padding: 2px;
@@ -1000,30 +605,29 @@ html {
1000
605
  --rs-surface-hover: #2e2e2e;
1001
606
  --rs-item-hover: rgb(255 255 255 / 0.08);
1002
607
 
1003
- /* ── Table(VS Code Dark Modern 列表/表格语义)──
1004
- * 灰阶斑马纹 + 主色选中(选中与条纹语义分离) */
608
+ /* ── Table:跟语义色,品牌覆盖 --rs-surface / --rs-text-primary 即生效 ── */
1005
609
  --rs-table-radius: var(--rs-radius-sm);
1006
- --rs-table-border: #2b2b2b;
1007
- --rs-table-cell-divider: #262626;
1008
- --rs-table-fg: #dddddd;
1009
- --rs-table-muted-fg: #9d9d9d;
1010
- --rs-table-bg: #1f1f1f;
1011
- --rs-table-bg-header: #1f1f1f;
1012
- --rs-table-body-bg: #1f1f1f;
1013
- --rs-table-header-bg: #1f1f1f;
1014
- --rs-table-header-fg: #f3f3f3;
610
+ --rs-table-border: var(--rs-border);
611
+ --rs-table-cell-divider: var(--rs-border);
612
+ --rs-table-fg: var(--rs-text-primary);
613
+ --rs-table-muted-fg: var(--rs-text-tertiary);
614
+ --rs-table-bg: var(--rs-surface);
615
+ --rs-table-bg-header: var(--rs-surface);
616
+ --rs-table-body-bg: var(--rs-surface);
617
+ --rs-table-header-bg: var(--rs-surface);
618
+ --rs-table-header-fg: var(--rs-text-primary);
1015
619
  --rs-table-header-weight: var(--rs-font-weight-semibold);
1016
620
  --rs-table-header-size: var(--rs-table-cell-size, var(--rs-font-size-xs));
1017
621
  --rs-table-cell-size: var(--rs-font-size-xs);
1018
- --rs-table-cell-weight: 400;
1019
- --rs-table-footer-bg: #1f1f1f;
1020
- --rs-table-group-bg: #2d2d2d;
1021
- --rs-table-expand-bg: #2d2d2d;
1022
- --rs-table-row-stripe: #2d2d2d;
1023
- --rs-table-row-hover: #363636;
622
+ --rs-table-cell-weight: var(--rs-font-weight-regular);
623
+ --rs-table-footer-bg: var(--rs-surface);
624
+ --rs-table-group-bg: var(--rs-surface-elevated);
625
+ --rs-table-expand-bg: var(--rs-surface-elevated);
626
+ --rs-table-row-stripe: color-mix(in srgb, var(--rs-text-primary) 6%, var(--rs-surface));
627
+ --rs-table-row-hover: var(--rs-item-hover);
1024
628
  --rs-table-row-selected: color-mix(in srgb, var(--rs-primary) 22%, var(--rs-table-body-bg));
1025
629
  --rs-table-row-selected-hover: color-mix(in srgb, var(--rs-primary) 30%, var(--rs-table-body-bg));
1026
- --rs-table-row-selected-fg: #ffffff;
630
+ --rs-table-row-selected-fg: var(--rs-text-primary);
1027
631
  --rs-table-row-selected-accent: var(--rs-primary);
1028
632
  --rs-table-row-highlight: color-mix(in srgb, var(--rs-primary) 12%, var(--rs-table-body-bg));
1029
633
  --rs-table-row-highlight-hover: color-mix(in srgb, var(--rs-primary) 18%, var(--rs-table-body-bg));
@@ -1032,10 +636,10 @@ html {
1032
636
  --rs-table-gutter-bg: color-mix(in srgb, var(--rs-border) 10%, var(--rs-table-header-bg));
1033
637
  --rs-table-gutter-border: var(--rs-table-cell-divider);
1034
638
  --rs-table-scrollbar-corner: var(--rs-table-bg-header);
1035
- --rs-table-checkbox-bg: #313131;
639
+ --rs-table-checkbox-bg: var(--rs-surface);
1036
640
  --rs-table-sort-active-fg: var(--rs-primary);
1037
641
  --rs-table-drop-indicator: var(--rs-primary);
1038
- --rs-table-resize-handle: #6e6e6e;
642
+ --rs-table-resize-handle: var(--rs-text-tertiary);
1039
643
  --rs-table-resize-handle-hover: var(--rs-primary);
1040
644
 
1041
645
  /* ── Tree(导航线 / 行选中 / 焦点;业务可覆盖)── */
@@ -1049,6 +653,9 @@ html {
1049
653
  --rs-tree-selected-focused-bg: color-mix(in srgb, var(--rs-primary) 16%, var(--rs-surface));
1050
654
  --rs-tree-selected-focused-ring: color-mix(in srgb, var(--rs-primary) 36%, transparent);
1051
655
  --rs-tree-drop-indicator: var(--rs-primary);
656
+ --rs-tree-drop-inside-bg: color-mix(in srgb, var(--rs-primary) 8%, transparent);
657
+ --rs-tree-highlight-bg: color-mix(in srgb, var(--rs-warning) 45%, transparent);
658
+ --rs-tree-check-fg: var(--rs-primary-foreground);
1052
659
 
1053
660
  /* VS Code 式抬升型输入底(比内容略亮),非 macOS 凹陷井 */
1054
661
  /* WCAG AA: input-border 3.18:1 vs #2b2b2b; border 3.24:1 vs #1f1f1f; placeholder 4.5:1 vs #2b2b2b */
@@ -1077,6 +684,60 @@ html {
1077
684
  --rs-muted: var(--rs-text-secondary);
1078
685
  --rs-placeholder: var(--rs-text-tertiary);
1079
686
  --rs-label-color: var(--rs-text-primary);
687
+ --rs-breadcrumb-link: var(--rs-text-secondary);
688
+ --rs-breadcrumb-link-hover: var(--rs-primary);
689
+ --rs-breadcrumb-link-hover-bg: var(--rs-surface-hover);
690
+ --rs-breadcrumb-current: var(--rs-text-primary);
691
+ --rs-breadcrumb-sep: var(--rs-text-secondary);
692
+ --rs-steps-title: var(--rs-text-secondary);
693
+ --rs-steps-title-active: var(--rs-text-primary);
694
+ --rs-steps-title-error: var(--rs-on-danger-container);
695
+ --rs-steps-description: var(--rs-text-secondary);
696
+ --rs-steps-wait-bg: var(--rs-surface-hover);
697
+ --rs-steps-wait-fg: var(--rs-text-secondary);
698
+ --rs-steps-process-bg: var(--rs-primary);
699
+ --rs-steps-process-fg: var(--rs-primary-foreground);
700
+ --rs-steps-finish-bg: var(--rs-primary);
701
+ --rs-steps-finish-fg: var(--rs-primary-foreground);
702
+ --rs-steps-error-bg: var(--rs-danger-container);
703
+ --rs-steps-error-fg: var(--rs-on-danger-container);
704
+ --rs-steps-separator: var(--rs-border);
705
+ --rs-steps-separator-finish: var(--rs-primary);
706
+ --rs-pagination-text: var(--rs-text-secondary);
707
+ --rs-pagination-item: var(--rs-text-primary);
708
+ --rs-pagination-item-hover: var(--rs-surface-hover);
709
+ --rs-pagination-item-active: var(--rs-primary);
710
+ --rs-pagination-ellipsis: var(--rs-text-secondary);
711
+ --rs-tabs-text: var(--rs-text-secondary);
712
+ --rs-tabs-text-hover: var(--rs-text-primary);
713
+ --rs-tabs-text-active: var(--rs-primary);
714
+ --rs-tabs-surface: var(--rs-surface);
715
+ --rs-tabs-border: var(--rs-border);
716
+ --rs-tabs-border-subtle: var(--rs-border-subtle);
717
+ --rs-tabs-ink: var(--rs-primary);
718
+ --rs-tabs-badge-bg: var(--rs-surface-hover);
719
+ --rs-tabs-badge-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
720
+ --rs-tabs-segmented-track: var(--rs-surface-hover);
721
+ --rs-sidebar-border: var(--rs-border-subtle);
722
+ --rs-sidebar-bg: color-mix(in srgb, var(--rs-surface) 88%, transparent);
723
+ --rs-sidebar-title: var(--rs-text-primary);
724
+ --rs-sidebar-subtitle: var(--rs-text-secondary);
725
+ --rs-sidebar-item: var(--rs-text-secondary);
726
+ --rs-sidebar-item-hover: var(--rs-text-primary);
727
+ --rs-sidebar-item-hover-bg: var(--rs-item-hover);
728
+ --rs-sidebar-item-active: var(--rs-primary);
729
+ --rs-sidebar-item-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
730
+ --rs-sidebar-badge: var(--rs-text-inverse);
731
+ --rs-sidebar-badge-bg: var(--rs-primary);
732
+ --rs-split-resizer: var(--rs-border-subtle);
733
+ --rs-split-resizer-hover: var(--rs-border);
734
+ --rs-split-resizer-active: var(--rs-primary);
735
+ --rs-split-grip-fg: var(--rs-text-tertiary);
736
+ --rs-split-grip-bg: var(--rs-surface-elevated);
737
+ --rs-split-grip-border: var(--rs-border);
738
+ --rs-split-grip-active-fg: var(--rs-primary-foreground);
739
+ --rs-split-grip-active-bg: var(--rs-primary);
740
+ --rs-split-grip-active-border: var(--rs-primary);
1080
741
  --rs-danger: #ff453a;
1081
742
  --rs-danger-container: #3b1210;
1082
743
  --rs-on-danger-container: #ff8a84;
@@ -1134,15 +795,41 @@ html {
1134
795
  --rs-dynamic-tags-gap: var(--rs-space-xs);
1135
796
  --rs-dynamic-tags-padding: var(--rs-space-xs);
1136
797
  --rs-dynamic-tags-trigger-border: var(--rs-border);
798
+ --rs-dynamic-tags-disabled-opacity: 0.38;
1137
799
 
1138
800
  /* ── Menu(侧栏 / 导航;业务可在父级覆盖,无需 :deep)── */
1139
- --rs-menu-item-fg: var(--rs-muted);
1140
- --rs-menu-item-fg-hover: var(--rs-text);
801
+ --rs-menu-item-fg: var(--rs-text-secondary);
802
+ --rs-menu-item-fg-hover: var(--rs-text-primary);
1141
803
  --rs-menu-item-bg-hover: var(--rs-surface-hover);
1142
804
  --rs-menu-item-active-fg: var(--rs-primary);
1143
805
  --rs-menu-item-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
1144
806
  --rs-menu-item-active-parent-fg: var(--rs-primary);
1145
807
  --rs-menu-item-active-parent-bg: transparent;
808
+ --rs-menu-group-label-fg: var(--rs-text-secondary);
809
+ --rs-menu-arrow-fg: var(--rs-text-tertiary);
810
+
811
+ /* ── Dropdown(命令菜单;随 data-rs-theme)── */
812
+ --rs-dropdown-fg: var(--rs-text-primary);
813
+ --rs-dropdown-fg-muted: var(--rs-text-secondary);
814
+ --rs-dropdown-fg-placeholder: var(--rs-text-tertiary);
815
+ --rs-dropdown-bg: var(--rs-surface-elevated);
816
+ --rs-dropdown-border: var(--rs-border);
817
+ --rs-dropdown-divider: var(--rs-border-subtle);
818
+ --rs-dropdown-trigger-bg: var(--rs-input-bg);
819
+ --rs-dropdown-trigger-border: var(--rs-input-border, var(--rs-border));
820
+ --rs-dropdown-trigger-border-hover: var(--rs-input-border-hover, var(--rs-border));
821
+ --rs-dropdown-trigger-shadow: var(--rs-input-shadow, none);
822
+ --rs-dropdown-item-hover: var(--rs-item-hover);
823
+ --rs-dropdown-item-active-fg: var(--rs-primary);
824
+ --rs-dropdown-item-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
825
+ --rs-dropdown-danger-fg: var(--rs-danger);
826
+
827
+ /* ── Popover(气泡卡片;随 data-rs-theme)── */
828
+ --rs-popover-fg: var(--rs-text-primary);
829
+ --rs-popover-fg-muted: var(--rs-text-secondary);
830
+ --rs-popover-bg: var(--rs-surface-elevated);
831
+ --rs-popover-border: var(--rs-border);
832
+ --rs-popover-title-fg: var(--rs-text-primary);
1146
833
 
1147
834
  /* ── Alert(反馈条;正文色可按主题单独调)── */
1148
835
  --rs-alert-radius: var(--rs-radius);
@@ -1150,15 +837,59 @@ html {
1150
837
  --rs-alert-padding-y: var(--rs-space-md);
1151
838
  --rs-alert-padding-x: var(--rs-space-lg);
1152
839
  --rs-alert-border-alpha: 35%;
1153
- --rs-alert-content-fg: var(--rs-muted);
840
+ --rs-alert-content-fg: var(--rs-text-secondary);
841
+ --rs-alert-content-alpha: 78%;
842
+
843
+ /* ── Loading(指示器;tone 在组件上改 --rs-loading-accent)── */
844
+ --rs-loading-gap: var(--rs-space-sm);
845
+ --rs-loading-pad: var(--rs-space-xl);
846
+ --rs-loading-label: var(--rs-text-secondary);
847
+ --rs-loading-track: color-mix(in srgb, var(--rs-text-tertiary) 35%, transparent);
848
+ --rs-loading-accent: var(--rs-primary);
849
+ --rs-loading-overlay: color-mix(in srgb, var(--rs-surface) 72%, transparent);
850
+ --rs-loading-skeleton: var(--rs-surface-hover);
851
+ --rs-loading-skeleton-shine: color-mix(in srgb, var(--rs-border) 55%, transparent);
852
+ --rs-loading-stroke: 2px;
853
+ --rs-loading-spinner-sm: 0.875rem;
854
+ --rs-loading-spinner-md: 1.125rem;
855
+ --rs-loading-spinner-lg: 1.5rem;
856
+ --rs-loading-dot-sm: 0.25rem;
857
+ --rs-loading-dot-md: 0.375rem;
858
+ --rs-loading-dot-lg: 0.5rem;
859
+ --rs-loading-skeleton-h-sm: 0.5rem;
860
+ --rs-loading-skeleton-h-md: 0.75rem;
861
+ --rs-loading-skeleton-h-lg: 1rem;
862
+ --rs-loading-z: 1;
863
+ --rs-loading-blur: 0.125rem;
864
+ --rs-loading-spin-duration: 0.7s;
865
+ --rs-loading-bounce-duration: 1s;
866
+ --rs-loading-shimmer-duration: 1.2s;
867
+
868
+ /* ── LoadingBar(顶栏进度;色跟语义 token,可被 color / errorColor 覆盖)── */
869
+ --rs-loading-bar-size: 2px;
870
+ --rs-loading-bar-color: var(--rs-primary);
871
+ --rs-loading-bar-error: var(--rs-danger);
1154
872
 
1155
873
  /* ── Descriptions(描述列表栅格)── */
1156
874
  --rs-descriptions-radius: var(--rs-radius);
1157
875
  --rs-descriptions-border: var(--rs-border);
876
+ --rs-descriptions-label-width: 7.5rem;
877
+ --rs-descriptions-title: var(--rs-text-primary);
1158
878
  /* 标签列用实色表面混合,避免 surface-hover 被桥成透明 overlay 时失效 */
1159
879
  --rs-descriptions-label-bg: color-mix(in srgb, var(--rs-surface-hover) 72%, var(--rs-surface));
1160
- --rs-descriptions-label-fg: var(--rs-muted);
1161
- --rs-descriptions-value-fg: var(--rs-text);
880
+ --rs-descriptions-label-fg: var(--rs-text-secondary);
881
+ --rs-descriptions-value-fg: var(--rs-text-primary);
882
+
883
+ /* ── CodeBlock(只读代码;外壳跟语义 token,深色语法仍用 oneDark)── */
884
+ --rs-code-block-bg: var(--rs-surface-elevated);
885
+ --rs-code-block-fg: var(--rs-text-primary);
886
+ --rs-code-block-muted: var(--rs-text-tertiary);
887
+ --rs-code-block-border: var(--rs-border-subtle);
888
+ --rs-code-block-bar-bg: color-mix(in srgb, var(--rs-surface-elevated) 80%, var(--rs-border) 20%);
889
+ --rs-code-block-gutter: color-mix(in srgb, var(--rs-surface-elevated) 85%, var(--rs-border) 15%);
890
+ --rs-code-block-highlight: color-mix(in srgb, var(--rs-primary) 14%, transparent);
891
+ --rs-code-block-max-height: 32rem;
892
+ --rs-code-block-transition: 120ms;
1162
893
 
1163
894
  /* ── Card(macOS grouped panel / inset 分组卡片)── */
1164
895
  --rs-card-border: #3a3a3a;
@@ -1180,6 +911,18 @@ html {
1180
911
  0 2px 6px rgb(0 0 0 / 0.28);
1181
912
  --rs-card-glass-bg: rgb(31 31 31 / 0.72);
1182
913
  --rs-card-glass-border: rgb(255 255 255 / 0.1);
914
+ --rs-card-grouped-bg: var(--rs-card-body-bg);
915
+ --rs-card-grouped-body-bg: var(--rs-card-body-bg);
916
+ --rs-card-grouped-filter: none;
917
+ --rs-card-header-inset: inset 0 1px 0 rgb(255 255 255 / 0.05);
918
+ --rs-card-glass-shadow:
919
+ 0 0 0 0.5px rgb(255 255 255 / 0.12),
920
+ 0 8px 24px rgb(0 0 0 / 0.12);
921
+ --rs-card-glass-shadow-elevated:
922
+ 0 0 0 0.5px rgb(255 255 255 / 0.14),
923
+ 0 12px 32px rgb(0 0 0 / 0.18);
924
+ --rs-card-glass-header-bg: rgb(255 255 255 / 0.04);
925
+ --rs-card-glass-header-inset: inset 0 1px 0 rgb(255 255 255 / 0.08);
1183
926
 
1184
927
  /* ── Terminal(macOS Terminal.app 风格:柔和 ANSI + 可读斑马纹)── */
1185
928
  --rs-terminal-shell-bg: #141416;
@@ -1225,6 +968,11 @@ html {
1225
968
  --rs-log-fatal: var(--rs-danger);
1226
969
  --rs-log-hit-bg: color-mix(in srgb, var(--rs-warning) 38%, var(--rs-log-bg));
1227
970
  --rs-log-hit-fg: var(--rs-log-fg);
971
+ --rs-log-accent: var(--rs-primary);
972
+ --rs-log-active-bg: color-mix(in srgb, var(--rs-primary) 12%, var(--rs-log-bg));
973
+ --rs-log-chrome-bg: color-mix(in srgb, var(--rs-log-bg) 88%, var(--rs-surface-hover));
974
+ --rs-log-chip-on-bg: color-mix(in srgb, var(--rs-primary) 14%, transparent);
975
+ --rs-log-chip-on-border: color-mix(in srgb, var(--rs-primary) 45%, var(--rs-log-border));
1228
976
 
1229
977
  --rs-shadow-sm: 0 1px 3px rgb(0 0 0 / 0.4);
1230
978
  --rs-shadow: 0 4px 16px rgb(0 0 0 / 0.45), 0 0 0 0.5px rgb(255 255 255 / 0.08);
@@ -1247,41 +995,41 @@ html {
1247
995
  --rs-surface-hover: #e8e8ed;
1248
996
  --rs-item-hover: rgb(0 0 0 / 0.05);
1249
997
 
1250
- /* ── Table(VS Code Light Modern 列表/表格语义)── */
998
+ /* ── Table:跟语义色。表头比表体略沉一档,仍不写死 hex ── */
1251
999
  --rs-table-radius: var(--rs-radius-sm);
1252
- --rs-table-border: #e5e5e5;
1253
- --rs-table-cell-divider: #e5e5e5;
1254
- --rs-table-fg: #333333;
1255
- --rs-table-muted-fg: #616161;
1256
- --rs-table-bg: #ffffff;
1257
- --rs-table-bg-header: #f8f8f8;
1258
- --rs-table-body-bg: #ffffff;
1259
- --rs-table-header-bg: #f8f8f8;
1260
- --rs-table-header-fg: #1a1a1a;
1000
+ --rs-table-border: var(--rs-border);
1001
+ --rs-table-cell-divider: var(--rs-border);
1002
+ --rs-table-fg: var(--rs-text-primary);
1003
+ --rs-table-muted-fg: var(--rs-text-tertiary);
1004
+ --rs-table-bg: var(--rs-surface);
1005
+ --rs-table-bg-header: color-mix(in srgb, var(--rs-text-primary) 3%, var(--rs-surface));
1006
+ --rs-table-body-bg: var(--rs-surface);
1007
+ --rs-table-header-bg: var(--rs-table-bg-header);
1008
+ --rs-table-header-fg: var(--rs-text-primary);
1261
1009
  --rs-table-header-weight: var(--rs-font-weight-semibold);
1262
1010
  --rs-table-header-size: var(--rs-table-cell-size, var(--rs-font-size-xs));
1263
1011
  --rs-table-cell-size: var(--rs-font-size-xs);
1264
- --rs-table-cell-weight: 400;
1265
- --rs-table-footer-bg: #f8f8f8;
1266
- --rs-table-group-bg: #f3f3f3;
1267
- --rs-table-expand-bg: #f3f3f3;
1268
- --rs-table-row-stripe: #f6f6f6;
1269
- --rs-table-row-hover: #f2f2f2;
1012
+ --rs-table-cell-weight: var(--rs-font-weight-regular);
1013
+ --rs-table-footer-bg: var(--rs-table-bg-header);
1014
+ --rs-table-group-bg: color-mix(in srgb, var(--rs-text-primary) 4%, var(--rs-surface));
1015
+ --rs-table-expand-bg: var(--rs-table-group-bg);
1016
+ --rs-table-row-stripe: color-mix(in srgb, var(--rs-text-primary) 3%, var(--rs-surface));
1017
+ --rs-table-row-hover: var(--rs-item-hover);
1270
1018
  --rs-table-row-selected: color-mix(in srgb, var(--rs-primary) 10%, var(--rs-table-body-bg));
1271
1019
  --rs-table-row-selected-hover: color-mix(in srgb, var(--rs-primary) 16%, var(--rs-table-body-bg));
1272
- --rs-table-row-selected-fg: var(--rs-text);
1020
+ --rs-table-row-selected-fg: var(--rs-text-primary);
1273
1021
  --rs-table-row-selected-accent: var(--rs-primary);
1274
1022
  --rs-table-row-highlight: color-mix(in srgb, var(--rs-primary) 8%, var(--rs-table-body-bg));
1275
1023
  --rs-table-row-highlight-hover: color-mix(in srgb, var(--rs-primary) 12%, var(--rs-table-body-bg));
1276
- --rs-table-row-highlight-fg: var(--rs-text);
1024
+ --rs-table-row-highlight-fg: var(--rs-text-primary);
1277
1025
  --rs-table-row-highlight-accent: color-mix(in srgb, var(--rs-primary) 45%, transparent);
1278
1026
  --rs-table-gutter-bg: color-mix(in srgb, var(--rs-border) 6%, var(--rs-table-header-bg));
1279
1027
  --rs-table-gutter-border: var(--rs-table-cell-divider);
1280
1028
  --rs-table-scrollbar-corner: var(--rs-table-bg-header);
1281
- --rs-table-checkbox-bg: #ffffff;
1029
+ --rs-table-checkbox-bg: var(--rs-surface);
1282
1030
  --rs-table-sort-active-fg: var(--rs-primary);
1283
1031
  --rs-table-drop-indicator: var(--rs-primary);
1284
- --rs-table-resize-handle: #8c8c8c;
1032
+ --rs-table-resize-handle: var(--rs-text-tertiary);
1285
1033
  --rs-table-resize-handle-hover: var(--rs-primary);
1286
1034
 
1287
1035
  /* ── Tree(导航线 / 行选中 / 焦点;业务可覆盖)── */
@@ -1295,6 +1043,9 @@ html {
1295
1043
  --rs-tree-selected-focused-bg: color-mix(in srgb, var(--rs-primary) 10%, var(--rs-surface));
1296
1044
  --rs-tree-selected-focused-ring: color-mix(in srgb, var(--rs-primary) 28%, transparent);
1297
1045
  --rs-tree-drop-indicator: var(--rs-primary);
1046
+ --rs-tree-drop-inside-bg: color-mix(in srgb, var(--rs-primary) 8%, transparent);
1047
+ --rs-tree-highlight-bg: color-mix(in srgb, var(--rs-warning) 45%, transparent);
1048
+ --rs-tree-check-fg: var(--rs-primary-foreground);
1298
1049
 
1299
1050
  /* macOS separator 风格:默认边框偏柔,focus 环承担可访问性反馈 */
1300
1051
  --rs-input-bg: #ffffff;
@@ -1322,6 +1073,60 @@ html {
1322
1073
  --rs-muted: var(--rs-text-secondary);
1323
1074
  --rs-placeholder: var(--rs-text-tertiary);
1324
1075
  --rs-label-color: var(--rs-text-primary);
1076
+ --rs-breadcrumb-link: var(--rs-text-secondary);
1077
+ --rs-breadcrumb-link-hover: var(--rs-primary);
1078
+ --rs-breadcrumb-link-hover-bg: var(--rs-surface-hover);
1079
+ --rs-breadcrumb-current: var(--rs-text-primary);
1080
+ --rs-breadcrumb-sep: var(--rs-text-secondary);
1081
+ --rs-steps-title: var(--rs-text-secondary);
1082
+ --rs-steps-title-active: var(--rs-text-primary);
1083
+ --rs-steps-title-error: var(--rs-on-danger-container);
1084
+ --rs-steps-description: var(--rs-text-secondary);
1085
+ --rs-steps-wait-bg: var(--rs-surface-hover);
1086
+ --rs-steps-wait-fg: var(--rs-text-secondary);
1087
+ --rs-steps-process-bg: var(--rs-primary);
1088
+ --rs-steps-process-fg: var(--rs-primary-foreground);
1089
+ --rs-steps-finish-bg: var(--rs-primary);
1090
+ --rs-steps-finish-fg: var(--rs-primary-foreground);
1091
+ --rs-steps-error-bg: var(--rs-danger-container);
1092
+ --rs-steps-error-fg: var(--rs-on-danger-container);
1093
+ --rs-steps-separator: var(--rs-border);
1094
+ --rs-steps-separator-finish: var(--rs-primary);
1095
+ --rs-pagination-text: var(--rs-text-secondary);
1096
+ --rs-pagination-item: var(--rs-text-primary);
1097
+ --rs-pagination-item-hover: var(--rs-surface-hover);
1098
+ --rs-pagination-item-active: var(--rs-primary);
1099
+ --rs-pagination-ellipsis: var(--rs-text-secondary);
1100
+ --rs-tabs-text: var(--rs-text-secondary);
1101
+ --rs-tabs-text-hover: var(--rs-text-primary);
1102
+ --rs-tabs-text-active: var(--rs-primary);
1103
+ --rs-tabs-surface: var(--rs-surface);
1104
+ --rs-tabs-border: var(--rs-border);
1105
+ --rs-tabs-border-subtle: var(--rs-border-subtle);
1106
+ --rs-tabs-ink: var(--rs-primary);
1107
+ --rs-tabs-badge-bg: var(--rs-surface-hover);
1108
+ --rs-tabs-badge-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
1109
+ --rs-tabs-segmented-track: var(--rs-surface-hover);
1110
+ --rs-sidebar-border: var(--rs-border-subtle);
1111
+ --rs-sidebar-bg: color-mix(in srgb, var(--rs-surface) 88%, transparent);
1112
+ --rs-sidebar-title: var(--rs-text-primary);
1113
+ --rs-sidebar-subtitle: var(--rs-text-secondary);
1114
+ --rs-sidebar-item: var(--rs-text-secondary);
1115
+ --rs-sidebar-item-hover: var(--rs-text-primary);
1116
+ --rs-sidebar-item-hover-bg: var(--rs-item-hover);
1117
+ --rs-sidebar-item-active: var(--rs-primary);
1118
+ --rs-sidebar-item-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
1119
+ --rs-sidebar-badge: var(--rs-text-inverse);
1120
+ --rs-sidebar-badge-bg: var(--rs-primary);
1121
+ --rs-split-resizer: var(--rs-border-subtle);
1122
+ --rs-split-resizer-hover: var(--rs-border);
1123
+ --rs-split-resizer-active: var(--rs-primary);
1124
+ --rs-split-grip-fg: var(--rs-text-tertiary);
1125
+ --rs-split-grip-bg: var(--rs-surface-elevated);
1126
+ --rs-split-grip-border: var(--rs-border);
1127
+ --rs-split-grip-active-fg: var(--rs-primary-foreground);
1128
+ --rs-split-grip-active-bg: var(--rs-primary);
1129
+ --rs-split-grip-active-border: var(--rs-primary);
1325
1130
  --rs-danger: #ff3b30;
1326
1131
  --rs-danger-container: #ffe5e3;
1327
1132
  --rs-on-danger-container: #c41e16;
@@ -1377,15 +1182,41 @@ html {
1377
1182
  --rs-dynamic-tags-gap: var(--rs-space-xs);
1378
1183
  --rs-dynamic-tags-padding: var(--rs-space-xs);
1379
1184
  --rs-dynamic-tags-trigger-border: var(--rs-border);
1185
+ --rs-dynamic-tags-disabled-opacity: 0.38;
1380
1186
 
1381
1187
  /* ── Menu(侧栏 / 导航;业务可在父级覆盖,无需 :deep)── */
1382
- --rs-menu-item-fg: var(--rs-muted);
1383
- --rs-menu-item-fg-hover: var(--rs-text);
1188
+ --rs-menu-item-fg: var(--rs-text-secondary);
1189
+ --rs-menu-item-fg-hover: var(--rs-text-primary);
1384
1190
  --rs-menu-item-bg-hover: var(--rs-surface-hover);
1385
1191
  --rs-menu-item-active-fg: var(--rs-primary);
1386
1192
  --rs-menu-item-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
1387
1193
  --rs-menu-item-active-parent-fg: var(--rs-primary);
1388
1194
  --rs-menu-item-active-parent-bg: transparent;
1195
+ --rs-menu-group-label-fg: var(--rs-text-secondary);
1196
+ --rs-menu-arrow-fg: var(--rs-text-tertiary);
1197
+
1198
+ /* ── Dropdown(命令菜单;随 data-rs-theme)── */
1199
+ --rs-dropdown-fg: var(--rs-text-primary);
1200
+ --rs-dropdown-fg-muted: var(--rs-text-secondary);
1201
+ --rs-dropdown-fg-placeholder: var(--rs-text-tertiary);
1202
+ --rs-dropdown-bg: var(--rs-surface-elevated);
1203
+ --rs-dropdown-border: var(--rs-border);
1204
+ --rs-dropdown-divider: var(--rs-border-subtle);
1205
+ --rs-dropdown-trigger-bg: var(--rs-input-bg);
1206
+ --rs-dropdown-trigger-border: var(--rs-input-border, var(--rs-border));
1207
+ --rs-dropdown-trigger-border-hover: var(--rs-input-border-hover, var(--rs-border));
1208
+ --rs-dropdown-trigger-shadow: var(--rs-input-shadow, none);
1209
+ --rs-dropdown-item-hover: var(--rs-item-hover);
1210
+ --rs-dropdown-item-active-fg: var(--rs-primary);
1211
+ --rs-dropdown-item-active-bg: color-mix(in srgb, var(--rs-primary) 12%, transparent);
1212
+ --rs-dropdown-danger-fg: var(--rs-danger);
1213
+
1214
+ /* ── Popover(气泡卡片;随 data-rs-theme)── */
1215
+ --rs-popover-fg: var(--rs-text-primary);
1216
+ --rs-popover-fg-muted: var(--rs-text-secondary);
1217
+ --rs-popover-bg: var(--rs-surface-elevated);
1218
+ --rs-popover-border: var(--rs-border);
1219
+ --rs-popover-title-fg: var(--rs-text-primary);
1389
1220
 
1390
1221
  /* ── Alert(反馈条;正文色可按主题单独调)── */
1391
1222
  --rs-alert-radius: var(--rs-radius);
@@ -1393,15 +1224,59 @@ html {
1393
1224
  --rs-alert-padding-y: var(--rs-space-md);
1394
1225
  --rs-alert-padding-x: var(--rs-space-lg);
1395
1226
  --rs-alert-border-alpha: 35%;
1396
- --rs-alert-content-fg: var(--rs-muted);
1227
+ --rs-alert-content-fg: var(--rs-text-secondary);
1228
+ --rs-alert-content-alpha: 78%;
1229
+
1230
+ /* ── Loading(指示器;tone 在组件上改 --rs-loading-accent)── */
1231
+ --rs-loading-gap: var(--rs-space-sm);
1232
+ --rs-loading-pad: var(--rs-space-xl);
1233
+ --rs-loading-label: var(--rs-text-secondary);
1234
+ --rs-loading-track: color-mix(in srgb, var(--rs-text-tertiary) 35%, transparent);
1235
+ --rs-loading-accent: var(--rs-primary);
1236
+ --rs-loading-overlay: color-mix(in srgb, var(--rs-surface) 72%, transparent);
1237
+ --rs-loading-skeleton: var(--rs-surface-hover);
1238
+ --rs-loading-skeleton-shine: color-mix(in srgb, var(--rs-border) 55%, transparent);
1239
+ --rs-loading-stroke: 2px;
1240
+ --rs-loading-spinner-sm: 0.875rem;
1241
+ --rs-loading-spinner-md: 1.125rem;
1242
+ --rs-loading-spinner-lg: 1.5rem;
1243
+ --rs-loading-dot-sm: 0.25rem;
1244
+ --rs-loading-dot-md: 0.375rem;
1245
+ --rs-loading-dot-lg: 0.5rem;
1246
+ --rs-loading-skeleton-h-sm: 0.5rem;
1247
+ --rs-loading-skeleton-h-md: 0.75rem;
1248
+ --rs-loading-skeleton-h-lg: 1rem;
1249
+ --rs-loading-z: 1;
1250
+ --rs-loading-blur: 0.125rem;
1251
+ --rs-loading-spin-duration: 0.7s;
1252
+ --rs-loading-bounce-duration: 1s;
1253
+ --rs-loading-shimmer-duration: 1.2s;
1254
+
1255
+ /* ── LoadingBar(顶栏进度;色跟语义 token,可被 color / errorColor 覆盖)── */
1256
+ --rs-loading-bar-size: 2px;
1257
+ --rs-loading-bar-color: var(--rs-primary);
1258
+ --rs-loading-bar-error: var(--rs-danger);
1397
1259
 
1398
1260
  /* ── Descriptions(描述列表栅格)── */
1399
1261
  --rs-descriptions-radius: var(--rs-radius);
1400
1262
  --rs-descriptions-border: var(--rs-border);
1263
+ --rs-descriptions-label-width: 7.5rem;
1264
+ --rs-descriptions-title: var(--rs-text-primary);
1401
1265
  /* 标签列用实色表面混合,避免 surface-hover 被桥成透明 overlay 时失效 */
1402
1266
  --rs-descriptions-label-bg: color-mix(in srgb, var(--rs-surface-hover) 72%, var(--rs-surface));
1403
- --rs-descriptions-label-fg: var(--rs-muted);
1404
- --rs-descriptions-value-fg: var(--rs-text);
1267
+ --rs-descriptions-label-fg: var(--rs-text-secondary);
1268
+ --rs-descriptions-value-fg: var(--rs-text-primary);
1269
+
1270
+ /* ── CodeBlock(只读代码;外壳跟语义 token,深色语法仍用 oneDark)── */
1271
+ --rs-code-block-bg: var(--rs-surface-elevated);
1272
+ --rs-code-block-fg: var(--rs-text-primary);
1273
+ --rs-code-block-muted: var(--rs-text-tertiary);
1274
+ --rs-code-block-border: var(--rs-border-subtle);
1275
+ --rs-code-block-bar-bg: color-mix(in srgb, var(--rs-surface-elevated) 80%, var(--rs-border) 20%);
1276
+ --rs-code-block-gutter: color-mix(in srgb, var(--rs-surface-elevated) 85%, var(--rs-border) 15%);
1277
+ --rs-code-block-highlight: color-mix(in srgb, var(--rs-primary) 14%, transparent);
1278
+ --rs-code-block-max-height: 32rem;
1279
+ --rs-code-block-transition: 120ms;
1405
1280
 
1406
1281
  /* ── Card(macOS systemGroupedBackground 上的圆角分组卡片)── */
1407
1282
  --rs-card-border: rgb(60 60 67 / 0.14);
@@ -1423,6 +1298,18 @@ html {
1423
1298
  0 2px 6px rgb(0 0 0 / 0.08);
1424
1299
  --rs-card-glass-bg: rgb(255 255 255 / 0.72);
1425
1300
  --rs-card-glass-border: rgb(255 255 255 / 0.55);
1301
+ --rs-card-grouped-bg: color-mix(in srgb, var(--rs-card-body-bg) 94%, transparent);
1302
+ --rs-card-grouped-body-bg: transparent;
1303
+ --rs-card-grouped-filter: blur(20px) saturate(150%);
1304
+ --rs-card-header-inset: inset 0 1px 0 rgb(255 255 255 / 0.75);
1305
+ --rs-card-glass-shadow:
1306
+ 0 0 0 0.5px rgb(255 255 255 / 0.6),
1307
+ 0 8px 24px rgb(0 0 0 / 0.08);
1308
+ --rs-card-glass-shadow-elevated:
1309
+ 0 0 0 0.5px rgb(255 255 255 / 0.7),
1310
+ 0 12px 32px rgb(0 0 0 / 0.1);
1311
+ --rs-card-glass-header-bg: rgb(255 255 255 / 0.35);
1312
+ --rs-card-glass-header-inset: inset 0 1px 0 rgb(255 255 255 / 0.8);
1426
1313
 
1427
1314
  /* ── Terminal(macOS Terminal.app 亮色:systemBackground + 浅灰斑马纹)── */
1428
1315
  --rs-terminal-shell-bg: #ececf0;
@@ -1466,6 +1353,11 @@ html {
1466
1353
  --rs-log-fatal: var(--rs-danger);
1467
1354
  --rs-log-hit-bg: color-mix(in srgb, var(--rs-warning) 32%, var(--rs-log-bg));
1468
1355
  --rs-log-hit-fg: var(--rs-log-fg);
1356
+ --rs-log-accent: var(--rs-primary);
1357
+ --rs-log-active-bg: color-mix(in srgb, var(--rs-primary) 12%, var(--rs-log-bg));
1358
+ --rs-log-chrome-bg: color-mix(in srgb, var(--rs-log-bg) 88%, var(--rs-surface-hover));
1359
+ --rs-log-chip-on-bg: color-mix(in srgb, var(--rs-primary) 14%, transparent);
1360
+ --rs-log-chip-on-border: color-mix(in srgb, var(--rs-primary) 45%, var(--rs-log-border));
1469
1361
 
1470
1362
  --rs-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.04), 0 0 0 0.5px rgb(0 0 0 / 0.04);
1471
1363
  --rs-shadow: 0 4px 16px rgb(0 0 0 / 0.08), 0 0 0 0.5px rgb(0 0 0 / 0.06);
@@ -1527,6 +1419,26 @@ html {
1527
1419
  --rs-shadow-sm: none;
1528
1420
  --rs-shadow: none;
1529
1421
  --rs-shadow-lg: none;
1422
+ --rs-card-border: CanvasText;
1423
+ --rs-card-separator: CanvasText;
1424
+ --rs-card-header-bg: Canvas;
1425
+ --rs-card-body-bg: Canvas;
1426
+ --rs-card-title-fg: CanvasText;
1427
+ --rs-card-description-fg: GrayText;
1428
+ --rs-card-shadow: none;
1429
+ --rs-card-shadow-elevated: none;
1430
+ --rs-card-filled-bg: Canvas;
1431
+ --rs-card-filled-elevated-shadow: none;
1432
+ --rs-card-glass-bg: Canvas;
1433
+ --rs-card-glass-border: CanvasText;
1434
+ --rs-card-grouped-bg: Canvas;
1435
+ --rs-card-grouped-body-bg: Canvas;
1436
+ --rs-card-grouped-filter: none;
1437
+ --rs-card-header-inset: none;
1438
+ --rs-card-glass-shadow: none;
1439
+ --rs-card-glass-shadow-elevated: none;
1440
+ --rs-card-glass-header-bg: Canvas;
1441
+ --rs-card-glass-header-inset: none;
1530
1442
  }
1531
1443
  }
1532
1444
 
@@ -1605,9 +1517,8 @@ code {
1605
1517
  z-index: calc(var(--rs-z-modal) + 2);
1606
1518
  box-sizing: border-box;
1607
1519
  width: max-content;
1608
- min-width: var(--reka-combobox-trigger-width, var(--reka-popper-anchor-width));
1520
+ min-width: var(--rs-select-trigger-width, 8rem);
1609
1521
  max-width: min(24rem, calc(100vw - 1rem));
1610
- max-height: var(--reka-combobox-content-available-height);
1611
1522
  overflow: hidden;
1612
1523
  display: flex;
1613
1524
  flex-direction: column;
@@ -1621,70 +1532,350 @@ code {
1621
1532
  }
1622
1533
 
1623
1534
  .rs-select__content--match-trigger {
1624
- width: var(--reka-combobox-trigger-width, var(--reka-popper-anchor-width));
1535
+ width: var(--rs-select-trigger-width);
1625
1536
  max-width: none;
1626
1537
  }
1627
1538
 
1628
- /* Popper 外层:默认允许随内容变宽;等宽模式锁死为触发器宽度 */
1629
- /* z-index 提升到 modal 之上,避免在 RsDialog 内被对话框遮挡 */
1630
- [data-reka-popper-content-wrapper]:has(> .rs-select__content) {
1539
+ /*
1540
+ * DatePicker 面板 Teleport 到 body,不能依赖触发器祖先上的自定义变量。
1541
+ * 尺寸默认写在面板自己身上;主题跟 data-rs-theme(深色岛复制到面板)。
1542
+ */
1543
+ .rs-date-picker__content {
1544
+ --rs-date-picker-single-w: 20rem;
1545
+ --rs-date-picker-range-w: 42rem;
1546
+ position: fixed;
1631
1547
  z-index: calc(var(--rs-z-modal) + 2);
1632
- width: max-content;
1633
- min-width: var(--reka-popper-anchor-width);
1634
- max-width: min(24rem, calc(100vw - 1rem));
1548
+ box-sizing: border-box;
1549
+ width: min(var(--rs-date-picker-single-w), calc(100vw - 2rem));
1550
+ padding: var(--rs-space-md);
1551
+ overflow: visible;
1552
+ overscroll-behavior: contain;
1553
+ border: 1px solid var(--rs-dialog-border, var(--rs-border));
1554
+ border-radius: var(--rs-date-picker-radius, var(--rs-radius));
1555
+ background: var(--rs-surface-elevated);
1556
+ box-shadow: var(--rs-shadow-lg);
1557
+ color: var(--rs-text);
1558
+ color-scheme: inherit;
1559
+ outline: none;
1635
1560
  }
1636
-
1637
- [data-reka-popper-content-wrapper]:has(> .rs-select__content--match-trigger) {
1638
- width: var(--reka-popper-anchor-width);
1639
- min-width: var(--reka-popper-anchor-width);
1640
- max-width: none;
1561
+ .rs-date-picker__content--range {
1562
+ width: min(var(--rs-date-picker-range-w), calc(100vw - 2rem));
1641
1563
  }
1642
-
1643
- [data-reka-popper-content-wrapper]:has(> .rs-date-picker__content) {
1644
- z-index: calc(var(--rs-z-modal) + 2);
1564
+ .rs-date-picker__panel {
1565
+ display: flex;
1566
+ flex-direction: column;
1567
+ gap: var(--rs-space-sm);
1568
+ overflow: visible;
1645
1569
  }
1646
-
1647
- /* ContextMenu:Dialog 内表格右键菜单 Portal 后须高于 modal */
1648
- [data-reka-popper-content-wrapper]:has(> .rs-context-menu__content),
1649
- [data-reka-popper-content-wrapper]:has(> .rs-context-menu__sub-content) {
1650
- z-index: calc(var(--rs-z-modal) + 2);
1570
+ .rs-date-picker__range-grid {
1571
+ display: grid;
1572
+ gap: var(--rs-space-md);
1651
1573
  }
1652
-
1653
- /* 日期面板内嵌时间选择:wrapper 也须高于日期面板,否则 portal 后仍被日历盖住 */
1654
- [data-reka-popper-content-wrapper]:has(> .rs-time-picker__content--embedded) {
1655
- z-index: calc(var(--rs-z-modal) + 3);
1574
+ @media (min-width: 40rem) {
1575
+ .rs-date-picker__range-grid {
1576
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1577
+ }
1656
1578
  }
1657
-
1658
- .rs-select__search-bar {
1659
- flex-shrink: 0;
1660
- padding: var(--rs-space-xs);
1661
- border-bottom: 1px solid var(--rs-border-subtle);
1662
- background: color-mix(in srgb, var(--rs-surface) 64%, transparent);
1579
+ .rs-date-picker__range-pane {
1580
+ display: flex;
1581
+ flex-direction: column;
1582
+ gap: var(--rs-space-sm);
1583
+ padding: var(--rs-space-sm);
1584
+ border: 1px solid var(--rs-border-subtle);
1585
+ border-radius: var(--rs-radius-sm);
1586
+ background: color-mix(in srgb, var(--rs-surface) 72%, transparent);
1663
1587
  }
1664
-
1665
- .rs-select__search-wrap {
1588
+ .rs-date-picker__pane-title {
1589
+ font-size: var(--rs-font-size-xs);
1590
+ font-weight: var(--rs-font-weight-semibold);
1591
+ color: var(--rs-muted);
1592
+ }
1593
+ .rs-date-picker__footer {
1594
+ position: relative;
1595
+ z-index: 1;
1666
1596
  display: flex;
1667
1597
  align-items: center;
1598
+ justify-content: space-between;
1668
1599
  gap: var(--rs-space-sm);
1669
- width: 100%;
1670
- min-height: var(--rs-control-height-sm);
1671
- box-sizing: border-box;
1672
- padding: 0 var(--rs-space-sm);
1673
- border: 1px solid var(--rs-input-border, var(--rs-border));
1674
- border-radius: var(--rs-radius-sm);
1675
- background: var(--rs-input-bg);
1676
- box-shadow: var(--rs-input-shadow, none);
1600
+ margin-block-start: var(--rs-space-xs);
1601
+ padding-block-start: var(--rs-space-md);
1602
+ border-block-start: 1px solid var(--rs-border-subtle);
1603
+ background: var(--rs-surface-elevated);
1604
+ }
1605
+ .rs-date-picker__footer-start {
1606
+ display: flex;
1607
+ flex: 1;
1608
+ align-items: center;
1609
+ min-width: 0;
1610
+ }
1611
+ .rs-date-picker__shortcuts {
1612
+ display: flex;
1613
+ flex-wrap: wrap;
1614
+ gap: var(--rs-space-xs);
1615
+ align-items: center;
1616
+ }
1617
+ .rs-date-picker__shortcut {
1618
+ padding: calc(var(--rs-space-xs) / 2) var(--rs-space-sm);
1619
+ border: 1px solid var(--rs-border);
1620
+ border-radius: var(--rs-radius-xs);
1621
+ background: transparent;
1622
+ color: var(--rs-text);
1623
+ font-size: var(--rs-font-size-xs);
1624
+ line-height: var(--rs-line-height-tight);
1625
+ cursor: pointer;
1677
1626
  transition:
1678
1627
  border-color var(--rs-transition-fast),
1679
- box-shadow var(--rs-transition-fast),
1628
+ color var(--rs-transition-fast),
1680
1629
  background var(--rs-transition-fast);
1681
1630
  }
1682
-
1683
- .rs-select__search-wrap:hover {
1684
- border-color: var(--rs-input-border-hover, var(--rs-border));
1631
+ .rs-date-picker__shortcut:hover:not(:disabled) {
1632
+ border-color: var(--rs-primary);
1633
+ color: var(--rs-primary);
1634
+ background: color-mix(in srgb, var(--rs-primary) 8%, transparent);
1685
1635
  }
1686
-
1687
- .rs-select__search-wrap:focus-within {
1636
+ .rs-date-picker__shortcut:disabled {
1637
+ opacity: var(--rs-date-picker-disabled-opacity, 0.38);
1638
+ cursor: not-allowed;
1639
+ }
1640
+ .rs-date-picker__link {
1641
+ border: 0;
1642
+ background: transparent;
1643
+ color: var(--rs-primary);
1644
+ font-size: var(--rs-font-size-xs);
1645
+ cursor: pointer;
1646
+ }
1647
+ .rs-date-picker__link:hover {
1648
+ text-decoration: underline;
1649
+ }
1650
+ .rs-date-picker__actions {
1651
+ display: inline-flex;
1652
+ align-items: center;
1653
+ gap: var(--rs-space-xs);
1654
+ }
1655
+ .rs-date-picker__ghost,
1656
+ .rs-date-picker__confirm {
1657
+ border: 0;
1658
+ border-radius: var(--rs-radius-sm);
1659
+ padding: var(--rs-space-xs) var(--rs-space-sm);
1660
+ font-size: var(--rs-font-size-xs);
1661
+ cursor: pointer;
1662
+ }
1663
+ .rs-date-picker__ghost {
1664
+ background: transparent;
1665
+ color: var(--rs-muted);
1666
+ }
1667
+ .rs-date-picker__ghost:hover {
1668
+ background: var(--rs-surface-hover);
1669
+ color: var(--rs-text);
1670
+ }
1671
+ .rs-date-picker__confirm {
1672
+ background: var(--rs-primary);
1673
+ color: var(--rs-primary-foreground);
1674
+ }
1675
+ .rs-date-picker__confirm:hover:not(:disabled) {
1676
+ opacity: 0.92;
1677
+ }
1678
+ .rs-date-picker__confirm:disabled {
1679
+ opacity: var(--rs-date-picker-disabled-opacity, 0.38);
1680
+ cursor: not-allowed;
1681
+ }
1682
+ .rs-date-picker__time-row {
1683
+ position: relative;
1684
+ z-index: 1;
1685
+ display: flex;
1686
+ align-items: center;
1687
+ gap: var(--rs-space-sm);
1688
+ padding-block-start: var(--rs-space-sm);
1689
+ border-block-start: 1px solid var(--rs-border-subtle);
1690
+ background: var(--rs-surface-elevated);
1691
+ }
1692
+ .rs-date-picker__time-label {
1693
+ flex-shrink: 0;
1694
+ font-size: var(--rs-font-size-xs);
1695
+ font-weight: var(--rs-font-weight-medium);
1696
+ color: var(--rs-muted);
1697
+ }
1698
+ .rs-date-picker__time-picker {
1699
+ flex: 1;
1700
+ min-width: 0;
1701
+ }
1702
+
1703
+ /* ContextMenu:Dialog 内表格右键菜单 Portal 后须高于 modal */
1704
+ [data-reka-popper-content-wrapper]:has(> .rs-context-menu__content),
1705
+ [data-reka-popper-content-wrapper]:has(> .rs-context-menu__sub-content) {
1706
+ z-index: calc(var(--rs-z-modal) + 2);
1707
+ }
1708
+
1709
+ /*
1710
+ * TimePicker 面板 Teleport 到 body。
1711
+ * 独立面板跟 DatePicker 同一档(modal+2);嵌在日期面板里再高一档。
1712
+ */
1713
+ .rs-time-picker__content {
1714
+ --rs-time-picker-single-w: 18rem;
1715
+ --rs-time-picker-range-w: 28rem;
1716
+ position: fixed;
1717
+ z-index: calc(var(--rs-z-modal) + 2);
1718
+ box-sizing: border-box;
1719
+ width: min(var(--rs-time-picker-single-w), calc(100vw - 2rem));
1720
+ padding: var(--rs-space-md);
1721
+ overflow: visible;
1722
+ overscroll-behavior: contain;
1723
+ border: 1px solid var(--rs-dialog-border, var(--rs-border));
1724
+ border-radius: var(--rs-time-picker-radius, var(--rs-radius));
1725
+ background: var(--rs-surface-elevated);
1726
+ box-shadow: var(--rs-shadow-lg);
1727
+ color: var(--rs-text);
1728
+ color-scheme: inherit;
1729
+ outline: none;
1730
+ }
1731
+ .rs-time-picker__content--range {
1732
+ width: min(var(--rs-time-picker-range-w), calc(100vw - 2rem));
1733
+ }
1734
+ .rs-time-picker__content--embedded {
1735
+ z-index: calc(var(--rs-z-modal) + 3);
1736
+ }
1737
+ .rs-time-picker__panel {
1738
+ display: flex;
1739
+ flex-direction: column;
1740
+ gap: var(--rs-space-sm);
1741
+ }
1742
+ .rs-time-picker__range-grid {
1743
+ display: grid;
1744
+ gap: var(--rs-space-md);
1745
+ }
1746
+ @media (min-width: 40rem) {
1747
+ .rs-time-picker__range-grid {
1748
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1749
+ }
1750
+ }
1751
+ .rs-time-picker__range-pane {
1752
+ display: flex;
1753
+ min-width: 0;
1754
+ flex-direction: column;
1755
+ gap: var(--rs-space-sm);
1756
+ padding: var(--rs-space-sm);
1757
+ border: 1px solid var(--rs-border-subtle);
1758
+ border-radius: var(--rs-radius-sm);
1759
+ background: color-mix(in srgb, var(--rs-surface) 72%, transparent);
1760
+ }
1761
+ .rs-time-picker__pane-title {
1762
+ font-size: var(--rs-font-size-xs);
1763
+ font-weight: var(--rs-font-weight-semibold);
1764
+ color: var(--rs-muted);
1765
+ }
1766
+ .rs-time-picker__footer {
1767
+ display: flex;
1768
+ align-items: center;
1769
+ justify-content: space-between;
1770
+ gap: var(--rs-space-sm);
1771
+ margin-block-start: var(--rs-space-xs);
1772
+ padding-block-start: var(--rs-space-md);
1773
+ border-block-start: 1px solid var(--rs-border-subtle);
1774
+ }
1775
+ .rs-time-picker__footer-start {
1776
+ display: flex;
1777
+ flex: 1;
1778
+ align-items: center;
1779
+ min-width: 0;
1780
+ }
1781
+ .rs-time-picker__shortcuts {
1782
+ display: flex;
1783
+ flex-wrap: wrap;
1784
+ gap: var(--rs-space-xs);
1785
+ align-items: center;
1786
+ }
1787
+ .rs-time-picker__shortcut {
1788
+ padding: calc(var(--rs-space-xs) / 2) var(--rs-space-sm);
1789
+ border: 1px solid var(--rs-border);
1790
+ border-radius: var(--rs-radius-xs);
1791
+ background: transparent;
1792
+ color: var(--rs-text);
1793
+ font-size: var(--rs-font-size-xs);
1794
+ line-height: var(--rs-line-height-tight);
1795
+ cursor: pointer;
1796
+ }
1797
+ .rs-time-picker__shortcut:hover:not(:disabled) {
1798
+ border-color: var(--rs-primary);
1799
+ color: var(--rs-primary);
1800
+ background: color-mix(in srgb, var(--rs-primary) 8%, transparent);
1801
+ }
1802
+ .rs-time-picker__shortcut:disabled {
1803
+ opacity: var(--rs-time-picker-disabled-opacity, 0.38);
1804
+ cursor: not-allowed;
1805
+ }
1806
+ .rs-time-picker__link {
1807
+ border: 0;
1808
+ background: transparent;
1809
+ color: var(--rs-primary);
1810
+ font-size: var(--rs-font-size-xs);
1811
+ cursor: pointer;
1812
+ }
1813
+ .rs-time-picker__link:hover {
1814
+ text-decoration: underline;
1815
+ }
1816
+ .rs-time-picker__actions {
1817
+ display: inline-flex;
1818
+ align-items: center;
1819
+ gap: var(--rs-space-xs);
1820
+ }
1821
+ .rs-time-picker__ghost,
1822
+ .rs-time-picker__confirm {
1823
+ border: 0;
1824
+ border-radius: var(--rs-radius-sm);
1825
+ padding: var(--rs-space-xs) var(--rs-space-sm);
1826
+ font-size: var(--rs-font-size-xs);
1827
+ cursor: pointer;
1828
+ }
1829
+ .rs-time-picker__ghost {
1830
+ background: transparent;
1831
+ color: var(--rs-muted);
1832
+ }
1833
+ .rs-time-picker__ghost:hover {
1834
+ background: var(--rs-surface-hover);
1835
+ color: var(--rs-text);
1836
+ }
1837
+ .rs-time-picker__confirm {
1838
+ background: var(--rs-primary);
1839
+ color: var(--rs-primary-foreground);
1840
+ }
1841
+ .rs-time-picker__confirm:hover:not(:disabled) {
1842
+ opacity: 0.92;
1843
+ }
1844
+ .rs-time-picker__confirm:disabled {
1845
+ opacity: var(--rs-time-picker-disabled-opacity, 0.38);
1846
+ cursor: not-allowed;
1847
+ }
1848
+
1849
+ .rs-select__search-bar {
1850
+ flex-shrink: 0;
1851
+ padding: var(--rs-space-xs);
1852
+ border-bottom: 1px solid var(--rs-border-subtle);
1853
+ background: color-mix(in srgb, var(--rs-surface) 64%, transparent);
1854
+ }
1855
+
1856
+ .rs-select__search-wrap {
1857
+ display: flex;
1858
+ align-items: center;
1859
+ gap: var(--rs-space-sm);
1860
+ width: 100%;
1861
+ min-height: var(--rs-control-height-sm);
1862
+ box-sizing: border-box;
1863
+ padding: 0 var(--rs-space-sm);
1864
+ border: 1px solid var(--rs-input-border, var(--rs-border));
1865
+ border-radius: var(--rs-radius-sm);
1866
+ background: var(--rs-input-bg);
1867
+ box-shadow: var(--rs-input-shadow, none);
1868
+ transition:
1869
+ border-color var(--rs-transition-fast),
1870
+ box-shadow var(--rs-transition-fast),
1871
+ background var(--rs-transition-fast);
1872
+ }
1873
+
1874
+ .rs-select__search-wrap:hover {
1875
+ border-color: var(--rs-input-border-hover, var(--rs-border));
1876
+ }
1877
+
1878
+ .rs-select__search-wrap:focus-within {
1688
1879
  border-color: var(--rs-focus-border, var(--rs-primary));
1689
1880
  background: var(--rs-input-bg);
1690
1881
  box-shadow:
@@ -1741,10 +1932,7 @@ code {
1741
1932
 
1742
1933
  .rs-select__viewport {
1743
1934
  overflow-y: auto;
1744
- max-height: min(
1745
- var(--rs-select-list-height, 256px),
1746
- var(--reka-combobox-content-available-height, 256px)
1747
- );
1935
+ max-height: var(--rs-select-list-height, 256px);
1748
1936
  padding: 0 var(--rs-space-xs) var(--rs-space-xs);
1749
1937
  }
1750
1938
 
@@ -1827,8 +2015,12 @@ code {
1827
2015
  color: var(--rs-primary);
1828
2016
  }
1829
2017
 
1830
- /* 虚拟列表项由 Reka 绝对定位,需显式拉满宽度 */
1831
- [data-reka-virtualizer] .rs-select__item {
2018
+ .rs-select__virtual {
2019
+ position: relative;
2020
+ width: 100%;
2021
+ }
2022
+
2023
+ .rs-select__virtual .rs-select__item {
1832
2024
  width: 100%;
1833
2025
  }
1834
2026
 
@@ -1846,6 +2038,16 @@ code {
1846
2038
  cursor: not-allowed;
1847
2039
  }
1848
2040
 
2041
+ @media (hover: hover) {
2042
+ .rs-select__item:hover:not([data-disabled]) {
2043
+ background: var(--rs-item-hover);
2044
+ }
2045
+
2046
+ .rs-select__item[data-state='checked']:hover:not([data-disabled]) {
2047
+ background: color-mix(in srgb, var(--rs-primary) 18%, transparent);
2048
+ }
2049
+ }
2050
+
1849
2051
  /* 面板 Portal 在 body,尺寸只能跟 content 档位,不能跟 .rs-select--sm */
1850
2052
  .rs-select__content--sm .rs-select__item,
1851
2053
  .rs-select__content--ssm .rs-select__item {
@@ -1903,164 +2105,92 @@ code {
1903
2105
  padding-top: 0.25rem;
1904
2106
  }
1905
2107
 
1906
- .rs-auto-complete {
1907
- position: relative;
1908
- display: inline-flex;
1909
- align-items: center;
1910
- width: 100%;
1911
- max-width: 100%;
1912
- box-sizing: border-box;
1913
- vertical-align: middle;
1914
- }
1915
-
1916
- .rs-auto-complete__input {
2108
+ /*
2109
+ * TreeSelect 面板 Teleport 到 body,不能依赖触发器祖先上的自定义变量。
2110
+ * 尺寸默认写在面板自己身上;主题跟 data-rs-theme(深色岛复制到面板)。
2111
+ */
2112
+ .rs-tree-select__panel {
2113
+ --rs-tree-select-min-width: 12rem;
2114
+ --rs-tree-select-panel-max-h: 18rem;
2115
+ z-index: calc(var(--rs-z-modal) + 2);
1917
2116
  box-sizing: border-box;
1918
- width: 100%;
1919
- height: var(--rs-control-height-md);
1920
- padding: 0 var(--rs-space-md);
1921
- border: 1px solid var(--rs-input-border, var(--rs-border));
1922
- border-radius: var(--rs-select-radius, var(--rs-radius-sm));
1923
- background: var(--rs-input-bg);
2117
+ min-width: var(--rs-tree-select-min-width);
2118
+ max-width: min(24rem, calc(100vw - 1rem));
2119
+ padding: var(--rs-space-xs);
2120
+ overflow: hidden;
2121
+ border: 1px solid var(--rs-dialog-border, var(--rs-border));
2122
+ border-radius: var(--rs-tree-select-radius, var(--rs-radius));
2123
+ background: var(--rs-surface-elevated);
2124
+ box-shadow: var(--rs-shadow-lg);
1924
2125
  color: var(--rs-text);
1925
- font-family: inherit;
2126
+ color-scheme: inherit;
1926
2127
  font-size: var(--rs-font-size-sm);
1927
2128
  line-height: var(--rs-line-height-tight);
1928
2129
  outline: none;
1929
- box-shadow: var(--rs-input-shadow, none);
1930
- transition:
1931
- border-color var(--rs-transition-fast),
1932
- box-shadow var(--rs-transition-fast),
1933
- background var(--rs-transition-fast);
1934
- }
1935
-
1936
- .rs-auto-complete--sm .rs-auto-complete__input {
1937
- height: var(--rs-control-height-sm);
1938
- padding: 0 var(--rs-space-sm);
1939
- font-size: var(--rs-font-size-xs);
1940
- }
1941
-
1942
- .rs-auto-complete--lg .rs-auto-complete__input {
1943
- height: var(--rs-control-height-lg);
1944
- padding: 0 var(--rs-space-lg);
1945
- font-size: var(--rs-font-size-base);
1946
2130
  }
1947
2131
 
1948
- .rs-auto-complete--clearable .rs-auto-complete__input {
1949
- padding-inline-end: calc(var(--rs-space-md) + 1.25rem);
1950
- }
1951
-
1952
- .rs-auto-complete__input::placeholder {
1953
- color: var(--rs-placeholder);
1954
- }
1955
-
1956
- .rs-auto-complete__input:hover:not(:disabled) {
1957
- border-color: var(--rs-input-border-hover, var(--rs-border));
2132
+ .rs-tree-select__panel--match-trigger {
2133
+ width: var(--rs-tree-select-trigger-width);
2134
+ max-width: none;
1958
2135
  }
1959
2136
 
1960
- .rs-auto-complete__input:focus {
1961
- border-color: var(--rs-focus-border, var(--rs-primary));
1962
- background: var(--rs-input-bg);
1963
- box-shadow:
1964
- var(--rs-input-shadow, none),
1965
- 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
2137
+ .rs-tree-select__header,
2138
+ .rs-tree-select__footer {
2139
+ padding: var(--rs-space-xs) var(--rs-space-sm);
2140
+ color: var(--rs-text-secondary);
2141
+ font-size: var(--rs-font-size-xs);
1966
2142
  }
1967
2143
 
1968
- .rs-auto-complete__input:disabled {
1969
- opacity: 0.38;
1970
- cursor: not-allowed;
1971
- background: var(--rs-surface-hover);
2144
+ .rs-tree-select__search-wrap {
2145
+ position: relative;
2146
+ margin-block-end: var(--rs-space-xs);
1972
2147
  }
1973
2148
 
1974
- .rs-auto-complete__clear {
2149
+ .rs-tree-select__search-icon {
1975
2150
  position: absolute;
1976
- top: 50%;
1977
- inset-inline-end: var(--rs-space-sm);
1978
- display: inline-flex;
1979
- align-items: center;
1980
- justify-content: center;
1981
- width: 1.25rem;
1982
- height: 1.25rem;
1983
- padding: 0;
1984
- border: 0;
1985
- border-radius: var(--rs-radius-xs);
1986
- background: transparent;
1987
- color: var(--rs-muted);
2151
+ inset-block-start: 50%;
2152
+ inset-inline-start: var(--rs-space-sm);
2153
+ color: var(--rs-text-tertiary);
1988
2154
  transform: translateY(-50%);
1989
- cursor: pointer;
1990
- }
1991
-
1992
- .rs-auto-complete__clear:hover {
1993
- color: var(--rs-text);
1994
- background: var(--rs-item-hover);
2155
+ pointer-events: none;
1995
2156
  }
1996
2157
 
1997
- .rs-auto-complete__list {
1998
- z-index: calc(var(--rs-z-modal) + 2);
2158
+ .rs-tree-select__search {
1999
2159
  box-sizing: border-box;
2000
- min-width: 8rem;
2001
- max-width: min(24rem, calc(100vw - 1rem));
2002
- max-height: 16rem;
2003
- margin: 0;
2004
- padding: var(--rs-space-xs);
2005
- overflow: auto;
2006
- border: 1px solid var(--rs-dialog-border, var(--rs-border));
2007
- border-radius: var(--rs-radius);
2008
- background: var(--rs-surface-elevated);
2009
- box-shadow: var(--rs-shadow-lg);
2010
- color: var(--rs-text);
2011
- font-size: var(--rs-font-size-sm);
2012
- line-height: var(--rs-line-height-tight);
2013
- list-style: none;
2014
- }
2015
-
2016
- .rs-auto-complete__label {
2017
- flex: 1;
2018
- min-width: 0;
2019
- overflow: hidden;
2020
- text-overflow: ellipsis;
2021
- white-space: nowrap;
2022
- }
2023
-
2024
- .rs-auto-complete__item {
2025
- display: flex;
2026
- align-items: center;
2027
2160
  width: 100%;
2028
- box-sizing: border-box;
2029
- padding: var(--rs-space-sm) var(--rs-space-md);
2161
+ height: var(--rs-control-height-sm);
2162
+ padding-block: 0;
2163
+ padding-inline: calc(var(--rs-space-sm) + 1rem) var(--rs-space-sm);
2164
+ border: 1px solid var(--rs-input-border, var(--rs-border));
2030
2165
  border-radius: var(--rs-radius-sm);
2166
+ background: var(--rs-input-bg);
2031
2167
  color: var(--rs-text);
2168
+ font: inherit;
2032
2169
  font-size: var(--rs-font-size-sm);
2033
- line-height: var(--rs-line-height-tight);
2034
- cursor: pointer;
2035
- user-select: none;
2036
- transition:
2037
- background var(--rs-transition-fast),
2038
- color var(--rs-transition-fast);
2170
+ box-shadow: var(--rs-input-shadow, none);
2039
2171
  }
2040
2172
 
2041
- .rs-auto-complete__item--active,
2042
- .rs-auto-complete__item:hover:not(.rs-auto-complete__item--disabled) {
2043
- background: var(--rs-item-hover);
2173
+ .rs-tree-select__search::placeholder {
2174
+ color: var(--rs-placeholder);
2044
2175
  }
2045
2176
 
2046
- .rs-auto-complete__item--disabled {
2047
- opacity: 0.38;
2048
- cursor: not-allowed;
2177
+ .rs-tree-select__search:focus-visible {
2178
+ outline: none;
2179
+ border-color: var(--rs-focus-border, var(--rs-primary));
2180
+ box-shadow:
2181
+ var(--rs-input-shadow, none),
2182
+ 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
2049
2183
  }
2050
2184
 
2051
- .rs-auto-complete__empty {
2052
- padding: var(--rs-space-md);
2053
- color: var(--rs-muted);
2054
- font-size: var(--rs-font-size-sm);
2055
- text-align: center;
2185
+ .rs-tree-select__tree {
2186
+ max-height: var(--rs-tree-select-panel-max-h);
2187
+ overflow: auto;
2056
2188
  }
2057
2189
 
2058
- .rs-auto-complete__mark {
2059
- padding: 0;
2060
- background: color-mix(in srgb, var(--rs-primary) 22%, transparent);
2061
- color: inherit;
2062
- font-weight: var(--rs-font-weight-medium);
2063
- border-radius: 0.125rem;
2190
+ .rs-tree-select__tree--virtual {
2191
+ height: var(--rs-tree-select-list-height, 256px);
2192
+ max-height: var(--rs-tree-select-list-height, 256px);
2193
+ overflow: hidden;
2064
2194
  }
2065
2195
 
2066
2196
  .rs-field {
@@ -2092,7 +2222,7 @@ code {
2092
2222
  display: inline-flex;
2093
2223
  align-items: center;
2094
2224
  flex-wrap: nowrap;
2095
- gap: 0.25rem;
2225
+ gap: var(--rs-label-gap);
2096
2226
  color: var(--rs-label-color);
2097
2227
  font-size: var(--rs-label-font-size);
2098
2228
  font-weight: var(--rs-label-font-weight);
@@ -2163,106 +2293,3 @@ code {
2163
2293
  opacity: 0.38;
2164
2294
  cursor: not-allowed;
2165
2295
  }
2166
-
2167
- /* vue-sonner 结构样式已在文件顶部 import;外观由 .rs-toast* 接管 */
2168
-
2169
- [data-sonner-toaster].rs-toaster {
2170
- z-index: var(--rs-z-toast);
2171
- font-family: inherit;
2172
- }
2173
-
2174
- .rs-toast {
2175
- display: flex;
2176
- align-items: center;
2177
- gap: var(--rs-space-sm);
2178
- position: relative;
2179
- min-width: 18rem;
2180
- max-width: min(28rem, calc(100vw - 2rem));
2181
- padding: var(--rs-space-md) var(--rs-space-lg);
2182
- border: 1px solid var(--rs-border);
2183
- border-radius: var(--rs-radius);
2184
- background: var(--rs-surface-elevated);
2185
- color: var(--rs-text);
2186
- box-shadow: var(--rs-shadow-lg);
2187
- }
2188
-
2189
- .rs-toast:has([data-description]) {
2190
- align-items: flex-start;
2191
- }
2192
-
2193
- .rs-toast [data-icon] {
2194
- display: flex;
2195
- flex-shrink: 0;
2196
- align-items: center;
2197
- margin: 0;
2198
- }
2199
-
2200
- .rs-toast:has([data-description]) [data-icon] {
2201
- margin-top: 0.125rem;
2202
- }
2203
-
2204
- .rs-toast [data-content] {
2205
- flex: 1;
2206
- min-width: 0;
2207
- display: grid;
2208
- gap: var(--rs-space-xs);
2209
- }
2210
-
2211
- .rs-toast--success {
2212
- border-color: color-mix(in srgb, var(--rs-success) 35%, var(--rs-border));
2213
- }
2214
-
2215
- .rs-toast--error {
2216
- border-color: color-mix(in srgb, var(--rs-danger) 35%, var(--rs-border));
2217
- }
2218
-
2219
- .rs-toast--warning {
2220
- border-color: color-mix(in srgb, var(--rs-warning) 35%, var(--rs-border));
2221
- }
2222
-
2223
- .rs-toast--info {
2224
- border-color: color-mix(in srgb, var(--rs-info) 35%, var(--rs-border));
2225
- }
2226
-
2227
- .rs-toast__title {
2228
- font-size: var(--rs-font-size-sm);
2229
- font-weight: var(--rs-font-weight-semibold);
2230
- }
2231
-
2232
- .rs-toast__description {
2233
- color: var(--rs-muted);
2234
- font-size: var(--rs-font-size-sm);
2235
- }
2236
-
2237
- .rs-toast__close {
2238
- position: absolute;
2239
- top: 0;
2240
- inset-inline-start: 0;
2241
- display: flex;
2242
- align-items: center;
2243
- justify-content: center;
2244
- width: 1.25rem;
2245
- height: 1.25rem;
2246
- padding: 0;
2247
- border: 1px solid var(--rs-border);
2248
- border-radius: var(--rs-radius-full);
2249
- background: var(--rs-surface-elevated);
2250
- color: var(--rs-muted);
2251
- cursor: pointer;
2252
- transform: translate(-35%, -35%);
2253
- transition:
2254
- background var(--rs-transition-fast),
2255
- border-color var(--rs-transition-fast),
2256
- color var(--rs-transition-fast);
2257
- }
2258
-
2259
- .rs-toast__close:hover {
2260
- background: var(--rs-item-hover);
2261
- border-color: var(--rs-border);
2262
- color: var(--rs-text);
2263
- }
2264
-
2265
- .rs-toast__close:focus-visible {
2266
- outline: none;
2267
- box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
2268
- }