rsuite 6.0.0-canary-20250624 → 6.0.0-canary-20250702

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 (247) hide show
  1. package/AutoComplete/styles/index.css +156 -161
  2. package/AvatarGroup/styles/index.css +1 -10
  3. package/Badge/styles/index.css +21 -21
  4. package/Button/styles/index.css +78 -63
  5. package/ButtonGroup/styles/index.css +15 -12
  6. package/ButtonToolbar/styles/index.css +1 -10
  7. package/CHANGELOG.md +9 -0
  8. package/Calendar/styles/index.css +92 -67
  9. package/Card/styles/index.css +7 -7
  10. package/CascadeTree/styles/index.css +8 -9
  11. package/Cascader/styles/index.css +160 -164
  12. package/CheckPicker/styles/index.css +173 -178
  13. package/CheckTree/styles/index.css +175 -180
  14. package/CheckTreePicker/styles/index.css +175 -180
  15. package/Checkbox/styles/index.css +21 -28
  16. package/CheckboxGroup/styles/index.css +1 -1
  17. package/DateInput/styles/index.css +8 -18
  18. package/DatePicker/styles/index.css +173 -168
  19. package/DateRangeInput/styles/index.css +8 -18
  20. package/DateRangePicker/styles/index.css +173 -168
  21. package/Dropdown/styles/index.css +110 -94
  22. package/IconButton/styles/index.css +95 -79
  23. package/InlineEdit/styles/index.css +12 -19
  24. package/Input/styles/index.css +8 -18
  25. package/InputGroup/styles/index.css +31 -38
  26. package/InputNumber/styles/index.css +115 -100
  27. package/InputPicker/styles/index.css +156 -161
  28. package/List/styles/index.css +10 -10
  29. package/Loader/styles/index.css +16 -16
  30. package/Menu/styles/index.css +2 -2
  31. package/Message/styles/index.css +2 -2
  32. package/MultiCascadeTree/styles/index.css +178 -191
  33. package/MultiCascader/styles/index.css +178 -200
  34. package/Nav/styles/index.css +162 -146
  35. package/Navbar/styles/index.css +140 -124
  36. package/NumberInput/styles/index.css +115 -100
  37. package/Pagination/styles/index.css +177 -200
  38. package/PasswordInput/styles/index.css +36 -43
  39. package/PinInput/styles/index.css +12 -22
  40. package/Radio/styles/index.css +22 -29
  41. package/RadioGroup/styles/index.css +11 -11
  42. package/SelectPicker/styles/index.css +156 -161
  43. package/Sidenav/styles/index.css +122 -129
  44. package/Stack/styles/index.css +1 -10
  45. package/Stat/styles/index.css +95 -79
  46. package/Steps/styles/index.css +26 -25
  47. package/Table/styles/index.css +11 -0
  48. package/Tabs/styles/index.css +162 -146
  49. package/Tag/styles/index.css +112 -96
  50. package/TagInput/styles/index.css +174 -179
  51. package/TagPicker/styles/index.css +174 -179
  52. package/TimePicker/styles/index.css +173 -168
  53. package/TimeRangePicker/styles/index.css +173 -168
  54. package/Toggle/styles/index.css +27 -30
  55. package/Tree/styles/index.css +157 -162
  56. package/TreePicker/styles/index.css +157 -162
  57. package/Uploader/styles/index.css +94 -65
  58. package/cjs/Badge/Badge.js +16 -11
  59. package/cjs/Breadcrumb/Breadcrumb.d.ts +2 -2
  60. package/cjs/Button/Button.js +9 -7
  61. package/cjs/ButtonGroup/ButtonGroup.js +7 -7
  62. package/cjs/Card/Card.js +6 -6
  63. package/cjs/Checkbox/Checkbox.js +6 -7
  64. package/cjs/CheckboxGroup/CheckboxGroup.js +3 -4
  65. package/cjs/Dropdown/Dropdown.js +3 -4
  66. package/cjs/Dropdown/DropdownItem.js +4 -4
  67. package/cjs/Dropdown/DropdownMenu.js +9 -10
  68. package/cjs/FormControl/FormControl.d.ts +1 -1
  69. package/cjs/FormControlLabel/FormControlLabel.d.ts +1 -1
  70. package/cjs/FormHelpText/FormHelpText.d.ts +1 -1
  71. package/cjs/IconButton/IconButton.d.ts +1 -1
  72. package/cjs/IconButton/IconButton.js +9 -9
  73. package/cjs/Image/Image.d.ts +1 -1
  74. package/cjs/InlineEdit/InlineEdit.js +3 -2
  75. package/cjs/InputGroup/InputGroup.js +12 -14
  76. package/cjs/InputGroup/InputGroupAddon.d.ts +2 -2
  77. package/cjs/InputPicker/InputAutosize.js +4 -6
  78. package/cjs/List/List.d.ts +1 -1
  79. package/cjs/List/List.js +7 -8
  80. package/cjs/List/ListItem.d.ts +2 -2
  81. package/cjs/List/ListItem.js +4 -4
  82. package/cjs/Loader/Loader.js +8 -7
  83. package/cjs/Menu/MenuSeparator.d.ts +2 -2
  84. package/cjs/Nav/Nav.d.ts +2 -2
  85. package/cjs/Nav/Nav.js +12 -13
  86. package/cjs/Nav/NavDropdownItem.js +4 -4
  87. package/cjs/Nav/NavDropdownMenu.js +10 -13
  88. package/cjs/Nav/NavItem.d.ts +2 -2
  89. package/cjs/Nav/NavItem.js +6 -8
  90. package/cjs/Navbar/Navbar.js +6 -6
  91. package/cjs/Navbar/NavbarDropdown.d.ts +1 -1
  92. package/cjs/Navbar/NavbarDropdown.js +3 -4
  93. package/cjs/Navbar/NavbarDropdownItem.js +4 -4
  94. package/cjs/Navbar/NavbarDropdownMenu.js +8 -11
  95. package/cjs/NumberInput/NumberInput.d.ts +1 -1
  96. package/cjs/Pagination/Pagination.js +3 -2
  97. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  98. package/cjs/Pagination/PaginationButton.js +9 -17
  99. package/cjs/Pagination/PaginationGroup.js +2 -1
  100. package/cjs/Panel/PanelHeader.d.ts +1 -1
  101. package/cjs/Radio/Radio.js +6 -6
  102. package/cjs/RadioGroup/RadioGroup.js +4 -4
  103. package/cjs/Sidenav/ExpandedSidenavDropdown.d.ts +1 -1
  104. package/cjs/Sidenav/Sidenav.js +3 -2
  105. package/cjs/Sidenav/SidenavDropdown.js +3 -5
  106. package/cjs/Sidenav/SidenavDropdownItem.js +4 -4
  107. package/cjs/Sidenav/SidenavDropdownMenu.js +10 -13
  108. package/cjs/Sidenav/SidenavItem.d.ts +2 -2
  109. package/cjs/Sidenav/SidenavItem.js +4 -5
  110. package/cjs/Slider/Handle.d.ts +1 -1
  111. package/cjs/Stack/Stack.d.ts +1 -17
  112. package/cjs/Stack/Stack.js +3 -4
  113. package/cjs/Stack/StackItem.d.ts +4 -5
  114. package/cjs/Stack/StackItem.js +4 -10
  115. package/cjs/Steps/StepItem.js +7 -8
  116. package/cjs/Steps/Steps.d.ts +2 -1
  117. package/cjs/Steps/Steps.js +32 -34
  118. package/cjs/Tabs/Tabs.js +1 -1
  119. package/cjs/Tag/Tag.js +5 -2
  120. package/cjs/Toggle/Toggle.d.ts +1 -1
  121. package/cjs/Toggle/Toggle.js +7 -6
  122. package/cjs/Tree/types.d.ts +2 -2
  123. package/cjs/Uploader/Uploader.d.ts +2 -2
  124. package/cjs/internals/Box/Box.d.ts +1 -0
  125. package/cjs/internals/Box/index.d.ts +1 -1
  126. package/cjs/internals/Box/utils.js +5 -4
  127. package/cjs/internals/InputBase/InputBase.d.ts +1 -1
  128. package/cjs/internals/InputBase/InputBase.js +3 -2
  129. package/cjs/internals/Menu/MenuItem.js +1 -1
  130. package/cjs/internals/Overlay/Modal.d.ts +1 -1
  131. package/cjs/internals/Picker/PickerToggle.js +2 -4
  132. package/cjs/internals/SafeAnchor/SafeAnchor.d.ts +2 -2
  133. package/cjs/internals/Tree/TreeView.d.ts +2 -2
  134. package/cjs/internals/hooks/useCustom.js +24 -7
  135. package/cjs/internals/styled-system/css-alias.d.ts +7 -0
  136. package/cjs/internals/styled-system/css-alias.js +391 -0
  137. package/cjs/internals/styled-system/css-properties.d.ts +6 -0
  138. package/cjs/internals/styled-system/css-properties.js +30 -0
  139. package/cjs/internals/styled-system/index.d.ts +1 -1
  140. package/cjs/internals/styled-system/index.js +4 -4
  141. package/cjs/internals/styled-system/responsive.d.ts +0 -4
  142. package/cjs/internals/styled-system/responsive.js +12 -33
  143. package/cjs/internals/styled-system/types.d.ts +59 -5
  144. package/cjs/internals/styled-system/useStyled.js +3 -3
  145. package/cjs/internals/types/html.d.ts +6 -6
  146. package/cjs/internals/types/picker.d.ts +1 -1
  147. package/dist/rsuite-no-reset.css +641 -641
  148. package/dist/rsuite-no-reset.min.css +1 -1
  149. package/dist/rsuite.css +641 -641
  150. package/dist/rsuite.js +60 -60
  151. package/dist/rsuite.min.css +1 -1
  152. package/dist/rsuite.min.js +1 -1
  153. package/dist/rsuite.min.js.map +1 -1
  154. package/esm/Badge/Badge.js +16 -11
  155. package/esm/Breadcrumb/Breadcrumb.d.ts +2 -2
  156. package/esm/Button/Button.js +9 -7
  157. package/esm/ButtonGroup/ButtonGroup.js +7 -7
  158. package/esm/Card/Card.js +6 -6
  159. package/esm/Checkbox/Checkbox.js +6 -7
  160. package/esm/CheckboxGroup/CheckboxGroup.js +3 -4
  161. package/esm/Dropdown/Dropdown.js +3 -4
  162. package/esm/Dropdown/DropdownItem.js +4 -4
  163. package/esm/Dropdown/DropdownMenu.js +9 -10
  164. package/esm/FormControl/FormControl.d.ts +1 -1
  165. package/esm/FormControlLabel/FormControlLabel.d.ts +1 -1
  166. package/esm/FormHelpText/FormHelpText.d.ts +1 -1
  167. package/esm/IconButton/IconButton.d.ts +1 -1
  168. package/esm/IconButton/IconButton.js +9 -9
  169. package/esm/Image/Image.d.ts +1 -1
  170. package/esm/InlineEdit/InlineEdit.js +3 -2
  171. package/esm/InputGroup/InputGroup.js +12 -14
  172. package/esm/InputGroup/InputGroupAddon.d.ts +2 -2
  173. package/esm/InputPicker/InputAutosize.js +4 -6
  174. package/esm/List/List.d.ts +1 -1
  175. package/esm/List/List.js +7 -8
  176. package/esm/List/ListItem.d.ts +2 -2
  177. package/esm/List/ListItem.js +4 -4
  178. package/esm/Loader/Loader.js +8 -7
  179. package/esm/Menu/MenuSeparator.d.ts +2 -2
  180. package/esm/Nav/Nav.d.ts +2 -2
  181. package/esm/Nav/Nav.js +12 -13
  182. package/esm/Nav/NavDropdownItem.js +4 -4
  183. package/esm/Nav/NavDropdownMenu.js +10 -13
  184. package/esm/Nav/NavItem.d.ts +2 -2
  185. package/esm/Nav/NavItem.js +6 -8
  186. package/esm/Navbar/Navbar.js +7 -7
  187. package/esm/Navbar/NavbarDropdown.d.ts +1 -1
  188. package/esm/Navbar/NavbarDropdown.js +3 -4
  189. package/esm/Navbar/NavbarDropdownItem.js +4 -4
  190. package/esm/Navbar/NavbarDropdownMenu.js +8 -11
  191. package/esm/NumberInput/NumberInput.d.ts +1 -1
  192. package/esm/Pagination/Pagination.js +3 -2
  193. package/esm/Pagination/PaginationButton.d.ts +3 -3
  194. package/esm/Pagination/PaginationButton.js +9 -16
  195. package/esm/Pagination/PaginationGroup.js +2 -1
  196. package/esm/Panel/PanelHeader.d.ts +1 -1
  197. package/esm/Radio/Radio.js +6 -6
  198. package/esm/RadioGroup/RadioGroup.js +4 -4
  199. package/esm/Sidenav/ExpandedSidenavDropdown.d.ts +1 -1
  200. package/esm/Sidenav/Sidenav.js +3 -2
  201. package/esm/Sidenav/SidenavDropdown.js +3 -5
  202. package/esm/Sidenav/SidenavDropdownItem.js +4 -4
  203. package/esm/Sidenav/SidenavDropdownMenu.js +10 -13
  204. package/esm/Sidenav/SidenavItem.d.ts +2 -2
  205. package/esm/Sidenav/SidenavItem.js +4 -5
  206. package/esm/Slider/Handle.d.ts +1 -1
  207. package/esm/Stack/Stack.d.ts +1 -17
  208. package/esm/Stack/Stack.js +3 -4
  209. package/esm/Stack/StackItem.d.ts +4 -5
  210. package/esm/Stack/StackItem.js +5 -11
  211. package/esm/Steps/StepItem.js +7 -8
  212. package/esm/Steps/Steps.d.ts +2 -1
  213. package/esm/Steps/Steps.js +31 -34
  214. package/esm/Tabs/Tabs.js +1 -1
  215. package/esm/Tag/Tag.js +5 -2
  216. package/esm/Toggle/Toggle.d.ts +1 -1
  217. package/esm/Toggle/Toggle.js +7 -6
  218. package/esm/Tree/types.d.ts +2 -2
  219. package/esm/Uploader/Uploader.d.ts +2 -2
  220. package/esm/internals/Box/Box.d.ts +1 -0
  221. package/esm/internals/Box/index.d.ts +1 -1
  222. package/esm/internals/Box/utils.js +6 -5
  223. package/esm/internals/InputBase/InputBase.d.ts +1 -1
  224. package/esm/internals/InputBase/InputBase.js +3 -2
  225. package/esm/internals/Menu/MenuItem.js +1 -1
  226. package/esm/internals/Overlay/Modal.d.ts +1 -1
  227. package/esm/internals/Picker/PickerToggle.js +2 -4
  228. package/esm/internals/SafeAnchor/SafeAnchor.d.ts +2 -2
  229. package/esm/internals/Tree/TreeView.d.ts +2 -2
  230. package/esm/internals/hooks/useCustom.js +24 -7
  231. package/esm/internals/styled-system/css-alias.d.ts +7 -0
  232. package/esm/internals/styled-system/css-alias.js +387 -0
  233. package/esm/internals/styled-system/css-properties.d.ts +6 -0
  234. package/esm/internals/styled-system/css-properties.js +26 -0
  235. package/esm/internals/styled-system/index.d.ts +1 -1
  236. package/esm/internals/styled-system/index.js +1 -1
  237. package/esm/internals/styled-system/responsive.d.ts +0 -4
  238. package/esm/internals/styled-system/responsive.js +11 -31
  239. package/esm/internals/styled-system/types.d.ts +59 -5
  240. package/esm/internals/styled-system/useStyled.js +3 -3
  241. package/esm/internals/types/html.d.ts +6 -6
  242. package/esm/internals/types/picker.d.ts +1 -1
  243. package/package.json +1 -1
  244. package/cjs/internals/styled-system/css-property.d.ts +0 -6
  245. package/cjs/internals/styled-system/css-property.js +0 -289
  246. package/esm/internals/styled-system/css-property.d.ts +0 -6
  247. package/esm/internals/styled-system/css-property.js +0 -285
