rsuite 5.69.0 → 5.70.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 (75) hide show
  1. package/Breadcrumb/styles/index.css +16 -0
  2. package/Breadcrumb/styles/index.less +10 -0
  3. package/CHANGELOG.md +23 -0
  4. package/README.md +2 -2
  5. package/Table/styles/index.css +1 -1
  6. package/Table/styles/index.less +1 -1
  7. package/cjs/Breadcrumb/Breadcrumb.d.ts +14 -4
  8. package/cjs/Breadcrumb/Breadcrumb.js +30 -32
  9. package/cjs/Breadcrumb/BreadcrumbItem.d.ts +20 -0
  10. package/cjs/Breadcrumb/BreadcrumbItem.js +13 -17
  11. package/cjs/Button/Button.js +3 -3
  12. package/cjs/Calendar/TableRow.js +6 -2
  13. package/cjs/CascadeTree/CascadeTree.js +3 -1
  14. package/cjs/CascadeTree/SearchView.d.ts +1 -0
  15. package/cjs/CascadeTree/SearchView.js +3 -2
  16. package/cjs/CascadeTree/types.d.ts +5 -1
  17. package/cjs/Cascader/Cascader.d.ts +1 -1
  18. package/cjs/Cascader/Cascader.js +1 -0
  19. package/cjs/CustomProvider/CustomProvider.d.ts +60 -9
  20. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  21. package/cjs/MultiCascadeTree/MultiCascadeTree.js +4 -1
  22. package/cjs/MultiCascadeTree/SearchView.d.ts +1 -0
  23. package/cjs/MultiCascadeTree/SearchView.js +3 -2
  24. package/cjs/MultiCascadeTree/types.d.ts +5 -1
  25. package/cjs/MultiCascader/MultiCascader.d.ts +1 -1
  26. package/cjs/MultiCascader/MultiCascader.js +3 -0
  27. package/cjs/TreePicker/TreePicker.js +1 -0
  28. package/cjs/internals/hooks/useEventCallback.js +8 -1
  29. package/cjs/internals/types/index.d.ts +14 -0
  30. package/cjs/internals/utils/ReactChildren.d.ts +11 -0
  31. package/cjs/internals/utils/ReactChildren.js +22 -0
  32. package/cjs/locales/index.d.ts +4 -1
  33. package/dist/rsuite-no-reset-rtl.css +17 -1
  34. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  35. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  36. package/dist/rsuite-no-reset.css +17 -1
  37. package/dist/rsuite-no-reset.min.css +1 -1
  38. package/dist/rsuite-no-reset.min.css.map +1 -1
  39. package/dist/rsuite-rtl.css +17 -1
  40. package/dist/rsuite-rtl.min.css +1 -1
  41. package/dist/rsuite-rtl.min.css.map +1 -1
  42. package/dist/rsuite.css +17 -1
  43. package/dist/rsuite.js +70 -59
  44. package/dist/rsuite.js.map +1 -1
  45. package/dist/rsuite.min.css +1 -1
  46. package/dist/rsuite.min.css.map +1 -1
  47. package/dist/rsuite.min.js +1 -1
  48. package/dist/rsuite.min.js.map +1 -1
  49. package/esm/Breadcrumb/Breadcrumb.d.ts +14 -4
  50. package/esm/Breadcrumb/Breadcrumb.js +32 -34
  51. package/esm/Breadcrumb/BreadcrumbItem.d.ts +20 -0
  52. package/esm/Breadcrumb/BreadcrumbItem.js +13 -17
  53. package/esm/Button/Button.js +4 -4
  54. package/esm/Calendar/TableRow.js +6 -2
  55. package/esm/CascadeTree/CascadeTree.js +3 -1
  56. package/esm/CascadeTree/SearchView.d.ts +1 -0
  57. package/esm/CascadeTree/SearchView.js +3 -2
  58. package/esm/CascadeTree/types.d.ts +5 -1
  59. package/esm/Cascader/Cascader.d.ts +1 -1
  60. package/esm/Cascader/Cascader.js +1 -0
  61. package/esm/CustomProvider/CustomProvider.d.ts +60 -9
  62. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  63. package/esm/MultiCascadeTree/MultiCascadeTree.js +4 -1
  64. package/esm/MultiCascadeTree/SearchView.d.ts +1 -0
  65. package/esm/MultiCascadeTree/SearchView.js +3 -2
  66. package/esm/MultiCascadeTree/types.d.ts +5 -1
  67. package/esm/MultiCascader/MultiCascader.d.ts +1 -1
  68. package/esm/MultiCascader/MultiCascader.js +3 -0
  69. package/esm/TreePicker/TreePicker.js +1 -0
  70. package/esm/internals/hooks/useEventCallback.js +8 -2
  71. package/esm/internals/types/index.d.ts +14 -0
  72. package/esm/internals/utils/ReactChildren.d.ts +11 -0
  73. package/esm/internals/utils/ReactChildren.js +21 -0
  74. package/esm/locales/index.d.ts +4 -1
  75. package/package.json +2 -2
