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,81 +1,226 @@
1
1
 
2
- .rs-cascader[data-v-4b45dd5a] {
2
+ .rs-cascader-wrap[data-v-8c1435b6] {
3
+ --rs-cascader-min-width: 12rem;
4
+ position: relative;
5
+ display: inline-flex;
6
+ box-sizing: border-box;
7
+ width: 100%;
8
+ max-width: 100%;
9
+ min-width: var(--rs-cascader-min-width);
10
+ color: var(--rs-text);
11
+ color-scheme: inherit;
12
+ vertical-align: middle;
13
+ }
14
+ .rs-cascader-wrap--clearable .rs-cascader[data-v-8c1435b6] {
15
+ padding-inline-end: calc(var(--rs-space-md) + 2.25rem);
16
+ }
17
+ .rs-cascader-wrap--clearable .rs-cascader--ssm[data-v-8c1435b6] {
18
+ padding-inline-end: calc(var(--rs-space-xs) + 2rem);
19
+ }
20
+ .rs-cascader-wrap--clearable .rs-cascader--sm[data-v-8c1435b6] {
21
+ padding-inline-end: calc(var(--rs-space-sm) + 2rem);
22
+ }
23
+ .rs-cascader-wrap--clearable .rs-cascader--lg[data-v-8c1435b6] {
24
+ padding-inline-end: calc(var(--rs-space-lg) + 2.25rem);
25
+ }
26
+ .rs-cascader[data-v-8c1435b6] {
27
+ appearance: none;
3
28
  display: inline-flex;
4
29
  align-items: center;
5
30
  gap: var(--rs-space-sm);
6
31
  box-sizing: border-box;
7
32
  width: 100%;
8
- min-width: 12rem;
33
+ min-width: var(--rs-cascader-min-width);
9
34
  height: var(--rs-control-height-md);
35
+ min-height: var(--rs-control-height-md);
10
36
  padding: 0 var(--rs-space-md);
11
37
  border: 1px solid var(--rs-input-border, var(--rs-border));
12
38
  border-radius: var(--rs-radius-sm);
13
39
  background: var(--rs-input-bg);
14
40
  color: var(--rs-text);
41
+ font-family: inherit;
15
42
  font-size: var(--rs-font-size-sm);
43
+ line-height: var(--rs-line-height-tight);
44
+ text-align: start;
16
45
  cursor: pointer;
46
+ outline: none;
47
+ box-shadow: var(--rs-input-shadow, none);
48
+ transition:
49
+ border-color var(--rs-transition-fast),
50
+ box-shadow var(--rs-transition-fast),
51
+ background var(--rs-transition-fast);
17
52
  }
18
- .rs-cascader--sm[data-v-4b45dd5a] {
53
+ .rs-cascader--ssm[data-v-8c1435b6] {
54
+ height: var(--rs-control-height-ssm);
55
+ min-height: var(--rs-control-height-ssm);
56
+ padding: 0 var(--rs-space-xs);
57
+ font-size: var(--rs-font-size-xs);
58
+ }
59
+ .rs-cascader--sm[data-v-8c1435b6] {
19
60
  height: var(--rs-control-height-sm);
61
+ min-height: var(--rs-control-height-sm);
62
+ padding: 0 var(--rs-space-sm);
63
+ font-size: var(--rs-font-size-xs);
64
+ }
65
+ .rs-cascader--md[data-v-8c1435b6] {
66
+ height: var(--rs-control-height-md);
67
+ min-height: var(--rs-control-height-md);
20
68
  }
21
- .rs-cascader--lg[data-v-4b45dd5a] {
69
+ .rs-cascader--lg[data-v-8c1435b6] {
22
70
  height: var(--rs-control-height-lg);
71
+ min-height: var(--rs-control-height-lg);
72
+ padding: 0 var(--rs-space-lg);
73
+ font-size: var(--rs-font-size-base);
23
74
  }
24
- .rs-cascader--disabled[data-v-4b45dd5a] {
25
- opacity: 0.38;
75
+ .rs-cascader[data-v-8c1435b6]:hover:not(:disabled) {
76
+ border-color: var(--rs-input-border-hover, var(--rs-border));
77
+ }
78
+ .rs-cascader--open[data-v-8c1435b6]:not(:disabled),
79
+ .rs-cascader[data-v-8c1435b6]:focus-visible {
80
+ outline: none;
81
+ border-color: var(--rs-focus-border, var(--rs-primary));
82
+ background: var(--rs-input-bg);
83
+ box-shadow:
84
+ var(--rs-input-shadow, none),
85
+ 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
86
+ }
87
+ .rs-cascader--disabled[data-v-8c1435b6],
88
+ .rs-cascader[data-v-8c1435b6]:disabled {
89
+ color: var(--rs-text-disabled);
26
90
  cursor: not-allowed;
91
+ background: var(--rs-surface-hover);
92
+ opacity: 0.38;
27
93
  }
28
- .rs-cascader__placeholder[data-v-4b45dd5a] {
94
+ .rs-cascader__placeholder[data-v-8c1435b6] {
29
95
  flex: 1;
30
- color: var(--rs-muted);
96
+ min-width: 0;
97
+ overflow: hidden;
98
+ color: var(--rs-placeholder);
31
99
  text-align: start;
100
+ text-overflow: ellipsis;
101
+ white-space: nowrap;
32
102
  }
33
- .rs-cascader__value[data-v-4b45dd5a] {
103
+ .rs-cascader__value[data-v-8c1435b6] {
34
104
  flex: 1;
105
+ min-width: 0;
35
106
  overflow: hidden;
36
107
  text-align: start;
37
108
  text-overflow: ellipsis;
38
109
  white-space: nowrap;
39
110
  }
40
- .rs-cascader__clear[data-v-4b45dd5a],
41
- .rs-cascader__icon[data-v-4b45dd5a] {
111
+ .rs-cascader__icon[data-v-8c1435b6] {
112
+ flex-shrink: 0;
42
113
  color: var(--rs-muted);
114
+ transition: transform var(--rs-transition-fast);
43
115
  }
44
- .rs-cascader__clear[data-v-4b45dd5a] {
45
- border: 0;
46
- background: transparent;
47
- cursor: pointer;
116
+ .rs-cascader--open .rs-cascader__icon[data-v-8c1435b6] {
117
+ transform: rotate(180deg);
118
+ }
119
+ .rs-cascader__clear[data-v-8c1435b6] {
120
+ position: absolute;
121
+ inset-inline-end: calc(var(--rs-space-sm) + 1.125rem);
122
+ inset-block-start: 50%;
123
+ transform: translateY(-50%);
124
+ color: var(--rs-muted);
48
125
  }
49
- .rs-cascader__panel[data-v-4b45dd5a] {
126
+ .rs-cascader__panel[data-v-8c1435b6] {
127
+ --rs-cascader-panel-min-h: 8rem;
128
+ --rs-cascader-panel-max-h: 16rem;
129
+ --rs-cascader-col-min-w: 8rem;
130
+ z-index: calc(var(--rs-z-modal) + 2);
50
131
  display: flex;
51
- min-height: 8rem;
52
- max-height: 16rem;
132
+ box-sizing: border-box;
133
+ min-height: var(--rs-cascader-panel-min-h);
134
+ max-height: var(--rs-cascader-panel-max-h);
135
+ overflow: hidden;
136
+ border: 1px solid var(--rs-dialog-border, var(--rs-border));
137
+ border-radius: var(--rs-radius);
138
+ background: var(--rs-surface-elevated);
139
+ box-shadow: var(--rs-shadow-lg);
140
+ color: var(--rs-text);
141
+ color-scheme: inherit;
53
142
  }
54
- .rs-cascader__col[data-v-4b45dd5a] {
55
- min-width: 8rem;
143
+ .rs-cascader__col[data-v-8c1435b6] {
144
+ min-width: var(--rs-cascader-col-min-w);
56
145
  margin: 0;
57
146
  padding: var(--rs-space-xs);
58
147
  overflow: auto;
59
- border-inline-end: 1px solid var(--rs-border);
148
+ border-inline-end: 1px solid var(--rs-border-subtle, var(--rs-border));
60
149
  list-style: none;
61
150
  }
62
- .rs-cascader__col[data-v-4b45dd5a]:last-child {
151
+ .rs-cascader__col[data-v-8c1435b6]:last-child {
63
152
  border-inline-end: 0;
64
153
  }
65
- .rs-cascader__item[data-v-4b45dd5a] {
154
+ .rs-cascader__item[data-v-8c1435b6] {
66
155
  display: flex;
67
156
  align-items: center;
68
157
  justify-content: space-between;
69
158
  gap: var(--rs-space-sm);
70
- padding: var(--rs-space-xs) var(--rs-space-sm);
71
- border-radius: var(--rs-radius-xs);
159
+ box-sizing: border-box;
160
+ min-height: var(--rs-control-height-md);
161
+ padding: var(--rs-space-sm) var(--rs-space-md);
162
+ border-radius: var(--rs-radius-sm);
163
+ color: var(--rs-text);
164
+ font-size: var(--rs-font-size-sm);
165
+ line-height: var(--rs-line-height-tight);
72
166
  cursor: pointer;
167
+ user-select: none;
168
+ transition:
169
+ background var(--rs-transition-fast),
170
+ color var(--rs-transition-fast);
73
171
  }
74
- .rs-cascader__item--active[data-v-4b45dd5a],
75
- .rs-cascader__item[data-v-4b45dd5a]:hover:not(.rs-cascader__item--disabled) {
76
- background: var(--rs-surface-hover);
172
+ .rs-cascader__item > span[data-v-8c1435b6] {
173
+ flex: 1;
174
+ min-width: 0;
175
+ overflow: hidden;
176
+ text-overflow: ellipsis;
177
+ white-space: nowrap;
178
+ }
179
+ .rs-cascader__item--highlight[data-v-8c1435b6]:not(.rs-cascader__item--active) {
180
+ background: var(--rs-item-hover);
77
181
  }
78
- .rs-cascader__item--disabled[data-v-4b45dd5a] {
79
- opacity: 0.4;
182
+ .rs-cascader__item--active[data-v-8c1435b6] {
183
+ color: var(--rs-primary);
184
+ background: color-mix(in srgb, var(--rs-primary) 12%, transparent);
185
+ }
186
+ .rs-cascader__item--disabled[data-v-8c1435b6] {
187
+ opacity: 0.38;
80
188
  cursor: not-allowed;
81
189
  }
190
+ .rs-cascader__panel--ssm .rs-cascader__item[data-v-8c1435b6],
191
+ .rs-cascader__panel--sm .rs-cascader__item[data-v-8c1435b6] {
192
+ gap: var(--rs-space-xs);
193
+ font-size: var(--rs-font-size-xs);
194
+ line-height: var(--rs-line-height-tight);
195
+ }
196
+ .rs-cascader__panel--sm .rs-cascader__item[data-v-8c1435b6] {
197
+ min-height: var(--rs-control-height-sm);
198
+ padding: 0.25rem 0.5rem;
199
+ }
200
+ .rs-cascader__panel--ssm .rs-cascader__item[data-v-8c1435b6] {
201
+ min-height: var(--rs-control-height-ssm);
202
+ padding: 0.125rem 0.375rem;
203
+ }
204
+ .rs-cascader__panel--lg .rs-cascader__item[data-v-8c1435b6] {
205
+ min-height: var(--rs-control-height-lg);
206
+ padding: var(--rs-space-sm) var(--rs-space-lg);
207
+ font-size: var(--rs-font-size-base);
208
+ }
209
+ @media (hover: hover) {
210
+ .rs-cascader__item[data-v-8c1435b6]:hover:not(.rs-cascader__item--disabled) {
211
+ background: var(--rs-item-hover);
212
+ }
213
+ .rs-cascader__item--active[data-v-8c1435b6]:hover:not(.rs-cascader__item--disabled) {
214
+ background: color-mix(in srgb, var(--rs-primary) 18%, transparent);
215
+ }
216
+ }
217
+ @media (prefers-reduced-motion: reduce) {
218
+ .rs-cascader[data-v-8c1435b6],
219
+ .rs-cascader__icon[data-v-8c1435b6],
220
+ .rs-cascader__item[data-v-8c1435b6] {
221
+ transition: none;
222
+ }
223
+ .rs-cascader--open .rs-cascader__icon[data-v-8c1435b6] {
224
+ transform: none;
225
+ }
226
+ }
@@ -1,5 +1,15 @@
1
- import type { RsComponentSize } from '../../../theme/types';
1
+ import { type RsComponentSize } from '../../../theme/types';
2
2
  import { type RsCascaderExpandTrigger, type RsCascaderOption, type RsCascaderPath } from './cascader-utils';
3
+ /**
4
+ * RsCascader 模板 ref 请用此类型。
5
+ * 不要写 `InstanceType<typeof RsCascader>`:组件实例类型过深,vue-tsc 会报 Excessive stack depth。
6
+ */
7
+ export interface RsCascaderExpose {
8
+ focus: () => void;
9
+ }
10
+ export type RsCascaderInstance = RsCascaderExpose & {
11
+ $el: HTMLElement;
12
+ };
3
13
  type __VLS_Props = {
4
14
  options: readonly RsCascaderOption[];
5
15
  placeholder?: string;
@@ -9,13 +19,15 @@ type __VLS_Props = {
9
19
  expandTrigger?: RsCascaderExpandTrigger;
10
20
  separator?: string;
11
21
  size?: RsComponentSize;
22
+ ariaLabel?: string;
23
+ id?: string;
12
24
  };
13
25
  type __VLS_ModelProps = {
14
26
  modelValue?: RsCascaderPath;
15
27
  'open'?: boolean;
16
28
  };
17
29
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
18
- declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, RsCascaderExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
31
  change: (path: RsCascaderPath) => any;
20
32
  "update:modelValue": (value: RsCascaderPath) => any;
21
33
  "update:open": (value: boolean) => any;
@@ -1,11 +1,20 @@
1
+ import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
1
2
  import { useRsI18n } from "../../../composables/useRsI18n.js";
2
3
  import RsIcon_default from "../../icon/src/RsIcon.js";
4
+ import { useRsFormContext } from "../../form/src/form-utils.js";
3
5
  import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
4
- import RsPopover_default from "../../popover/src/RsPopover.js";
5
- import { cascaderColumns, cascaderDisplay, isCascaderLeaf } from "./cascader-utils.js";
6
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderList, toDisplayString, unref, useModel, withCtx, withModifiers } from "vue";
6
+ import RsButton_default from "../../button/src/RsButton.js";
7
+ import { placeAnchoredPopup, stepEnabledIndex } from "../../_shared/src/overlay-utils.js";
8
+ import { cascaderColumns, cascaderDisplay, isCascaderLeaf, nextCascaderPath, popCascaderPath } from "./cascader-utils.js";
9
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, openBlock, ref, renderList, toDisplayString, unref, useId, useModel, useTemplateRef, watch, withModifiers } from "vue";
7
10
  //#region src/components/cascader/src/RsCascader.vue?vue&type=script&setup=true&lang.ts
8
- var _hoisted_1 = ["disabled"];
11
+ var _hoisted_1 = [
12
+ "id",
13
+ "disabled",
14
+ "aria-label",
15
+ "aria-expanded",
16
+ "aria-controls"
17
+ ];
9
18
  var _hoisted_2 = {
10
19
  key: 0,
11
20
  class: "rs-cascader__value"
@@ -14,7 +23,11 @@ var _hoisted_3 = {
14
23
  key: 1,
15
24
  class: "rs-cascader__placeholder"
16
25
  };
17
- var _hoisted_4 = ["aria-label"];
26
+ var _hoisted_4 = [
27
+ "id",
28
+ "data-placement",
29
+ "data-rs-theme"
30
+ ];
18
31
  var _hoisted_5 = ["onClick", "onMouseenter"];
19
32
  var RsCascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
20
33
  name: "RsCascader",
@@ -36,7 +49,9 @@ var RsCascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
36
49
  },
37
50
  expandTrigger: { default: "click" },
38
51
  separator: { default: " / " },
39
- size: {}
52
+ size: {},
53
+ ariaLabel: {},
54
+ id: {}
40
55
  }, {
41
56
  "modelValue": { default: () => [] },
42
57
  "modelModifiers": {},
@@ -47,21 +62,60 @@ var RsCascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
47
62
  "openModifiers": {}
48
63
  }),
49
64
  emits: /*@__PURE__*/ mergeModels(["change"], ["update:modelValue", "update:open"]),
50
- setup(__props, { emit: __emit }) {
65
+ setup(__props, { expose: __expose, emit: __emit }) {
51
66
  const model = useModel(__props, "modelValue");
52
67
  const open = useModel(__props, "open");
53
68
  const props = __props;
54
69
  const emit = __emit;
55
70
  const { t } = useRsI18n();
71
+ const formContext = useRsFormContext();
56
72
  const resolvedSize = useResolvedRsComponentSize(() => props.size);
73
+ const resolvedDisabled = computed(() => props.disabled || Boolean(formContext?.disabled.value));
74
+ const panelId = useId();
75
+ const triggerId = computed(() => props.id || panelId);
76
+ const triggerRef = useTemplateRef("triggerRef");
77
+ const panelRef = useTemplateRef("panelRef");
78
+ const rootRef = useTemplateRef("rootRef");
79
+ const highlight = ref(0);
80
+ const panelTheme = ref();
81
+ const popup = ref({
82
+ top: 0,
83
+ left: 0,
84
+ width: 0,
85
+ placement: "bottom"
86
+ });
87
+ const chevronSize = computed(() => RS_COMPONENT_SIZE_ICON_PX[resolvedSize.value]);
88
+ const clearIconSize = RS_COMPONENT_SIZE_ICON_PX.ssm;
57
89
  const columns = computed(() => cascaderColumns(props.options, model.value));
58
90
  const display = computed(() => cascaderDisplay(props.options, model.value, props.separator));
91
+ const activeCol = computed(() => Math.max(0, columns.value.length - 1));
92
+ const activeOptions = computed(() => columns.value[activeCol.value] ?? []);
93
+ const highlighted = computed(() => activeOptions.value[highlight.value]);
94
+ const itemIconSize = computed(() => {
95
+ if (resolvedSize.value === "lg") return 16;
96
+ if (resolvedSize.value === "md") return 14;
97
+ return 12;
98
+ });
99
+ const triggerClass = computed(() => [
100
+ "rs-cascader",
101
+ `rs-cascader--${resolvedSize.value}`,
102
+ {
103
+ "rs-cascader--disabled": resolvedDisabled.value,
104
+ "rs-cascader--open": open.value
105
+ }
106
+ ]);
107
+ const panelClass = computed(() => ["rs-cascader__panel", `rs-cascader__panel--${resolvedSize.value}`]);
108
+ const panelStyle = computed(() => ({
109
+ position: "fixed",
110
+ top: `${popup.value.top}px`,
111
+ left: `${popup.value.left}px`
112
+ }));
59
113
  function isActive(depth, value) {
60
114
  return String(model.value[depth] ?? "") === String(value);
61
115
  }
62
116
  function pick(depth, option) {
63
- if (option.disabled) return;
64
- const next = [...model.value.slice(0, depth), option.value];
117
+ if (option.disabled || resolvedDisabled.value) return;
118
+ const next = nextCascaderPath(model.value, depth, option.value);
65
119
  model.value = next;
66
120
  emit("change", next);
67
121
  if (isCascaderLeaf(option) || props.changeOnSelect && props.expandTrigger === "click") {
@@ -70,32 +124,229 @@ var RsCascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
70
124
  }
71
125
  function onHover(depth, option) {
72
126
  if (props.expandTrigger !== "hover" || option.disabled) return;
73
- if (!isCascaderLeaf(option)) model.value = [...model.value.slice(0, depth), option.value];
127
+ if (!isCascaderLeaf(option)) model.value = nextCascaderPath(model.value, depth, option.value);
74
128
  }
75
129
  function onClear() {
130
+ if (resolvedDisabled.value) return;
76
131
  model.value = [];
77
132
  emit("change", []);
78
133
  }
79
- return (_ctx, _cache) => {
80
- return openBlock(), createBlock(RsPopover_default, {
81
- open: open.value,
82
- "onUpdate:open": _cache[1] || (_cache[1] = ($event) => open.value = $event),
83
- side: "bottom",
84
- align: "start",
85
- width: "auto"
134
+ function focus() {
135
+ triggerRef.value?.focus();
136
+ }
137
+ function toggleOpen() {
138
+ if (resolvedDisabled.value) return;
139
+ open.value = !open.value;
140
+ }
141
+ function syncHighlight() {
142
+ const col = activeOptions.value;
143
+ const selected = model.value[activeCol.value];
144
+ const idx = col.findIndex((item) => String(item.value) === String(selected ?? ""));
145
+ highlight.value = idx >= 0 ? idx : stepEnabledIndex(col, -1, 1);
146
+ }
147
+ function syncPanelTheme() {
148
+ const el = triggerRef.value;
149
+ if (!el) {
150
+ panelTheme.value = void 0;
151
+ return;
152
+ }
153
+ const themed = el.closest("[data-rs-theme]");
154
+ panelTheme.value = themed instanceof HTMLElement ? themed.dataset.rsTheme : void 0;
155
+ }
156
+ function placePopup() {
157
+ const trigger = triggerRef.value;
158
+ const panel = panelRef.value;
159
+ if (!trigger || !open.value || typeof window === "undefined") return;
160
+ const anchor = trigger.getBoundingClientRect();
161
+ const measured = panel?.getBoundingClientRect();
162
+ const prefWidth = Math.max(anchor.width, measured?.width || anchor.width);
163
+ popup.value = placeAnchoredPopup({
164
+ top: anchor.top,
165
+ left: anchor.left,
166
+ height: anchor.height,
167
+ width: anchor.width
168
+ }, {
169
+ width: prefWidth,
170
+ height: measured?.height || 256
86
171
  }, {
87
- content: withCtx(() => [createElementVNode("div", {
88
- class: "rs-cascader__panel",
89
- onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"]))
172
+ width: window.innerWidth,
173
+ height: window.innerHeight
174
+ });
175
+ }
176
+ let frame = 0;
177
+ function requestPlace() {
178
+ if (typeof window === "undefined") return;
179
+ if (frame) return;
180
+ frame = window.requestAnimationFrame(() => {
181
+ frame = 0;
182
+ placePopup();
183
+ });
184
+ }
185
+ function onDocPointerDown(event) {
186
+ const target = event.target;
187
+ if (!target) return;
188
+ if (rootRef.value?.contains(target)) return;
189
+ if (panelRef.value?.contains(target)) return;
190
+ open.value = false;
191
+ }
192
+ function onWindowChange() {
193
+ if (open.value) requestPlace();
194
+ }
195
+ function detachOverlay() {
196
+ if (frame && typeof window !== "undefined") {
197
+ window.cancelAnimationFrame(frame);
198
+ frame = 0;
199
+ }
200
+ if (typeof document !== "undefined") document.removeEventListener("pointerdown", onDocPointerDown);
201
+ if (typeof window !== "undefined") {
202
+ window.removeEventListener("resize", onWindowChange);
203
+ window.removeEventListener("scroll", onWindowChange, true);
204
+ }
205
+ }
206
+ function moveHighlight(delta) {
207
+ highlight.value = stepEnabledIndex(activeOptions.value, highlight.value, delta);
208
+ }
209
+ function handleClosedKeys(event) {
210
+ if (event.key !== "ArrowDown" && event.key !== "Enter" && event.key !== " ") return false;
211
+ event.preventDefault();
212
+ open.value = true;
213
+ return true;
214
+ }
215
+ function handleOpenKeys(event) {
216
+ const col = activeOptions.value;
217
+ if (event.key === "ArrowDown") {
218
+ event.preventDefault();
219
+ moveHighlight(1);
220
+ return true;
221
+ }
222
+ if (event.key === "ArrowUp") {
223
+ event.preventDefault();
224
+ moveHighlight(-1);
225
+ return true;
226
+ }
227
+ if (event.key === "Home") {
228
+ event.preventDefault();
229
+ highlight.value = stepEnabledIndex(col, -1, 1);
230
+ return true;
231
+ }
232
+ if (event.key === "End") {
233
+ event.preventDefault();
234
+ highlight.value = stepEnabledIndex(col, col.length, -1);
235
+ return true;
236
+ }
237
+ if (event.key === "ArrowRight" && highlighted.value && !isCascaderLeaf(highlighted.value)) {
238
+ event.preventDefault();
239
+ pick(activeCol.value, highlighted.value);
240
+ return true;
241
+ }
242
+ if (event.key === "ArrowLeft" && model.value.length) {
243
+ event.preventDefault();
244
+ model.value = popCascaderPath(model.value);
245
+ return true;
246
+ }
247
+ if (event.key === "Enter" && highlighted.value) {
248
+ event.preventDefault();
249
+ pick(activeCol.value, highlighted.value);
250
+ return true;
251
+ }
252
+ return false;
253
+ }
254
+ function onTriggerKeydown(event) {
255
+ if (resolvedDisabled.value || event.isComposing) return;
256
+ if (event.key === "Escape" && open.value) {
257
+ event.preventDefault();
258
+ open.value = false;
259
+ return;
260
+ }
261
+ if (!open.value) {
262
+ handleClosedKeys(event);
263
+ return;
264
+ }
265
+ handleOpenKeys(event);
266
+ }
267
+ watch(open, (isOpen) => {
268
+ if (typeof document === "undefined" || typeof window === "undefined") return;
269
+ if (isOpen) {
270
+ if (resolvedDisabled.value) {
271
+ open.value = false;
272
+ return;
273
+ }
274
+ syncPanelTheme();
275
+ syncHighlight();
276
+ document.addEventListener("pointerdown", onDocPointerDown);
277
+ window.addEventListener("resize", onWindowChange);
278
+ window.addEventListener("scroll", onWindowChange, true);
279
+ nextTick(() => requestPlace());
280
+ return;
281
+ }
282
+ detachOverlay();
283
+ });
284
+ watch(columns, () => {
285
+ if (!open.value) return;
286
+ syncHighlight();
287
+ requestPlace();
288
+ });
289
+ onBeforeUnmount(detachOverlay);
290
+ __expose({ focus });
291
+ return (_ctx, _cache) => {
292
+ return openBlock(), createElementBlock("div", {
293
+ ref_key: "rootRef",
294
+ ref: rootRef,
295
+ class: normalizeClass(["rs-cascader-wrap", { "rs-cascader-wrap--clearable": __props.allowClear && display.value && !resolvedDisabled.value }])
296
+ }, [
297
+ createElementVNode("button", {
298
+ id: triggerId.value,
299
+ ref_key: "triggerRef",
300
+ ref: triggerRef,
301
+ type: "button",
302
+ class: normalizeClass(triggerClass.value),
303
+ disabled: resolvedDisabled.value,
304
+ "aria-label": __props.ariaLabel,
305
+ "aria-haspopup": "listbox",
306
+ "aria-expanded": open.value ? "true" : "false",
307
+ "aria-controls": open.value ? unref(panelId) : void 0,
308
+ onClick: toggleOpen,
309
+ onKeydown: onTriggerKeydown
310
+ }, [display.value ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(display.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.placeholder ?? unref(t)("select.placeholder")), 1)), createVNode(RsIcon_default, {
311
+ name: "chevron-down",
312
+ size: chevronSize.value,
313
+ class: "rs-cascader__icon",
314
+ "aria-hidden": "true"
315
+ }, null, 8, ["size"])], 42, _hoisted_1),
316
+ __props.allowClear && display.value && !resolvedDisabled.value ? (openBlock(), createBlock(RsButton_default, {
317
+ key: 0,
318
+ class: "rs-cascader__clear",
319
+ variant: "text",
320
+ bordered: false,
321
+ size: "ssm",
322
+ radius: "full",
323
+ icon: "x",
324
+ "icon-size": unref(clearIconSize),
325
+ "icon-only": "",
326
+ "aria-label": unref(t)("select.clear"),
327
+ onPointerdown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"])),
328
+ onClick: withModifiers(onClear, ["stop"])
329
+ }, null, 8, ["icon-size", "aria-label"])) : createCommentVNode("", true),
330
+ (openBlock(), createBlock(Teleport, { to: "body" }, [open.value && !resolvedDisabled.value ? (openBlock(), createElementBlock("div", {
331
+ key: 0,
332
+ id: unref(panelId),
333
+ ref_key: "panelRef",
334
+ ref: panelRef,
335
+ class: normalizeClass(panelClass.value),
336
+ "data-placement": popup.value.placement,
337
+ "data-rs-theme": panelTheme.value,
338
+ style: normalizeStyle(panelStyle.value),
339
+ onMousedown: _cache[1] || (_cache[1] = withModifiers(() => {}, ["prevent"]))
90
340
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(columns.value, (col, depth) => {
91
341
  return openBlock(), createElementBlock("ul", {
92
342
  key: depth,
93
343
  class: "rs-cascader__col"
94
- }, [(openBlock(true), createElementBlock(Fragment, null, renderList(col, (opt) => {
344
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(col, (opt, index) => {
95
345
  return openBlock(), createElementBlock("li", {
96
346
  key: String(opt.value),
97
347
  class: normalizeClass(["rs-cascader__item", {
98
348
  "rs-cascader__item--active": isActive(depth, opt.value),
349
+ "rs-cascader__item--highlight": depth === activeCol.value && index === highlight.value,
99
350
  "rs-cascader__item--disabled": opt.disabled
100
351
  }]),
101
352
  onClick: ($event) => pick(depth, opt),
@@ -103,34 +354,12 @@ var RsCascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
103
354
  }, [createElementVNode("span", null, toDisplayString(opt.label), 1), !unref(isCascaderLeaf)(opt) ? (openBlock(), createBlock(RsIcon_default, {
104
355
  key: 0,
105
356
  name: "chevron-right",
106
- size: 12
107
- })) : createCommentVNode("", true)], 42, _hoisted_5);
357
+ size: itemIconSize.value,
358
+ "aria-hidden": "true"
359
+ }, null, 8, ["size"])) : createCommentVNode("", true)], 42, _hoisted_5);
108
360
  }), 128))]);
109
- }), 128))], 32)]),
110
- default: withCtx(() => [createElementVNode("button", {
111
- type: "button",
112
- class: normalizeClass(["rs-cascader", [`rs-cascader--${unref(resolvedSize)}`, { "rs-cascader--disabled": __props.disabled }]]),
113
- disabled: __props.disabled
114
- }, [
115
- display.value ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(display.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.placeholder ?? unref(t)("select.placeholder")), 1)),
116
- __props.allowClear && display.value && !__props.disabled ? (openBlock(), createElementBlock("button", {
117
- key: 2,
118
- type: "button",
119
- class: "rs-cascader__clear",
120
- "aria-label": unref(t)("select.clear"),
121
- onClick: withModifiers(onClear, ["stop"])
122
- }, [createVNode(RsIcon_default, {
123
- name: "x",
124
- size: 12
125
- })], 8, _hoisted_4)) : createCommentVNode("", true),
126
- createVNode(RsIcon_default, {
127
- name: "chevron-down",
128
- size: 14,
129
- class: "rs-cascader__icon"
130
- })
131
- ], 10, _hoisted_1)]),
132
- _: 1
133
- }, 8, ["open"]);
361
+ }), 128))], 46, _hoisted_4)) : createCommentVNode("", true)]))
362
+ ], 2);
134
363
  };
135
364
  }
136
365
  });