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,19 @@
1
+ :root {
2
+ --rs-heading-font-family: inherit;
3
+ --rs-heading-font-weight: bolder;
4
+ --rs-heading-color: inherit;
5
+
6
+ --rs-heading-h1-font-size: var(--rs-font-size-5xl);
7
+ --rs-heading-h2-font-size: var(--rs-font-size-4xl);
8
+ --rs-heading-h3-font-size: var(--rs-font-size-3xl);
9
+ --rs-heading-h4-font-size: var(--rs-font-size-2xl);
10
+ --rs-heading-h5-font-size: var(--rs-font-size-xl);
11
+ --rs-heading-h6-font-size: var(--rs-font-size-lg);
12
+
13
+ --rs-heading-h1-line-height: var(--rs-text-line-height-5xl);
14
+ --rs-heading-h2-line-height: var(--rs-text-line-height-4xl);
15
+ --rs-heading-h3-line-height: var(--rs-text-line-height-3xl);
16
+ --rs-heading-h4-line-height: var(--rs-text-line-height-2xl);
17
+ --rs-heading-h5-line-height: var(--rs-text-line-height-xl);
18
+ --rs-heading-h6-line-height: var(--rs-text-line-height-lg);
19
+ }
@@ -0,0 +1,42 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+ @use './variables';
3
+
4
+ // Heading
5
+ // -------------------------
6
+
7
+ .rs-heading {
8
+ font-family: var(--rs-heading-font-family);
9
+ font-weight: var(--rs-heading-font-weight);
10
+ color: var(--rs-heading-color);
11
+ margin: 0;
12
+
13
+ &.h1 {
14
+ font-size: var(--rs-heading-h1-font-size);
15
+ line-height: var(--rs-heading-h1-line-height);
16
+ }
17
+
18
+ &.h2 {
19
+ font-size: var(--rs-heading-h2-font-size);
20
+ line-height: var(--rs-heading-h2-line-height);
21
+ }
22
+
23
+ &.h3 {
24
+ font-size: var(--rs-heading-h3-font-size);
25
+ line-height: var(--rs-heading-h3-line-height);
26
+ }
27
+
28
+ &.h4 {
29
+ font-size: var(--rs-heading-h4-font-size);
30
+ line-height: var(--rs-heading-h4-line-height);
31
+ }
32
+
33
+ &.h5 {
34
+ font-size: var(--rs-heading-h5-font-size);
35
+ line-height: var(--rs-heading-h5-line-height);
36
+ }
37
+
38
+ &.h6 {
39
+ font-size: var(--rs-heading-h6-font-size);
40
+ line-height: var(--rs-heading-h6-line-height);
41
+ }
42
+ }
@@ -0,0 +1,5 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+
3
+ .rs-heading-group {
4
+ margin-bottom: 1rem;
5
+ }
@@ -0,0 +1,9 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+
3
+ // Highlight component styles
4
+ .rs-highlight-mark {
5
+ background-color: var(--rs-text-highlight-bg);
6
+ padding: 0 0.2em;
7
+ font-weight: bolder;
8
+ border-radius: var(--rs-radius-sm);
9
+ }
@@ -0,0 +1,90 @@
1
+ @use '../../Button/styles/index';
2
+ @use '../../Button/styles/mixin' as btn-mixin;
3
+
4
+ //
5
+ // IconButton
6
+ // --------------------------------------------------
7
+ .rs-btn-icon {
8
+ padding: calc((var(--rs-btn-size) - var(--rs-btn-icon-size)) / 2);
9
+ line-height: var(--rs-btn-icon-size);
10
+
11
+ > .rs-icon {
12
+ font-size: var(--rs-btn-icon-size);
13
+ vertical-align: bottom;
14
+ }
15
+
16
+ &:not([data-with-text]) {
17
+ width: var(--rs-btn-size);
18
+ }
19
+
20
+ // Circle Button
21
+ &[data-shape='circle'] {
22
+ border-radius: var(--rs-radius-full);
23
+ }
24
+ }
25
+
26
+ // Icon Button with text
27
+ @mixin btn-icon-with-text($bg) {
28
+ > .rs-icon {
29
+ background-color: $bg;
30
+ }
31
+ }
32
+
33
+ // Only support default/primary button
34
+ .rs-btn-icon[data-with-text] {
35
+ > .rs-icon {
36
+ position: absolute;
37
+ top: 0;
38
+ display: block;
39
+ background-color: var(--rs-iconbtn-addon);
40
+ transition: var(--rs-btn-transition);
41
+ width: var(--rs-btn-size);
42
+ height: var(--rs-btn-size);
43
+ padding: calc((var(--rs-btn-size) - var(--rs-btn-icon-size)) / 2);
44
+ }
45
+
46
+ &:where([data-placement='start'], [data-placement='left']) {
47
+ padding-inline-start: calc(var(--rs-btn-padding-inline) + var(--rs-btn-size));
48
+
49
+ > .rs-icon {
50
+ inset-inline-start: 0;
51
+ border-right-width: 1px;
52
+ }
53
+ }
54
+
55
+ &:where([data-placement='end'], [data-placement='right']) {
56
+ padding-inline-end: calc(var(--rs-btn-padding-inline) + var(--rs-btn-size));
57
+
58
+ > .rs-icon {
59
+ inset-inline-end: 0;
60
+ }
61
+ }
62
+
63
+ @include btn-mixin.button-activated {
64
+ @include btn-icon-with-text(var(--rs-iconbtn-activated-addon));
65
+ }
66
+
67
+ @include btn-mixin.button-pressed {
68
+ @include btn-icon-with-text(var(--rs-iconbtn-pressed-addon));
69
+ }
70
+
71
+ @include btn-mixin.button-disabled {
72
+ @include btn-icon-with-text(var(--rs-iconbtn-addon));
73
+ }
74
+ }
75
+
76
+ .rs-btn-icon[data-with-text][data-appearance='primary'] {
77
+ @include btn-icon-with-text(var(--rs-iconbtn-primary-addon));
78
+
79
+ @include btn-mixin.button-activated {
80
+ @include btn-icon-with-text(var(--rs-iconbtn-primary-activated-addon));
81
+ }
82
+
83
+ @include btn-mixin.button-pressed {
84
+ @include btn-icon-with-text(var(--rs-iconbtn-primary-pressed-addon));
85
+ }
86
+
87
+ @include btn-mixin.button-disabled {
88
+ @include btn-icon-with-text(var(--rs-iconbtn-primary-addon));
89
+ }
90
+ }
@@ -0,0 +1,36 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+
3
+ .rs-image {
4
+ --rs-object-fit: cover;
5
+ --rs-object-position: initial;
6
+
7
+ object-fit: var(--rs-object-fit);
8
+ object-position: var(--rs-object-position);
9
+ max-width: 100%;
10
+
11
+ &-rounded {
12
+ border-radius: var(--rs-radius-md);
13
+ }
14
+
15
+ &-circle {
16
+ border-radius: var(--rs-radius-full);
17
+ }
18
+
19
+ &-bordered {
20
+ border: 1px solid var(--rs-border-primary);
21
+ }
22
+
23
+ &-zoomed {
24
+ transition: transform 0.3s ease-in-out;
25
+ cursor: pointer;
26
+
27
+ &:hover {
28
+ transform: matrix(1.25, 0, 0, 1.25, 0, 0);
29
+ }
30
+ }
31
+ }
32
+
33
+ .rs-image-wrapper {
34
+ position: relative;
35
+ overflow: hidden;
36
+ }
@@ -0,0 +1,51 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+ @use '../../styles/colors/colors-base' as colors;
3
+ @use '../../Input/styles/index' as input;
4
+
5
+ .rs-inline-edit {
6
+ $sizes: xs, sm, md, lg;
7
+
8
+ @each $size in $sizes {
9
+ &[data-size='#{$size}'] {
10
+ --rs-inline-edit-font-size: var(--rs-input-font-size-#{$size});
11
+ --rs-inline-edit-line-height: var(--rs-input-line-height-#{$size});
12
+ --rs-inline-edit-padding-block: calc(var(--rs-input-padding-block-#{$size}) + var(--rs-input-border-width));
13
+ --rs-inline-edit-padding-inline: calc(var(--rs-input-padding-inline-#{$size}) + var(--rs-input-border-width));
14
+ }
15
+ }
16
+
17
+ position: relative;
18
+ display: inline-block;
19
+
20
+ .rs-plaintext {
21
+ font-size: var(--rs-inline-edit-font-size);
22
+ line-height: var(--rs-inline-edit-line-height);
23
+ padding-block: var(--rs-inline-edit-padding-block);
24
+ padding-inline: var(--rs-inline-edit-padding-inline);
25
+ border-radius: var(--rs-radius-md);
26
+
27
+ &:hover {
28
+ background-color: var(--rs-inline-edit-hover-bg);
29
+ }
30
+ }
31
+
32
+ &[data-disabled='true'] {
33
+ .rs-plaintext {
34
+ &:hover {
35
+ background-color: transparent;
36
+ }
37
+ }
38
+ }
39
+
40
+ &-controls {
41
+ position: absolute;
42
+ inset-block-start: 100%;
43
+ inset-inline-end: 0px;
44
+ margin-block-start: 6px;
45
+ z-index: 7;
46
+
47
+ .rs-btn {
48
+ box-shadow: var(--rs-shadow-sm);
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,39 @@
1
+ @use '../../styles/mixins/color-modes' as cm;
2
+ @use '../../styles/mixins/utilities' as utils;
3
+
4
+ @mixin default-input {
5
+ display: block;
6
+ width: 100%;
7
+ color: var(--rs-text-primary);
8
+ background-color: var(--rs-input-bg);
9
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
10
+ border: 1px solid var(--rs-border-primary);
11
+ transition: var(--rs-input-transition);
12
+ border-radius: var(--rs-input-border-radius);
13
+ font-size: var(--rs-input-font-size);
14
+ line-height: var(--rs-input-line-height);
15
+ padding-block: var(--rs-input-padding-block);
16
+ padding-inline: var(--rs-input-padding-inline);
17
+
18
+ @include cm.high-contrast-mode {
19
+ transition: none;
20
+ }
21
+
22
+ // Placeholder
23
+ &::placeholder {
24
+ color: var(--rs-text-secondary);
25
+ }
26
+
27
+ &:focus {
28
+ border-color: var(--rs-input-focus-border);
29
+ }
30
+
31
+ &:focus-visible {
32
+ @include utils.focus-ring;
33
+ }
34
+
35
+ &:disabled {
36
+ background-color: var(--rs-input-disabled-bg);
37
+ color: var(--rs-text-disabled);
38
+ }
39
+ }
@@ -0,0 +1,27 @@
1
+ // Input variables
2
+ :root {
3
+ --rs-input-border-width: 1px;
4
+
5
+ --rs-input-font-size-xs: var(--rs-font-size-xs);
6
+ --rs-input-font-size-sm: var(--rs-font-size-sm);
7
+ --rs-input-font-size-md: var(--rs-font-size-sm);
8
+ --rs-input-font-size-lg: var(--rs-font-size-md);
9
+
10
+ --rs-input-line-height-xs: var(--rs-line-height-xs);
11
+ --rs-input-line-height-sm: var(--rs-line-height-md);
12
+ --rs-input-line-height-md: var(--rs-line-height-md);
13
+ --rs-input-line-height-lg: var(--rs-line-height-lg);
14
+
15
+ --rs-input-border-radius: var(--rs-radius-md);
16
+
17
+ --rs-input-padding-block-xs: calc(var(--rs-spacing-block-xs) - var(--rs-input-border-width));
18
+ --rs-input-padding-block-sm: calc(var(--rs-spacing-block-sm) - var(--rs-input-border-width));
19
+ --rs-input-padding-block-md: calc(var(--rs-padding-block-md) - var(--rs-input-border-width));
20
+ --rs-input-padding-block-lg: calc(var(--rs-spacing-block-lg) - var(--rs-input-border-width));
21
+ --rs-input-padding-inline-xs: calc(var(--rs-spacing) - var(--rs-input-border-width));
22
+ --rs-input-padding-inline-sm: calc(calc(var(--rs-spacing) * 2) - var(--rs-input-border-width));
23
+ --rs-input-padding-inline-md: calc(calc(var(--rs-spacing) * 2.5) - var(--rs-input-border-width));
24
+ --rs-input-padding-inline-lg: calc(calc(var(--rs-spacing) * 3) - var(--rs-input-border-width));
25
+
26
+ --rs-input-transition: border-color ease-in-out 0.15s;
27
+ }
@@ -0,0 +1,23 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+ @use './mixin';
3
+ @use './variables';
4
+
5
+ //
6
+ // Forms
7
+ // --------------------------------------------------
8
+
9
+ // Common form controls
10
+ .rs-input {
11
+ @include mixin.default-input;
12
+
13
+ $sizes: (xs, sm, md, lg);
14
+
15
+ @each $size in $sizes {
16
+ &[data-size='#{$size}'] {
17
+ --rs-input-font-size: var(--rs-input-font-size-#{$size});
18
+ --rs-input-line-height: var(--rs-input-line-height-#{$size});
19
+ --rs-input-padding-block: var(--rs-input-padding-block-#{$size});
20
+ --rs-input-padding-inline: var(--rs-input-padding-inline-#{$size});
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,264 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+ @use '../../styles/mixins/color-modes';
3
+ @use '../../styles/mixins/utilities' as utils;
4
+ @use '../../Button/styles/mixin' as button;
5
+ @use '../../Input/styles/mixin' as input-mixin;
6
+
7
+ //
8
+ // Input Group Component Styles
9
+ // --------------------------------------------------
10
+ // The Input Group component allows you to create grouped form controls by combining
11
+ // inputs with addons, buttons, or other elements.
12
+
13
+ .rs-input-group {
14
+ --rs-input-height-xs: calc(var(--rs-line-height-base) + (var(--rs-spacing-block-xs) * 2));
15
+ --rs-input-height-sm: calc(var(--rs-line-height-base) + (var(--rs-spacing-block-sm) * 2));
16
+ --rs-input-height-md: calc(var(--rs-line-height-base) + (var(--rs-padding-block-md) * 2));
17
+ --rs-input-height-lg: calc(var(--rs-line-height-plus) + (var(--rs-spacing-block-lg) * 2));
18
+ --rs-input-group-input-height-xs: calc(var(--rs-input-height-xs) - 2px);
19
+ --rs-input-group-input-height-sm: calc(var(--rs-input-height-sm) - 2px);
20
+ --rs-input-group-input-height-md: calc(var(--rs-input-height-md) - 2px);
21
+ --rs-input-group-input-height-lg: calc(var(--rs-input-height-lg) - 2px);
22
+ --rs-input-group-inside-btn-m-x-xs: calc(var(--rs-spacing-block-xs) / 2);
23
+ --rs-input-group-inside-btn-m-x-sm: calc(var(--rs-spacing-block-sm) / 2);
24
+ --rs-input-group-inside-btn-m-x-md: calc(var(--rs-padding-block-md) / 2);
25
+ --rs-input-group-inside-btn-m-x-lg: calc(var(--rs-spacing-block-lg) / 2);
26
+ --rs-input-group-inside-btn-p-x-xs: calc(var(--rs-spacing-inline-xs) / 2);
27
+ --rs-input-group-inside-btn-p-x-sm: calc(var(--rs-spacing-inline-sm) / 2);
28
+ --rs-input-group-inside-btn-p-x-md: calc(var(--rs-padding-inline-md) / 2);
29
+ --rs-input-group-inside-btn-p-x-lg: calc(var(--rs-spacing-inline-lg) / 2);
30
+ --rs-input-group-border-radius: var(--rs-radius-md);
31
+ --rs-input-group-font-size-xs: var(--rs-font-size-xs);
32
+ --rs-input-group-font-size-sm: var(--rs-font-size-sm);
33
+ --rs-input-group-font-size-md: var(--rs-font-size-sm);
34
+ --rs-input-group-font-size-lg: var(--rs-font-size-md);
35
+ --rs-input-group-width: 100%;
36
+
37
+ // Base styles for the input group container
38
+ position: relative;
39
+ display: flex;
40
+ border-radius: var(--rs-input-group-border-radius);
41
+ transition: var(--rs-input-transition);
42
+ width: var(--rs-input-group-width);
43
+ cursor: text;
44
+ color: var(--rs-text-primary);
45
+ border: 1px solid var(--rs-border-primary);
46
+ overflow: hidden;
47
+
48
+ // Size Variants Configuration
49
+ // Apply different sizes (xs, sm, md, lg) to input group
50
+ // Each size variant sets its own height, spacing, and font size variables
51
+ $sizes: (xs, sm, md, lg);
52
+
53
+ @each $size in $sizes {
54
+ &[data-size='#{$size}'] {
55
+ --rs-input-group-input-height: var(--rs-input-group-input-height-#{$size});
56
+ --rs-input-group-inside-btn-spacing: var(--rs-input-group-inside-btn-m-x-#{$size});
57
+ --rs-input-group-inside-btn-padding: var(--rs-input-group-inside-btn-p-x-#{$size});
58
+ --rs-input-group-font-size: var(--rs-input-group-font-size-#{$size});
59
+ }
60
+ }
61
+
62
+ // High Contrast Mode Adjustments
63
+ @include color-modes.high-contrast-mode {
64
+ transition: none;
65
+ }
66
+
67
+ // Focus States
68
+ // Apply special styles when the input group is focused
69
+ &:not([data-disabled='true']).rs-input-group-focus,
70
+ &:focus-within {
71
+ border-color: var(--rs-input-focus-border);
72
+ }
73
+
74
+ &:not([data-disabled='true']).rs-input-group-focus,
75
+ &:focus-within {
76
+ @include utils.focus-ring;
77
+ }
78
+
79
+ // Nested Input Groups
80
+ // Remove outline and border when input groups are nested
81
+ & & {
82
+ outline: none !important;
83
+ border-color: transparent !important;
84
+ }
85
+
86
+ .rs-input-group-btn {
87
+ height: var(--rs-input-group-input-height);
88
+ }
89
+
90
+ // Child Component Styles
91
+ // Remove borders and border radius from child components
92
+ .rs-number-input,
93
+ .rs-input-group-addon,
94
+ .rs-input-group-btn,
95
+ .rs-picker[data-picker='date'] .rs-picker-toggle {
96
+ border: none;
97
+ border-radius: var(--rs-radius-none);
98
+ outline: none;
99
+ }
100
+
101
+ > .rs-input,
102
+ > .rs-form-control-wrapper {
103
+ flex: 1 1 auto;
104
+ }
105
+
106
+ .rs-form-control-wrapper > .rs-input {
107
+ width: 100%;
108
+ }
109
+
110
+ > .rs-input {
111
+ // Ensure that the input is always above the *appended* addon button for
112
+ // proper border colors.
113
+ position: relative;
114
+ height: var(--rs-input-group-input-height);
115
+ border: none;
116
+ border-radius: var(--rs-radius-none);
117
+ outline: none;
118
+ }
119
+
120
+ > .rs-input-group-addon > .rs-icon {
121
+ font-size: inherit;
122
+ }
123
+
124
+ // Inside Input Group Variant
125
+ // Special styling for input groups with internal buttons/addons
126
+ &[data-inside='true'] {
127
+ width: var(--rs-input-group-width);
128
+ align-items: center;
129
+ background-color: var(--rs-input-bg);
130
+
131
+ .rs-input {
132
+ display: block;
133
+ width: 100%;
134
+ border: none;
135
+ outline: none;
136
+ }
137
+
138
+ .rs-input-group-btn,
139
+ .rs-input-group-addon {
140
+ flex: 0 0 auto;
141
+ width: auto;
142
+ }
143
+
144
+ .rs-input-group-btn {
145
+ border-radius: var(--rs-input-group-border-radius);
146
+ height: calc(
147
+ var(--rs-input-group-input-height) - var(--rs-input-group-inside-btn-spacing) * 2
148
+ );
149
+ margin-inline: var(--rs-input-group-inside-btn-spacing);
150
+ padding-inline: var(--rs-input-group-inside-btn-padding);
151
+ color: var(--rs-btn-subtle-text);
152
+ background-color: transparent;
153
+
154
+ &:hover {
155
+ color: var(--rs-btn-subtle-hover-text);
156
+ background-color: var(--rs-btn-subtle-hover-bg);
157
+ }
158
+
159
+ &:active,
160
+ &[data-active='true'] {
161
+ color: var(--rs-btn-subtle-active-text);
162
+ background-color: var(--rs-btn-subtle-active-bg);
163
+ }
164
+
165
+ &:disabled,
166
+ &[data-disabled='true'] {
167
+ color: var(--rs-btn-subtle-disabled-text);
168
+ background: none;
169
+ }
170
+
171
+ color: inherit;
172
+
173
+ &:focus {
174
+ outline: none;
175
+ }
176
+ }
177
+
178
+ .rs-input-group-addon {
179
+ background: none;
180
+ border: none;
181
+ }
182
+
183
+ // If the input has an element on the left, remove the left padding
184
+ .rs-input:not(:first-child),
185
+ .rs-auto-complete:not(:first-child) .rs-input {
186
+ padding-inline-start: 0;
187
+ }
188
+
189
+ // If the input has an element on the right, remove the right padding
190
+ .rs-input:not(:last-child),
191
+ .rs-auto-complete:not(:last-child) .rs-input {
192
+ padding-inline-end: 0;
193
+ }
194
+ }
195
+ }
196
+
197
+ // Disabled State
198
+ // Styles applied when the input group is disabled
199
+ .rs-input-group[data-disabled='true'] {
200
+ background-color: var(--rs-input-disabled-bg);
201
+ color: var(--rs-text-disabled);
202
+ cursor: not-allowed;
203
+
204
+ .rs-input,
205
+ .rs-input-group-btn,
206
+ .rs-input-group-addon {
207
+ color: inherit;
208
+ }
209
+ }
210
+
211
+ // Addon Component Styles
212
+ // Base styles for the addon component
213
+ .rs-input-group-addon {
214
+ flex: 0 0 auto;
215
+ display: flex;
216
+ align-items: center;
217
+ justify-content: center;
218
+ white-space: nowrap;
219
+ vertical-align: middle; // Match the inputs
220
+ color: var(--rs-text-primary);
221
+ font-size: var(--rs-input-group-font-size);
222
+ font-weight: normal;
223
+ line-height: 1;
224
+ text-align: center;
225
+ background-color: var(--rs-btn-default-bg);
226
+ padding-inline: var(--rs-spacing);
227
+ min-width: var(--rs-input-group-input-height);
228
+
229
+ // Sizing
230
+ &[data-size='sm'] {
231
+ padding-block: var(--rs-spacing-block-sm);
232
+ padding-inline: var(--rs-spacing-inline-sm);
233
+ font-size: var(--rs-font-size-sm);
234
+ }
235
+
236
+ &[data-size='xs'] {
237
+ padding: var(--rs-spacing-inline-xs);
238
+ font-size: var(--rs-font-size-xs);
239
+ }
240
+
241
+ &[data-size='lg'] {
242
+ padding-block: var(--rs-spacing-block-lg);
243
+ padding-inline: var(--rs-spacing-inline-lg);
244
+ font-size: var(--rs-font-size-md);
245
+ }
246
+
247
+ // Nuke default margins from checkboxes and radios to vertically center within.
248
+ input[type='radio'],
249
+ input[type='checkbox'] {
250
+ margin-top: 0;
251
+ }
252
+ }
253
+
254
+ // Button Component Styles
255
+ // Base styles for the button component
256
+ .rs-input-group-btn {
257
+ display: flex;
258
+ align-items: center;
259
+ position: relative;
260
+ line-height: 1;
261
+ white-space: nowrap;
262
+ border-radius: var(--rs-radius-none);
263
+ font-size: var(--rs-input-group-font-size);
264
+ }
@@ -0,0 +1 @@
1
+ @use '../../NumberInput/styles/index';
@@ -0,0 +1,7 @@
1
+ @mixin rs-input-picker-size($padding-vertical, $padding-horizontal, $font-size, $line-height) {
2
+ .rs-picker-search-input {
3
+ padding: ($padding-vertical - 1px) $padding-horizontal;
4
+ font-size: $font-size;
5
+ line-height: $line-height;
6
+ }
7
+ }
@@ -0,0 +1,64 @@
1
+ @use '../../internals/Box/styles/index' as box;
2
+ @use '../../styles/colors/colors-base' as colors;
3
+ @use '../../Input/styles/index' as input;
4
+ @use '../../SelectPicker/styles/index' as select-picker;
5
+ @use '../../internals/Picker/styles/index' as picker;
6
+ @use './mixin' as input-picker-mixin;
7
+
8
+ .rs-picker[data-picker='input'] {
9
+ --rs-picker-textbox-margin-inline: var(--rs-picker-input-height);
10
+
11
+ position: relative;
12
+ border-width: 1px;
13
+ border-style: solid;
14
+ border-color: var(--rs-picker-toggle-border-color, var(--rs-border-primary));
15
+ border-radius: var(--rs-radius-md);
16
+ transition: var(--rs-picker-transition);
17
+ background-color: var(--rs-input-bg);
18
+ overflow: hidden;
19
+
20
+ .rs-picker-toggle {
21
+ border: none !important;
22
+ height: var(--rs-picker-input-height);
23
+ width: 100%;
24
+ cursor: text;
25
+ }
26
+
27
+ &:not([data-disabled='true']) .rs-picker-toggle {
28
+ position: absolute !important;
29
+ }
30
+
31
+ $sizes: xs, sm, md, lg;
32
+ @each $size in $sizes {
33
+ &[data-size='#{$size}'] {
34
+ --rs-picker-input-height: calc(var(--rs-btn-size-#{$size}) - 2px);
35
+ --rs-picker-search-input-font-size: var(--rs-input-font-size-#{$size});
36
+ --rs-picker-search-input-line-height: var(--rs-input-line-height-#{$size});
37
+ --rs-picker-search-input-padding-block: var(--rs-input-padding-block-#{$size});
38
+ --rs-picker-search-input-padding-inline: var(--rs-input-padding-inline-#{$size});
39
+ }
40
+ }
41
+
42
+ .rs-picker-textbox {
43
+ margin-inline-end: var(--rs-picker-textbox-margin-inline);
44
+ height: var(--rs-picker-input-height);
45
+ }
46
+ }
47
+
48
+ .rs-picker-search {
49
+ border: none;
50
+ width: 100%;
51
+
52
+ &-input {
53
+ font-size: var(--rs-picker-search-input-font-size);
54
+ line-height: var(--rs-picker-search-input-line-height);
55
+ padding-block: var(--rs-picker-search-input-padding-block);
56
+ padding-inline: var(--rs-picker-search-input-padding-inline);
57
+ background: none;
58
+ outline: none;
59
+ border: none;
60
+ width: 100%;
61
+ position: relative;
62
+ padding-inline-end: 0;
63
+ }
64
+ }