@@ -36,9 +36,25 @@
36
36
  color: #717273;
37
37
  color: var(--rs-text-secondary);
38
38
  }
39
+ .rs-breadcrumb ol {
40
+ display: -webkit-box;
41
+ display: -ms-flexbox;
42
+ display: flex;
43
+ -ms-flex-wrap: wrap;
44
+ flex-wrap: wrap;
45
+ list-style: none;
46
+ padding: 0;
47
+ margin: 0;
48
+ }
39
49
  .rs-breadcrumb-item {
40
50
  -webkit-transition: color 0.3s linear;
41
51
  transition: color 0.3s linear;
52
+ display: -webkit-box;
53
+ display: -ms-flexbox;
54
+ display: flex;
55
+ -webkit-box-align: center;
56
+ -ms-flex-align: center;
57
+ align-items: center;
42
58
  }
43
59
  .rs-breadcrumb-item:focus {
44
60
  outline: 0;
@@ -9,9 +9,19 @@
9
9
  font-size: @breadcrumb-font-size;
10
10
  color: var(--rs-text-secondary);
11
11
 
12
+ ol {
13
+ display: flex;
14
+ flex-wrap: wrap;
15
+ list-style: none;
16
+ padding: 0;
17
+ margin: 0;
18
+ }
19
+
12
20
  // If breadcrumbs has a ci
13
21
  &-item {
14
22
  transition: color 0.3s linear;
23
+ display: flex;
24
+ align-items: center;
15
25
 
16
26
  &:focus {
17
27
  .tab-focus();
package/CHANGELOG.md CHANGED
@@ -1,3 +1,26 @@
1
+ ## [5.70.1](https://github.com/rsuite/rsuite/compare/v5.70.0...v5.70.1) (2024-09-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **Breadcrumb:** fix the rendering exception of the child node separator ([#3948](https://github.com/rsuite/rsuite/issues/3948)) ([7d54cc9](https://github.com/rsuite/rsuite/commit/7d54cc97b05e9b17797ad275b6f02ce679869579))
7
+ * **Calendar:** fix the problem of displaying the first week of the year incorrectly ([#3951](https://github.com/rsuite/rsuite/issues/3951)) ([a2c6891](https://github.com/rsuite/rsuite/commit/a2c6891f76cc5e435eb1980f9176dbec21ac5735))
8
+
9
+
10
+
11
+ # [5.70.0](https://github.com/rsuite/rsuite/compare/v5.69.0...v5.70.0) (2024-08-24)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **Cascader,MultiCascader:** fix `locale` property can't override global config ([#3928](https://github.com/rsuite/rsuite/issues/3928)) ([31abca8](https://github.com/rsuite/rsuite/commit/31abca88daa88a4ba10f886de98db0f9cb57ced1))
17
+ * **MultiCascadeTree,MultiCascader:** fix parent node is not in a mixed state when searching ([#3931](https://github.com/rsuite/rsuite/issues/3931)) ([5ec0be5](https://github.com/rsuite/rsuite/commit/5ec0be5bcd6fc4f00b457e4c452c7c56225314c9))
18
+ * **Table:** fix border style when rowSpan is used ([#3940](https://github.com/rsuite/rsuite/issues/3940)) ([9677303](https://github.com/rsuite/rsuite/commit/9677303e007dc94474ca16e3a32b638bd8c0c05b))
19
+ * **TreePicker,MultiCascader:** fix not focusing on the search box when typing characters ([#3930](https://github.com/rsuite/rsuite/issues/3930)) ([4f3b8e3](https://github.com/rsuite/rsuite/commit/4f3b8e37eabdefea277f14034647f43826244c03))
20
+ * use useLayoutEffect instead of useEffect in useEventCallback ([#3921](https://github.com/rsuite/rsuite/issues/3921)) ([6396b3e](https://github.com/rsuite/rsuite/commit/6396b3e6d3692f76850409a5d3d1bd60aea40788))
21
+
22
+
23
+
1
24
  # [5.69.0](https://github.com/rsuite/rsuite/compare/v5.68.1...v5.69.0) (2024-08-09)
2
25
 
3
26
 
package/README.md CHANGED
@@ -64,7 +64,7 @@ More guides on how to get started are available [here](https://rsuitejs.com/guid
64
64
 
65
65
  ## Documentation
66
66
 
67
- It's the https://rsuitejs.com website for the latest version of React Suite. For older versions head over here
67
+ It's the https://rsuitejs.com website for the latest version of React Suite. For older versions head over here:
68
68
 
69
69
  - [4.x documentation](https://v4.rsuitejs.com/)
70
70
  - [3.x documentation](https://v3.rsuitejs.com/)
@@ -119,7 +119,7 @@ These great services help us to build and maintain the project.
119
119
 
120
120
  ## Supporting React Suite
121
121
 
122
- If you like React Suite, you can show your support by either
122
+ If you like React Suite, you can show your support by:
123
123
 
124
124
  - Starring this repo
125
125
  - [Leaving a comment here][issues-11] if you are using React Suite in your project (like we do :smile:)
@@ -467,7 +467,7 @@
467
467
  border-right: 1px solid #f2f2f5;
468
468
  border-right: 1px solid var(--rs-table-border-color);
469
469
  }
470
- .rs-table-row:not(.rs-table-row-rowspan) {
470
+ .rs-table:not(.rs-table-has-rowspan) .rs-table-row {
471
471
  border-bottom: 1px solid #f2f2f5;
472
472
  border-bottom: 1px solid var(--rs-table-border-color);
473
473
  }
@@ -340,7 +340,7 @@
340
340
  }
341
341
  }
342
342
 
343
- .rs-table-row:not(.rs-table-row-rowspan) {
343
+ .rs-table:not(.rs-table-has-rowspan) .rs-table-row {
344
344
  border-bottom: 1px solid var(--rs-table-border-color);
345
345
  }
346
346
 
@@ -3,17 +3,27 @@ import BreadcrumbItem from './BreadcrumbItem';
3
3
  import { WithAsProps, RsRefForwardingComponent } from '../internals/types';
4
4
  import { BreadcrumbLocale } from '../locales';
5
5
  export interface BreadcrumbProps extends WithAsProps {
6
- /** Shorthand for primary content of the React.ReactNode */
6
+ /**
7
+ * The separator between each breadcrumb item.
8
+ */
7
9
  separator?: React.ReactNode;
8
10
  /**
9
11
  * Set the maximum number of breadcrumbs to display.
10
12
  * When there are more than the maximum number,
11
13
  * only the first and last will be shown, with an ellipsis in between.
12
- * */
14
+ */
13
15
  maxItems?: number;
14
- /** Custom locale */
16
+ /**
17
+ * The locale of the component.
18
+ */
15
19
  locale?: BreadcrumbLocale;
16
- /** A function to be called when you are in the collapsed view and click the ellipsis. */
20
+ /**
21
+ * The ellipsis element.
22
+ */
23
+ ellipsis?: React.ReactNode;
24
+ /**
25
+ * Callback function for clicking the ellipsis.
26
+ */
17
27
  onExpand?: (event: React.MouseEvent) => void;
18
28
  }
19
29
  export interface BreadcrumbComponent extends RsRefForwardingComponent<'ol', BreadcrumbProps> {
@@ -5,16 +5,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
- var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
9
  var _react = _interopRequireWildcard(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _hooks = require("../internals/hooks");
12
+ var _utils = require("../internals/utils");
13
13
  var _BreadcrumbItem = _interopRequireDefault(require("./BreadcrumbItem"));
14
- var _templateObject;
15
- var _excluded = ["as", "className", "classPrefix", "children", "maxItems", "separator", "locale", "onExpand"];
14
+ var _excluded = ["as", "className", "classPrefix", "children", "ellipsis", "maxItems", "separator", "locale", "onExpand"];
16
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ var Separator = (0, _utils.createComponent)({
18
+ name: 'BreadcrumbSeparator',
19
+ componentAs: 'span',
20
+ 'aria-hidden': true
21
+ });
22
+
18
23
  /**
19
24
  * The Breadcrumb component is used to indicate the current page location and navigate.
20
25
  * @see https://rsuitejs.com/components/breadcrumb
@@ -26,6 +31,8 @@ var Breadcrumb = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
26
31
  _props$classPrefix = props.classPrefix,
27
32
  classPrefix = _props$classPrefix === void 0 ? 'breadcrumb' : _props$classPrefix,
28
33
  children = props.children,
34
+ _props$ellipsis = props.ellipsis,
35
+ ellipsis = _props$ellipsis === void 0 ? '...' : _props$ellipsis,
29
36
  _props$maxItems = props.maxItems,
30
37
  maxItems = _props$maxItems === void 0 ? 5 : _props$maxItems,
31
38
  _props$separator = props.separator,
@@ -35,62 +42,53 @@ var Breadcrumb = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
35
42
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
36
43
  var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
37
44
  merge = _useClassNames.merge,
38
- prefix = _useClassNames.prefix,
39
45
  withClassPrefix = _useClassNames.withClassPrefix;
40
46
  var _useState = (0, _react.useState)(true),
41
- ellipsis = _useState[0],
42
- setEllipsis = _useState[1];
47
+ showEllipsis = _useState[0],
48
+ setShowEllipsis = _useState[1];
43
49
  var _useCustom = (0, _hooks.useCustom)('Breadcrumb', overrideLocale),
44
50
  locale = _useCustom.locale;
45
- var renderSeparator = function renderSeparator(key) {
46
- return /*#__PURE__*/_react.default.createElement("span", {
47
- key: "breadcrumb-separator-" + key,
48
- "aria-hidden": true,
49
- className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["separator"])))
50
- }, separator);
51
- };
52
- var handleClickEllipsis = (0, _react.useCallback)(function (event) {
53
- setEllipsis(false);
51
+ var handleClickEllipsis = (0, _hooks.useEventCallback)(function (event) {
52
+ setShowEllipsis(false);
54
53
  onExpand === null || onExpand === void 0 ? void 0 : onExpand(event);
55
- }, [onExpand]);
56
- var items = [];
57
- var count = _react.default.Children.count(children);
58
- if (count) {
59
- _react.default.Children.forEach(children, function (item, index) {
60
- items.push(item);
61
- if (index < count - 1) {
62
- items.push(renderSeparator(index));
63
- }
54
+ });
55
+ var content = (0, _react.useMemo)(function () {
56
+ var count = _utils.ReactChildren.count(children);
57
+ var items = _utils.ReactChildren.mapCloneElement(children, function (item, index) {
58
+ var isLast = index === count - 1;
59
+ return (0, _extends2.default)({}, item.props, {
60
+ separator: isLast ? null : /*#__PURE__*/_react.default.createElement(Separator, null, separator)
61
+ });
64
62
  });
65
- }
66
- var renderCollapseItems = function renderCollapseItems() {
67
- if (count > maxItems && count > 2 && ellipsis) {
68
- return [].concat(items.slice(0, 2), [[/*#__PURE__*/_react.default.createElement(_BreadcrumbItem.default, {
63
+ if (count > maxItems && count > 2 && showEllipsis) {
64
+ return [].concat(items.slice(0, 1), [[/*#__PURE__*/_react.default.createElement(_BreadcrumbItem.default, {
69
65
  role: "button",
70
66
  key: "ellipsis",
71
67
  title: locale.expandText,
72
68
  "aria-label": locale.expandText,
69
+ separator: /*#__PURE__*/_react.default.createElement(Separator, null, separator),
73
70
  onClick: handleClickEllipsis
74
71
  }, /*#__PURE__*/_react.default.createElement("span", {
75
72
  "aria-hidden": true
76
- }, "..."))]], items.slice(items.length - 2, items.length));
73
+ }, ellipsis))]], items.slice(items.length - 1, items.length));
77
74
  }
78
75
  return items;
79
- };
76
+ }, [children, ellipsis, handleClickEllipsis, locale.expandText, maxItems, separator, showEllipsis]);
80
77
  var classes = merge(className, withClassPrefix());
81
78
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
82
79
  ref: ref,
83
80
  className: classes
84
- }), renderCollapseItems());
81
+ }), /*#__PURE__*/_react.default.createElement("ol", null, content));
85
82
  });
86
83
  Breadcrumb.Item = _BreadcrumbItem.default;
87
84
  Breadcrumb.displayName = 'Breadcrumb';
88
85
  Breadcrumb.propTypes = {
89
- separator: _propTypes.default.node,
90
86
  as: _propTypes.default.elementType,
91
87
  children: _propTypes.default.node,
92
88
  className: _propTypes.default.string,
93
89
  classPrefix: _propTypes.default.string,
90
+ ellipsis: _propTypes.default.node,
91
+ separator: _propTypes.default.node,
94
92
  maxItems: _propTypes.default.number,
95
93
  onExpand: _propTypes.default.func
96
94
  };
@@ -1,10 +1,30 @@
1
1
  import React from 'react';
2
2
  import { WithAsProps, RsRefForwardingComponent } from '../internals/types';
3
3
  export interface BreadcrumbItemProps extends WithAsProps<React.ElementType | string> {
4
+ /**
5
+ * The wrapper element of the BreadcrumbItem.
6
+ */
7
+ wrapperAs?: React.ElementType;
8
+ /**
9
+ * The active state of the BreadcrumbItem.
10
+ */
4
11
  active?: boolean;
12
+ /**
13
+ * The href attribute specifies the URL of the page the link goes to.
14
+ */
5
15
  href?: string;
16
+ /**
17
+ * The title attribute specifies extra information about an element.
18
+ */
6
19
  title?: string;
20
+ /**
21
+ * The target attribute specifies where to open the linked document.
22
+ */
7
23
  target?: string;
24
+ /**
25
+ * The separator between each breadcrumb item.
26
+ */
27
+ separator?: React.ReactNode;
8
28
  }
9
29
  /**
10
30
  * The `<Breadcrumb.Item>` component is used to specify each section of the Breadcrumb.
@@ -10,15 +10,17 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _SafeAnchor = _interopRequireDefault(require("../SafeAnchor"));
12
12
  var _hooks = require("../internals/hooks");
13
- var _excluded = ["as", "href", "classPrefix", "title", "target", "className", "style", "active", "children"];
13
+ var _excluded = ["wrapperAs", "href", "as", "classPrefix", "title", "target", "className", "style", "active", "children", "separator"];
14
14
  /**
15
15
  * The `<Breadcrumb.Item>` component is used to specify each section of the Breadcrumb.
16
16
  * @see https://rsuitejs.com/components/breadcrumb
17
17
  */
18
18
  var BreadcrumbItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
19
- var _props$as = props.as,
20
- Component = _props$as === void 0 ? props.href ? _SafeAnchor.default : 'span' : _props$as,
19
+ var _props$wrapperAs = props.wrapperAs,
20
+ WrapperComponent = _props$wrapperAs === void 0 ? 'li' : _props$wrapperAs,
21
21
  href = props.href,
22
+ _props$as = props.as,
23
+ Component = _props$as === void 0 ? href ? _SafeAnchor.default : 'span' : _props$as,
22
24
  _props$classPrefix = props.classPrefix,
23
25
  classPrefix = _props$classPrefix === void 0 ? 'breadcrumb-item' : _props$classPrefix,
24
26
  title = props.title,
@@ -27,6 +29,7 @@ var BreadcrumbItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref
27
29
  style = props.style,
28
30
  active = props.active,
29
31
  children = props.children,
32
+ separator = props.separator,
30
33
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
31
34
  var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
32
35
  merge = _useClassNames.merge,
@@ -34,22 +37,15 @@ var BreadcrumbItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref
34
37
  var classes = merge(className, withClassPrefix({
35
38
  active: active
36
39
  }));
37
- if (active) {
38
- return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
39
- ref: ref
40
- }, rest, {
41
- style: style,
42
- className: classes
43
- }), children);
44
- }
45
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
40
+ return /*#__PURE__*/_react.default.createElement(WrapperComponent, (0, _extends2.default)({
41
+ style: style,
42
+ className: classes,
43
+ ref: ref
44
+ }, rest), active ? /*#__PURE__*/_react.default.createElement("span", null, children) : /*#__PURE__*/_react.default.createElement(Component, {
46
45
  href: href,
47
46
  title: title,
48
- target: target,
49
- ref: ref,
50
- style: style,
51
- className: classes
52
- }), children);
47
+ target: target
48
+ }, children), separator);
53
49
  });
