rsuite 6.0.1 → 6.1.1

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 (278) hide show
  1. package/Accordion/styles/index.scss +3 -0
  2. package/Animation/styles/_animation.scss +95 -0
  3. package/Animation/styles/_bounce.scss +36 -0
  4. package/Animation/styles/_collapse.scss +23 -0
  5. package/Animation/styles/_fade.scss +10 -0
  6. package/Animation/styles/_mixin.scss +15 -0
  7. package/Animation/styles/_slide.scss +34 -0
  8. package/Animation/styles/_variables.scss +4 -0
  9. package/Animation/styles/index.scss +8 -0
  10. package/AutoComplete/styles/index.scss +43 -0
  11. package/Avatar/styles/index.scss +48 -0
  12. package/AvatarGroup/styles/index.scss +27 -0
  13. package/Badge/styles/_variables.scss +48 -0
  14. package/Badge/styles/index.scss +111 -0
  15. package/Box/styles/index.scss +1 -0
  16. package/Breadcrumb/styles/index.scss +50 -0
  17. package/Button/styles/_mixin.scss +83 -0
  18. package/Button/styles/_variables.scss +38 -0
  19. package/Button/styles/index.scss +374 -0
  20. package/ButtonGroup/styles/index.scss +96 -0
  21. package/ButtonToolbar/styles/index.scss +9 -0
  22. package/CHANGELOG.md +31 -0
  23. package/Calendar/styles/_variables.scss +16 -0
  24. package/Calendar/styles/index.scss +673 -0
  25. package/Card/styles/index.scss +63 -0
  26. package/CardGroup/styles/index.scss +10 -0
  27. package/Carousel/styles/index.scss +204 -0
  28. package/CascadeTree/styles/_search.scss +39 -0
  29. package/CascadeTree/styles/index.scss +83 -0
  30. package/Cascader/styles/index.scss +5 -0
  31. package/Center/styles/index.scss +11 -0
  32. package/CheckPicker/styles/index.scss +23 -0
  33. package/CheckTree/styles/_variables.scss +5 -0
  34. package/CheckTree/styles/index.scss +121 -0
  35. package/CheckTreePicker/styles/index.scss +20 -0
  36. package/Checkbox/styles/_mixin.scss +5 -0
  37. package/Checkbox/styles/_variables.scss +4 -0
  38. package/Checkbox/styles/index.scss +158 -0
  39. package/CheckboxGroup/styles/index.scss +14 -0
  40. package/Col/styles/index.scss +2 -0
  41. package/Container/stories/styles.scss +23 -0
  42. package/Container/styles/index.scss +16 -0
  43. package/Content/styles/index.scss +6 -0
  44. package/DateInput/styles/index.scss +1 -0
  45. package/DatePicker/styles/_mixin.scss +10 -0
  46. package/DatePicker/styles/index.scss +171 -0
  47. package/DateRangeInput/styles/index.scss +1 -0
  48. package/DateRangePicker/styles/index.scss +151 -0
  49. package/Divider/styles/index.scss +85 -0
  50. package/Drawer/styles/_mixin.scss +23 -0
  51. package/Drawer/styles/_variables.scss +18 -0
  52. package/Drawer/styles/index.scss +244 -0
  53. package/Dropdown/styles/_mixin.scss +4 -0
  54. package/Dropdown/styles/_variables.scss +12 -0
  55. package/Dropdown/styles/index.scss +334 -0
  56. package/FlexboxGrid/styles/index.scss +82 -0
  57. package/Footer/styles/index.scss +5 -0
  58. package/Form/styles/index.scss +3 -0
  59. package/FormControl/styles/_variables.scss +4 -0
  60. package/FormControl/styles/index.scss +82 -0
  61. package/FormControlLabel/styles/index.scss +7 -0
  62. package/FormErrorMessage/styles/_animation.scss +43 -0
  63. package/FormErrorMessage/styles/_variables.scss +7 -0
  64. package/FormErrorMessage/styles/index.scss +146 -0
  65. package/FormGroup/styles/index.scss +75 -0
  66. package/FormHelpText/styles/index.scss +21 -0
  67. package/FormStack/styles/index.scss +15 -0
  68. package/Grid/styles/_columns.scss +23 -0
  69. package/Grid/styles/_mixin.scss +110 -0
  70. package/Grid/styles/_row.scss +44 -0
  71. package/Grid/styles/_variables.scss +6 -0
  72. package/Grid/styles/index.scss +115 -0
  73. package/Header/styles/index.scss +5 -0
  74. package/Heading/styles/_variables.scss +19 -0
  75. package/Heading/styles/index.scss +42 -0
  76. package/HeadingGroup/styles/index.scss +5 -0
  77. package/Highlight/styles/index.scss +9 -0
  78. package/IconButton/styles/index.scss +90 -0
  79. package/Image/styles/index.scss +36 -0
  80. package/InlineEdit/styles/index.scss +51 -0
  81. package/Input/styles/_mixin.scss +39 -0
  82. package/Input/styles/_variables.scss +27 -0
  83. package/Input/styles/index.scss +23 -0
  84. package/InputGroup/styles/index.scss +264 -0
  85. package/InputNumber/styles/index.scss +1 -0
  86. package/InputPicker/styles/_mixin.scss +7 -0
  87. package/InputPicker/styles/index.scss +64 -0
  88. package/Kbd/styles/_mixin.scss +24 -0
  89. package/Kbd/styles/_variables.scss +13 -0
  90. package/Kbd/styles/index.scss +21 -0
  91. package/Link/styles/index.scss +41 -0
  92. package/List/styles/index.scss +111 -0
  93. package/Loader/styles/_mixin.scss +37 -0
  94. package/Loader/styles/_variables.scss +19 -0
  95. package/Loader/styles/index.scss +120 -0
  96. package/Menu/styles/index.scss +109 -0
  97. package/Message/styles/index.scss +189 -0
  98. package/Modal/styles/_animation.scss +15 -0
  99. package/Modal/styles/_variables.scss +16 -0
  100. package/Modal/styles/index.scss +186 -0
  101. package/MultiCascadeTree/styles/index.scss +35 -0
  102. package/MultiCascader/styles/index.scss +3 -0
  103. package/Nav/styles/index.scss +383 -0
  104. package/Navbar/styles/index.scss +253 -0
  105. package/Notification/styles/index.scss +116 -0
  106. package/NumberInput/styles/_mixin.scss +11 -0
  107. package/NumberInput/styles/index.scss +78 -0
  108. package/Pagination/styles/_pagination-group.scss +52 -0
  109. package/Pagination/styles/index.scss +77 -0
  110. package/Panel/styles/index.scss +122 -0
  111. package/PanelGroup/styles/index.scss +34 -0
  112. package/PasswordInput/styles/index.scss +3 -0
  113. package/PasswordStrengthMeter/styles/index.scss +41 -0
  114. package/PinInput/styles/index.scss +93 -0
  115. package/Placeholder/styles/_mixin.scss +9 -0
  116. package/Placeholder/styles/index.scss +155 -0
  117. package/Popover/styles/index.scss +224 -0
  118. package/Popover/styles/mixins.scss +54 -0
  119. package/Progress/styles/_animation.scss +69 -0
  120. package/Progress/styles/_mixins.scss +6 -0
  121. package/Progress/styles/_progress-line.scss +343 -0
  122. package/Progress/styles/index.scss +3 -0
  123. package/ProgressCircle/styles/index.scss +2 -0
  124. package/ProgressCircle/styles/progress-circle.scss +49 -0
  125. package/Radio/styles/_mixin.scss +5 -0
  126. package/Radio/styles/_variables.scss +5 -0
  127. package/Radio/styles/index.scss +147 -0
  128. package/RadioGroup/styles/_variables.scss +10 -0
  129. package/RadioGroup/styles/index.scss +83 -0
  130. package/RadioTile/styles/index.scss +80 -0
  131. package/RadioTileGroup/styles/index.scss +1 -0
  132. package/RangeSlider/styles/index.scss +4 -0
  133. package/Rate/styles/index.scss +141 -0
  134. package/Row/styles/index.scss +2 -0
  135. package/SegmentedControl/styles/_mixin.scss +7 -0
  136. package/SegmentedControl/styles/_variables.scss +43 -0
  137. package/SegmentedControl/styles/index.scss +147 -0
  138. package/SelectPicker/styles/index.scss +44 -0
  139. package/Sidebar/styles/index.scss +17 -0
  140. package/Sidenav/styles/index.scss +635 -0
  141. package/Sidenav/styles/mixin.scss +23 -0
  142. package/Slider/styles/index.scss +298 -0
  143. package/Stack/styles/_variables.scss +11 -0
  144. package/Stack/styles/index.scss +79 -0
  145. package/Stat/styles/index.scss +126 -0
  146. package/StatGroup/styles/index.scss +10 -0
  147. package/Steps/styles/index.scss +222 -0
  148. package/Table/styles/index.scss +473 -0
  149. package/Table/styles/mixin.scss +8 -0
  150. package/Tabs/styles/index.scss +24 -0
  151. package/Tag/styles/_variables.scss +13 -0
  152. package/Tag/styles/index.scss +62 -0
  153. package/TagGroup/styles/index.scss +14 -0
  154. package/TagInput/styles/index.scss +5 -0
  155. package/TagPicker/styles/index.scss +141 -0
  156. package/Text/styles/index.scss +142 -0
  157. package/Text/styles/variables.scss +9 -0
  158. package/Textarea/styles/index.scss +9 -0
  159. package/TimePicker/styles/index.scss +1 -0
  160. package/TimeRangePicker/styles/index.scss +1 -0
  161. package/Timeline/stories/styles.scss +29 -0
  162. package/Timeline/styles/_mixin.scss +13 -0
  163. package/Timeline/styles/index.scss +187 -0
  164. package/Toggle/styles/index.scss +284 -0
  165. package/Tooltip/styles/index.scss +160 -0
  166. package/Tooltip/styles/mixins.scss +56 -0
  167. package/Tree/styles/_indent-line.scss +8 -0
  168. package/Tree/styles/_toggle.scss +32 -0
  169. package/Tree/styles/_variables.scss +8 -0
  170. package/Tree/styles/index.scss +184 -0
  171. package/TreePicker/styles/index.scss +16 -0
  172. package/Uploader/styles/_mixin.scss +11 -0
  173. package/Uploader/styles/index.scss +491 -0
  174. package/VisuallyHidden/styles/index.scss +11 -0
  175. package/cjs/Breadcrumb/BreadcrumbItem.js +12 -7
  176. package/cjs/CheckTree/CheckTree.js +3 -0
  177. package/cjs/CheckTree/CheckTreeView.js +7 -3
  178. package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +1 -0
  179. package/cjs/CheckTree/hooks/useTreeCheckState.js +54 -3
  180. package/cjs/CheckTree/utils.d.ts +9 -2
  181. package/cjs/CheckTree/utils.js +70 -11
  182. package/cjs/CheckTreePicker/CheckTreePicker.js +1 -0
  183. package/cjs/Checkbox/Checkbox.js +2 -1
  184. package/cjs/Checkbox/hooks/useIndeterminateCheckbox.d.ts +19 -0
  185. package/cjs/Checkbox/hooks/useIndeterminateCheckbox.js +32 -0
  186. package/cjs/DateInput/DateInput.js +24 -0
  187. package/cjs/DateInput/hooks/useKeyboardInputEvent.d.ts +2 -1
  188. package/cjs/DateInput/hooks/useKeyboardInputEvent.js +14 -0
  189. package/cjs/DateRangeInput/DateRangeInput.js +24 -0
  190. package/cjs/DateRangePicker/DateRangePicker.js +6 -0
  191. package/cjs/Form/Form.js +5 -1
  192. package/cjs/Rate/Rate.d.ts +8 -0
  193. package/cjs/Rate/Rate.js +3 -1
  194. package/cjs/Tree/hooks/useFlattenTree.d.ts +4 -0
  195. package/cjs/Tree/hooks/useFlattenTree.js +22 -1
  196. package/cjs/Tree/hooks/useFocusTree.js +19 -1
  197. package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +1 -0
  198. package/cjs/Tree/hooks/useVirtualizedTreeData.js +5 -2
  199. package/cjs/Tree/utils/focusableTree.d.ts +8 -0
  200. package/cjs/Tree/utils/focusableTree.js +40 -2
  201. package/cjs/Tree/utils/index.d.ts +1 -1
  202. package/cjs/Tree/utils/index.js +3 -1
  203. package/cjs/internals/Picker/utils.d.ts +2 -0
  204. package/cjs/internals/Picker/utils.js +13 -1
  205. package/cjs/internals/StyledBox/StyledBox.d.ts +1 -1
  206. package/cjs/internals/StyledBox/StyledBox.js +2 -2
  207. package/dist/rsuite.js +52 -74
  208. package/dist/rsuite.js.map +1 -1
  209. package/dist/rsuite.min.js +1 -1
  210. package/dist/rsuite.min.js.LICENSE.txt +0 -20
  211. package/dist/rsuite.min.js.map +1 -1
  212. package/esm/Breadcrumb/BreadcrumbItem.js +10 -5
  213. package/esm/CheckTree/CheckTree.js +3 -0
  214. package/esm/CheckTree/CheckTreeView.js +7 -3
  215. package/esm/CheckTree/hooks/useTreeCheckState.d.ts +1 -0
  216. package/esm/CheckTree/hooks/useTreeCheckState.js +55 -4
  217. package/esm/CheckTree/utils.d.ts +9 -2
  218. package/esm/CheckTree/utils.js +71 -12
  219. package/esm/CheckTreePicker/CheckTreePicker.js +1 -0
  220. package/esm/Checkbox/Checkbox.js +3 -2
  221. package/esm/Checkbox/hooks/useIndeterminateCheckbox.d.ts +19 -0
  222. package/esm/Checkbox/hooks/useIndeterminateCheckbox.js +29 -0
  223. package/esm/DateInput/DateInput.js +24 -0
  224. package/esm/DateInput/hooks/useKeyboardInputEvent.d.ts +2 -1
  225. package/esm/DateInput/hooks/useKeyboardInputEvent.js +14 -0
  226. package/esm/DateRangeInput/DateRangeInput.js +24 -0
  227. package/esm/DateRangePicker/DateRangePicker.js +6 -0
  228. package/esm/Form/Form.js +5 -1
  229. package/esm/Rate/Rate.d.ts +8 -0
  230. package/esm/Rate/Rate.js +3 -1
  231. package/esm/Tree/hooks/useFlattenTree.d.ts +4 -0
  232. package/esm/Tree/hooks/useFlattenTree.js +22 -1
  233. package/esm/Tree/hooks/useFocusTree.js +20 -2
  234. package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +1 -0
  235. package/esm/Tree/hooks/useVirtualizedTreeData.js +5 -2
  236. package/esm/Tree/utils/focusableTree.d.ts +8 -0
  237. package/esm/Tree/utils/focusableTree.js +36 -0
  238. package/esm/Tree/utils/index.d.ts +1 -1
  239. package/esm/Tree/utils/index.js +1 -1
  240. package/esm/internals/Picker/utils.d.ts +2 -0
  241. package/esm/internals/Picker/utils.js +13 -1
  242. package/esm/internals/StyledBox/StyledBox.d.ts +1 -1
  243. package/esm/internals/StyledBox/StyledBox.js +2 -2
  244. package/internals/Box/styles/index.scss +31 -0
  245. package/internals/Burger/styles/index.scss +72 -0
  246. package/internals/CloseButton/styles/index.scss +14 -0
  247. package/internals/Picker/styles/_mixin.scss +219 -0
  248. package/internals/Picker/styles/_variables.scss +9 -0
  249. package/internals/Picker/styles/index.scss +476 -0
  250. package/internals/Ripple/styles/_mixins.scss +10 -0
  251. package/internals/Ripple/styles/index.scss +40 -0
  252. package/internals/ScrollView/styles/index.scss +77 -0
  253. package/internals/SearchBox/styles/index.scss +7 -0
  254. package/package.json +4 -4
  255. package/styles/_base.scss +37 -0
  256. package/styles/_css-reset.scss +345 -0
  257. package/styles/_themes.scss +132 -0
  258. package/styles/_variables.scss +48 -0
  259. package/styles/color-modes/_dark.scss +458 -0
  260. package/styles/color-modes/_high-contrast.scss +469 -0
  261. package/styles/color-modes/_light.scss +475 -0
  262. package/styles/colors/_colors-base.scss +39 -0
  263. package/styles/colors/_dark.scss +114 -0
  264. package/styles/colors/_high-contrast.scss +114 -0
  265. package/styles/colors/_light.scss +115 -0
  266. package/styles/colors/_palette.scss +413 -0
  267. package/styles/components.scss +114 -0
  268. package/styles/index.scss +2 -0
  269. package/styles/mixins/_color-modes.scss +20 -0
  270. package/styles/mixins/_combobox.scss +6 -0
  271. package/styles/mixins/_hacks.scss +33 -0
  272. package/styles/mixins/_input.scss +30 -0
  273. package/styles/mixins/_listbox.scss +70 -0
  274. package/styles/mixins/_menu.scss +12 -0
  275. package/styles/mixins/_utilities.scss +130 -0
  276. package/toaster/styles/animation.scss +54 -0
  277. package/toaster/styles/index.scss +109 -0
  278. package/useToaster/styles/index.scss +1 -0