package/cjs/Card/Card.js CHANGED
@@ -39,17 +39,17 @@ const Card = (0, _utils.forwardRef)((props, ref) => {
39
39
  withPrefix,
40
40
  cssVar
41
41
  } = (0, _hooks.useStyles)(classPrefix);
42
- const classes = merge(className, withPrefix(direction, size, {
43
- bordered,
44
- shaded: shaded === true,
45
- ['shaded-hover']: shaded === 'hover'
46
- }));
42
+ const classes = merge(className, withPrefix());
47
43
  const styles = (0, _utils.mergeStyles)(style, cssVar('width', width, _utils.getCssValue));
48
44
  return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
49
45
  as: as,
50
46
  ref: ref,
51
47
  className: classes,
52
- style: styles
48
+ style: styles,
49
+ "data-size": size,
50
+ "data-direction": direction,
51
+ "data-bordered": bordered,
52
+ "data-shaded": shaded
53
53
  }, rest), children);
54
54
  }, Subcomponents);
55
55
  Card.displayName = 'Card';
@@ -71,12 +71,7 @@ const Checkbox = (0, _utils.forwardRef)((props, ref) => {
71
71
  prefix,
72
72
  withPrefix
73
73
  } = (0, _hooks.useStyles)(classPrefix);
74
- const classes = merge(className, withPrefix(color, {
75
- inline,
76
- indeterminate,
77
- disabled,
78
- checked
79
- }));
74
+ const classes = merge(className, withPrefix());
80
75
  const [htmlInputProps, restProps] = (0, _utils.partitionHTMLProps)(rest);
81
76
 
82
77
  // If <Checkbox> is within a <CheckboxGroup>, it's bound to be controlled
@@ -136,7 +131,11 @@ const Checkbox = (0, _utils.forwardRef)((props, ref) => {
136
131
  }, restProps, {
137
132
  ref: ref,
138
133
  onClick: onClick,
139
- className: classes
134
+ className: classes,
135
+ "data-color": color,
136
+ "data-checked": indeterminate ? 'mixed' : checked,
137
+ "data-disabled": disabled,
138
+ "data-inline": inline
140
139
  }), /*#__PURE__*/_react.default.createElement("div", {
141
140
  className: prefix`checker`
142
141
  }, /*#__PURE__*/_react.default.createElement("label", {
@@ -41,9 +41,7 @@ const CheckboxGroup = (0, _utils.forwardRef)((props, ref) => {
41
41
  merge,
42
42
  withPrefix
43
43
  } = (0, _hooks.useStyles)(classPrefix);
44
- const classes = merge(className, withPrefix({
45
- inline
46
- }));
44
+ const classes = merge(className, withPrefix());
47
45
  const [value, setValue, isControlled] = (0, _hooks.useControlled)(valueProp, defaultValue);
48
46
  const handleChange = (0, _react.useCallback)((itemValue, itemChecked, event) => {
49
47
  const nextValue = (0, _cloneDeep.default)(value) || [];
@@ -75,7 +73,8 @@ const CheckboxGroup = (0, _utils.forwardRef)((props, ref) => {
75
73
  }, rest, {
76
74
  ref: ref,
77
75
  role: "group",
78
- className: classes
76
+ className: classes,
77
+ "data-inline": inline
79
78
  }), children));
80
79
  });
81
80
  CheckboxGroup.displayName = 'CheckboxGroup';
@@ -145,15 +145,14 @@ const Dropdown = (0, _utils.forwardRef)((props, ref) => {
145
145
  open,
146
146
  ...menuContainer
147
147
  }, menuContainerRef) => {
148
- const classes = merge(className, withPrefix({
149
- disabled,
150
- open
151
- }));
148
+ const classes = merge(className, withPrefix());
152
149
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
153
150
  ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
154
151
  className: classes,
155
152
  style: style,
156
153
  "data-placement": (0, _utils.kebabPlace)(placement),
154
+ "data-disabled": disabled,
155
+ "data-open": open,
157
156
  "data-active-descendant": hasSelectedItem
158
157
  }, menuContainer, (0, _pick.default)(toggleProps, ['data-testid'])));
159
158
  }));
