rsuite 5.52.0 → 5.53.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 (116) hide show
  1. package/AutoComplete/styles/index.css +4 -0
  2. package/CHANGELOG.md +25 -0
  3. package/Cascader/styles/index.css +4 -0
  4. package/CheckPicker/styles/index.css +4 -0
  5. package/CheckTree/styles/index.css +34 -14
  6. package/CheckTreePicker/styles/index.css +34 -14
  7. package/CheckTreePicker/styles/index.less +39 -29
  8. package/DatePicker/styles/index.css +4 -0
  9. package/DateRangePicker/styles/index.css +4 -0
  10. package/InputGroup/styles/index.css +5 -0
  11. package/InputGroup/styles/index.less +1 -1
  12. package/InputNumber/styles/index.css +2 -0
  13. package/InputPicker/styles/index.css +4 -0
  14. package/Message/styles/index.css +170 -29
  15. package/Message/styles/index.less +42 -3
  16. package/Message/styles/mixin.less +18 -3
  17. package/MultiCascader/styles/index.css +4 -0
  18. package/Pagination/styles/index.css +4 -0
  19. package/SelectPicker/styles/index.css +4 -0
  20. package/Tabs/package.json +7 -0
  21. package/Tabs/styles/index.css +1816 -0
  22. package/Tabs/styles/index.less +28 -0
  23. package/TagInput/styles/index.css +4 -0
  24. package/TagPicker/styles/index.css +4 -0
  25. package/Tree/styles/index.css +10 -4
  26. package/TreePicker/styles/index.css +10 -4
  27. package/TreePicker/styles/index.less +9 -5
  28. package/cjs/Carousel/Carousel.js +1 -1
  29. package/cjs/CheckTreePicker/CheckTreeNode.js +1 -1
  30. package/cjs/DateRangePicker/DateRangePicker.d.ts +10 -10
  31. package/cjs/DateRangePicker/DateRangePicker.js +1 -1
  32. package/cjs/DateRangePicker/index.d.ts +1 -1
  33. package/cjs/Dropdown/DropdownItem.js +4 -2
  34. package/cjs/Message/Message.d.ts +28 -6
  35. package/cjs/Message/Message.js +17 -11
  36. package/cjs/Nav/Nav.d.ts +2 -0
  37. package/cjs/Nav/Nav.js +14 -10
  38. package/cjs/Panel/Panel.js +2 -2
  39. package/cjs/Stack/Stack.js +2 -2
  40. package/cjs/Steps/Steps.js +1 -1
  41. package/cjs/Tabs/Tab.d.ts +25 -0
  42. package/cjs/Tabs/Tab.js +21 -0
  43. package/cjs/Tabs/TabPanel.d.ts +10 -0
  44. package/cjs/Tabs/TabPanel.js +33 -0
  45. package/cjs/Tabs/Tabs.d.ts +50 -0
  46. package/cjs/Tabs/Tabs.js +221 -0
  47. package/cjs/Tabs/index.d.ts +3 -0
  48. package/cjs/Tabs/index.js +9 -0
  49. package/cjs/Timeline/Timeline.js +1 -1
  50. package/cjs/index.d.ts +2 -0
  51. package/cjs/index.js +3 -1
  52. package/cjs/internals/Menu/Menu.js +12 -1
  53. package/cjs/internals/Picker/ListCheckItem.js +7 -2
  54. package/cjs/internals/Picker/ListItem.js +6 -2
  55. package/cjs/internals/Picker/TreeView.js +1 -1
  56. package/cjs/utils/ReactChildren.d.ts +2 -2
  57. package/cjs/utils/ReactChildren.js +22 -20
  58. package/cjs/utils/index.d.ts +2 -0
  59. package/cjs/utils/index.js +8 -2
  60. package/cjs/utils/statusIcons.js +2 -2
  61. package/dist/rsuite-no-reset-rtl.css +212 -35
  62. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  63. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  64. package/dist/rsuite-no-reset.css +212 -35
  65. package/dist/rsuite-no-reset.min.css +1 -1
  66. package/dist/rsuite-no-reset.min.css.map +1 -1
  67. package/dist/rsuite-rtl.css +212 -35
  68. package/dist/rsuite-rtl.min.css +1 -1
  69. package/dist/rsuite-rtl.min.css.map +1 -1
  70. package/dist/rsuite.css +212 -35
  71. package/dist/rsuite.js +84 -51
  72. package/dist/rsuite.js.map +1 -1
  73. package/dist/rsuite.min.css +1 -1
  74. package/dist/rsuite.min.css.map +1 -1
  75. package/dist/rsuite.min.js +1 -1
  76. package/dist/rsuite.min.js.map +1 -1
  77. package/esm/Carousel/Carousel.js +1 -1
  78. package/esm/CheckTreePicker/CheckTreeNode.js +1 -1
  79. package/esm/DateRangePicker/DateRangePicker.d.ts +10 -10
  80. package/esm/DateRangePicker/DateRangePicker.js +1 -1
  81. package/esm/DateRangePicker/index.d.ts +1 -1
  82. package/esm/Dropdown/DropdownItem.js +4 -2
  83. package/esm/Message/Message.d.ts +28 -6
  84. package/esm/Message/Message.js +19 -13
  85. package/esm/Nav/Nav.d.ts +2 -0
  86. package/esm/Nav/Nav.js +13 -9
  87. package/esm/Panel/Panel.js +2 -2
  88. package/esm/Stack/Stack.js +3 -3
  89. package/esm/Steps/Steps.js +1 -1
  90. package/esm/Tabs/Tab.d.ts +25 -0
  91. package/esm/Tabs/Tab.js +15 -0
  92. package/esm/Tabs/TabPanel.d.ts +10 -0
  93. package/esm/Tabs/TabPanel.js +27 -0
  94. package/esm/Tabs/Tabs.d.ts +50 -0
  95. package/esm/Tabs/Tabs.js +215 -0
  96. package/esm/Tabs/index.d.ts +3 -0
  97. package/esm/Tabs/index.js +3 -0
  98. package/esm/Timeline/Timeline.js +1 -1
  99. package/esm/index.d.ts +2 -0
  100. package/esm/index.js +1 -0
  101. package/esm/internals/Menu/Menu.js +12 -1
  102. package/esm/internals/Picker/ListCheckItem.js +7 -2
  103. package/esm/internals/Picker/ListItem.js +6 -2
  104. package/esm/internals/Picker/TreeView.js +1 -1
  105. package/esm/utils/ReactChildren.d.ts +2 -2
  106. package/esm/utils/ReactChildren.js +22 -20
  107. package/esm/utils/index.d.ts +2 -0
  108. package/esm/utils/index.js +3 -1
  109. package/esm/utils/statusIcons.js +2 -2
  110. package/internals/Picker/styles/index.less +1 -1
  111. package/package.json +1 -1
  112. package/styles/color-modes/dark.less +4 -0
  113. package/styles/color-modes/light.less +18 -4
  114. package/styles/index.less +1 -0
  115. package/styles/mixins/listbox.less +2 -7
  116. package/styles/variables.less +2 -1