54
50
  BreadcrumbItem.displayName = 'BreadcrumbItem';
55
51
  BreadcrumbItem.propTypes = {
@@ -55,7 +55,7 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
55
55
  loading: loading,
56
56
  block: block
57
57
  }));
58
- var renderButtonContent = (0, _react.useCallback)(function () {
58
+ var buttonContent = (0, _react.useMemo)(function () {
59
59
  var spin = /*#__PURE__*/_react.default.createElement("span", {
60
60
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["spin"])))
61
61
  });
@@ -73,7 +73,7 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
73
73
  "aria-disabled": disabled,
74
74
  disabled: disabled,
75
75
  className: classes
76
- }), renderButtonContent());
76
+ }), buttonContent);
77
77
  }
78
78
  var Component = as || 'button';
79
79
  var type = typeProp || (Component === 'button' ? 'button' : undefined);
@@ -85,7 +85,7 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
85
85
  disabled: disabled,
86
86
  "aria-disabled": disabled,
87
87
  className: classes
88
- }), renderButtonContent());
88
+ }), buttonContent);
89
89
  });
90
90
  Button.displayName = 'Button';
91
91
  Button.propTypes = {
@@ -16,6 +16,7 @@ var _excluded = ["as", "className", "classPrefix", "weekendDate", "rowIndex"];
16
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
19
+ var _locale$dateLocale$op, _locale$dateLocale;
19
20
  var _props$as = props.as,
20
21
  Component = _props$as === void 0 ? 'div' : _props$as,
21
22
  className = props.className,
@@ -100,10 +101,13 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
100
101
  return days;
101
102
  };