@@ -111,14 +111,14 @@ const DropdownItem = (0, _utils.forwardRef)((props, ref) => {
111
111
  ...menuitem
112
112
  }, menuitemRef) => {
113
113
  const classes = merge(className, withPrefix({
114
- 'with-icon': icon,
115
- active: selected,
116
- disabled,
117
- focus: active,
118
114
  divider,
119
115
  panel
120
116
  }));
121
117
  const dataAttributes = {
118
+ 'data-disabled': disabled,
119
+ 'data-focus': active,
120
+ 'data-active': selected,
121
+ 'data-with-icon': !!icon,
122
122
  'data-event-key': eventKey
123
123
  };
124
124
  if (!(0, _isNil.default)(eventKey) && typeof eventKey !== 'string') {
@@ -118,16 +118,15 @@ const DropdownMenu = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
118
118
  active,
119
119
  ...menuitem
120
120
  }, menuitemRef) => {
121
- const classes = mergeItemClassNames(className, prefixItemClassName`toggle`, withItemClassPrefix({
122
- 'with-icon': icon,
123
- open,
124
- active: selected,
125
- disabled,
126
- focus: active
127
- }));
121
+ const classes = mergeItemClassNames(className, prefixItemClassName`toggle`, withItemClassPrefix());
128
122
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
129
123
  ref: (0, _utils.mergeRefs)(buttonRef, menuitemRef),
130
124
  className: classes,
125
+ "data-open": open,
126
+ "data-disabled": disabled,
127
+ "data-focus": active,
128
+ "data-active": selected,
129
+ "data-with-icon": icon,
131
130
  "data-event-key": eventKey,
132
131
  "data-event-key-type": typeof eventKey
133
132
  }, menuitem, (0, _omit.default)(menuButtonProps, ['role'])), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
