niuma-ui 2.0.2 → 2.0.4

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 (242) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +2 -0
  3. package/README.zh-CN.md +2 -0
  4. package/dist/components/_shared/src/reka.d.ts +1 -1
  5. package/dist/components/_shared/src/reka.js +2 -2
  6. package/dist/components/anchor/index.d.ts +1 -1
  7. package/dist/components/anchor/src/RsAnchor.css +63 -32
  8. package/dist/components/anchor/src/RsAnchor.d.ts +29 -2
  9. package/dist/components/anchor/src/RsAnchor.impl.js +199 -81
  10. package/dist/components/anchor/src/RsAnchor.js +1 -1
  11. package/dist/components/anchor/src/anchor-utils.d.ts +36 -4
  12. package/dist/components/anchor/src/anchor-utils.js +81 -19
  13. package/dist/components/auto-complete/index.d.ts +2 -0
  14. package/dist/components/auto-complete/src/RsAutoComplete.css +122 -0
  15. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +47 -7
  16. package/dist/components/auto-complete/src/RsAutoComplete.impl.js +180 -72
  17. package/dist/components/auto-complete/src/RsAutoComplete.js +4 -1
  18. package/dist/components/auto-complete/src/auto-complete-utils.d.ts +7 -0
  19. package/dist/components/auto-complete/src/auto-complete-utils.js +17 -0
  20. package/dist/components/avatar/index.d.ts +1 -0
  21. package/dist/components/avatar/src/RsAvatar.css +36 -19
  22. package/dist/components/avatar/src/RsAvatar.d.ts +9 -3
  23. package/dist/components/avatar/src/RsAvatar.impl.js +57 -33
  24. package/dist/components/avatar/src/RsAvatar.js +2 -1
  25. package/dist/components/avatar/src/avatar-utils.d.ts +16 -7
  26. package/dist/components/avatar/src/avatar-utils.js +41 -3
  27. package/dist/components/badge/index.d.ts +1 -0
  28. package/dist/components/badge/src/RsBadge.css +61 -8
  29. package/dist/components/badge/src/RsBadge.d.ts +19 -3
  30. package/dist/components/badge/src/RsBadge.impl.js +46 -3
  31. package/dist/components/badge/src/RsBadge.js +1 -1
  32. package/dist/components/badge/src/badge-utils.d.ts +11 -0
  33. package/dist/components/badge/src/badge-utils.js +32 -0
  34. package/dist/components/breadcrumb/index.d.ts +1 -1
  35. package/dist/components/breadcrumb/src/RsBreadcrumb.css +50 -17
  36. package/dist/components/breadcrumb/src/RsBreadcrumb.d.ts +45 -6
  37. package/dist/components/breadcrumb/src/RsBreadcrumb.impl.js +111 -12
  38. package/dist/components/breadcrumb/src/RsBreadcrumb.js +2 -1
  39. package/dist/components/breadcrumb/src/breadcrumb-utils.d.ts +37 -5
  40. package/dist/components/breadcrumb/src/breadcrumb-utils.js +70 -9
  41. package/dist/components/button/src/RsButton.css +87 -71
  42. package/dist/components/button/src/RsButton.d.ts +7 -3
  43. package/dist/components/button/src/RsButton.impl.js +43 -31
  44. package/dist/components/button/src/RsButton.js +1 -1
  45. package/dist/components/button/src/button-utils.d.ts +17 -0
  46. package/dist/components/button/src/button-utils.js +14 -1
  47. package/dist/components/calendar-grid/index.d.ts +2 -0
  48. package/dist/components/calendar-grid/src/RsCalendarGrid.css +105 -45
  49. package/dist/components/calendar-grid/src/RsCalendarGrid.d.ts +62 -2
  50. package/dist/components/calendar-grid/src/RsCalendarGrid.impl.js +265 -94
  51. package/dist/components/calendar-grid/src/RsCalendarGrid.js +1 -1
  52. package/dist/components/calendar-grid/src/calendar-grid-utils.d.ts +72 -0
  53. package/dist/components/calendar-grid/src/calendar-grid-utils.js +122 -0
  54. package/dist/components/card/index.d.ts +1 -1
  55. package/dist/components/card/src/RsCard.css +108 -98
  56. package/dist/components/card/src/RsCard.d.ts +3 -12
  57. package/dist/components/card/src/RsCard.impl.js +29 -25
  58. package/dist/components/card/src/RsCard.js +2 -1
  59. package/dist/components/card/src/card-utils.d.ts +25 -0
  60. package/dist/components/card/src/card-utils.js +10 -0
  61. package/dist/components/cascader/index.d.ts +1 -0
  62. package/dist/components/cascader/src/RsCascader.css +175 -30
  63. package/dist/components/cascader/src/RsCascader.d.ts +14 -2
  64. package/dist/components/cascader/src/RsCascader.impl.js +277 -48
  65. package/dist/components/cascader/src/RsCascader.js +1 -1
  66. package/dist/components/cascader/src/cascader-utils.d.ts +2 -0
  67. package/dist/components/cascader/src/cascader-utils.js +8 -1
  68. package/dist/components/checkbox/index.d.ts +1 -0
  69. package/dist/components/checkbox/src/RsCheckbox.css +46 -23
  70. package/dist/components/checkbox/src/RsCheckbox.d.ts +11 -1
  71. package/dist/components/checkbox/src/RsCheckbox.impl.js +37 -9
  72. package/dist/components/checkbox/src/RsCheckbox.js +2 -1
  73. package/dist/components/checkbox/src/checkbox-utils.d.ts +4 -0
  74. package/dist/components/checkbox/src/checkbox-utils.js +12 -0
  75. package/dist/components/container/index.d.ts +1 -1
  76. package/dist/components/container/src/RsContainer.css +11 -11
  77. package/dist/components/container/src/RsContainer.d.ts +2 -12
  78. package/dist/components/container/src/RsContainer.impl.js +10 -57
  79. package/dist/components/container/src/RsContainer.js +1 -1
  80. package/dist/components/container/src/container-utils.d.ts +23 -0
  81. package/dist/components/container/src/container-utils.js +51 -0
  82. package/dist/components/date-picker/index.d.ts +4 -2
  83. package/dist/components/date-picker/src/RsDatePicker.css +42 -22
  84. package/dist/components/date-picker/src/RsDatePicker.d.ts +44 -20
  85. package/dist/components/date-picker/src/RsDatePicker.impl.js +484 -222
  86. package/dist/components/date-picker/src/RsDatePicker.js +1 -3
  87. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +33 -6
  88. package/dist/components/date-picker/src/RsDateTimePicker.impl.js +47 -6
  89. package/dist/components/date-picker/src/date-picker-utils.d.ts +19 -0
  90. package/dist/components/date-picker/src/date-picker-utils.js +33 -10
  91. package/dist/components/divider/index.d.ts +1 -0
  92. package/dist/components/divider/src/RsDivider.css +37 -22
  93. package/dist/components/divider/src/RsDivider.d.ts +4 -2
  94. package/dist/components/divider/src/RsDivider.impl.js +26 -12
  95. package/dist/components/divider/src/RsDivider.js +1 -1
  96. package/dist/components/divider/src/divider-utils.d.ts +4 -0
  97. package/dist/components/dynamic-tags/index.d.ts +1 -1
  98. package/dist/components/dynamic-tags/src/RsDynamicTags.css +115 -38
  99. package/dist/components/dynamic-tags/src/RsDynamicTags.d.ts +59 -18
  100. package/dist/components/dynamic-tags/src/RsDynamicTags.impl.js +269 -106
  101. package/dist/components/dynamic-tags/src/RsDynamicTags.js +1 -1
  102. package/dist/components/dynamic-tags/src/dynamic-tags-utils.d.ts +19 -0
  103. package/dist/components/dynamic-tags/src/dynamic-tags-utils.js +60 -0
  104. package/dist/components/fieldset/src/RsFieldset.css +71 -41
  105. package/dist/components/fieldset/src/RsFieldset.d.ts +21 -2
  106. package/dist/components/fieldset/src/RsFieldset.impl.js +93 -26
  107. package/dist/components/fieldset/src/RsFieldset.js +1 -1
  108. package/dist/components/fieldset/src/fieldset-utils.d.ts +4 -0
  109. package/dist/components/fieldset/src/fieldset-utils.js +9 -1
  110. package/dist/components/form/index.d.ts +1 -0
  111. package/dist/components/form/src/RsForm.css +15 -12
  112. package/dist/components/form/src/RsForm.d.ts +20 -22
  113. package/dist/components/form/src/RsForm.impl.js +33 -20
  114. package/dist/components/form/src/RsForm.js +1 -1
  115. package/dist/components/form/src/form-utils.d.ts +7 -0
  116. package/dist/components/form/src/form-utils.js +28 -1
  117. package/dist/components/icon/src/RsIcon.css +9 -4
  118. package/dist/components/icon/src/RsIcon.d.ts +4 -3
  119. package/dist/components/icon/src/RsIcon.impl.js +9 -32
  120. package/dist/components/icon/src/RsIcon.js +1 -1
  121. package/dist/components/icon/src/icon-utils.d.ts +17 -0
  122. package/dist/components/icon/src/icon-utils.js +39 -0
  123. package/dist/components/input/index.d.ts +1 -1
  124. package/dist/components/input/src/RsInput.css +78 -260
  125. package/dist/components/input/src/RsInput.d.ts +5 -3
  126. package/dist/components/input/src/RsInput.impl.js +8 -16
  127. package/dist/components/input/src/RsInput.js +1 -1
  128. package/dist/components/input/src/input-utils.d.ts +11 -0
  129. package/dist/components/input/src/input-utils.js +22 -0
  130. package/dist/components/input-number/index.d.ts +1 -0
  131. package/dist/components/input-number/src/RsInputNumber.css +31 -31
  132. package/dist/components/input-number/src/RsInputNumber.d.ts +15 -13
  133. package/dist/components/input-number/src/RsInputNumber.impl.js +17 -4
  134. package/dist/components/input-number/src/RsInputNumber.js +1 -1
  135. package/dist/components/label/src/RsLabel.css +30 -11
  136. package/dist/components/label/src/RsLabel.d.ts +18 -1
  137. package/dist/components/label/src/RsLabel.impl.js +63 -10
  138. package/dist/components/label/src/RsLabel.js +1 -1
  139. package/dist/components/label/src/label-utils.d.ts +6 -0
  140. package/dist/components/label/src/label-utils.js +16 -0
  141. package/dist/components/link/index.d.ts +1 -0
  142. package/dist/components/link/src/RsLink.css +58 -17
  143. package/dist/components/link/src/RsLink.d.ts +12 -4
  144. package/dist/components/link/src/RsLink.impl.js +26 -25
  145. package/dist/components/link/src/RsLink.js +2 -1
  146. package/dist/components/link/src/link-utils.d.ts +9 -0
  147. package/dist/components/link/src/link-utils.js +15 -0
  148. package/dist/components/loading/src/RsLoading.d.ts +2 -2
  149. package/dist/components/mentions/index.d.ts +2 -1
  150. package/dist/components/mentions/src/RsMentions.css +119 -3
  151. package/dist/components/mentions/src/RsMentions.d.ts +56 -4
  152. package/dist/components/mentions/src/RsMentions.impl.js +298 -79
  153. package/dist/components/mentions/src/RsMentions.js +1 -3
  154. package/dist/components/mentions/src/mentions-utils.d.ts +5 -1
  155. package/dist/components/mentions/src/mentions-utils.js +28 -9
  156. package/dist/components/popover/src/RsPopover.d.ts +1 -1
  157. package/dist/components/radio/index.d.ts +1 -1
  158. package/dist/components/radio/src/RsRadio.css +7 -6
  159. package/dist/components/radio/src/RsRadio.d.ts +8 -5
  160. package/dist/components/radio/src/RsRadio.impl.js +34 -24
  161. package/dist/components/radio/src/RsRadio.js +2 -1
  162. package/dist/components/radio/src/RsRadioItem.css +61 -44
  163. package/dist/components/radio/src/RsRadioItem.d.ts +2 -2
  164. package/dist/components/radio/src/RsRadioItem.impl.js +53 -20
  165. package/dist/components/radio/src/RsRadioItem.js +2 -1
  166. package/dist/components/radio/src/radio-utils.d.ts +12 -1
  167. package/dist/components/radio/src/radio-utils.js +15 -1
  168. package/dist/components/scrollbar/src/RsScrollbar.css +71 -24
  169. package/dist/components/scrollbar/src/RsScrollbar.d.ts +9 -5
  170. package/dist/components/scrollbar/src/RsScrollbar.impl.js +372 -47
  171. package/dist/components/scrollbar/src/RsScrollbar.js +2 -1
  172. package/dist/components/scrollbar/src/scrollbar-utils.d.ts +34 -2
  173. package/dist/components/scrollbar/src/scrollbar-utils.js +64 -1
  174. package/dist/components/select/index.d.ts +1 -0
  175. package/dist/components/select/src/RsSelect.css +54 -42
  176. package/dist/components/select/src/RsSelect.d.ts +19 -2
  177. package/dist/components/select/src/RsSelect.impl.js +727 -312
  178. package/dist/components/select/src/RsSelect.js +1 -1
  179. package/dist/components/select/src/select-utils.d.ts +4 -2
  180. package/dist/components/select/src/select-utils.js +8 -3
  181. package/dist/components/select/src/use-rs-select.d.ts +1 -0
  182. package/dist/components/select/src/use-rs-select.js +23 -17
  183. package/dist/components/switch/index.d.ts +2 -1
  184. package/dist/components/switch/src/RsSwitch.css +36 -18
  185. package/dist/components/switch/src/RsSwitch.d.ts +18 -5
  186. package/dist/components/switch/src/RsSwitch.impl.js +61 -29
  187. package/dist/components/switch/src/RsSwitch.js +2 -1
  188. package/dist/components/switch/src/switch-utils.d.ts +4 -0
  189. package/dist/components/switch/src/switch-utils.js +9 -0
  190. package/dist/components/tag/index.d.ts +1 -1
  191. package/dist/components/tag/src/RsTag.css +42 -38
  192. package/dist/components/tag/src/RsTag.d.ts +3 -2
  193. package/dist/components/tag/src/RsTag.impl.js +18 -9
  194. package/dist/components/tag/src/RsTag.js +1 -1
  195. package/dist/components/tag/src/tag-utils.d.ts +8 -0
  196. package/dist/components/terminal/src/RsTerminal.d.ts +1 -1
  197. package/dist/components/textarea/src/RsTextarea.css +23 -23
  198. package/dist/components/textarea/src/RsTextarea.d.ts +6 -12
  199. package/dist/components/textarea/src/RsTextarea.impl.js +37 -46
  200. package/dist/components/textarea/src/RsTextarea.js +1 -1
  201. package/dist/components/textarea/src/textarea-utils.d.ts +27 -0
  202. package/dist/components/textarea/src/textarea-utils.js +61 -0
  203. package/dist/components/time-picker/index.d.ts +3 -2
  204. package/dist/components/time-picker/src/RsTimePicker.css +41 -24
  205. package/dist/components/time-picker/src/RsTimePicker.d.ts +52 -7
  206. package/dist/components/time-picker/src/RsTimePicker.impl.js +520 -156
  207. package/dist/components/time-picker/src/RsTimePicker.js +1 -3
  208. package/dist/components/time-picker/src/RsTimePickerColumns.css +26 -18
  209. package/dist/components/time-picker/src/RsTimePickerColumns.d.ts +3 -1
  210. package/dist/components/time-picker/src/RsTimePickerColumns.impl.js +62 -9
  211. package/dist/components/time-picker/src/RsTimePickerColumns.js +1 -1
  212. package/dist/components/time-picker/src/time-picker-utils.d.ts +38 -0
  213. package/dist/components/time-picker/src/time-picker-utils.js +97 -5
  214. package/dist/components/toaster/src/RsToaster.d.ts +1 -1
  215. package/dist/components/tooltip/src/RsTooltip.d.ts +1 -1
  216. package/dist/components/tree/src/RsTree.d.ts +3 -3
  217. package/dist/components/tree-select/index.d.ts +2 -0
  218. package/dist/components/tree-select/src/RsTreeSelect.css +100 -25
  219. package/dist/components/tree-select/src/RsTreeSelect.d.ts +91 -7
  220. package/dist/components/tree-select/src/RsTreeSelect.impl.js +464 -79
  221. package/dist/components/tree-select/src/RsTreeSelect.js +1 -1
  222. package/dist/components/tree-select/src/tree-select-utils.d.ts +20 -0
  223. package/dist/components/tree-select/src/tree-select-utils.js +60 -0
  224. package/dist/components/upload/index.d.ts +2 -1
  225. package/dist/components/upload/src/RsUpload.css +223 -75
  226. package/dist/components/upload/src/RsUpload.d.ts +77 -1
  227. package/dist/components/upload/src/RsUpload.impl.js +404 -90
  228. package/dist/components/upload/src/RsUpload.js +1 -1
  229. package/dist/components/upload/src/upload-utils.d.ts +21 -2
  230. package/dist/components/upload/src/upload-utils.js +139 -9
  231. package/dist/index.d.ts +24 -11
  232. package/dist/index.js +6 -0
  233. package/dist/locale/messages.js +46 -2
  234. package/dist/styles.css +518 -154
  235. package/dist/theme/brand.example.css +1 -1
  236. package/package.json +9 -8
  237. package/dist/components/breadcrumb/src/RsBreadcrumbItems.d.ts +0 -8
  238. package/dist/components/breadcrumb/src/RsBreadcrumbItems.impl.js +0 -40
  239. package/dist/components/breadcrumb/src/RsBreadcrumbItems.js +0 -5
  240. package/dist/components/date-picker/src/RsDatePicker-1.css +0 -157
  241. package/dist/components/mentions/src/RsMentions-1.css +0 -29
  242. package/dist/components/time-picker/src/RsTimePicker-1.css +0 -98