102
103
  var classes = merge(className, prefix('row'));
104
+ var _ref3 = (_locale$dateLocale$op = locale === null || locale === void 0 ? void 0 : (_locale$dateLocale = locale.dateLocale) === null || _locale$dateLocale === void 0 ? void 0 : _locale$dateLocale.options) !== null && _locale$dateLocale$op !== void 0 ? _locale$dateLocale$op : {},
105
+ firstWeekContainsDate = _ref3.firstWeekContainsDate,
106
+ weekStartsOn = _ref3.weekStartsOn;
103
107
  var week = (0, _date.format)(weekendDate, isoWeek ? 'I' : 'w', {
104
108
  locale: locale === null || locale === void 0 ? void 0 : locale.dateLocale,
105
- firstWeekContainsDate: 4,
106
- weekStartsOn: weekStart
109
+ firstWeekContainsDate: firstWeekContainsDate,
110
+ weekStartsOn: weekStart || weekStartsOn
107
111
  });
108
112
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
109
113
  ref: ref,
@@ -13,7 +13,7 @@ var _hooks = require("../internals/hooks");
13
13
  var _TreeView = _interopRequireDefault(require("./TreeView"));
14
14
  var _SearchView = _interopRequireDefault(require("./SearchView"));
15
15
  var _hooks2 = require("./hooks");