@@ -153,13 +152,13 @@ const DropdownMenu = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
153
152
  ...menuContainer
154
153
  }, menuContainerRef) => {
155
154
  const classes = mergeItemClassNames(className, withItemClassPrefix({
156
- disabled,
157
- open,
158
155
  submenu: true
159
156
  }));
160
157
  return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
161
158
  ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
162
- className: classes
159
+ className: classes,
160
+ "data-open": open,
161
+ "data-disabled": disabled
163
162
  }, menuContainer));
164
163
  });
165
164
  });
@@ -7,7 +7,7 @@ import type { ErrorMessagePlacement, FormControlBaseProps, CheckTriggerType } fr
7
7
  * Props that FormControl passes to its accepter
8
8
  */
9
9
  export type FormControlAccepterProps<ValueType = any> = FormControlBaseProps<ValueType>;
10
- export interface FormControlProps<ValueType = any> extends BoxProps, Omit<React.HTMLAttributes<HTMLFormElement>, 'value' | 'onChange'> {
10
+ export interface FormControlProps<ValueType = any> extends BoxProps, Omit<React.HTMLAttributes<HTMLFormElement>, 'value' | 'onChange' | 'color'> {
11
11
  /** Proxied components */
12
12
  accepter?: React.ElementType;
13
13
  /**
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { BoxProps } from '../internals/Box';
3
- export interface FormControlLabelProps extends BoxProps, React.LabelHTMLAttributes<HTMLLabelElement> {
3
+ export interface FormControlLabelProps extends BoxProps, Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'color'> {
4
4
  /** Attribute of the html label tag, defaults to the controlId of the FormGroup */
5
5
  htmlFor?: string;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { BoxProps } from '../internals/Box';
3
- export interface FormHelpTextProps extends BoxProps, React.HTMLAttributes<HTMLSpanElement> {
3
+ export interface FormHelpTextProps extends BoxProps, Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'> {
4
4
  /** Whether to show through the Tooltip component */
5
5
  tooltip?: boolean;
6
6
  }
@@ -7,7 +7,7 @@ export interface IconButtonProps extends ButtonProps {
7
7
  /** Set circle button */
8
8
  circle?: boolean;
9
9
  /** The placement of icon */
10
- placement?: 'left' | 'right';
10
+ placement?: 'left' | 'right' | 'start' | 'end';
11
11
  }
12
12
  /**
13
13
  * The `IconButton` component is used to specify a button with icon.
@@ -18,25 +18,25 @@ const IconButton = (0, _utils.forwardRef)((props, ref) => {
18
18
  propsWithDefaults
19
19
  } = (0, _hooks.useCustom)('IconButton', props);
20
20
  const {
21
- icon,
22
- placement = 'left',
23
- children,
24
21
  circle,
25
- classPrefix = 'btn-icon',
22
+ children,
26
23
  className,
24
+ classPrefix = 'btn-icon',
25
+ placement = 'start',
26
+ icon,
27
27
  ...rest
28
28
  } = propsWithDefaults;
29
29
  const {
30
30
  merge,
31
31
  withPrefix
32
32
  } = (0, _hooks.useStyles)(classPrefix);
33
- const classes = merge(className, withPrefix(`placement-${placement}`, {
34
- circle,
35
- 'with-text': typeof children !== 'undefined'
36
- }));
33
+ const classes = merge(className, withPrefix());
37
34
  return /*#__PURE__*/_react.default.createElement(_Button.default, (0, _extends2.default)({}, rest, {
38
35
  ref: ref,
39
- className: classes
36
+ className: classes,
37
+ "data-shape": circle ? 'circle' : undefined,
38
+ "data-placement": placement,
39
+ "data-with-text": typeof children !== 'undefined' || undefined
40
40
  }), icon, children);
41
41
  });