@@ -0,0 +1,28 @@
1
+ @import '../../Nav/styles/index.less';
2
+
3
+ .rs-tabs {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: 10px;
7
+
8
+ &-reversed {
9
+ flex-direction: column-reverse;
10
+ }
11
+
12
+ &-vertical {
13
+ flex-direction: row;
14
+
15
+ .rs-tabs-content {
16
+ flex: 1;
17
+ }
18
+ }
19
+
20
+ .rs-nav-item {
21
+ background: none;
22
+ }
23
+
24
+ .rs-nav-vertical {
25
+ display: flex;
26
+ flex-direction: column;
27
+ }
28
+ }
@@ -2043,6 +2043,8 @@ textarea.rs-input-sm {
2043
2043
  }
2044
2044
  .rs-input-group.rs-input-group-inside {
2045
2045
  width: 100%;
2046
+ background-color: #fff;
2047
+ background-color: var(--rs-input-bg);
2046
2048
  }
2047
2049
  .rs-input-group.rs-input-group-inside .rs-input {
2048
2050
  display: block;
@@ -3426,6 +3428,8 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
3426
3428
  .rs-check-item.rs-check-item-focus {
3427
3429
  background-color: rgb(from #cce9ff r g b / 50%);
3428
3430
  background-color: var(--rs-listbox-option-hover-bg);
3431
+ color: #1675e0;
3432
+ color: var(--rs-listbox-option-hover-text);
3429
3433
  }
3430
3434
  .rs-theme-high-contrast .rs-check-item:not(.rs-checkbox-disabled):hover,
3431
3435
  .rs-theme-high-contrast .rs-check-item:focus,
@@ -2043,6 +2043,8 @@ textarea.rs-input-sm {
2043
2043
  }
2044
2044
  .rs-input-group.rs-input-group-inside {
2045
2045
  width: 100%;
2046
+ background-color: #fff;
2047
+ background-color: var(--rs-input-bg);
2046
2048
  }
2047
2049
  .rs-input-group.rs-input-group-inside .rs-input {
2048
2050
  display: block;
@@ -3426,6 +3428,8 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
3426
3428
  .rs-check-item.rs-check-item-focus {
3427
3429
  background-color: rgb(from #cce9ff r g b / 50%);
3428
3430
  background-color: var(--rs-listbox-option-hover-bg);
3431
+ color: #1675e0;
3432
+ color: var(--rs-listbox-option-hover-text);
3429
3433
  }
3430
3434
  .rs-theme-high-contrast .rs-check-item:not(.rs-checkbox-disabled):hover,
3431
3435
  .rs-theme-high-contrast .rs-check-item:focus,
@@ -148,17 +148,23 @@
148
148
  .rs-tree-node-label {
149
149
  position: relative;
150
150
  margin: 0;
151
- padding-left: 16px;
151
+ padding: 1px 1px 1px 16px;
152
152
  display: inline-block;
153
153
  cursor: pointer;
154
154
  font-size: 14px;
155
155
  line-height: 22px;
156
156
  }
157
+ .rs-tree-node-label:focus-visible .rs-tree-node-label-content {
158
+ outline: 3px solid rgb(from #3498ff r g b / 25%);
159
+ outline: 3px solid var(--rs-color-focus-ring);
160
+ }
161
+ .rs-theme-high-contrast .rs-tree-node-label:focus-visible .rs-tree-node-label-content {
162
+ outline-offset: 2px;
163
+ }
157
164
  .rs-tree-node-label-content {
158
- padding: 6px 12px 6px 8px;
165
+ padding: 6px 8px;
159
166
  display: inline-block;
160
- border-top: 2px solid transparent;
161
- border-bottom: 2px solid transparent;
167
+ border-radius: 6px;
162
168
  }
163
169
  .rs-tree-node-label-content:hover,
164
170
  .rs-tree-node-label-content:focus,
@@ -148,17 +148,23 @@
148
148
  .rs-tree-node-label {
149
149
  position: relative;
150
150
  margin: 0;
151
- padding-left: 16px;
151
+ padding: 1px 1px 1px 16px;
152
152
  display: inline-block;
153
153
  cursor: pointer;
154
154
  font-size: 14px;
155
155
  line-height: 22px;
156
156
  }
157
+ .rs-tree-node-label:focus-visible .rs-tree-node-label-content {
158
+ outline: 3px solid rgb(from #3498ff r g b / 25%);
159
+ outline: 3px solid var(--rs-color-focus-ring);
160
+ }
161
+ .rs-theme-high-contrast .rs-tree-node-label:focus-visible .rs-tree-node-label-content {
162
+ outline-offset: 2px;
163
+ }
157
164
  .rs-tree-node-label-content {
158
- padding: 6px 12px 6px 8px;
165
+ padding: 6px 8px;
159
166
  display: inline-block;
160
- border-top: 2px solid transparent;
161
- border-bottom: 2px solid transparent;
167
+ border-radius: 6px;
162
168
  }
163
169
  .rs-tree-node-label-content:hover,
164
170
  .rs-tree-node-label-content:focus,
@@ -42,18 +42,22 @@
42
42
  position: relative;
43
43
  margin: 0;
44
44
  //text gap
45
- padding-left: (@picker-tree-arrow-down-width + 8px);
45
+ padding: 1px 1px 1px (@picker-tree-arrow-down-width + 8px);
46
46
  display: inline-block;
47
47
  cursor: pointer;
48
48
  font-size: @picker-tree-node-font-size;
49
49
  line-height: @picker-tree-node-line-height;
50
50
 
51
+ &:focus-visible {
52
+ .rs-tree-node-label-content {
53
+ .focus-ring();
54
+ }
55
+ }
56
+
51
57
  &-content {
52
- padding: @custom-picker-tree-node-padding-vertical @picker-tree-node-padding-horizontal
53
- @custom-picker-tree-node-padding-vertical @picker-tree-arrow-down-gap;
58
+ padding: 6px 8px;
54
59
  display: inline-block;
55
- border-top: 2px solid transparent;
56
- border-bottom: 2px solid transparent;
60
+ border-radius: 6px;
57
61
 
58
62
  &:hover,
59
63
  &:focus,
@@ -97,7 +97,7 @@ var Carousel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
97
97
  var uniqueId = (0, _react.useMemo)(function () {
98
98
  return (0, _utils.guid)();
99
99
  }, []);
100
- var items = _react.default.Children.map(children, function (child, index) {
100
+ var items = _utils.ReactChildren.map(children, function (child, index) {
101
101
  var _extends2;
102
102
  if (!child) {
103
103
  return;
@@ -132,7 +132,7 @@ var CheckTreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
132
132
  title: getTitle(),
133
133
  onSelect: handleSelect
134
134
  }, /*#__PURE__*/_react.default.createElement("span", {
135
- className: prefix('text-wrapper')
135
+ className: prefix('label-content')
136
136
  }, typeof renderTreeNode === 'function' ? renderTreeNode(nodeData) : label))) : null;
137
137
  });
138
138
  CheckTreeNode.displayName = 'CheckTreeNode';
@@ -72,28 +72,28 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
72
72
  /** Custom render for calendar title */
73
73
  renderTitle?: (date: Date) => React.ReactNode;
74
74
  }
75
- export interface DateRangePicker extends PickerComponent<DateRangePickerProps> {
75
+ export interface DateRangePickerComponent extends PickerComponent<DateRangePickerProps> {
76
76
  /** Allow the maximum number of days specified, other dates are disabled */
77
- allowedMaxDays?: (days: number) => DisabledDateFunction;
77
+ allowedMaxDays: (days: number) => DisabledDateFunction;
78
78
  /** Only allowed days are specified, other dates are disabled */
79
- allowedDays?: (days: number) => DisabledDateFunction;
79
+ allowedDays: (days: number) => DisabledDateFunction;
80
80
  /** Allow specified date range, other dates are disabled */
81
- allowedRange?: (startDate: string | Date, endDate: string | Date) => DisabledDateFunction;
81
+ allowedRange: (startDate: string | Date, endDate: string | Date) => DisabledDateFunction;
82
82
  /** Disable dates after the specified date */
83
- before?: (beforeDate: string | Date) => DisabledDateFunction;
83
+ before: (beforeDate: string | Date) => DisabledDateFunction;
84
84
  /** Disable dates before the specified date */
85
- after?: (afterDate: string | Date) => DisabledDateFunction;
85
+ after: (afterDate: string | Date) => DisabledDateFunction;
86
86
  /** Disable dates after today. */
87
- beforeToday?: () => DisabledDateFunction;
87
+ beforeToday: () => DisabledDateFunction;
88
88
  /** Disable dates before today */
89
- afterToday?: () => DisabledDateFunction;
89
+ afterToday: () => DisabledDateFunction;
90
90
  /** Used to combine multiple conditions */
91
- combine?: (...args: any) => DisabledDateFunction;
91
+ combine: (...args: any) => DisabledDateFunction;
92
92
  }
93
93
  /**
94
94
  * A date range picker allows you to select a date range from a calendar.
95
95
  *
96
96
  * @see https://rsuitejs.com/components/date-range-picker
97
97
  */
98
- declare const DateRangePicker: DateRangePicker;
98
+ declare const DateRangePicker: DateRangePickerComponent;
99
99
  export default DateRangePicker;
@@ -628,7 +628,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
628
628
  disabledShortcut: disabledShortcutButton,
629
629
  onShortcutClick: handleShortcutPageDate,
630
630
  "data-testid": "daterange-predefined-side"
631
- }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
631
+ }), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, null, /*#__PURE__*/_react.default.createElement("div", {
632
632
  className: prefix('daterange-content')
633
633
  }, showHeader && /*#__PURE__*/_react.default.createElement("div", {
634
634
  className: prefix('daterange-header'),
@@ -1,4 +1,4 @@
1
1
  import DateRangePicker from './DateRangePicker';
2
- export type { DateRangePicker, DateRangePickerProps } from './DateRangePicker';
2
+ export type { DateRangePickerComponent, DateRangePickerProps } from './DateRangePicker';
3
3
  export type { ValueType, DateRange, RangeType, DisabledDateFunction } from './types';
4
4
  export default DateRangePicker;
@@ -7,13 +7,13 @@ exports.__esModule = true;
7
7
  exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _pick2 = _interopRequireDefault(require("lodash/pick"));
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
12
  var _propTypes2 = require("../internals/propTypes");
14
13
  var _MenuItem = _interopRequireDefault(require("../internals/Menu/MenuItem"));
15
14
  var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
16
15
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
16
+ var _pick = _interopRequireDefault(require("lodash/pick"));
17
17
  var _utils = require("../utils");
18
18
  var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
19
19
  var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
@@ -89,7 +89,9 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
89
89
  }, props));
90
90
  }
91
91
  if (divider) {
92
- return /*#__PURE__*/_react.default.createElement(_DropdownSeparator.default, (0, _pick2.default)(props, ['data-testid']));
92
+ return /*#__PURE__*/_react.default.createElement(_DropdownSeparator.default, (0, _extends2.default)({
93
+ as: "li"
94
+ }, (0, _pick.default)(props, ['data-testid'])));
93
95
  }
94
96
  if (panel) {
95
97
  return renderDropdownItem((0, _extends2.default)({
@@ -1,9 +1,23 @@
1
1
  import React from 'react';
2
2
  import { WithAsProps, TypeAttributes, RsRefForwardingComponent } from '../@types/common';
3
3
  export interface MessageProps extends WithAsProps {
4
- /** The type of the message box. */
4
+ /**
5
+ * The type of the message box.
6
+ */
5
7
  type?: TypeAttributes.Status;
6
- /** Whether it is possible to close the message box */
8
+ /**
9
+ * Show a border around the message box.
10
+ * @version 5.53.0
11
+ */
12
+ bordered?: boolean;
13
+ /**
14
+ * Center the message vertically.
15
+ * @version 5.53.0
16
+ */
17
+ centered?: boolean;
18
+ /**
19
+ * Whether it is possible to close the message box
20
+ */
7
21
  closable?: boolean;
8
22
  /**
9
23
  * Delay automatic removal of messages.
@@ -15,13 +29,21 @@ export interface MessageProps extends WithAsProps {
15
29
  *
16
30
  */
17
31
  duration?: number;
18
- /** The title of the message */
32
+ /**
33
+ * The title of the message
34
+ */
19
35
  header?: React.ReactNode;
20
- /** Whether to display an icon */
36
+ /**
37
+ * Whether to display an icon
38
+ */
21
39
  showIcon?: boolean;
22
- /** Fill the container */
40
+ /**
41
+ * Fill the container
42
+ */
23
43
  full?: boolean;
24
- /** Callback after the message is removed */
44
+ /**
45
+ * Callback after the message is removed
46
+ */
25
47
  onClose?: (event?: React.MouseEvent<HTMLButtonElement>) => void;
26
48
  }
27
49
  /**
@@ -23,6 +23,8 @@ var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
23
23
  var _withClassPrefix;
24
24
  var _props$as = props.as,
25
25
  Component = _props$as === void 0 ? 'div' : _props$as,
26
+ bordered = props.bordered,
27
+ centered = props.centered,
26
28
  className = props.className,
27
29
  _props$classPrefix = props.classPrefix,
28
30
  classPrefix = _props$classPrefix === void 0 ? 'message' : _props$classPrefix,
@@ -36,7 +38,7 @@ var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
36
38
  type = _props$type === void 0 ? 'info' : _props$type,
37
39
  showIcon = props.showIcon,
38
40
  onClose = props.onClose,
39
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "children", "closable", "duration", "full", "header", "type", "showIcon", "onClose"]);
41
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "bordered", "centered", "className", "classPrefix", "children", "closable", "duration", "full", "header", "type", "showIcon", "onClose"]);
40
42
  var _useState = (0, _react.useState)('show'),
41
43
  display = _useState[0],
42
44
  setDisplay = _useState[1];
@@ -49,7 +51,7 @@ var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
49
51
  usedToaster = _useContext.usedToaster; // Timed close message
50
52
  var _useTimeout = (0, _utils.useTimeout)(onClose, duration, usedToaster && duration > 0),
51
53
  clear = _useTimeout.clear;
52
- var handleClose = (0, _react.useCallback)(function (event) {
54
+ var handleClose = (0, _utils.useEventCallback)(function (event) {
53
55
  setDisplay('hiding');
54
56
  onClose === null || onClose === void 0 ? void 0 : onClose(event);
55
57
  clear();
@@ -58,12 +60,14 @@ var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
58
60
  setDisplay('hide');
59
61
  }
60
62
  }, 1000);
61
- }, [clear, isMounted, onClose]);
63
+ });
62
64
  if (display === 'hide') {
63
65
  return null;
64
66
  }
65
67
  var classes = merge(className, withClassPrefix(type, display, (_withClassPrefix = {
66
- full: full
68
+ full: full,
69
+ bordered: bordered,
70
+ centered: centered
67
71
  }, _withClassPrefix['has-title'] = header, _withClassPrefix['has-icon'] = showIcon, _withClassPrefix)));
68
72
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
69
73
  role: "alert"
@@ -75,7 +79,7 @@ var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
75
79
  }, closable && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
76
80
  onClick: handleClose
77
81
  }), showIcon && /*#__PURE__*/_react.default.createElement("div", {
78
- className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["icon-wrapper"])))
82
+ className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["icon"])))
79
83
  }, _utils.MESSAGE_STATUS_ICONS[type]), /*#__PURE__*/_react.default.createElement("div", {
80
84
  className: prefix(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["content"])))
81
85
  }, header && /*#__PURE__*/_react.default.createElement("div", {
@@ -86,15 +90,17 @@ var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
86
90
  });