16
- var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "childrenKey", "valueKey", "labelKey", "value", "disabledItemValues", "columnWidth", "columnHeight", "searchable", "renderTreeNode", "renderColumn", "onSelect", "onSearch", "onChange", "getChildren"];
16
+ var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "childrenKey", "valueKey", "labelKey", "locale", "value", "disabledItemValues", "columnWidth", "columnHeight", "searchable", "renderTreeNode", "renderColumn", "onSelect", "onSearch", "onChange", "getChildren"];
17
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
19
  /**
@@ -36,6 +36,7 @@ var CascadeTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
36
36
  valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
37
37
  _props$labelKey = props.labelKey,
38
38
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
39
+ locale = props.locale,
39
40
  valueProp = props.value,
40
41
  _props$disabledItemVa = props.disabledItemValues,
41
42
  disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,
@@ -152,6 +153,7 @@ var CascadeTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
152
153
  searchKeyword: searchKeyword,
153
154
  valueKey: valueKey,
154
155
  labelKey: labelKey,
156
+ locale: locale,
155
157
  parentMap: parentMap,
156
158
  disabledItemValues: disabledItemValues,
157
159
  onSelect: handleSearchRowSelect,
@@ -8,6 +8,7 @@ interface SearchViewProps<T> extends WithAsProps {
8
8
  data: ItemDataType<T>[];
9
9
  focusItemValue?: T | null;
10
10
  disabledItemValues: any[];
11
+ locale?: Record<string, string>;
11
12
  renderSearchItem?: (label: React.ReactNode, items: ItemDataType<T>[]) => React.ReactNode;
12
13
  onSelect: (item: ItemDataType<T>, items: ItemDataType<T>[], event: React.MouseEvent) => void;
13
14
  onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
@@ -11,7 +11,7 @@ var _hooks = require("../internals/hooks");
11
11
  var _utils = require("../internals/Tree/utils");
12
12
  var _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
13
13
  var _Highlight = _interopRequireDefault(require("../Highlight"));
14
- var _excluded = ["as", "classPrefix", "className", "searchKeyword", "labelKey", "valueKey", "parentMap", "data", "focusItemValue", "disabledItemValues", "inputRef", "renderSearchItem", "onSearch", "onSelect"];
14
+ var _excluded = ["as", "classPrefix", "className", "searchKeyword", "labelKey", "locale", "valueKey", "parentMap", "data", "focusItemValue", "disabledItemValues", "inputRef", "renderSearchItem", "onSearch", "onSelect"];
15
15
  function SearchView(props) {
16
16
  var _props$as = props.as,
17
17
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -20,6 +20,7 @@ function SearchView(props) {
20
20
  className = props.className,
21
21
  searchKeyword = props.searchKeyword,
22
22
  labelKey = props.labelKey,
23
+ overrideLocale = props.locale,
23
24
  valueKey = props.valueKey,
24
25
  parentMap = props.parentMap,
25
26
  data = props.data,
@@ -36,7 +37,7 @@ function SearchView(props) {
36
37
  withClassPrefix = _useClassNames.withClassPrefix,
37
38
  rootPrefix = _useClassNames.rootPrefix;
38
39
  var classes = merge(className, withClassPrefix());
39
- var _useCustom = (0, _hooks.useCustom)('Picker'),
40
+ var _useCustom = (0, _hooks.useCustom)('Picker', overrideLocale),
40
41
  locale = _useCustom.locale;
41
42
  var renderSearchRow = function renderSearchRow(item, key) {
42
43
  var items = (0, _utils.getPathTowardsItem)(item, function (item) {
@@ -10,7 +10,7 @@ export interface CascadeColumn<T> {
10
10
  parentItem?: ItemDataType<T>;
11
11
  layer?: number;
12
12
  }
13
- export interface CascadeTreeProps<T, V = T> extends WithAsProps, DataProps<ItemDataType<T>> {
13
+ export interface CascadeTreeProps<T, V = T, L = any> extends WithAsProps, DataProps<ItemDataType<T>> {
14
14
  /**
15
15
  * Initial value
16
16
  */