42
42
  IconButton.displayName = 'IconButton';
@@ -1,6 +1,6 @@
1
1
  import React, { CSSProperties } from 'react';
2
2
  import { BoxProps } from '../internals/Box';
3
- export interface ImageProps extends Omit<BoxProps, 'rounded'>, Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {
3
+ export interface ImageProps extends Omit<BoxProps, 'rounded' | 'color' | 'height' | 'width' | 'position'>, Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {
4
4
  /**
5
5
  * An image may appear with border.
6
6
  */
@@ -71,12 +71,13 @@ const InlineEdit = (0, _utils.forwardRef)((props, ref) => {
71
71
  as: as,
72
72
  ref: (0, _utils.mergeRefs)(root, ref),
73
73
  tabIndex: 0,
74
- className: merge(className, withPrefix(size, {
74
+ className: merge(className, withPrefix({
75
75
  disabled
76
76
  })),
77
77
  onClick: onClick,
78
78
  onKeyDown: onKeyDown,
79
- onFocus: onFocus
79
+ onFocus: onFocus,
80
+ "data-size": size
80
81
  }, htmlProps), (0, _renderChildren.renderChildren)(children, childrenProps, target), showControls && isEditing && /*#__PURE__*/_react.default.createElement(_EditableControls.default, {
81
82
  className: prefix('controls'),
82
83
  onSave: onSave,
@@ -47,20 +47,14 @@ const InputGroup = (0, _utils.forwardRef)((props, ref) => {
47
47
  withPrefix,
48
48
  merge
49
49
  } = (0, _hooks.useStyles)(classPrefix);
50
- const classes = merge(className, withPrefix(size, {
51
- inside,
52
- focus,
53
- disabled
54
- }));
55
- const renderChildren = (0, _react.useCallback)(() => {
50
+ const classes = merge(className, withPrefix());
51
+ const inputGroupChildren = (0, _react.useMemo)(() => {
56
52
  return _react.default.Children.map(children, item => {
57
53
  if (/*#__PURE__*/_react.default.isValidElement(item)) {
58
- if (/*#__PURE__*/_react.default.isValidElement(item)) {
59
- // Fix: Add type assertion to pass the disabled prop to the child element
60
- return disabled ? /*#__PURE__*/_react.default.cloneElement(item, {
61
- disabled
62
- }) : item;
63
- }
54
+ // Fix: Add type assertion to pass the disabled prop to the child element
55
+ return disabled ? /*#__PURE__*/_react.default.cloneElement(item, {
56
+ disabled
57
+ }) : item;
64
58
  }
65
59
  return item;
66
60
  });
@@ -76,8 +70,12 @@ const InputGroup = (0, _utils.forwardRef)((props, ref) => {
76
70
  as: as
77
71
  }, rest, {
78
72
  ref: ref,
79
- className: classes
80
- }), renderChildren()));
73
+ className: classes,
74
+ "data-size": size,
75
+ "data-inside": inside,
76
+ "data-disabled": disabled,
77
+ "data-focus": focus
78
+ }), inputGroupChildren));
81
79
  }, Subcomponents);
82
80
  InputGroup.displayName = 'InputGroup';
83
81
  var _default = exports.default = InputGroup;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { BoxProps } from '../internals/Box';
3
- export interface InputGroupAddonProps extends BoxProps, React.HTMLAttributes<HTMLSpanElement> {
2
+ import { BaseBoxProps } from '../internals/Box';
3
+ export interface InputGroupAddonProps extends BaseBoxProps, React.HTMLAttributes<HTMLSpanElement> {
4
4
  /** An Input group addon can show that it is disabled */
5
5
  disabled?: boolean;
6
6
  }
@@ -6,6 +6,7 @@ exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _Box = _interopRequireDefault(require("../internals/Box"));
9
10
  var _utils = require("../internals/utils");
10
11
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
12
  const sizerStyle = {
@@ -88,10 +89,6 @@ const InputAutosize = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
88
89
  return currentValue;
89
90
  });
90
91
  const inputWidth = useInputWidth(props, sizerRef, placeholderRef);
91
- const wrapperStyle = {
92
- display: 'inline-block',
93
- ...style
94
- };
95
92
  const nextInputStyle = {
96
93
  boxSizing: 'content-box',
97
94
  width: `${inputWidth}px`,
@@ -122,10 +119,11 @@ const InputAutosize = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
122
119
  // By setting an id, matching the style, hiding the `x` symbol by the style.
123
120
  htmlInputProps.id = inputId;
124
121
  }
125
- return /*#__PURE__*/_react.default.createElement("div", {
122
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
126
123
  ref: rootRef,
127
124
  className: className,
128
- style: wrapperStyle
125
+ style: style,
126
+ display: "inline-block"
129
127
  }, (0, _utils.isIE)() ? /*#__PURE__*/_react.default.createElement("style", {
130
128
  dangerouslySetInnerHTML: {
131
129
  __html: `input#${inputId}::-ms-clear {display: none;}`
@@ -1,6 +1,6 @@
1
1
  import { SortConfig } from './helper/useSortHelper';
2
2
  import { BoxProps } from '../internals/Box';
3
- export interface ListProps extends BoxProps, SortConfig {
3
+ export interface ListProps extends Omit<BoxProps, 'transitionDuration'>, SortConfig {
4
4
  /**
5
5
  * Size of list item.
6
6
  */
package/cjs/List/List.js CHANGED
@@ -65,13 +65,7 @@ const List = (0, _utils.forwardRef)((props, ref) => {
65
65
  pressDelay,
66
66
  transitionDuration
67
67
  });
68
- const classes = merge(className, withPrefix({
69
- bordered,
70
- sortable,
71
- sorting,
72
- hover,
73
- divider
74
- }));
68
+ const classes = merge(className, withPrefix());
75
69
  const contextValue = (0, _react.useMemo)(() => ({
76
70
  bordered,
77
71
  size,
@@ -85,7 +79,12 @@ const List = (0, _utils.forwardRef)((props, ref) => {
85
79
  onMouseDown: sortable ? handleStart : undefined,
86
80
  onMouseUp: sortable ? handleEnd : undefined,
87
81
  onTouchStart: sortable ? handleTouchStart : undefined,
88
- onTouchEnd: sortable ? handleTouchEnd : undefined
82
+ onTouchEnd: sortable ? handleTouchEnd : undefined,
83
+ "data-bordered": bordered,
84
+ "data-hover": hover,
85
+ "data-sortable": sortable,
86
+ "data-sorting": sorting,
87
+ "data-divider": divider
89
88
  }, rest), /*#__PURE__*/_react.default.createElement(_ListContext.default.Provider, {
90
89
  value: contextValue
91
90
  }, children));
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { BoxProps } from '../internals/Box';
2
+ import { BaseBoxProps } from '../internals/Box';
3
3
  import { Collection } from './helper/useManager';
4
- export interface ListItemProps extends BoxProps, React.HTMLAttributes<HTMLElement> {
4
+ export interface ListItemProps extends BaseBoxProps, React.HTMLAttributes<HTMLElement> {
5
5
  index?: number;
6
6
  collection?: Collection;
7
7
  disabled?: boolean;
@@ -54,14 +54,14 @@ const ListItem = (0, _utils.forwardRef)((props, ref) => {
54
54
  return unregister;
55
55
  }
56
56
  }, [collection, disabled, index, register]);
57
- const classes = merge(className, withPrefix(size, {
58
- disabled,
59
- bordered
60
- }));
57
+ const classes = merge(className, withPrefix());
61
58
  return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
62
59
  as: as,
63
60
  role: "listitem",
64
61
  "aria-disabled": disabled,
62
+ "data-size": size,
63
+ "data-disabled": disabled,
64
+ "data-bordered": bordered,
65
65
  ref: (0, _utils.mergeRefs)(listItemRef, ref),
66
66
  className: classes
67
67
  }, rest), children);
@@ -36,21 +36,22 @@ const Loader = (0, _utils.forwardRef)((props, ref) => {
36
36
  prefix
37
37
  } = (0, _hooks.useStyles)(classPrefix);
38
38
  const labelId = (0, _hooks.useUniqueId)('loader-label-');
39
- const classes = merge(className, prefix(`speed-${speed}`, size, {
40
- center: backdrop || center,
41
- vertical,
42
- inverse
43
- }));
39
+ const classes = merge(className, withPrefix());
44
40
  return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
45
41
  as: as,
46
42
  role: "status",
47
43
  "aria-labelledby": content ? labelId : undefined,
48
44
  ref: ref,
49
- className: classes
45
+ className: classes,
46
+ "data-size": size,
47
+ "data-speed": speed,
48
+ "data-center": backdrop || center,
49
+ "data-direction": vertical ? 'vertical' : 'horizontal',
50
+ "data-inverse": inverse
50
51
  }, rest), backdrop && /*#__PURE__*/_react.default.createElement("div", {
51
52
  className: prefix('backdrop')
52
53
  }), /*#__PURE__*/_react.default.createElement("div", {
53
- className: withPrefix()
54
+ className: prefix('box')
54
55
  }, /*#__PURE__*/_react.default.createElement("span", {
55
56
  className: prefix('spin')
56
57
  }), content && /*#__PURE__*/_react.default.createElement("span", {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { BoxProps } from '../internals/Box';
3
- export interface MenuSeparatorProps extends BoxProps, React.HTMLAttributes<HTMLElement> {
2
+ import { BaseBoxProps } from '../internals/Box';
3
+ export interface MenuSeparatorProps extends BaseBoxProps, React.HTMLAttributes<HTMLElement> {
4
4
  /** You can use a custom element for this component */
5
5
  as?: React.ElementType;
6
6
  }
package/cjs/Nav/Nav.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { BoxProps } from '../internals/Box';
2
+ import { BaseBoxProps } from '../internals/Box';
3
3
  import type { HTMLPropsWithoutSelect } from '../internals/types';
4
- export interface NavProps<T = any> extends BoxProps, HTMLPropsWithoutSelect {
4
+ export interface NavProps<T = any> extends BaseBoxProps, HTMLPropsWithoutSelect {
5
5
  /**
6
6
  * The appearance style of the Nav component.
7
7
  * - 'pills' appearance is deprecated. Use `SegmentedControl` component instead.
package/cjs/Nav/Nav.js CHANGED
@@ -69,12 +69,13 @@ const Nav = (0, _utils.forwardRef)((props, ref) => {
69
69
  const classes = merge(className, rootPrefix({
70
70
  'navbar-nav': navbar,
71
71
  'sidenav-nav': sidenav
72
- }), withPrefix(appearance, {
73
- horizontal: (navbar || !sidenav) && !vertical,
74
- vertical: vertical || sidenav,
75
- justified,
76
- reversed
77
- }));
72
+ }), withPrefix());
73
+ const dataAttributes = {
74
+ 'data-appearance': appearance,
75
+ 'data-reversed': reversed,
76
+ 'data-justified': justified,
77
+ 'data-direction': vertical || sidenav ? 'vertical' : 'horizontal'
78
+ };
78
79
  const {
79
80
  activeKey: activeKeyFromSidenav,
80
81
  onSelect: onSelectFromSidenav
@@ -94,7 +95,7 @@ const Nav = (0, _utils.forwardRef)((props, ref) => {
94
95
  }, /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
95
96
  ref: ref,
96
97
  className: classes
97
- }, rest), children));
98
+ }, dataAttributes, rest), children));
98
99
  }
99
100
  const hasWaterline = appearance !== 'default';
100
101
 
@@ -106,19 +107,17 @@ const Nav = (0, _utils.forwardRef)((props, ref) => {
106
107
  vertical: !!sidenav
107
108
  }, (menubar, ref) => /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
108
109
  as: as,
109
- ref: ref
110
- }, rest, {
110
+ ref: ref,
111
111
  className: classes
112
- }, menubar), children)));
112
+ }, dataAttributes, menubar, rest), children)));
113
113
  }
114
114
  return /*#__PURE__*/_react.default.createElement(_NavContext.default.Provider, {
115
115
  value: contextValue
116
116
  }, /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
117
- as: as
118
- }, rest, {
117
+ as: as,
119
118
  ref: menubarRef,
120
119
  className: classes
121
- }), children, hasWaterline && /*#__PURE__*/_react.default.createElement("div", {
120
+ }, dataAttributes, rest), children, hasWaterline && /*#__PURE__*/_react.default.createElement("div", {
122
121
  className: prefix('bar')
123
122
  })));
124
123
  }, Subcomponents);
@@ -76,14 +76,14 @@ const NavDropdownItem = (0, _utils.forwardRef)((props, ref) => {
76
76
  ...menuitem
77
77
  }, menuitemRef) => {
78
78
  const classes = merge(className, withPrefix({
79
- 'with-icon': icon,
80
- active: selected,
81
- disabled,
82
- focus: active,
83
79
  divider,
84
80
  panel
85
81
  }));
86
82
  const dataAttributes = {
83
+ 'data-focus': active,
84
+ 'data-active': selected,
85
+ 'data-disabled': disabled,
86
+ 'data-with-icon': !!icon,
87
87
  'data-event-key': eventKey
88
88
  };
89
89
  if (!(0, _isNil.default)(eventKey) && typeof eventKey !== 'string') {
@@ -73,16 +73,15 @@ const NavDropdownMenu = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
73
73
  active,
74
74
  ...menuitem
75
75
  }, menuitemRef) => {
76
- const classes = mergeItemClassNames(className, prefixItemClassName`toggle`, withItemClassPrefix({
77
- 'with-icon': icon,
78
- open,
79
- active: selected,
80
- disabled,
81
- focus: active
82
- }));
76
+ const classes = mergeItemClassNames(className, prefixItemClassName`toggle`, withItemClassPrefix());
83
77
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
84
78
  ref: (0, _utils.mergeRefs)(buttonRef, menuitemRef),
85
79
  className: classes,
80
+ "data-open": open,
81
+ "data-focus": active,
82
+ "data-active": selected,
83
+ "data-disabled": disabled,
84
+ "data-with-icon": icon,
86
85
  "data-event-key": eventKey,
87
86
  "data-event-key-type": typeof eventKey
88
87
  }, menuitem, (0, _omit.default)(menuButtonProps, ['role'])), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
@@ -108,14 +107,12 @@ const NavDropdownMenu = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
108
107
  open,
109
108
  ...menuContainer
110
109
  }, menuContainerRef) => {
111
- const classes = mergeItemClassNames(className, withItemClassPrefix({
112
- disabled,
113
- open,
114
- submenu: true
115
- }));
110
+ const classes = mergeItemClassNames(className, withItemClassPrefix('submenu'));
116
111
  return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
117
112
  ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
118
- className: classes
113
+ className: classes,
114
+ "data-open": open,
115
+ "data-disabled": disabled
119
116
  }, menuContainer));
120
117
  });
121
118
  });
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { BoxProps } from '../internals/Box';
2
+ import { BaseBoxProps } from '../internals/Box';
3
3
  import type { HTMLPropsWithoutSelect } from '../internals/types';
4
4
  import type { IconProps } from '@rsuite/icons/Icon';
5
- export interface NavItemProps<T = string | number> extends BoxProps, HTMLPropsWithoutSelect {
5
+ export interface NavItemProps<T = string | number> extends BaseBoxProps, HTMLPropsWithoutSelect {
6
6
  /** Activation status */
7
7
  active?: boolean;
8
8
  /** Disabled status */
@@ -58,10 +58,7 @@ const NavItem = (0, _utils.forwardRef)((props, ref) => {
58
58
  merge,
59
59
  prefix
60
60
  } = (0, _hooks.useStyles)(classPrefix);
61
- const classes = merge(className, withPrefix({
62
- active,
63
- disabled
64
- }));
61
+ const classes = merge(className, withPrefix());
65
62
  const handleClick = (0, _react.useCallback)(event => {
66
63
  if (!disabled) {
67
64
  emitSelect(event);
@@ -86,13 +83,14 @@ const NavItem = (0, _utils.forwardRef)((props, ref) => {
86
83
  return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
87
84
  as: as,
88
85
  ref: ref,
89
- tabIndex: disabled ? -1 : undefined
90
- }, rest, {
86
+ tabIndex: disabled ? -1 : undefined,
91
87
  className: classes,
92
88
  onClick: handleClick,
93
89
  style: style,
94
- "aria-selected": active || undefined
95
- }), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
90
+ "aria-selected": active || undefined,
91
+ "data-active": active || undefined,
92
+ "data-disabled": disabled
93
+ }, rest), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
96
94
  className: (0, _classnames.default)(prefix('icon'), icon.props.className)
97
95
  }), children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
98
96
  });
@@ -42,8 +42,8 @@ const Navbar = (0, _utils.forwardRef)((props, ref) => {
42
42
  withPrefix,
43
43
  merge
44
44
  } = (0, _hooks.useStyles)(classPrefix);
45
- const classes = merge(className, withPrefix(appearance));
46
- const [open, setOpen] = _react.default.useState(false);
45
+ const classes = merge(className, withPrefix());
46
+ const [open, setOpen] = (0, _react.useState)(false);
47
47
  const handleToggle = (0, _hooks.useEventCallback)(nextOpen => {
48
48
  setOpen(nextOpen);
49
49
  onDrawerOpenChange === null || onDrawerOpenChange === void 0 || onDrawerOpenChange(nextOpen);
@@ -58,11 +58,11 @@ const Navbar = (0, _utils.forwardRef)((props, ref) => {
58
58
  return /*#__PURE__*/_react.default.createElement(_NavbarContext.NavbarContext.Provider, {
59
59
  value: context
60
60
  }, /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
61
- as: as
62
- }, rest, {
61
+ as: as,
63
62
  ref: ref,
64
- className: classes
65
- })));
63
+ className: classes,
64
+ "data-appearance": appearance
65
+ }, rest)));
66
66
  }, Subcomponents);
67
67
  Navbar.displayName = 'Navbar';
68
68
  var _default = exports.default = Navbar;