@@ -0,0 +1,3 @@
1
+ @use '../../internals/Box/styles/index';
2
+ @use '../../PanelGroup/styles/index' as panel-group;
3
+ @use '../../Panel/styles/index' as panel;
@@ -0,0 +1,95 @@
1
+ @keyframes slideInLeft {
2
+ from {
3
+ opacity: 0;
4
+ transform: translate3d(-100%, 0, 0);
5
+ }
6
+
7
+ to {
8
+ opacity: 1;
9
+ transform: none;
10
+ }
11
+ }
12
+
13
+ @keyframes slideOutLeft {
14
+ from {
15
+ opacity: 1;
16
+ transform: none;
17
+ }
18
+
19
+ to {
20
+ opacity: 0;
21
+ transform: translate3d(-100%, 0, 0);
22
+ }
23
+ }
24
+
25
+ @keyframes slideInRight {
26
+ from {
27
+ opacity: 0;
28
+ transform: translate3d(100%, 0, 0);
29
+ }
30
+
31
+ to {
32
+ opacity: 1;
33
+ transform: none;
34
+ }
35
+ }
36
+
37
+ @keyframes slideOutRight {
38
+ from {
39
+ opacity: 1;
40
+ transform: none;
41
+ }
42
+
43
+ to {
44
+ opacity: 0;
45
+ transform: translate3d(100%, 0, 0);
46
+ }
47
+ }
48
+
49
+ @keyframes slideInTop {
50
+ from {
51
+ opacity: 0;
52
+ transform: translate3d(0, -100%, 0);
53
+ }
54
+
55
+ to {
56
+ opacity: 1;
57
+ transform: none;
58
+ }
59
+ }
60
+
61
+ @keyframes slideOutTop {
62
+ from {
63
+ opacity: 1;
64
+ transform: none;
65
+ }
66
+
67
+ to {
68
+ opacity: 0;
69
+ transform: translate3d(0, -100%, 0);
70
+ }
71
+ }
72
+
73
+ @keyframes slideInBottom {
74
+ from {
75
+ opacity: 0;
76
+ transform: translate3d(0, 100%, 0);
77
+ }
78
+
79
+ to {
80
+ opacity: 1;
81
+ transform: none;
82
+ }
83
+ }
84
+
85
+ @keyframes slideOutBottom {
86
+ from {
87
+ opacity: 1;
88
+ transform: none;
89
+ }
90
+
91
+ to {
92
+ opacity: 0;
93
+ transform: translate3d(0, 100%, 0);
94
+ }
95
+ }
@@ -0,0 +1,36 @@
1
+ @use './mixin' as m;
2
+
3
+ // Bounce
4
+ .rs-anim-bounce-in {
5
+ animation-name: bounceIn;
6
+ @include m.animation-common(cubic-bezier(0.68, -0.55, 0.27, 1.55)); // Ease in out
7
+
8
+ @keyframes bounceIn {
9
+ from {
10
+ opacity: 0;
11
+ transform: scale(0.8);
12
+ }
13
+
14
+ to {
15
+ opacity: 1;
16
+ transform: scale(1);
17
+ }
18
+ }
19
+ }
20
+
21
+ .rs-anim-bounce-out {
22
+ animation-name: bounceOut;
23
+ @include m.animation-common(cubic-bezier(0.4, 0, 1, 1)); // Fast out
24
+
25
+ @keyframes bounceOut {
26
+ from {
27
+ opacity: 1;
28
+ transform: scale(1);
29
+ }
30
+
31
+ to {
32
+ opacity: 0;
33
+ transform: scale(0.8);
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,23 @@
1
+ .rs-anim-collapse {
2
+ display: none;
3
+
4
+ &.rs-anim-in {
5
+ display: block;
6
+ }
7
+ }
8
+
9
+ tr.rs-anim-collapse.rs-anim-in {
10
+ display: table-row;
11
+ }
12
+
13
+ tbody.rs-anim-collapse.rs-anim-in {
14
+ display: table-row-group;
15
+ }
16
+
17
+ .rs-anim-collapsing {
18
+ position: relative;
19
+ height: 0;
20
+ overflow: hidden;
21
+ transition: height var(--rs-anim-collapse-duration) ease,
22
+ width var(--rs-anim-collapse-duration) ease, visibility var(--rs-anim-collapse-duration) ease;
23
+ }
@@ -0,0 +1,10 @@
1
+ .rs-anim-fade {
2
+ opacity: 0;
3
+ transition: opacity var(--rs-anim-fade-duration) linear;
4
+ pointer-events: none;
5
+
6
+ &.rs-anim-in {
7
+ opacity: 1;
8
+ pointer-events: auto;
9
+ }
10
+ }
@@ -0,0 +1,15 @@
1
+ @mixin animation-common($timing) {
2
+ animation-duration: 0.3s;
3
+ animation-timing-function: $timing;
4
+ animation-fill-mode: forwards;
5
+ }
6
+
7
+ @mixin slide-animation-setting($move-in-animation-name, $move-out-animation-name) {
8
+ &.rs-anim-slide-in {
9
+ animation-name: $move-in-animation-name;
10
+ }
11
+
12
+ &.rs-anim-slide-out {
13
+ animation-name: $move-out-animation-name;
14
+ }
15
+ }
@@ -0,0 +1,34 @@
1
+ @use './mixin' as m;
2
+
3
+ // Slide
4
+ .rs-anim-slide-out {
5
+ @include m.animation-common(cubic-bezier(0.4, 0, 1, 1)); // Fast out
6
+ }
7
+
8
+ .rs-anim-slide-in {
9
+ @include m.animation-common(ease-in-out);
10
+ }
11
+
12
+ .rs-anim-right {
13
+ @include m.slide-animation-setting(slideInRight, slideOutRight);
14
+
15
+ [dir='rtl'] & {
16
+ @include m.slide-animation-setting(slideInLeft, slideOutLeft);
17
+ }
18
+ }
19
+
20
+ .rs-anim-left {
21
+ @include m.slide-animation-setting(slideInLeft, slideOutLeft);
22
+
23
+ [dir='rtl'] & {
24
+ @include m.slide-animation-setting(slideInRight, slideOutRight);
25
+ }
26
+ }
27
+
28
+ .rs-anim-top {
29
+ @include m.slide-animation-setting(slideInTop, slideOutTop);
30
+ }
31
+
32
+ .rs-anim-bottom {
33
+ @include m.slide-animation-setting(slideInBottom, slideOutBottom);
34
+ }
@@ -0,0 +1,4 @@
1
+ :root {
2
+ --rs-anim-fade-duration: 0.15s;
3
+ --rs-anim-collapse-duration: 0.35s;
4
+ }
@@ -0,0 +1,8 @@
1
+ @use '../../styles/themes';
2
+ @use './variables';
3
+ @use './mixin';
4
+ @use './animation';
5
+ @use './slide';
6
+ @use './bounce';
7
+ @use './collapse';
8
+ @use './fade';
@@ -0,0 +1,43 @@
1
+ @use '../../internals/Box/styles/index';
2
+ @use '../../internals/Picker/styles/index' as picker;
3
+ @use '../../internals/Picker/styles/mixin' as picker-mixin;
4
+ @use '../../styles/mixins/listbox';
5
+ @use '../../styles/mixins/utilities' as utils;
6
+ @use '../../Input/styles/index' as input;
7
+ @use '../../InputGroup/styles/index' as input-group;
8
+
9
+ .rs-auto-complete {
10
+ &-menu {
11
+ // Auto complete items style the same to Picker menu items
12
+ @include picker-mixin.picker-listbox-reset;
13
+ }
14
+
15
+ // The same to Picker select menu item
16
+ &-item {
17
+ @include listbox.listbox-option;
18
+
19
+ &:hover,
20
+ &:focus,
21
+ &-focus {
22
+ @include listbox.listbox-option-active;
23
+ }
24
+ }
25
+
26
+ .rs-input:focus::-webkit-textfield-decoration-container {
27
+ visibility: hidden;
28
+ pointer-events: none;
29
+ }
30
+ }
31
+
32
+ .rs-input-group > .rs-auto-complete {
33
+ position: relative;
34
+ flex: 1 1 auto;
35
+ width: 1%;
36
+ min-width: 0;
37
+
38
+ > .rs-input {
39
+ border-radius: var(--rs-radius-none);
40
+ border: none;
41
+ outline: none;
42
+ }
43
+ }
@@ -0,0 +1,48 @@
1
+ @use '../../internals/Box/styles/index';
2
+
3
+ .rs-avatar {
4
+ --rs-avatar-size-xs: 1.25rem; // 20px
5
+ --rs-avatar-size-sm: 1.875rem; // 30px
6
+ --rs-avatar-size-md: 2.5rem; // 40px
7
+ --rs-avatar-size-lg: 3.75rem; // 60px
8
+ --rs-avatar-size-xl: 5.625rem; // 90px
9
+ --rs-avatar-size-2xl: 7.5rem; // 120px
10
+
11
+ --rs-avatar-border-radius: var(--rs-radius-sm);
12
+ --rs-avatar-ring-offset-shadow: var(--rs-avatar-offset-color) 0 0 0 2px;
13
+ --rs-avatar-ring-shadow: var(--rs-avatar-color) 0 0 0 4px;
14
+ --rs-avatar-color: var(--rs-avatar-bg);
15
+ --rs-avatar-size: var(--rs-avatar-size-md);
16
+
17
+ background-color: var(--rs-avatar-color);
18
+ color: var(--rs-avatar-text);
19
+ display: inline-flex;
20
+ justify-content: center;
21
+ align-items: center;
22
+ border-radius: var(--rs-avatar-border-radius);
23
+ overflow: hidden;
24
+ position: relative;
25
+ width: var(--rs-avatar-size);
26
+ height: var(--rs-avatar-size);
27
+
28
+ &-image {
29
+ width: var(--rs-avatar-size);
30
+ height: var(--rs-avatar-size);
31
+ line-height: var(--rs-avatar-size);
32
+ }
33
+
34
+ &-icon {
35
+ position: absolute;
36
+ }
37
+
38
+ &-bordered {
39
+ box-shadow:
40
+ var(--rs-avatar-ring-offset-shadow),
41
+ var(--rs-avatar-ring-shadow),
42
+ 0 0 #0000;
43
+ }
44
+
45
+ &-circle {
46
+ --rs-avatar-border-radius: var(--rs-radius-full);
47
+ }
48
+ }
@@ -0,0 +1,27 @@
1
+ @use '../../internals/Box/styles/index';
2
+ @use '../../Stack/styles/index' as stack;
3
+
4
+ .rs-avatar-group {
5
+ --rs-avatar-group-spacing: 0;
6
+
7
+ display: flex;
8
+ align-items: flex-end;
9
+ flex-wrap: wrap;
10
+ gap: var(--rs-avatar-group-spacing);
11
+
12
+ &-stack {
13
+ .rs-avatar {
14
+ box-sizing: content-box;
15
+ margin-inline-end: -10px;
16
+ transition: margin 0.15s;
17
+
18
+ &:last-child {
19
+ margin-inline-end: 0;
20
+ }
21
+
22
+ &:hover {
23
+ margin-inline-end: 0;
24
+ }
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,48 @@
1
+ .rs-badge {
2
+ // Size variables (base md = 0.75rem)
3
+ --rs-badge-font-size-xs: 0.625rem; // 10px
4
+ --rs-badge-font-size-sm: 0.6875rem; // 11px
5
+ --rs-badge-font-size-md: 0.75rem; // 12px
6
+ --rs-badge-font-size-lg: 0.875rem; // 14px
7
+ --rs-badge-font-size-xl: 1rem; // 16px
8
+
9
+ --rs-badge-line-height-xs: 0.875rem; // 14px
10
+ --rs-badge-line-height-sm: 0.9375rem; // 15px
11
+ --rs-badge-line-height-md: 1rem; // 16px
12
+ --rs-badge-line-height-lg: 1.125rem; // 18px
13
+ --rs-badge-line-height-xl: 1.25rem; // 20px
14
+
15
+ // One char size variables (for single character badges)
16
+ --rs-badge-one-char-size-xs: 1rem; // 16px
17
+ --rs-badge-one-char-size-sm: 1.125rem; // 18px
18
+ --rs-badge-one-char-size-md: 1.25rem; // 20px
19
+ --rs-badge-one-char-size-lg: 1.5rem; // 24px
20
+ --rs-badge-one-char-size-xl: 1.75rem; // 28px
21
+
22
+ // Dot size variables (for empty badges)
23
+ --rs-badge-dot-size-xs: 0.375rem; // 6px
24
+ --rs-badge-dot-size-sm: 0.5rem; // 8px
25
+ --rs-badge-dot-size-md: 0.625rem; // 10px
26
+ --rs-badge-dot-size-lg: 0.75rem; // 12px
27
+ --rs-badge-dot-size-xl: 0.875rem; // 14px
28
+
29
+ --rs-badge-offset-x: 5%;
30
+ --rs-badge-offset-y: 5%;
31
+ --rs-badge-move: var(--rs-badge-offset, 40%);
32
+ --rs-badge-one-char-size: var(--rs-badge-one-char-size-md);
33
+ --rs-badge-dot-size: var(--rs-badge-dot-size-md);
34
+ --rs-badge-font-size: var(--rs-badge-font-size-md);
35
+ --rs-badge-line-height: var(--rs-badge-line-height-md);
36
+
37
+ --rs-badge-transform-top-start: translate(calc(-1 * var(--rs-badge-move)), calc(-1 * var(--rs-badge-move)));
38
+ --rs-badge-transform-top-end: translate(var(--rs-badge-move), calc(-1 * var(--rs-badge-move)));
39
+ --rs-badge-transform-bottom-start: translate(calc(-1 * var(--rs-badge-move)), var(--rs-badge-move));
40
+ --rs-badge-transform-bottom-end: translate(var(--rs-badge-move), var(--rs-badge-move));
41
+ }
42
+
43
+ [dir='rtl'] .rs-badge {
44
+ --rs-badge-transform-top-start: translate(calc(18px - var(--rs-badge-move)), calc(-1 * var(--rs-badge-move)));
45
+ --rs-badge-transform-top-end: translate(calc(-1 * var(--rs-badge-move)), calc(-1 * var(--rs-badge-move)));
46
+ --rs-badge-transform-bottom-start: translate(calc(18px - var(--rs-badge-move)), var(--rs-badge-move));
47
+ --rs-badge-transform-bottom-end: translate(calc(-1 * var(--rs-badge-move)), var(--rs-badge-move));
48
+ }
@@ -0,0 +1,111 @@
1
+ @use '../../internals/Box/styles/index';
2
+ @use './variables' as *;
3
+
4
+ .rs-badge-wrapper {
5
+ position: relative;
6
+ }
7
+
8
+ .rs-badge {
9
+ display: inline-flex;
10
+
11
+ &[data-shape='circle'] {
12
+ --rs-badge-offset: 30%;
13
+ }
14
+
15
+ &:where([data-independent='true']),
16
+ &-content {
17
+ opacity: 1;
18
+ display: inline-flex;
19
+ justify-content: center;
20
+ align-items: center;
21
+ background-color: var(--rs-badge-bg);
22
+ color: var(--rs-badge-text);
23
+ border-radius: var(--rs-radius-full);
24
+ font-size: var(--rs-badge-font-size);
25
+ line-height: var(--rs-badge-line-height);
26
+ padding-inline: 0.3125rem;
27
+ transition: opacity 0.3s ease-in-out;
28
+ }
29
+
30
+ &[data-one-char='true'] .rs-badge-content,
31
+ &[data-one-char='true'][data-independent='true'] {
32
+ width: var(--rs-badge-one-char-size);
33
+ height: var(--rs-badge-one-char-size);
34
+ line-height: var(--rs-badge-one-char-size);
35
+ }
36
+
37
+ &-content {
38
+ box-sizing: border-box;
39
+ }
40
+
41
+ &[data-hidden='true'] &-content,
42
+ &[data-hidden='true'][data-independent='true'] {
43
+ opacity: 0;
44
+ }
45
+
46
+ &[data-compact='true'] &-content,
47
+ &[data-compact='true'][data-independent='true'] {
48
+ padding: 0;
49
+ }
50
+
51
+ &:empty,
52
+ &-content:empty {
53
+ box-sizing: content-box;
54
+ width: var(--rs-badge-dot-size);
55
+ height: var(--rs-badge-dot-size);
56
+ border-radius: var(--rs-radius-full);
57
+ padding: 0;
58
+ }
59
+
60
+ &-wrapper &-content {
61
+ position: absolute;
62
+ z-index: var(--rs-zindex-badge-content);
63
+ }
64
+
65
+ &[data-outline='true'] &-content {
66
+ border: 2px solid var(--rs-badge-border);
67
+ }
68
+
69
+ &[data-placement='topStart'] .rs-badge-content {
70
+ transform: var(--rs-badge-transform-top-start);
71
+ top: var(--rs-badge-offset-y);
72
+ inset-inline-start: var(--rs-badge-offset-x);
73
+ }
74
+
75
+ &[data-placement='topEnd'] .rs-badge-content {
76
+ transform: var(--rs-badge-transform-top-end);
77
+ top: var(--rs-badge-offset-y);
78
+ inset-inline-end: var(--rs-badge-offset-x);
79
+ }
80
+
81
+ &[data-placement='bottomStart'] .rs-badge-content {
82
+ transform: var(--rs-badge-transform-bottom-start);
83
+ bottom: var(--rs-badge-offset-y);
84
+ inset-inline-start: var(--rs-badge-offset-x);
85
+ }
86
+
87
+ &[data-placement='bottomEnd'] .rs-badge-content {
88
+ transform: var(--rs-badge-transform-bottom-end);
89
+ bottom: var(--rs-badge-offset-y);
90
+ inset-inline-end: var(--rs-badge-offset-x);
91
+ }
92
+ }
93
+
94
+ // Spectrum color classes
95
+ $badge-spectrum: 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet', 'pink';
96
+ @each $color in $badge-spectrum {
97
+ .rs-badge[data-color='#{$color}'] {
98
+ --rs-badge-bg: var(--rs-#{$color}-500);
99
+ }
100
+ }
101
+
102
+ // Size classes
103
+ $badge-sizes: 'xs', 'sm', 'md', 'lg', 'xl';
104
+ @each $size in $badge-sizes {
105
+ .rs-badge[data-size='#{$size}'] {
106
+ --rs-badge-font-size: var(--rs-badge-font-size-#{$size});
107
+ --rs-badge-line-height: var(--rs-badge-line-height-#{$size});
108
+ --rs-badge-one-char-size: var(--rs-badge-one-char-size-#{$size});
109
+ --rs-badge-dot-size: var(--rs-badge-dot-size-#{$size});
110
+ }
111
+ }
@@ -0,0 +1 @@
1
+ @use '../../internals/Box/styles/index';
@@ -0,0 +1,50 @@
1
+ @use '../../internals/Box/styles/index';
2
+ @use '../../styles/mixins/utilities' as utils;
3
+
4
+ //
5
+ // Breadcrumbs
6
+ // --------------------------------------------------
7
+
8
+ .rs-breadcrumb {
9
+ --rs-breadcrumb-spacing: var(--rs-spacing);
10
+ --rs-breadcrumb-size-sm: var(--rs-font-size-xs);
11
+ --rs-breadcrumb-size-md: var(--rs-font-size-sm);
12
+ --rs-breadcrumb-size-lg: var(--rs-font-size-md);
13
+ --rs-breadcrumb-size: var(--rs-breadcrumb-size-md);
14
+
15
+ font-size: var(--rs-breadcrumb-size);
16
+ color: var(--rs-text-secondary);
17
+
18
+ ol {
19
+ display: flex;
20
+ flex-wrap: wrap;
21
+ list-style: none;
22
+ padding: 0;
23
+ margin: 0;
24
+ gap: var(--rs-breadcrumb-spacing);
25
+ }
26
+
27
+ // If breadcrumbs has a ci
28
+ &-item {
29
+ transition: color 0.3s linear;
30
+ display: flex;
31
+ align-items: center;
32
+ gap: var(--rs-breadcrumb-spacing);
33
+
34
+ &:focus {
35
+ @include utils.tab-focus();
36
+ }
37
+
38
+ &[data-active='true'] {
39
+ color: var(--rs-breadcrumb-item-active-text);
40
+ }
41
+ }
42
+
43
+ // Separator has gap with text
44
+ &-separator {
45
+ margin: 0 var(--rs-breadcrumb-spacing);
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: center;
49
+ }
50
+ }
@@ -0,0 +1,83 @@
1
+ @use '../../styles/mixins/color-modes';
2
+
3
+ // States
4
+ @mixin button-activated {
5
+ &:hover {
6
+ @content;
7
+ }
8
+ }
9
+
10
+ @mixin button-pressed {
11
+ &:active,
12
+ &.rs-btn[data-active='true'] {
13
+ @content;
14
+ }
15
+ }
16
+
17
+ @mixin button-disabled {
18
+ &:disabled,
19
+ &.rs-btn[data-disabled='true'] {
20
+ @content;
21
+
22
+ @include color-modes.high-contrast-mode {
23
+ border-color: var(--rs-btn-default-disabled-border-color);
24
+ }
25
+ }
26
+ }
27
+
28
+ @mixin button-size-lg {
29
+ --rs-btn-size: var(--rs-btn-size-lg);
30
+ --rs-btn-font-size: var(--rs-btn-font-size-lg);
31
+ --rs-btn-line-height: var(--rs-btn-line-height-lg);
32
+ --rs-btn-padding-inline: var(--rs-btn-padding-inline-lg);
33
+ --rs-btn-padding-block: var(--rs-btn-padding-block-lg);
34
+ --rs-btn-icon-size: var(--rs-btn-icon-size-lg);
35
+ }
36
+
37
+ @mixin button-size-md {
38
+ --rs-btn-size: var(--rs-btn-size-md);
39
+ --rs-btn-font-size: var(--rs-btn-font-size-md);
40
+ --rs-btn-line-height: var(--rs-btn-line-height-md);
41
+ --rs-btn-padding-inline: var(--rs-btn-padding-inline-md);
42
+ --rs-btn-padding-block: var(--rs-btn-padding-block-md);
43
+ --rs-btn-icon-size: var(--rs-btn-icon-size-md);
44
+ }
45
+
46
+ @mixin button-size-sm {
47
+ --rs-btn-size: var(--rs-btn-size-sm);
48
+ --rs-btn-font-size: var(--rs-btn-font-size-sm);
49
+ --rs-btn-line-height: var(--rs-btn-line-height-sm);
50
+ --rs-btn-padding-inline: var(--rs-btn-padding-inline-sm);
51
+ --rs-btn-padding-block: var(--rs-btn-padding-block-sm);
52
+ --rs-btn-icon-size: var(--rs-btn-icon-size-sm);
53
+ }
54
+
55
+ @mixin button-size-xs {
56
+ --rs-btn-size: var(--rs-btn-size-xs);
57
+ --rs-btn-font-size: var(--rs-btn-font-size-xs);
58
+ --rs-btn-line-height: var(--rs-btn-line-height-xs);
59
+ --rs-btn-padding-inline: var(--rs-btn-padding-inline-xs);
60
+ --rs-btn-padding-block: var(--rs-btn-padding-block-xs);
61
+ --rs-btn-icon-size: var(--rs-btn-icon-size-xs);
62
+ }
63
+
64
+ // Button Style Mixins
65
+ @mixin btn-subtle {
66
+ color: var(--rs-btn-subtle-text);
67
+ background-color: transparent;
68
+
69
+ @include button-activated {
70
+ color: var(--rs-btn-subtle-hover-text);
71
+ background-color: var(--rs-btn-subtle-hover-bg);
72
+ }
73
+
74
+ @include button-pressed {
75
+ color: var(--rs-btn-subtle-active-text);
76
+ background-color: var(--rs-btn-subtle-active-bg);
77
+ }
78
+
79
+ @include button-disabled {
80
+ color: var(--rs-btn-subtle-disabled-text);
81
+ background: none;
82
+ }
83
+ }
@@ -0,0 +1,38 @@
1
+ :root {
2
+ --rs-btn-size-xs: 1.5rem; // 24px
3
+ --rs-btn-size-sm: 1.875rem; // 30px
4
+ --rs-btn-size-md: 2.25rem; // 36px
5
+ --rs-btn-size-lg: 2.625rem; // 42px
6
+
7
+ --rs-btn-font-size-xs: var(--rs-font-size-xs);
8
+ --rs-btn-font-size-sm: var(--rs-font-size-sm);
9
+ --rs-btn-font-size-md: var(--rs-font-size-sm);
10
+ --rs-btn-font-size-lg: var(--rs-font-size-md);
11
+
12
+ --rs-btn-line-height-xs: 1.25rem;
13
+ --rs-btn-line-height-sm: 1.25rem;
14
+ --rs-btn-line-height-md: 1.25rem;
15
+ --rs-btn-line-height-lg: 1.375rem;
16
+
17
+ --rs-btn-padding-inline-xs: calc(var(--rs-spacing) * 2);
18
+ --rs-btn-padding-inline-sm: calc(var(--rs-spacing) * 2.5);
19
+ --rs-btn-padding-inline-md: calc(var(--rs-spacing) * 3);
20
+ --rs-btn-padding-inline-lg: calc(var(--rs-spacing) * 3.5);
21
+ --rs-btn-padding-block-xs: calc(var(--rs-spacing) / 2);
22
+ --rs-btn-padding-block-sm: calc(var(--rs-spacing) * 1.25);
23
+ --rs-btn-padding-block-md: calc(var(--rs-spacing) * 2);
24
+ --rs-btn-padding-block-lg: calc(var(--rs-spacing) * 2.5);
25
+
26
+ --rs-btn-icon-size-xs: 0.75rem; // 12px
27
+ --rs-btn-icon-size-sm: 1rem; // 16px
28
+ --rs-btn-icon-size-md: 1rem; // 16px
29
+ --rs-btn-icon-size-lg: 1.25rem; // 20px
30
+
31
+ --rs-btn-ghost-border-width: 1px;
32
+ --rs-btn-loading-spin-default-diameter: 18px;
33
+ --rs-btn-loading-spin-xs-diameter: 16px;
34
+ --rs-btn-loading-spin-ring-wide: 3px;
35
+ --rs-btn-font-weight: normal;
36
+ --rs-btn-transition: color 0.15s ease-out, background-color 0.15s ease-out;
37
+ --rs-btn-icon-gap: 5px;
38
+ }