@@ -35,6 +35,10 @@ export interface CascadeTreeProps<T, V = T> extends WithAsProps, DataProps<ItemD
35
35
  * Whether dispaly search input box
36
36
  */
37
37
  searchable?: boolean;
38
+ /**
39
+ * A collection of localized strings.
40
+ */
41
+ locale?: Partial<L>;
38
42
  /**
39
43
  * Custom render columns
40
44
  */
@@ -3,7 +3,7 @@ import type { CascadeTreeProps } from '../CascadeTree/types';
3
3
  import { PickerLocale } from '../locales';
4
4
  import { PickerHandle, PickerToggleProps } from '../internals/Picker';
5
5
  import { ItemDataType, DataItemValue, FormControlPickerProps } from '../internals/types';
6
- export interface CascaderProps<T = DataItemValue> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, CascadeTreeProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs' | 'loading'> {
6
+ export interface CascaderProps<T = DataItemValue> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, CascadeTreeProps<T, T, PickerLocale>, Pick<PickerToggleProps, 'label' | 'caretAs' | 'loading'> {
7
7
  /**
8
8
  * The panel is displayed directly when the component is initialized
9
9
  * @deprecated Use CascadeTree instead
@@ -335,6 +335,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
335
335
  searchKeyword: searchKeyword,
336
336
  valueKey: valueKey,
337
337
  labelKey: labelKey,
338
+ locale: locale,
338
339
  parentMap: parentMap,
339
340
  disabledItemValues: disabledItemValues,
340
341
  focusItemValue: focusItemValue,
@@ -1,18 +1,67 @@
1
1
  import React from 'react';
2
- import type { Locale as DateFnsLocale } from 'date-fns';
3
2
  import { Locale } from '../locales';
4
3
  import { ToastContainerInstance } from '../toaster/ToastContainer';
4
+ import type { Locale as DateFnsLocale } from 'date-fns';
5
+ import type { DateFns } from '../internals/types';
5
6
  export interface FormatDateOptions {
7
+ /**
8
+ * The locale object that contains the language and formatting rules for the date.
9
+ */
6
10
  locale?: DateFnsLocale;
7
- weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
8
- firstWeekContainsDate?: number;
11
+ /**
12
+ * Defines which day of the week should be considered the start of the week.
13
+ *
14
+ * The value should be an integer from 0 to 6, where:
15
+ * - `0` represents Sunday,
16
+ * - `1` represents Monday,
17
+ * - `2` represents Tuesday,
18
+ * - `3` represents Wednesday,
19
+ * - `4` represents Thursday,
20
+ * - `5` represents Friday,
21
+ * - `6` represents Saturday.
22
+ *
23
+ * This option is important for functions that operate on weeks, such as calculating
24
+ * the start or end of a week, determining which week a date falls in, or generating
25
+ * calendar views. The default value varies depending on the locale, with Monday (`1`)
26
+ * being the default in most regions following ISO 8601, while Sunday (`0`) is often
27
+ * the default in regions like the United States.
28
+ */
29
+ weekStartsOn?: DateFns.Day;
30
+ /**
31
+ * `firstWeekContainsDate` is used to determine which week is considered the first week of the year.
32
+ *
33
+ * This option specifies the minimum day of January that must be included in the first week.
34
+ *
35
+ * The value can be set to:
36
+ * - `1`: The first week of the year must include January 1st.
37
+ * - `4`: The first week of the year must include January 4th, which is the default according to ISO 8601.
38
+ *
39
+ * The choice between `1` and `4` typically depends on the regional or business conventions for week numbering.
40
+ *
41
+ * Please note that this option only accepts `1` (Sunday) or `4` (Thursday), aligning with common international standards.
42
+ *
43
+ * For more detailed information, please refer to https://en.wikipedia.org/wiki/Week#Week_numbering.
44
+ */
45
+ firstWeekContainsDate?: DateFns.FirstWeekContainsDate;
46
+ /**
47
+ * If true, allows usage of the week-numbering year tokens `YY` and `YYYY`.
48
+ * See: https://date-fns.org/docs/Unicode-Tokens
49
+ **/
9
50
  useAdditionalWeekYearTokens?: boolean;
51
+ /**
52
+ * If true, allows usage of the day of year tokens `D` and `DD`.
53
+ * See: https://date-fns.org/docs/Unicode-Tokens
54
+ */
10
55
  useAdditionalDayOfYearTokens?: boolean;
11
56
  }