@@ -1,5 +1,5 @@
1
1
 
2
- .rs-card {
2
+ .rs-card[data-v-41deb9a5] {
3
3
  --rs-card-header-padding-y: 0.75rem;
4
4
  --rs-card-header-padding-x: 1rem;
5
5
  --rs-card-body-padding: 1rem;
@@ -16,7 +16,7 @@
16
16
  box-shadow: var(--rs-card-shadow);
17
17
  isolation: isolate;
18
18
  }
19
- .rs-card--sm {
19
+ .rs-card--sm[data-v-41deb9a5] {
20
20
  --rs-card-header-padding-y: 0.5rem;
21
21
  --rs-card-header-padding-x: 0.75rem;
22
22
  --rs-card-body-padding: 0.75rem;
@@ -24,7 +24,7 @@
24
24
  --rs-card-footer-padding-x: 0.75rem;
25
25
  --rs-card-title-size: var(--rs-font-size-xs);
26
26
  }
27
- .rs-card--md {
27
+ .rs-card--md[data-v-41deb9a5] {
28
28
  --rs-card-header-padding-y: 0.75rem;
29
29
  --rs-card-header-padding-x: 1rem;
30
30
  --rs-card-body-padding: 1rem;
@@ -32,7 +32,7 @@
32
32
  --rs-card-footer-padding-x: 1rem;
33
33
  --rs-card-title-size: var(--rs-font-size-sm);
34
34
  }
35
- .rs-card--lg {
35
+ .rs-card--lg[data-v-41deb9a5] {
36
36
  --rs-card-header-padding-y: 1rem;
37
37
  --rs-card-header-padding-x: 1.25rem;
38
38
  --rs-card-body-padding: 1.25rem;
@@ -40,243 +40,253 @@
40
40
  --rs-card-footer-padding-x: 1.25rem;
41
41
  --rs-card-title-size: var(--rs-font-size-base);
42
42
  }
43
- .rs-card--clip {
43
+ .rs-card--clip[data-v-41deb9a5] {
44
44
  overflow: hidden;
45
45
  }
46
- .rs-card--fill {
46
+ .rs-card--fill[data-v-41deb9a5] {
47
47
  display: flex;
48
48
  flex-direction: column;
49
49
  height: 100%;
50
50
  min-height: 0;
51
51
  }
52
- .rs-card--fill .rs-card__body {
52
+ .rs-card--fill .rs-card__body[data-v-41deb9a5] {
53
53
  flex: 1 1 auto;
54
54
  min-height: 0;
55
55
  }
56
- .rs-card--hoverable {
56
+ .rs-card--hoverable[data-v-41deb9a5] {
57
57
  transition:
58
- box-shadow 0.2s ease,
59
- border-color 0.2s ease,
60
- transform 0.2s ease;
58
+ box-shadow var(--rs-transition-fast),
59
+ border-color var(--rs-transition-fast),
60
+ transform var(--rs-transition-fast);
61
61
  cursor: default;
62
62
  }
63
- .rs-card--hoverable:hover {
63
+ .rs-card--hoverable[data-v-41deb9a5]:hover {
64
64
  box-shadow: var(--rs-card-shadow-elevated);
65
65
  }
66
66
 
67
67
  /* ── grouped:macOS 系统设置分组面板(header 微分层 + inset 高光)── */
68
68
  /* overflow:hidden 必须:header 实色与 backdrop-filter 才能贴合圆角,否则弧边溢出成直角 */
69
- .rs-card--grouped {
69
+ .rs-card--grouped[data-v-41deb9a5] {
70
70
  overflow: hidden;
71
+ background: var(--rs-card-grouped-bg);
72
+ backdrop-filter: var(--rs-card-grouped-filter);
73
+ -webkit-backdrop-filter: var(--rs-card-grouped-filter);
71
74
  }
72
- [data-rs-theme='light'] .rs-card--grouped {
73
- background: color-mix(in srgb, var(--rs-card-body-bg) 94%, transparent);
74
- backdrop-filter: blur(20px) saturate(150%);
75
- -webkit-backdrop-filter: blur(20px) saturate(150%);
76
- }
77
- .rs-card--grouped .rs-card__header {
75
+ .rs-card--grouped .rs-card__header[data-v-41deb9a5] {
78
76
  background: var(--rs-card-header-bg);
79
- border-bottom: 1px solid var(--rs-card-separator);
80
- box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.05);
81
- }
82
- [data-rs-theme='light'] .rs-card--grouped .rs-card__header {
83
- box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.75);
84
- }
85
- .rs-card--grouped .rs-card__body {
86
- background: var(--rs-card-body-bg);
77
+ border-block-end: 1px solid var(--rs-card-separator);
78
+ box-shadow: var(--rs-card-header-inset);
87
79
  }
88
- [data-rs-theme='light'] .rs-card--grouped .rs-card__body {
89
- background: transparent;
80
+ .rs-card--grouped .rs-card__body[data-v-41deb9a5] {
81
+ background: var(--rs-card-grouped-body-bg);
90
82
  }
91
- .rs-card--grouped.rs-card--elevated {
83
+ .rs-card--grouped.rs-card--elevated[data-v-41deb9a5] {
92
84
  box-shadow: var(--rs-card-shadow-elevated);
93
85
  }
94
86
 
95
87
  /* ── plain:macOS 小组件 / 仪表盘(单表面、弱分隔)── */
96
- .rs-card--plain {
88
+ .rs-card--plain[data-v-41deb9a5] {
97
89
  border-color: var(--rs-card-separator);
98
90
  box-shadow: none;
99
91
  }
100
- .rs-card--plain .rs-card__header {
92
+ .rs-card--plain .rs-card__header[data-v-41deb9a5] {
101
93
  background: transparent;
102
- border-bottom: 1px solid var(--rs-card-separator);
94
+ border-block-end: 1px solid var(--rs-card-separator);
103
95
  box-shadow: none;
104
96
  }
105
- .rs-card--plain .rs-card__title {
97
+ .rs-card--plain .rs-card__title[data-v-41deb9a5] {
106
98
  font-size: var(--rs-font-size-xs);
107
99
  font-weight: var(--rs-font-weight-medium);
108
100
  color: var(--rs-card-description-fg);
109
101
  letter-spacing: 0;
110
102
  }
111
- .rs-card--plain .rs-card__body {
103
+ .rs-card--plain .rs-card__body[data-v-41deb9a5] {
112
104
  background: transparent;
113
105
  }
114
- .rs-card--plain.rs-card--elevated {
106
+ .rs-card--plain.rs-card--elevated[data-v-41deb9a5] {
115
107
  box-shadow: var(--rs-card-shadow-elevated);
116
108
  }
117
109
 
118
110
  /* ── outlined:Material 3 Outlined Card(描边、无 header 底色)── */
119
- .rs-card--outlined {
111
+ .rs-card--outlined[data-v-41deb9a5] {
120
112
  border: 1px solid var(--rs-card-border);
121
113
  box-shadow: none;
122
114
  background: var(--rs-card-body-bg);
123
115
  }
124
- .rs-card--outlined .rs-card__header {
116
+ .rs-card--outlined .rs-card__header[data-v-41deb9a5] {
125
117
  background: transparent;
126
- border-bottom: 1px solid var(--rs-card-separator);
118
+ border-block-end: 1px solid var(--rs-card-separator);
127
119
  box-shadow: none;
128
120
  }
129
- .rs-card--outlined .rs-card__title {
121
+ .rs-card--outlined .rs-card__title[data-v-41deb9a5] {
130
122
  font-weight: var(--rs-font-weight-medium);
131
123
  letter-spacing: 0;
132
124
  }
133
- .rs-card--outlined .rs-card__body {
125
+ .rs-card--outlined .rs-card__body[data-v-41deb9a5] {
134
126
  background: transparent;
135
127
  }
136
- .rs-card--outlined.rs-card--elevated {
128
+ .rs-card--outlined.rs-card--elevated[data-v-41deb9a5] {
137
129
  box-shadow: var(--rs-card-filled-elevated-shadow);
138
130
  }
139
131
 
140
132
  /* ── filled:Material 3 Filled Card(色调填充、无边框)── */
141
- .rs-card--filled {
133
+ .rs-card--filled[data-v-41deb9a5] {
142
134
  border-color: transparent;
143
135
  background: var(--rs-card-filled-bg);
144
136
  box-shadow: none;
145
137
  }
146
- .rs-card--filled .rs-card__header {
138
+ .rs-card--filled .rs-card__header[data-v-41deb9a5] {
147
139
  background: transparent;
148
- border-bottom: 1px solid var(--rs-card-separator);
140
+ border-block-end: 1px solid var(--rs-card-separator);
149
141
  box-shadow: none;
150
142
  }
151
- .rs-card--filled .rs-card__title {
143
+ .rs-card--filled .rs-card__title[data-v-41deb9a5] {
152
144
  font-weight: var(--rs-font-weight-medium);
153
145
  letter-spacing: 0;
154
146
  }
155
- .rs-card--filled .rs-card__body {
147
+ .rs-card--filled .rs-card__body[data-v-41deb9a5] {
156
148
  background: transparent;
157
149
  }
158
- .rs-card--filled.rs-card--elevated {
150
+ .rs-card--filled.rs-card--elevated[data-v-41deb9a5] {
159
151
  box-shadow: var(--rs-card-filled-elevated-shadow);
160
152
  }
161
153
 
162
154
  /* ── glass:macOS Vibrancy 毛玻璃(强模糊 + 半透明)── */
163
155
  /* 同 grouped:毛玻璃与 header 分层依赖 overflow 裁切圆角 */
164
- .rs-card--glass {
156
+ .rs-card--glass[data-v-41deb9a5] {
165
157
  overflow: hidden;
166
158
  border-color: var(--rs-card-glass-border);
167
159
  background: var(--rs-card-glass-bg);
168
160
  backdrop-filter: blur(28px) saturate(180%);
169
161
  -webkit-backdrop-filter: blur(28px) saturate(180%);
170
- box-shadow:
171
- 0 0 0 0.5px rgb(255 255 255 / 0.12),
172
- 0 8px 24px rgb(0 0 0 / 0.12);
173
- }
174
- [data-rs-theme='light'] .rs-card--glass {
175
- box-shadow:
176
- 0 0 0 0.5px rgb(255 255 255 / 0.6),
177
- 0 8px 24px rgb(0 0 0 / 0.08);
162
+ box-shadow: var(--rs-card-glass-shadow);
178
163
  }
179
- .rs-card--glass .rs-card__header {
180
- background: rgb(255 255 255 / 0.04);
181
- border-bottom: 1px solid var(--rs-card-glass-border);
182
- box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.08);
164
+ .rs-card--glass .rs-card__header[data-v-41deb9a5] {
165
+ background: var(--rs-card-glass-header-bg);
166
+ border-block-end: 1px solid var(--rs-card-glass-border);
167
+ box-shadow: var(--rs-card-glass-header-inset);
183
168
  }
184
- [data-rs-theme='light'] .rs-card--glass .rs-card__header {
185
- background: rgb(255 255 255 / 0.35);
186
- box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.8);
187
- }
188
- .rs-card--glass .rs-card__body {
169
+ .rs-card--glass .rs-card__body[data-v-41deb9a5] {
189
170
  background: transparent;
190
171
  }
191
- .rs-card--glass.rs-card--elevated {
192
- box-shadow:
193
- 0 0 0 0.5px rgb(255 255 255 / 0.14),
194
- 0 12px 32px rgb(0 0 0 / 0.18);
172
+ .rs-card--glass.rs-card--elevated[data-v-41deb9a5] {
173
+ box-shadow: var(--rs-card-glass-shadow-elevated);
195
174
  }
196
175
 
197
176
  /* ── borderless:无外框(对齐 RsTabs borderless,业务无需 :deep)── */
198
- .rs-card--borderless {
177
+ .rs-card--borderless[data-v-41deb9a5] {
199
178
  border: none;
200
179
  box-shadow: none;
201
180
  background: transparent;
202
181
  backdrop-filter: none;
203
182
  -webkit-backdrop-filter: none;
204
183
  }
205
- .rs-card--borderless .rs-card__header {
184
+ .rs-card--borderless .rs-card__header[data-v-41deb9a5] {
206
185
  background: transparent;
207
- border-bottom: none;
186
+ border-block-end: none;
208
187
  box-shadow: none;
209
188
  }
210
- .rs-card--borderless .rs-card__body {
189
+ .rs-card--borderless .rs-card__body[data-v-41deb9a5] {
211
190
  background: transparent;
212
191
  }
213
- .rs-card--borderless .rs-card__footer {
214
- border-top: none;
192
+ .rs-card--borderless .rs-card__footer[data-v-41deb9a5] {
193
+ border-block-start: none;
215
194
  }
216
- .rs-card--borderless.rs-card--elevated {
195
+ .rs-card--borderless.rs-card--elevated[data-v-41deb9a5] {
217
196
  box-shadow: var(--rs-card-shadow-elevated);
218
197
  }
219
198
 
220
199
  /* ── 公共结构 ── */
221
200
  /* 首尾区块跟卡片圆角对齐,避免 overflow:visible 时直角底色顶出弧边 */
222
- .rs-card__cover:first-child,
223
- .rs-card__header:first-child {
224
- border-top-left-radius: var(--rs-card-radius, var(--rs-radius));
225
- border-top-right-radius: var(--rs-card-radius, var(--rs-radius));
201
+ .rs-card__cover[data-v-41deb9a5]:first-child,
202
+ .rs-card__header[data-v-41deb9a5]:first-child {
203
+ border-start-start-radius: var(--rs-card-radius, var(--rs-radius));
204
+ border-start-end-radius: var(--rs-card-radius, var(--rs-radius));
226
205
  }
227
- .rs-card__footer:last-child,
228
- .rs-card__body:last-child {
229
- border-bottom-left-radius: var(--rs-card-radius, var(--rs-radius));
230
- border-bottom-right-radius: var(--rs-card-radius, var(--rs-radius));
206
+ .rs-card__footer[data-v-41deb9a5]:last-child,
207
+ .rs-card__body[data-v-41deb9a5]:last-child {
208
+ border-end-start-radius: var(--rs-card-radius, var(--rs-radius));
209
+ border-end-end-radius: var(--rs-card-radius, var(--rs-radius));
231
210
  }
232
- .rs-card__cover {
211
+ .rs-card__cover[data-v-41deb9a5] {
233
212
  flex-shrink: 0;
234
213
  line-height: 0;
235
214
  }
236
- .rs-card__cover > * {
215
+ .rs-card__cover[data-v-41deb9a5] > * {
237
216
  display: block;
238
217
  width: 100%;
239
218
  }
240
- .rs-card__header {
219
+ .rs-card__header[data-v-41deb9a5] {
241
220
  display: flex;
242
221
  align-items: flex-start;
243
222
  justify-content: space-between;
244
223
  gap: var(--rs-space-md);
245
224
  flex-shrink: 0;
246
- padding: var(--rs-card-header-padding-y) var(--rs-card-header-padding-x);
225
+ padding-block: var(--rs-card-header-padding-y);
226
+ padding-inline: var(--rs-card-header-padding-x);
247
227
  }
248
- .rs-card__heading {
228
+ .rs-card__heading[data-v-41deb9a5] {
249
229
  min-width: 0;
230
+ flex: 1 1 auto;
250
231
  }
251
- .rs-card__title {
232
+ .rs-card__title[data-v-41deb9a5] {
252
233
  margin: 0;
253
234
  font-size: var(--rs-card-title-size);
254
235
  font-weight: var(--rs-font-weight-semibold);
255
236
  letter-spacing: -0.01em;
256
237
  color: var(--rs-card-title-fg);
238
+ overflow-wrap: anywhere;
257
239
  }
258
- .rs-card__description {
259
- margin: 0.2rem 0 0;
240
+ .rs-card__description[data-v-41deb9a5] {
241
+ margin-block: 0.2rem 0;
242
+ margin-inline: 0;
260
243
  font-size: var(--rs-card-desc-size);
261
244
  color: var(--rs-card-description-fg);
262
245
  line-height: var(--rs-line-height-normal);
246
+ overflow-wrap: anywhere;
263
247
  }
264
- .rs-card__actions {
248
+ .rs-card__actions[data-v-41deb9a5] {
265
249
  display: flex;
266
250
  align-items: center;
267
251
  gap: var(--rs-space-xs);
268
252
  flex-shrink: 0;
269
253
  }
270
- .rs-card__body--padded {
254
+ .rs-card__body--padded[data-v-41deb9a5] {
271
255
  padding: var(--rs-card-body-padding);
272
256
  }
273
- .rs-card__footer {
257
+ .rs-card__footer[data-v-41deb9a5] {
274
258
  display: flex;
275
259
  align-items: center;
276
260
  justify-content: flex-end;
277
261
  flex-wrap: wrap;
278
262
  gap: var(--rs-space-sm);
279
263
  flex-shrink: 0;
280
- padding: var(--rs-card-footer-padding-y) var(--rs-card-footer-padding-x);
281
- border-top: 1px solid var(--rs-card-separator);
264
+ padding-block: var(--rs-card-footer-padding-y);
265
+ padding-inline: var(--rs-card-footer-padding-x);
266
+ border-block-start: 1px solid var(--rs-card-separator);
267
+ }
268
+ @media (prefers-reduced-motion: reduce) {
269
+ .rs-card--hoverable[data-v-41deb9a5] {
270
+ transition: none;
271
+ }
272
+ }
273
+ @media (forced-colors: active) {
274
+ .rs-card[data-v-41deb9a5] {
275
+ border: 1px solid CanvasText;
276
+ background: Canvas;
277
+ forced-color-adjust: none;
278
+ }
279
+ .rs-card--borderless[data-v-41deb9a5] {
280
+ border: none;
281
+ }
282
+ .rs-card--grouped .rs-card__header[data-v-41deb9a5],
283
+ .rs-card--plain .rs-card__header[data-v-41deb9a5],
284
+ .rs-card--outlined .rs-card__header[data-v-41deb9a5],
285
+ .rs-card--filled .rs-card__header[data-v-41deb9a5],
286
+ .rs-card--glass .rs-card__header[data-v-41deb9a5] {
287
+ border-block-end-color: CanvasText;
288
+ }
289
+ .rs-card__footer[data-v-41deb9a5] {
290
+ border-block-start-color: CanvasText;
291
+ }
282
292
  }
@@ -1,15 +1,6 @@
1
1
  import type { RsRadius } from '../../../theme/types';
2
- /**
3
- * 卡片表面风格。
4
- * - grouped / plain / glass:偏 macOS 分层与仪表盘
5
- * - outlined / filled:偏 Material 3,后台信息面板常用 outlined
6
- */
7
- export type RsCardVariant = 'grouped' | 'plain' | 'outlined' | 'filled' | 'glass';
8
- /**
9
- * 卡片密度(疏密),映射 header/body padding 与标题字号。
10
- * 与控件 `RsComponentSize`(高度)无关,勿混用。
11
- */
12
- export type RsCardSize = 'sm' | 'md' | 'lg';
2
+ import { type RsCardSize, type RsCardVariant } from './card-utils';
3
+ export type { RsCardSize, RsCardVariant };
13
4
  type __VLS_Props = {
14
5
  as?: string;
15
6
  title?: string;
@@ -65,8 +56,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
65
56
  elevated: boolean;
66
57
  as: string;
67
58
  borderless: boolean;
68
- hoverable: boolean;
69
59
  clip: boolean;
60
+ hoverable: boolean;
70
61
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
71
62
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
72
63
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,6 @@
1
- import { Primitive } from "../../_shared/src/reka.js";
2
1
  import { rsRadiusCss } from "../../_shared/src/resolve-radius.js";
3
- import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
2
+ import { hasRsCardHeader, resolveRsCardAs } from "./card-utils.js";
3
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, useSlots, withCtx } from "vue";
4
4
  //#region src/components/card/src/RsCard.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = {
6
6
  key: 0,
@@ -28,6 +28,7 @@ var _hoisted_7 = {
28
28
  class: "rs-card__footer"
29
29
  };
30
30
  var RsCard_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
31
+ name: "RsCard",
31
32
  __name: "RsCard",
32
33
  props: {
33
34
  as: { default: "section" },
@@ -64,39 +65,42 @@ var RsCard_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
64
65
  setup(__props) {
65
66
  const props = __props;
66
67
  const slots = useSlots();
67
- const hasHeader = computed(() => Boolean(props.title || props.description || slots.header || slots.actions));
68
+ const rootTag = computed(() => resolveRsCardAs(props.as));
69
+ const hasHeader = computed(() => hasRsCardHeader({
70
+ title: props.title,
71
+ description: props.description,
72
+ header: Boolean(slots.header),
73
+ actions: Boolean(slots.actions)
74
+ }));
68
75
  const hasFooter = computed(() => Boolean(slots.footer));
69
76
  /** 卡片圆角只认 props,不跟 controlRadius 走 */
70
77
  const resolvedRadius = computed(() => props.radius ?? "md");
78
+ const rootClass = computed(() => [
79
+ "rs-card",
80
+ `rs-card--${props.variant}`,
81
+ `rs-card--${props.size}`,
82
+ {
83
+ "rs-card--elevated": props.elevated,
84
+ "rs-card--borderless": props.borderless,
85
+ "rs-card--hoverable": props.hoverable,
86
+ "rs-card--clip": props.clip,
87
+ "rs-card--fill": props.fill
88
+ }
89
+ ]);
71
90
  const rootStyle = computed(() => ({ "--rs-card-radius": rsRadiusCss(resolvedRadius.value) }));
72
91
  return (_ctx, _cache) => {
73
- return openBlock(), createBlock(unref(Primitive), {
74
- as: __props.as,
75
- class: normalizeClass(["rs-card", [
76
- `rs-card--${__props.variant}`,
77
- `rs-card--${__props.size}`,
78
- {
79
- "rs-card--elevated": __props.elevated,
80
- "rs-card--borderless": __props.borderless,
81
- "rs-card--hoverable": __props.hoverable,
82
- "rs-card--clip": __props.clip,
83
- "rs-card--fill": __props.fill
84
- }
85
- ]]),
92
+ return openBlock(), createBlock(resolveDynamicComponent(rootTag.value), {
93
+ class: normalizeClass(rootClass.value),
86
94
  style: normalizeStyle(rootStyle.value)
87
95
  }, {
88
96
  default: withCtx(() => [
89
- _ctx.$slots.cover ? (openBlock(), createElementBlock("div", _hoisted_1, [renderSlot(_ctx.$slots, "cover")])) : createCommentVNode("", true),
90
- hasHeader.value ? (openBlock(), createElementBlock("header", _hoisted_2, [createElementVNode("div", _hoisted_3, [renderSlot(_ctx.$slots, "header", {}, () => [__props.title ? (openBlock(), createElementBlock("h3", _hoisted_4, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.description ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(__props.description), 1)) : createCommentVNode("", true)])]), _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_6, [renderSlot(_ctx.$slots, "actions")])) : createCommentVNode("", true)])) : createCommentVNode("", true),
91
- createElementVNode("div", { class: normalizeClass(["rs-card__body", { "rs-card__body--padded": __props.padding }]) }, [renderSlot(_ctx.$slots, "default")], 2),
92
- hasFooter.value ? (openBlock(), createElementBlock("footer", _hoisted_7, [renderSlot(_ctx.$slots, "footer")])) : createCommentVNode("", true)
97
+ _ctx.$slots.cover ? (openBlock(), createElementBlock("div", _hoisted_1, [renderSlot(_ctx.$slots, "cover", {}, void 0, true)])) : createCommentVNode("", true),
98
+ hasHeader.value ? (openBlock(), createElementBlock("header", _hoisted_2, [createElementVNode("div", _hoisted_3, [renderSlot(_ctx.$slots, "header", {}, () => [__props.title ? (openBlock(), createElementBlock("h3", _hoisted_4, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.description ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(__props.description), 1)) : createCommentVNode("", true)], true)]), _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_6, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])) : createCommentVNode("", true)])) : createCommentVNode("", true),
99
+ createElementVNode("div", { class: normalizeClass(["rs-card__body", { "rs-card__body--padded": __props.padding }]) }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2),
100
+ hasFooter.value ? (openBlock(), createElementBlock("footer", _hoisted_7, [renderSlot(_ctx.$slots, "footer", {}, void 0, true)])) : createCommentVNode("", true)
93
101
  ]),
94
102
  _: 3
95
- }, 8, [
96
- "as",
97
- "class",
98
- "style"
99
- ]);
103
+ }, 8, ["class", "style"]);
100
104
  };
101
105
  }
102
106
  });
@@ -1,7 +1,8 @@
1
1
  import './RsCard.css'
2
+ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
3
  import RsCard_vue_vue_type_script_setup_true_lang_default from "./RsCard.impl.js";
3
4
 
4
5
  //#region src/components/card/src/RsCard.vue
5
- var RsCard_default = RsCard_vue_vue_type_script_setup_true_lang_default;
6
+ var RsCard_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsCard_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-41deb9a5"]]);
6
7
  //#endregion
7
8
  export { RsCard_default as default };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 卡片表面风格。
3
+ * - grouped / plain / glass:偏 macOS 分层与仪表盘
4
+ * - outlined / filled:偏 Material 3,后台信息面板常用 outlined
5
+ */
6
+ export declare const RS_CARD_VARIANTS: readonly ["grouped", "plain", "outlined", "filled", "glass"];
7
+ export type RsCardVariant = (typeof RS_CARD_VARIANTS)[number];
8
+ /**
9
+ * 卡片密度(疏密),映射 header/body padding 与标题字号。
10
+ * 与控件 RsComponentSize(高度)无关,勿混用。
11
+ */
12
+ export declare const RS_CARD_SIZES: readonly ["sm", "md", "lg"];
13
+ export type RsCardSize = (typeof RS_CARD_SIZES)[number];
14
+ export declare function isRsCardVariant(value: unknown): value is RsCardVariant;
15
+ export declare function isRsCardSize(value: unknown): value is RsCardSize;
16
+ export declare function resolveRsCardVariant(variant?: RsCardVariant | null): RsCardVariant;
17
+ export declare function resolveRsCardSize(size?: RsCardSize | null): RsCardSize;
18
+ /** 根标签。空串回退 section。不限制自定义元素名。 */
19
+ export declare function resolveRsCardAs(as?: string | null): string;
20
+ export declare function hasRsCardHeader(input: {
21
+ title?: string | null;
22
+ description?: string | null;
23
+ header?: boolean;
24
+ actions?: boolean;
25
+ }): boolean;
@@ -0,0 +1,10 @@
1
+ //#region src/components/card/src/card-utils.ts
2
+ /** 根标签。空串回退 section。不限制自定义元素名。 */
3
+ function resolveRsCardAs(as) {
4
+ return as?.trim() || "section";
5
+ }
6
+ function hasRsCardHeader(input) {
7
+ return Boolean(input.title || input.description || input.header || input.actions);
8
+ }
9
+ //#endregion
10
+ export { hasRsCardHeader, resolveRsCardAs };
@@ -1,2 +1,3 @@
1
1
  export { default as RsCascader } from './src/RsCascader.js';
2
+ export type { RsCascaderExpose, RsCascaderInstance } from './src/RsCascader.js';
2
3
  export type { RsCascaderExpandTrigger, RsCascaderOption, RsCascaderPath, } from './src/cascader-utils';