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,29 +1,45 @@
1
1
 
2
- .rs-dynamic-tags-field[data-v-6ce33b85] {
2
+ .rs-dynamic-tags-field[data-v-2213feb0] {
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  width: 100%;
6
6
  min-width: 0;
7
7
  }
8
- .rs-dynamic-tags-field__error[data-v-6ce33b85] {
8
+ .rs-dynamic-tags-field__error[data-v-2213feb0] {
9
9
  margin: 0.25rem 0 0;
10
10
  font-size: var(--rs-font-size-xs);
11
11
  line-height: var(--rs-line-height-tight);
12
12
  color: var(--rs-danger);
13
13
  }
14
- .rs-dynamic-tags[data-v-6ce33b85] {
15
- --rs-dynamic-tags-chip-height: 1.5rem;
14
+ .rs-dynamic-tags-field__sr-only[data-v-2213feb0] {
15
+ position: absolute;
16
+ width: 1px;
17
+ height: 1px;
18
+ padding: 0;
19
+ margin: -1px;
20
+ overflow: hidden;
21
+ clip: rect(0, 0, 0, 0);
22
+ white-space: nowrap;
23
+ border: 0;
24
+ }
25
+ .rs-dynamic-tags[data-v-2213feb0] {
26
+ --rs-dynamic-tags-box-height: var(--rs-control-height-md);
27
+ --rs-dynamic-tags-border-width: 1px;
28
+ --rs-dynamic-tags-chip-height: calc(
29
+ var(--rs-dynamic-tags-box-height) - 2 * var(--rs-dynamic-tags-padding, var(--rs-space-xs)) - 2 *
30
+ var(--rs-dynamic-tags-border-width)
31
+ );
32
+ position: relative;
33
+ margin: 0;
34
+ min-inline-size: 0;
16
35
  display: flex;
17
36
  flex-wrap: wrap;
18
37
  align-items: center;
19
38
  gap: var(--rs-dynamic-tags-gap, var(--rs-space-xs));
20
- /* padding + chip + 1px*2 边框,避免 trigger/input 切换或输入时高度跳动 */
21
- min-height: calc(
22
- var(--rs-dynamic-tags-chip-height) + 2 * var(--rs-dynamic-tags-padding, var(--rs-space-xs)) +
23
- 2px
24
- );
39
+ min-height: var(--rs-dynamic-tags-box-height);
25
40
  padding: var(--rs-dynamic-tags-padding, var(--rs-space-xs));
26
- border: 1px solid var(--rs-dynamic-tags-border, var(--rs-input-border, var(--rs-border)));
41
+ border: var(--rs-dynamic-tags-border-width) solid
42
+ var(--rs-dynamic-tags-border, var(--rs-input-border, var(--rs-border)));
27
43
  border-radius: var(
28
44
  --rs-dynamic-tags-radius-local,
29
45
  var(--rs-dynamic-tags-radius, var(--rs-radius))
@@ -37,43 +53,53 @@
37
53
  box-shadow var(--rs-transition-fast),
38
54
  background-color var(--rs-transition-fast);
39
55
  }
40
- .rs-dynamic-tags[data-v-6ce33b85]:hover:not(.rs-dynamic-tags--disabled) {
56
+ .rs-dynamic-tags[data-v-2213feb0]:hover:not(.rs-dynamic-tags--disabled):not(.rs-dynamic-tags--readonly) {
41
57
  border-color: var(
42
58
  --rs-dynamic-tags-border-hover,
43
59
  var(--rs-input-border-hover, var(--rs-border))
44
60
  );
45
61
  }
46
- .rs-dynamic-tags--ssm[data-v-6ce33b85] {
47
- --rs-dynamic-tags-chip-height: 1.125rem;
62
+ .rs-dynamic-tags--ssm[data-v-2213feb0] {
63
+ --rs-dynamic-tags-box-height: var(--rs-control-height-ssm);
64
+ --rs-dynamic-tags-padding: 1px;
48
65
  }
49
- .rs-dynamic-tags--sm[data-v-6ce33b85] {
50
- --rs-dynamic-tags-chip-height: 1.25rem;
66
+ .rs-dynamic-tags--sm[data-v-2213feb0] {
67
+ --rs-dynamic-tags-box-height: var(--rs-control-height-sm);
51
68
  }
52
- .rs-dynamic-tags--md[data-v-6ce33b85] {
53
- --rs-dynamic-tags-chip-height: 1.5rem;
69
+ .rs-dynamic-tags--md[data-v-2213feb0] {
70
+ --rs-dynamic-tags-box-height: var(--rs-control-height-md);
54
71
  }
55
- .rs-dynamic-tags--lg[data-v-6ce33b85] {
56
- --rs-dynamic-tags-chip-height: 1.75rem;
72
+ .rs-dynamic-tags--lg[data-v-2213feb0] {
73
+ --rs-dynamic-tags-box-height: var(--rs-control-height-lg);
57
74
  }
58
- .rs-dynamic-tags--editing[data-v-6ce33b85]:not(.rs-dynamic-tags--disabled),
59
- .rs-dynamic-tags[data-v-6ce33b85]:focus-within:not(.rs-dynamic-tags--disabled) {
75
+ .rs-dynamic-tags--editing[data-v-2213feb0]:not(.rs-dynamic-tags--disabled):not(.rs-dynamic-tags--readonly),
76
+ .rs-dynamic-tags[data-v-2213feb0]:focus-within:not(.rs-dynamic-tags--disabled):not(.rs-dynamic-tags--readonly) {
60
77
  border-color: var(--rs-focus-border, var(--rs-primary));
61
78
  box-shadow:
62
79
  var(--rs-dynamic-tags-shadow, var(--rs-input-shadow, none)),
63
80
  0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
64
81
  }
65
- .rs-dynamic-tags--feedback[data-v-6ce33b85],
66
- .rs-dynamic-tags--invalid[data-v-6ce33b85] {
82
+ .rs-dynamic-tags--feedback[data-v-2213feb0],
83
+ .rs-dynamic-tags--invalid[data-v-2213feb0] {
84
+ border-color: var(--rs-danger);
85
+ }
86
+ .rs-dynamic-tags--invalid[data-v-2213feb0]:focus-within:not(.rs-dynamic-tags--disabled) {
67
87
  border-color: var(--rs-danger);
88
+ box-shadow:
89
+ var(--rs-dynamic-tags-shadow, var(--rs-input-shadow, none)),
90
+ 0 0 0 var(--rs-focus-ring-width, 2px) color-mix(in srgb, var(--rs-danger) 14%, transparent);
68
91
  }
69
- .rs-dynamic-tags--feedback[data-v-6ce33b85] {
70
- animation: rs-dynamic-tags-shake-6ce33b85 0.45s ease;
92
+ .rs-dynamic-tags--feedback[data-v-2213feb0] {
93
+ animation: rs-dynamic-tags-shake-2213feb0 0.45s ease;
71
94
  }
72
- .rs-dynamic-tags--disabled[data-v-6ce33b85] {
73
- opacity: 0.55;
95
+ .rs-dynamic-tags--disabled[data-v-2213feb0] {
96
+ opacity: var(--rs-dynamic-tags-disabled-opacity, 0.38);
74
97
  cursor: not-allowed;
75
98
  }
76
- .rs-dynamic-tags__input[data-v-6ce33b85] {
99
+ .rs-dynamic-tags--readonly[data-v-2213feb0] {
100
+ cursor: default;
101
+ }
102
+ .rs-dynamic-tags__input[data-v-2213feb0] {
77
103
  flex: 1 1 6rem;
78
104
  min-width: 4rem;
79
105
  width: 0;
@@ -83,7 +109,7 @@
83
109
  border: 0;
84
110
  outline: none;
85
111
  background: transparent;
86
- color: var(--rs-text);
112
+ color: var(--rs-text-primary, var(--rs-text));
87
113
  font: inherit;
88
114
  font-size: var(--rs-font-size-sm);
89
115
  line-height: var(--rs-dynamic-tags-chip-height);
@@ -91,15 +117,15 @@
91
117
  box-shadow: none;
92
118
  appearance: none;
93
119
  }
94
- .rs-dynamic-tags--ssm .rs-dynamic-tags__input[data-v-6ce33b85],
95
- .rs-dynamic-tags--sm .rs-dynamic-tags__input[data-v-6ce33b85] {
120
+ .rs-dynamic-tags--ssm .rs-dynamic-tags__input[data-v-2213feb0],
121
+ .rs-dynamic-tags--sm .rs-dynamic-tags__input[data-v-2213feb0] {
96
122
  font-size: var(--rs-font-size-xs);
97
123
  }
98
- .rs-dynamic-tags__input[data-v-6ce33b85]::placeholder {
99
- color: var(--rs-placeholder);
124
+ .rs-dynamic-tags__input[data-v-2213feb0]::placeholder {
125
+ color: var(--rs-text-tertiary, var(--rs-placeholder));
100
126
  line-height: var(--rs-dynamic-tags-chip-height);
101
127
  }
102
- .rs-dynamic-tags__trigger[data-v-6ce33b85] {
128
+ .rs-dynamic-tags__trigger[data-v-2213feb0] {
103
129
  display: inline-flex;
104
130
  flex-shrink: 0;
105
131
  align-items: center;
@@ -111,7 +137,7 @@
111
137
  border: 1px dashed var(--rs-dynamic-tags-trigger-border, var(--rs-border));
112
138
  border-radius: var(--rs-radius-sm);
113
139
  background: transparent;
114
- color: var(--rs-muted);
140
+ color: var(--rs-text-secondary, var(--rs-muted));
115
141
  cursor: pointer;
116
142
  outline: none;
117
143
  box-sizing: border-box;
@@ -120,15 +146,41 @@
120
146
  border-color var(--rs-transition-fast),
121
147
  background-color var(--rs-transition-fast);
122
148
  }
123
- .rs-dynamic-tags__trigger[data-v-6ce33b85]:hover {
149
+ .rs-dynamic-tags__trigger[data-v-2213feb0]:hover {
124
150
  color: var(--rs-primary);
125
151
  border-color: var(--rs-primary);
126
152
  background: color-mix(in srgb, var(--rs-primary) 8%, transparent);
127
153
  }
128
- .rs-dynamic-tags__trigger[data-v-6ce33b85]:focus-visible {
154
+ .rs-dynamic-tags__trigger[data-v-2213feb0]:focus-visible {
155
+ box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
156
+ }
157
+ .rs-dynamic-tags__clear[data-v-2213feb0] {
158
+ display: inline-flex;
159
+ flex-shrink: 0;
160
+ align-items: center;
161
+ justify-content: center;
162
+ width: var(--rs-dynamic-tags-chip-height);
163
+ height: var(--rs-dynamic-tags-chip-height);
164
+ padding: 0;
165
+ border: 0;
166
+ border-radius: var(--rs-radius-xs);
167
+ background: transparent;
168
+ color: var(--rs-text-secondary, var(--rs-muted));
169
+ cursor: pointer;
170
+ outline: none;
171
+ box-sizing: border-box;
172
+ transition:
173
+ color var(--rs-transition-fast),
174
+ background-color var(--rs-transition-fast);
175
+ }
176
+ .rs-dynamic-tags__clear[data-v-2213feb0]:hover {
177
+ color: var(--rs-text-primary, var(--rs-text));
178
+ background: var(--rs-item-hover);
179
+ }
180
+ .rs-dynamic-tags__clear[data-v-2213feb0]:focus-visible {
129
181
  box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
130
182
  }
131
- @keyframes rs-dynamic-tags-shake-6ce33b85 {
183
+ @keyframes rs-dynamic-tags-shake-2213feb0 {
132
184
  0%,
133
185
  100% {
134
186
  transform: translateX(0);
@@ -146,3 +198,28 @@
146
198
  transform: translateX(2px);
147
199
  }
148
200
  }
201
+ @media (prefers-reduced-motion: reduce) {
202
+ .rs-dynamic-tags[data-v-2213feb0] {
203
+ transition: none;
204
+ }
205
+ .rs-dynamic-tags--feedback[data-v-2213feb0] {
206
+ animation: none;
207
+ }
208
+ .rs-dynamic-tags__trigger[data-v-2213feb0],
209
+ .rs-dynamic-tags__clear[data-v-2213feb0] {
210
+ transition: none;
211
+ }
212
+ }
213
+ @media (forced-colors: active) {
214
+ .rs-dynamic-tags[data-v-2213feb0] {
215
+ border: 1px solid ButtonText;
216
+ background: Field;
217
+ forced-color-adjust: none;
218
+ }
219
+ .rs-dynamic-tags[data-v-2213feb0]:focus-within {
220
+ border-color: Highlight;
221
+ }
222
+ .rs-dynamic-tags__input[data-v-2213feb0] {
223
+ color: FieldText;
224
+ }
225
+ }
@@ -1,8 +1,29 @@
1
1
  import type { RsComponentSize, RsRadius } from '../../../theme/types';
2
2
  import { type RsFormRuleTrigger } from '../../form/src/form-rules';
3
- import type { RsTagVariant } from '../../tag/src/RsTag.js';
3
+ import type { RsTagVariant } from '../../tag';
4
+ import { type RsDynamicTagsParse, type RsDynamicTagsRejectReason } from './dynamic-tags-utils';
5
+ /**
6
+ * RsDynamicTags 模板 ref 请用此类型。
7
+ * 不要写 `InstanceType<typeof RsDynamicTags>`:组件实例类型过深,vue-tsc 会报 Excessive stack depth。
8
+ */
9
+ export interface RsDynamicTagsExpose {
10
+ validate: (trigger?: RsFormRuleTrigger) => Promise<{
11
+ valid: boolean;
12
+ message?: string;
13
+ name?: string;
14
+ }>;
15
+ clearValidation: () => void;
16
+ setValue: (value: unknown) => void;
17
+ setError: (message: string) => void;
18
+ focus: () => void;
19
+ blur: () => void;
20
+ }
21
+ /** 模板 ref 实例:expose + 根节点 */
22
+ export type RsDynamicTagsInstance = RsDynamicTagsExpose & {
23
+ $el: HTMLElement;
24
+ };
4
25
  export type RsDynamicTagsInputMode = 'trigger' | 'always';
5
- export type RsDynamicTagsRejectReason = 'duplicate' | 'max';
26
+ export type { RsDynamicTagsParse, RsDynamicTagsRejectReason };
6
27
  type __VLS_Props = {
7
28
  /** 字段名:匹配 RsForm.rules[name] */
8
29
  name?: string;
@@ -10,6 +31,7 @@ type __VLS_Props = {
10
31
  invalid?: boolean;
11
32
  placeholder?: string;
12
33
  disabled?: boolean;
34
+ readonly?: boolean;
13
35
  required?: boolean;
14
36
  max?: number;
15
37
  /** 输入内容最大长度 */
@@ -23,37 +45,48 @@ type __VLS_Props = {
23
45
  inputMode?: RsDynamicTagsInputMode;
24
46
  /** 失焦时是否提交当前输入 */
25
47
  commitOnBlur?: boolean;
48
+ /**
49
+ * 分隔符。输入或粘贴遇到即切开成多个标签。
50
+ * 例:',' 或 [',', ';']。空格作分隔时每敲一个空格就会提交。
51
+ */
52
+ separators?: string | string[];
53
+ /** 提交前变换或拒绝。false 发 reject('invalid')。 */
54
+ parse?: RsDynamicTagsParse;
55
+ /** 有标签且非禁用 / 只读时显示清空 */
56
+ allowClear?: boolean;
26
57
  size?: RsComponentSize;
27
58
  radius?: RsRadius;
28
59
  /** 标签视觉变体 */
29
60
  tagVariant?: RsTagVariant;
30
61
  round?: boolean;
62
+ /** 无障碍名称。旁边已有可见 label 时可省略。 */
63
+ ariaLabel?: string;
31
64
  };
32
- declare function runValidate(trigger?: RsFormRuleTrigger): Promise<{
33
- valid: true;
34
- name: string | undefined;
35
- message?: undefined;
36
- } | {
37
- valid: boolean;
38
- message: string | undefined;
39
- name: string | undefined;
40
- }>;
41
- declare function setValue(value: unknown): void;
42
- declare function clearValidation(): void;
43
65
  type __VLS_ModelProps = {
44
66
  modelValue?: string[];
45
67
  };
46
68
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
47
- declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
48
- validate: typeof runValidate;
49
- clearValidation: typeof clearValidation;
50
- setValue: typeof setValue;
51
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
69
+ declare var __VLS_9: {
70
+ tag: string;
71
+ index: number;
72
+ }, __VLS_11: {};
73
+ type __VLS_Slots = {} & {
74
+ tag?: (props: typeof __VLS_9) => any;
75
+ } & {
76
+ trigger?: (props: typeof __VLS_11) => any;
77
+ };
78
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsDynamicTagsExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
79
+ blur: (event: FocusEvent) => any;
80
+ focus: (event: FocusEvent) => any;
81
+ clear: () => any;
52
82
  "update:modelValue": (value: string[]) => any;
53
83
  create: (value: string) => any;
54
84
  remove: (value: string, index: number) => any;
55
85
  reject: (reason: RsDynamicTagsRejectReason, value: string) => any;
56
86
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
87
+ onBlur?: ((event: FocusEvent) => any) | undefined;
88
+ onFocus?: ((event: FocusEvent) => any) | undefined;
89
+ onClear?: (() => any) | undefined;
57
90
  "onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
58
91
  onCreate?: ((value: string) => any) | undefined;
59
92
  onRemove?: ((value: string, index: number) => any) | undefined;
@@ -62,10 +95,18 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
62
95
  required: boolean;
63
96
  disabled: boolean;
64
97
  round: boolean;
98
+ readonly: boolean;
65
99
  allowDuplicate: boolean;
66
100
  inputMode: RsDynamicTagsInputMode;
67
101
  commitOnBlur: boolean;
102
+ allowClear: boolean;
68
103
  tagVariant: RsTagVariant;
69
104
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
105
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
70
106
  declare const _default: typeof __VLS_export;
71
107
  export default _default;
108
+ type __VLS_WithSlots<T, S> = T & {
109
+ new (): {
110
+ $slots: S;
111
+ };
112
+ };