12
57
  export interface CustomValue<T = Locale> {
13
- /** Language configuration */
58
+ /**
59
+ * The locale object that contains the language and formatting rules for the date.
60
+ */
14
61
  locale: T;
15
- /** Support right-to-left */
62
+ /**
63
+ * Right-to-left text direction.
64
+ */
16
65
  rtl: boolean;
17
66
  /**
18
67
  * Return the formatted date string in the given format. The result may vary by locale.
@@ -26,7 +75,7 @@ export interface CustomValue<T = Locale> {
26
75
  * return format(date, formatStr, { locale: eo });
27
76
  * }
28
77
  *
29
- * */
78
+ */
30
79
  formatDate: (date: Date | number, format: string, options?: FormatDateOptions) => string;
31
80
  /**
32
81
  * Return the date parsed from string using the given format string.
@@ -40,13 +89,16 @@ export interface CustomValue<T = Locale> {
40
89
  * return parse(date, formatStr, new Date(), { locale: eo });
41
90
  * }
42
91
  *
43
- * */
92
+ */
44
93
  parseDate: (dateString: string, formatString: string, referenceDate?: Date | number, options?: FormatDateOptions) => Date;
45
94
  /**
46
95
  * A Map of toast containers
47
96
  */
48
97
  toasters?: React.MutableRefObject<Map<string, ToastContainerInstance>>;
49
- /** If true, the ripple effect is disabled. Affected components include: Button, Nav.Item, Pagination. */
98
+ /**
99
+ * If true, the ripple effect is disabled.
100
+ * Affected components include: Button, Nav.Item, Pagination.
101
+ */
50
102
  disableRipple?: boolean;
51
103
  }
52
104
  export interface CustomProviderProps<T = Locale> extends Partial<CustomValue<T>> {
@@ -68,7 +120,6 @@ declare const CustomContext: React.Context<CustomProviderProps<{
68
120
  } | undefined;
69
121
  Plaintext?: {
70
122
  unfilled: string;
71
- /** Support right-to-left */
72
123
  notSelected: string;
73
124
  notUploaded: string;
74
125
  } | undefined;
@@ -5,5 +5,5 @@ import type { MultiCascadeTreeProps } from './types';
5
5
  * The `MultiCascadeTree` component is used to select multiple values from cascading options.
6
6
  * @see https://rsuitejs.com/components/multi-cascade-tree/
7
7
  */
8
- declare const MultiCascadeTree: React.ForwardRefExoticComponent<MultiCascadeTreeProps<DataItemValue, DataItemValue[]> & React.RefAttributes<unknown>>;
8
+ declare const MultiCascadeTree: React.ForwardRefExoticComponent<MultiCascadeTreeProps<DataItemValue, DataItemValue[], any> & React.RefAttributes<unknown>>;
9
9
  export default MultiCascadeTree;