87
91
  Message.displayName = 'Message';
88
92
  Message.propTypes = {
89
- type: (0, _propTypes2.oneOf)(_utils.STATUS),
90
- className: _propTypes.default.string,
91
- onClose: _propTypes.default.func,
93
+ bordered: _propTypes.default.bool,
94
+ centered: _propTypes.default.bool,
92
95
  closable: _propTypes.default.bool,
93
- title: _propTypes.default.node,
96
+ className: _propTypes.default.string,
97
+ classPrefix: _propTypes.default.string,
94
98
  description: _propTypes.default.node,
95
- showIcon: _propTypes.default.bool,
96
99
  full: _propTypes.default.bool,
97
- classPrefix: _propTypes.default.string
100
+ onClose: _propTypes.default.func,
101
+ showIcon: _propTypes.default.bool,
102
+ title: _propTypes.default.node,
103
+ type: (0, _propTypes2.oneOf)(_utils.STATUS)
98
104
  };
99
105
  var _default = Message;
100
106
  exports.default = _default;
package/cjs/Nav/Nav.d.ts CHANGED
@@ -16,6 +16,8 @@ export interface NavProps<T = any> extends WithAsProps, Omit<React.HTMLAttribute
16
16
  pullRight?: boolean;
17
17
  /** Active key, corresponding to eventkey in <Nav.item>. */
