rsuite 5.69.0 → 5.70.0

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 (51) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +2 -2
  3. package/Table/styles/index.css +1 -1
  4. package/Table/styles/index.less +1 -1
  5. package/cjs/CascadeTree/CascadeTree.js +3 -1
  6. package/cjs/CascadeTree/SearchView.d.ts +1 -0
  7. package/cjs/CascadeTree/SearchView.js +3 -2
  8. package/cjs/CascadeTree/types.d.ts +5 -1
  9. package/cjs/Cascader/Cascader.d.ts +1 -1
  10. package/cjs/Cascader/Cascader.js +1 -0
  11. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  12. package/cjs/MultiCascadeTree/MultiCascadeTree.js +4 -1
  13. package/cjs/MultiCascadeTree/SearchView.d.ts +1 -0
  14. package/cjs/MultiCascadeTree/SearchView.js +3 -2
  15. package/cjs/MultiCascadeTree/types.d.ts +5 -1
  16. package/cjs/MultiCascader/MultiCascader.d.ts +1 -1
  17. package/cjs/MultiCascader/MultiCascader.js +3 -0
  18. package/cjs/TreePicker/TreePicker.js +1 -0
  19. package/cjs/internals/hooks/useEventCallback.js +8 -1
  20. package/dist/rsuite-no-reset-rtl.css +1 -1
  21. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  22. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  23. package/dist/rsuite-no-reset.css +1 -1
  24. package/dist/rsuite-no-reset.min.css +1 -1
  25. package/dist/rsuite-no-reset.min.css.map +1 -1
  26. package/dist/rsuite-rtl.css +1 -1
  27. package/dist/rsuite-rtl.min.css +1 -1
  28. package/dist/rsuite-rtl.min.css.map +1 -1
  29. package/dist/rsuite.css +1 -1
  30. package/dist/rsuite.js +68 -57
  31. package/dist/rsuite.js.map +1 -1
  32. package/dist/rsuite.min.css +1 -1
  33. package/dist/rsuite.min.css.map +1 -1
  34. package/dist/rsuite.min.js +1 -1
  35. package/dist/rsuite.min.js.map +1 -1
  36. package/esm/CascadeTree/CascadeTree.js +3 -1
  37. package/esm/CascadeTree/SearchView.d.ts +1 -0
  38. package/esm/CascadeTree/SearchView.js +3 -2
  39. package/esm/CascadeTree/types.d.ts +5 -1
  40. package/esm/Cascader/Cascader.d.ts +1 -1
  41. package/esm/Cascader/Cascader.js +1 -0
  42. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  43. package/esm/MultiCascadeTree/MultiCascadeTree.js +4 -1
  44. package/esm/MultiCascadeTree/SearchView.d.ts +1 -0
  45. package/esm/MultiCascadeTree/SearchView.js +3 -2
  46. package/esm/MultiCascadeTree/types.d.ts +5 -1
  47. package/esm/MultiCascader/MultiCascader.d.ts +1 -1
  48. package/esm/MultiCascader/MultiCascader.js +3 -0
  49. package/esm/TreePicker/TreePicker.js +1 -0
  50. package/esm/internals/hooks/useEventCallback.js +8 -2
  51. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # [5.70.0](https://github.com/rsuite/rsuite/compare/v5.69.0...v5.70.0) (2024-08-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **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))
7
+ * **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))
8
+ * **Table:** fix border style when rowSpan is used ([#3940](https://github.com/rsuite/rsuite/issues/3940)) ([9677303](https://github.com/rsuite/rsuite/commit/9677303e007dc94474ca16e3a32b638bd8c0c05b))
9
+ * **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))
10
+ * use useLayoutEffect instead of useEffect in useEventCallback ([#3921](https://github.com/rsuite/rsuite/issues/3921)) ([6396b3e](https://github.com/rsuite/rsuite/commit/6396b3e6d3692f76850409a5d3d1bd60aea40788))
11
+
12
+
13
+
1
14
  # [5.69.0](https://github.com/rsuite/rsuite/compare/v5.68.1...v5.69.0) (2024-08-09)
2
15
 
3
16
 
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
 
@@ -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,
@@ -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;
@@ -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 () {
@@ -14106,7 +14106,7 @@ textarea.rs-inline-edit-sm .rs-plaintext {
14106
14106
  border-left: 1px solid #f2f2f5;
14107
14107
  border-left: 1px solid var(--rs-table-border-color);
14108
14108
  }
14109
- .rs-table-row:not(.rs-table-row-rowspan) {
14109
+ .rs-table:not(.rs-table-has-rowspan) .rs-table-row {
14110
14110
  border-bottom: 1px solid #f2f2f5;
14111
14111
  border-bottom: 1px solid var(--rs-table-border-color);
14112
14112
  }