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
@@ -11,7 +11,7 @@ var _TreeView = _interopRequireDefault(require("./TreeView"));
11
11
  var _hooks = require("./hooks");
12
12
  var _hooks2 = require("../internals/hooks");
13
13
  var _SearchView = _interopRequireDefault(require("./SearchView"));
14
- var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "value", "valueKey", "labelKey", "childrenKey", "disabledItemValues", "cascade", "columnWidth", "columnHeight", "searchable", "uncheckableItemValues", "getChildren", "renderColumn", "renderTreeNode", "onSelect", "onCheck", "onChange", "onSearch"];
14
+ var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "value", "valueKey", "labelKey", "locale", "childrenKey", "disabledItemValues", "cascade", "columnWidth", "columnHeight", "searchable", "uncheckableItemValues", "getChildren", "renderColumn", "renderTreeNode", "onSelect", "onCheck", "onChange", "onSearch"];
15
15
  var emptyArray = [];
16
16
 
17
17
  /**
@@ -32,6 +32,7 @@ var MultiCascadeTree = /*#__PURE__*/_react.default.forwardRef(function (props, r
32
32
  valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
33
33
  _props$labelKey = props.labelKey,
34
34
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
35
+ locale = props.locale,
35
36
  _props$childrenKey = props.childrenKey,
36
37
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
37
38
  _props$disabledItemVa = props.disabledItemValues,
@@ -99,11 +100,13 @@ var MultiCascadeTree = /*#__PURE__*/_react.default.forwardRef(function (props, r
99
100
  ref: ref,
100
101
  className: classes
101
102
  }, rest), searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {
103
+ cascade: cascade,
102
104
  data: items,
103
105
  value: value,
104
106
  searchKeyword: searchKeyword,
105
107
  valueKey: valueKey,
106
108
  labelKey: labelKey,
109
+ locale: locale,
107
110
  childrenKey: childrenKey,
108
111
  disabledItemValues: disabledItemValues,
109
112
  onCheck: handleCheck,
@@ -9,6 +9,7 @@ interface SearchViewProps<T> extends WithAsProps {
9
9
  data: ItemDataType<T>[];
10
10
  disabledItemValues: any[];
11
11
  cascade?: boolean;
12
+ locale?: Record<string, string>;
12
13
  onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
13
14
  onCheck: (item: ItemDataType<T>, event: React.SyntheticEvent, checked: boolean) => void;
14
15
  inputRef?: React.RefObject<HTMLInputElement>;
@@ -12,7 +12,7 @@ var _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
12
12
  var _Checkbox = _interopRequireDefault(require("../Checkbox"));
13
13
  var _Highlight = _interopRequireDefault(require("../Highlight"));
14
14
  var _utils = require("./utils");
15
- var _excluded = ["as", "classPrefix", "className", "searchKeyword", "childrenKey", "labelKey", "valueKey", "value", "data", "disabledItemValues", "inputRef", "cascade", "onSearch", "onCheck"];
15
+ var _excluded = ["as", "classPrefix", "className", "searchKeyword", "childrenKey", "labelKey", "valueKey", "value", "data", "disabledItemValues", "inputRef", "cascade", "locale", "onSearch", "onCheck"];
16
16
  function SearchView(props) {
17
17
  var _props$as = props.as,
18
18
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -28,6 +28,7 @@ function SearchView(props) {
28
28
  disabledItemValues = props.disabledItemValues,
29
29
  inputRef = props.inputRef,
30
30
  cascade = props.cascade,
31
+ overrideLocale = props.locale,
31
32
  onSearch = props.onSearch,
32
33
  onCheck = props.onCheck,
33
34
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
@@ -37,7 +38,7 @@ function SearchView(props) {
37
38
  withClassPrefix = _useClassNames.withClassPrefix,
38
39
  rootPrefix = _useClassNames.rootPrefix;
39
40
  var classes = merge(className, withClassPrefix());
40
- var _useCustom = (0, _hooks.useCustom)('Picker'),
41
+ var _useCustom = (0, _hooks.useCustom)('Picker', overrideLocale),
41
42
  locale = _useCustom.locale;
42
43
  var renderSearchRow = function renderSearchRow(item, key) {
43
44
  var _extends2;
@@ -6,7 +6,7 @@ export interface ItemKeys {
6
6
  labelKey: string;
7
7
  childrenKey: string;
8
8
  }
9
- export interface MultiCascadeTreeProps<T, V = T[]> extends WithAsProps, CascadeTreeProps<T, V> {
9
+ export interface MultiCascadeTreeProps<T, V = T[], L = any> extends WithAsProps, CascadeTreeProps<T, V> {
10
10
  /**
11
11
  * When set to true, selecting a child node will update the state of the parent node.
12
12
  */
@@ -19,6 +19,10 @@ export interface MultiCascadeTreeProps<T, V = T[]> extends WithAsProps, CascadeT
19
19
  * Set the option value for the check box not to be rendered
20
20
  */
21
21
  uncheckableItemValues?: T[];
22
+ /**
23
+ * A collection of localized strings.
24
+ */
25
+ locale?: Partial<L>;
22
26
  /**
23
27
  * Called after the checkbox state changes.
24
28
  */
@@ -3,7 +3,7 @@ import { PickerLocale } from '../locales';
3
3
  import { PickerComponent, PickerToggleProps } from '../internals/Picker';
4
4
  import { FormControlPickerProps, ItemDataType, DataItemValue } from '../internals/types';
5
5
  import type { MultiCascadeTreeProps } from '../MultiCascadeTree';
6
- export interface MultiCascaderProps<T extends DataItemValue> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>, T>, MultiCascadeTreeProps<T, T[]>, Pick<PickerToggleProps, 'loading'> {
6
+ export interface MultiCascaderProps<T extends DataItemValue> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>, T>, MultiCascadeTreeProps<T, T[], PickerLocale>, Pick<PickerToggleProps, 'loading'> {
7
7
  /**
8
8
  * A picker that can be counted
9
9
  */
@@ -273,6 +273,8 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
273
273
  target: trigger,
274
274
  onKeyDown: onPickerKeyDown
275
275
  }, searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {
276
+ locale: locale,
277
+ cascade: cascade,
276
278
  data: items,
277
279
  value: value,
278
280
  searchKeyword: searchKeyword,
@@ -280,6 +282,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
280
282
  labelKey: labelKey,
281
283
  childrenKey: childrenKey,
282
284
  disabledItemValues: disabledItemValues,
285
+ inputRef: searchInput,
283
286
  onCheck: handleCheck,
284
287
  onSearch: handleSearch
285
288
  }), !searchKeyword && /*#__PURE__*/_react.default.createElement(_TreeView.default, {
@@ -223,6 +223,7 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
223
223
  searchable: searchable,
224
224
  searchKeyword: searchKeyword,
225
225
  searchBy: searchBy,
226
+ searchInputRef: searchInput,
226
227
  loadingNodeValues: loadingNodeValues,
227
228
  flattenedNodes: flattenedNodes,
228
229
  listProps: listProps,
@@ -1,17 +1,24 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5
  exports.__esModule = true;
5
6
  exports.default = void 0;
6
7
  exports.useEventCallback = useEventCallback;
7
8
  var _react = require("react");
9
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("./useIsomorphicLayoutEffect"));
8
10
  /**
9
11
  * https://github.com/facebook/react/issues/14099#issuecomment-440013892
10
12
  * @param {function} fn
11
13
  */
12
14
  function useEventCallback(fn) {
13
15
  var ref = (0, _react.useRef)(fn);
14
- (0, _react.useEffect)(function () {
16
+ /**
17
+ * use useLayoutEffect instead of useEffect.
18
+ * useLayoutEffect is earlier than useEffect, sometimes we use setState and then use callback immediately,
19
+ * However the state in callback is not the latest, because useEffect is not triggered.
20
+ */
21
+ (0, _useIsomorphicLayoutEffect.default)(function () {
15
22
  ref.current = fn;
16
23
  });
17
24
  return (0, _react.useCallback)(function () {
@@ -200,3 +200,17 @@ export type CursorPosition = {
200
200
  clientTop: number;
201
201
  clientLeft: number;
202
202
  };
203
+ export declare namespace DateFns {
204
+ /**
205
+ * FirstWeekContainsDate is used to determine which week is the first week of the year, based on what day the January, 1 is in that week.
206
+ * The day in that week can only be 1 (Monday) or 4 (Thursday).
207
+ * Please see https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system for more information.
208
+ */
209
+ type FirstWeekContainsDate = 1 | 4;
210
+ /**
211
+ * The day of the week type alias.
212
+ * Unlike the date (the number of days since the beginning of the month), which begins with 1 and is dynamic (can go up to 28, 30, or 31), the day starts with 0 and static (always ends at 6).
213
+ * Look at it as an index in an array where Sunday is the first element and Saturday is the last.
214
+ */
215
+ type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6;
216
+ }
@@ -29,6 +29,13 @@ export declare function map(children: React.ReactNode, func: any, context?: any)
29
29
  * @returns An array of the cloned and modified child elements.
30
30
  */
31
31
  export declare function mapCloneElement(children: React.ReactNode, func: any, context?: any): any[];
32
+ /**
33
+ * Iterates over children that are in flat array form.
34
+ * @param children
35
+ * @param func
36
+ * @param context
37
+ */
38
+ export declare function forEach(children: React.ReactNode, func: any, context?: any): void;
32
39
  /**
33
40
  * Returns the number of children.
34
41
  * @param children - The children to count.
@@ -63,6 +70,10 @@ export declare const ReactChildren: {
63
70
  * Maps over the children and applies the given function to each child.
64
71
  */
65
72
  map: typeof map;
73
+ /**
74
+ * Iterates over children that are in flat array form.
75
+ */
76
+ forEach: typeof forEach;
66
77
  /**
67
78
  * Finds the first child that satisfies the given condition.
68
79
  */
@@ -7,6 +7,7 @@ exports.ReactChildren = void 0;
7
7
  exports.count = count;
8
8
  exports.default = void 0;
9
9
  exports.find = find;
10
+ exports.forEach = forEach;
10
11
  exports.isFragment = isFragment;
11
12
  exports.map = map;
12
13
  exports.mapCloneElement = mapCloneElement;
@@ -103,6 +104,23 @@ function mapCloneElement(children, func, context) {
103
104
  }, context);
104
105
  }
105
106
 
107
+ /**
108
+ * Iterates over children that are in flat array form.
109
+ * @param children
110
+ * @param func
111
+ * @param context
112
+ */
113
+ function forEach(children, func, context) {
114
+ var index = 0;
115
+ _react.default.Children.forEach(flatChildren(children), function (child) {
116
+ if (! /*#__PURE__*/_react.default.isValidElement(child)) {
117
+ return;
118
+ }
119
+ func.call(context, child, index);
120
+ index += 1;
121
+ });
122
+ }
123
+
106
124
  /**
107
125
  * Returns the number of children.
108
126
  * @param children - The children to count.
@@ -158,6 +176,10 @@ var ReactChildren = exports.ReactChildren = {
158
176
  * Maps over the children and applies the given function to each child.
159
177
  */
160
178
  map: map,
179
+ /**
180
+ * Iterates over children that are in flat array form.
181
+ */
182
+ forEach: forEach,
161
183
  /**
162
184
  * Finds the first child that satisfies the given condition.
163
185
  */
@@ -1,4 +1,5 @@
1
1
  import defaultLocale from './default';
2
+ import { Locale as DateFnsLocale } from 'date-fns';
2
3
  export { default as arEG } from './ar_EG';
3
4
  export { default as daDK } from './da_DK';
4
5
  export { default as deDE } from './de_DE';
@@ -29,7 +30,6 @@ type PickKeys<T> = {
29
30
  };
30
31
  export type Locale = PickKeys<typeof defaultLocale>;
31
32
  export type CommonLocale = typeof defaultLocale.common;
32
- export type CalendarLocale = PickKeys<typeof defaultLocale.Calendar>;
33
33
  export type PlaintextLocale = PickKeys<typeof defaultLocale.Plaintext>;
34
34
  export type PaginationLocale = PickKeys<typeof defaultLocale.Pagination>;
35
35
  export type TableLocale = CommonLocale;
@@ -41,3 +41,6 @@ export type UploaderLocale = PickKeys<typeof defaultLocale.Uploader> & CommonLoc
41
41
  export type CloseButtonLocale = PickKeys<typeof defaultLocale.CloseButton>;
42
42
  export type BreadcrumbLocale = PickKeys<typeof defaultLocale.Breadcrumb>;
43
43
  export type ToggleLocale = PickKeys<typeof defaultLocale.Toggle>;
44
+ export interface CalendarLocale extends PickKeys<typeof defaultLocale.Calendar> {
45
+ dateLocale?: DateFnsLocale;
46
+ }
@@ -1800,9 +1800,25 @@ tbody.rs-anim-collapse.rs-anim-in {
1800
1800
  color: #717273;
1801
1801
  color: var(--rs-text-secondary);
1802
1802
  }
1803
+ .rs-breadcrumb ol {
1804
+ display: -webkit-box;
1805
+ display: -ms-flexbox;
1806
+ display: flex;
1807
+ -ms-flex-wrap: wrap;
1808
+ flex-wrap: wrap;
1809
+ list-style: none;
1810
+ padding: 0;
1811
+ margin: 0;
1812
+ }
1803
1813
  .rs-breadcrumb-item {
1804
1814
  -webkit-transition: color 0.3s linear;
1805
1815
  transition: color 0.3s linear;
1816
+ display: -webkit-box;
1817
+ display: -ms-flexbox;
1818
+ display: flex;
1819
+ -webkit-box-align: center;
1820
+ -ms-flex-align: center;
1821
+ align-items: center;
1806
1822
  }
1807
1823
  .rs-breadcrumb-item:focus {
1808
1824
  outline: 0;
@@ -14106,7 +14122,7 @@ textarea.rs-inline-edit-sm .rs-plaintext {
14106
14122
  border-left: 1px solid #f2f2f5;
14107
14123
  border-left: 1px solid var(--rs-table-border-color);
14108
14124
  }
14109
- .rs-table-row:not(.rs-table-row-rowspan) {
14125
+ .rs-table:not(.rs-table-has-rowspan) .rs-table-row {
14110
14126
  border-bottom: 1px solid #f2f2f5;
14111
14127
  border-bottom: 1px solid var(--rs-table-border-color);
14112
14128
  }