18
18
  activeKey?: T;
19
+ /** Default active key, corresponding to eventkey in <Nav.item>. */
20
+ defaultActiveKey?: T;
19
21
  /** Callback function triggered after selection */
20
22
  onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
21
23
  }
package/cjs/Nav/Nav.js CHANGED
@@ -14,7 +14,6 @@ var _utils = require("../utils");
14
14
  var _Navbar = require("../Navbar/Navbar");
15
15
  var _Sidenav = require("../Sidenav/Sidenav");
16
16
  var _NavContext = _interopRequireDefault(require("./NavContext"));
17
- var _useEnsuredRef = _interopRequireDefault(require("../utils/useEnsuredRef"));
18
17
  var _Menubar = _interopRequireDefault(require("../internals/Menu/Menubar"));
19
18
  var _propTypes2 = require("../internals/propTypes");
20
19
  var _NavDropdown = _interopRequireDefault(require("./NavDropdown"));
@@ -26,7 +25,6 @@ var _NavbarDropdownItem = _interopRequireDefault(require("../Navbar/NavbarDropdo
26
25
  var _SidenavDropdownItem = _interopRequireDefault(require("../Sidenav/SidenavDropdownItem"));
27
26
  var _NavbarItem = _interopRequireDefault(require("../Navbar/NavbarItem"));
28
27
  var _SidenavItem = _interopRequireDefault(require("../Sidenav/SidenavItem"));
29
- var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
30
28
  /**
31
29
  * The `Nav` component is used to create navigation links.
32
30
  * @see https://rsuitejs.com/components/nav
@@ -45,13 +43,14 @@ var Nav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
45
43
  className = props.className,
46
44
  children = props.children,
47
45
  activeKeyProp = props.activeKey,
46
+ defaultActiveKey = props.defaultActiveKey,
48
47
  onSelectProp = props.onSelect,
49
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "appearance", "vertical", "justified", "reversed", "pullRight", "className", "children", "activeKey", "onSelect"]);
48
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "appearance", "vertical", "justified", "reversed", "pullRight", "className", "children", "activeKey", "defaultActiveKey", "onSelect"]);
50
49
  var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
51
50
 
52
51
  // Whether inside a <Navbar>
53
52
  var navbar = (0, _react.useContext)(_Navbar.NavbarContext);
54
- var menubarRef = (0, _useEnsuredRef.default)(ref);
53
+ var menubarRef = (0, _utils.useEnsuredRef)(ref);
55
54
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
56
55
  withClassPrefix = _useClassNames.withClassPrefix,
57
56
  merge = _useClassNames.merge,
@@ -69,15 +68,20 @@ var Nav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
69
68
  }));
70
69
  var _ref = sidenav || {},
71
70
  activeKeyFromSidenav = _ref.activeKey,
72
- _ref$onSelect = _ref.onSelect,
73
- onSelectFromSidenav = _ref$onSelect === void 0 ? onSelectProp : _ref$onSelect;
74
- var activeKey = activeKeyProp !== null && activeKeyProp !== void 0 ? activeKeyProp : activeKeyFromSidenav;
71
+ onSelectFromSidenav = _ref.onSelect;
72
+ var _useControlled = (0, _utils.useControlled)(activeKeyProp !== null && activeKeyProp !== void 0 ? activeKeyProp : activeKeyFromSidenav, defaultActiveKey),
73
+ activeKey = _useControlled[0],
74
+ setActiveKey = _useControlled[1];
75
75
  var contextValue = (0, _react.useMemo)(function () {
76
76
  return {
77
77
  activeKey: activeKey,
78
- onSelect: onSelectProp !== null && onSelectProp !== void 0 ? onSelectProp : onSelectFromSidenav
78
+ onSelect: function onSelect(eventKey, event) {
79
+ setActiveKey(eventKey);
80
+ onSelectProp === null || onSelectProp === void 0 ? void 0 : onSelectProp(eventKey, event);
81
+ onSelectFromSidenav === null || onSelectFromSidenav === void 0 ? void 0 : onSelectFromSidenav(eventKey, event);
82
+ }
79
83
  };
80
- }, [activeKey, onSelectFromSidenav, onSelectProp]);
84
+ }, [activeKey, onSelectFromSidenav, onSelectProp, setActiveKey]);
81
85
  if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
82
86
  return /*#__PURE__*/_react.default.createElement(_NavContext.default.Provider, {
83
87
  value: contextValue
@@ -130,7 +134,7 @@ Nav.Item = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
130
134
  var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
131
135
  var _ref2 = parentNavMenu !== null && parentNavMenu !== void 0 ? parentNavMenu : [],
132
136
  dispatch = _ref2[1];
133
- var _id = (0, _useInternalId.default)('Nav.Item');
137
+ var _id = (0, _utils.useInternalId)('Nav.Item');
134
138
  (0, _react.useEffect)(function () {
135
139
  if (dispatch) {
136
140
  var _props$active;
@@ -81,14 +81,14 @@ var Panel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
81
81
  onGroupSelect === null || onGroupSelect === void 0 ? void 0 : onGroupSelect(eventKey, event);
82
82
  setExpanded(!expanded);
83
83
  });
84
- var renderBody = (0, _utils.useEventCallback)(function (bodyProps) {
84
+ var renderBody = function renderBody(bodyProps) {
85
85
  var classes = prefix('body', {
86
86
  'body-fill': bodyFill
87
87
  });
88
88
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, bodyProps, {
89
89
  className: classes
90
90
  }), children);
91
- });
91
+ };
92
92
  var renderCollapsibleBody = function renderCollapsibleBody() {
93
93
  return /*#__PURE__*/_react.default.createElement(_Collapse.default, {
94
94
  in: expanded,
@@ -58,12 +58,12 @@ var Stack = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
58
58
  * toArray remove undefined, null and boolean
59
59
  */
60
60
  var filterChildren = _react.default.Children.toArray(children);
61
- var count = filterChildren.length;
61
+ var count = _utils.ReactChildren.count(filterChildren);
62
62
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
63
63
  ref: ref,
64
64
  className: classes,
65
65
  style: styles
66
- }), _react.default.Children.map(filterChildren, function (child, index) {
66
+ }), _utils.ReactChildren.map(filterChildren, function (child, index) {
67
67
  var childNode = childrenRenderMode === 'wrap' && child.type !== _StackItem.default ? /*#__PURE__*/_react.default.createElement(_StackItem.default, {
68
68
  key: index,
69
69
  className: prefix('item'),
@@ -40,7 +40,7 @@ var Steps = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
40
40
  vertical: vertical,
41
41
  horizontal: !vertical
42
42
  }));
43
- var count = _react.default.Children.count(children);
43
+ var count = _utils.ReactChildren.count(children);
44
44
  var items = _utils.ReactChildren.mapCloneElement(children, function (item, index) {
45
45
  var itemStyles = {
46
46
  flexBasis: index < count - 1 ? 100 / (count - 1) + "%" : undefined,
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ interface TabProps {
3
+ /**
4
+ * The children of the tab.
5
+ */
6
+ children?: React.ReactNode;
7
+ /**
8
+ * The disabled state of the tab.
9
+ */
10
+ disabled?: boolean;
11
+ /**
12
+ * The event key of the tab.
13
+ */
14
+ eventKey?: string;
15
+ /**
16
+ * The icon of the tab.
17
+ */
18
+ icon?: React.ReactNode;
19
+ /**
20
+ * Content for the tab title.
21
+ */
22
+ title: React.ReactNode;
23
+ }
24
+ declare const Tab: React.FC<TabProps>;
25
+ export default Tab;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var Tab = function Tab() {
10
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
11
+ };
12
+ Tab.displayName = 'Tab';
13
+ Tab.propTypes = {
14
+ disabled: _propTypes.default.bool,
15
+ eventKey: _propTypes.default.string,
16
+ title: _propTypes.default.node,
17
+ children: _propTypes.default.node,
18
+ icon: _propTypes.default.node
19
+ };
20
+ var _default = Tab;
21
+ exports.default = _default;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { WithAsProps } from '../@types/common';
3
+ interface TabPanelProps extends WithAsProps {
4
+ /** The active state of the tab. */
5
+ active?: boolean;
6
+ /** The HTML id attribute, which should be unique. */
7
+ id?: string;
8
+ }
9
+ declare const TabPanel: React.ForwardRefExoticComponent<TabPanelProps & React.RefAttributes<HTMLDivElement>>;
10
+ export default TabPanel;
@@ -0,0 +1,33 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _utils = require("../utils");
11
+ var TabPanel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
12
+ var _props$as = props.as,
13
+ Component = _props$as === void 0 ? 'div' : _props$as,
14
+ _props$classPrefix = props.classPrefix,
15
+ classPrefix = _props$classPrefix === void 0 ? 'tab-panel' : _props$classPrefix,
16
+ children = props.children,
17
+ active = props.active,
18
+ className = props.className,
19
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "children", "active", "className"]);
20
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
21
+ withClassPrefix = _useClassNames.withClassPrefix,
22
+ merge = _useClassNames.merge;
23
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
24
+ role: "tabpanel",
25
+ ref: ref,
26
+ tabIndex: 0,
27
+ hidden: !active,
28
+ className: merge(className, withClassPrefix())
29
+ }, rest), children);
30
+ });
31
+ TabPanel.displayName = 'TabPanel';
32
+ var _default = TabPanel;
33
+ exports.default = _default;
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
+ import Tab from './Tab';
4
+ export interface TabsProps extends WithAsProps {
5
+ /**
6
+ * The tabs appearance style.
7
+ */
8
+ appearance?: 'tabs' | 'subtle';
9
+ /**
10
+ * Mark the Tab with a matching `eventKey` as active.
11
+ */
12
+ activeKey?: string;
13
+ /**
14
+ * The default active tabKey.
15
+ */
16
+ defaultActiveKey?: string;
17
+ /**
18
+ * Reversed display.
19
+ * @default false
20
+ */
21
+ reversed?: boolean;
22
+ /**
23
+ * Vertical display.
24
+ * @default false
25
+ */
26
+ vertical?: boolean;
27
+ /**
28
+ * The HTML id attribute, which should be unique.
29
+ * @default use generated id
30
+ */
31
+ id?: string;
32
+ /**
33
+ * Callback fired when a Tab is selected.
34
+ * @param eventKey
35
+ * @param event
36
+ * @returns
37
+ */
38
+ onSelect?: (eventKey: string | undefined, event: React.SyntheticEvent) => void;
39
+ }
40
+ interface TabsComponent extends RsRefForwardingComponent<'div', TabsProps> {
41
+ Tab: typeof Tab;
42
+ }
43
+ /**
44
+ * Tabs are a set of layered sections of content, known as tab panels, that display one panel of content at a time.
45
+ *
46
+ * @version 5.53.0
47
+ * @see https://rsuitejs.com/components/tabs
48
+ */
49
+ declare const Tabs: TabsComponent;
50
+ export default Tabs;