rsuite 5.68.1 → 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 (109) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/Calendar/styles/index.css +1 -1
  3. package/Calendar/styles/index.less +1 -1
  4. package/DatePicker/styles/index.css +1 -1
  5. package/DateRangePicker/styles/index.css +1 -1
  6. package/README.md +2 -2
  7. package/Table/styles/index.css +1 -1
  8. package/Table/styles/index.less +1 -1
  9. package/cjs/Calendar/Calendar.d.ts +7 -2
  10. package/cjs/Calendar/Calendar.js +1 -1
  11. package/cjs/Calendar/CalendarContainer.d.ts +5 -0
  12. package/cjs/Calendar/CalendarContainer.js +15 -44
  13. package/cjs/Calendar/CalendarContext.d.ts +126 -2
  14. package/cjs/Calendar/CalendarContext.js +11 -3
  15. package/cjs/Calendar/CalendarHeader.js +3 -20
  16. package/cjs/Calendar/MonthDropdown.js +39 -29
  17. package/cjs/Calendar/TimeDropdown.js +0 -14
  18. package/cjs/Calendar/index.d.ts +1 -2
  19. package/cjs/CascadeTree/CascadeTree.js +3 -1
  20. package/cjs/CascadeTree/SearchView.d.ts +1 -0
  21. package/cjs/CascadeTree/SearchView.js +3 -2
  22. package/cjs/CascadeTree/types.d.ts +5 -1
  23. package/cjs/Cascader/Cascader.d.ts +1 -1
  24. package/cjs/Cascader/Cascader.js +1 -0
  25. package/cjs/CustomProvider/CustomProvider.d.ts +13 -16
  26. package/cjs/DateInput/hooks/useDateInputState.d.ts +0 -2
  27. package/cjs/DateInput/hooks/useDateInputState.js +4 -1
  28. package/cjs/DatePicker/DatePicker.d.ts +6 -1
  29. package/cjs/DatePicker/DatePicker.js +10 -8
  30. package/cjs/DateRangePicker/Calendar.d.ts +3 -3
  31. package/cjs/DateRangePicker/Calendar.js +1 -1
  32. package/cjs/DateRangePicker/DateRangePicker.d.ts +15 -3
  33. package/cjs/DateRangePicker/DateRangePicker.js +30 -25
  34. package/cjs/InputNumber/InputNumber.d.ts +9 -0
  35. package/cjs/InputNumber/InputNumber.js +28 -8
  36. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  37. package/cjs/MultiCascadeTree/MultiCascadeTree.js +4 -1
  38. package/cjs/MultiCascadeTree/SearchView.d.ts +1 -0
  39. package/cjs/MultiCascadeTree/SearchView.js +3 -2
  40. package/cjs/MultiCascadeTree/types.d.ts +5 -1
  41. package/cjs/MultiCascader/MultiCascader.d.ts +1 -1
  42. package/cjs/MultiCascader/MultiCascader.js +3 -0
  43. package/cjs/TreePicker/TreePicker.js +1 -0
  44. package/cjs/internals/Windowing/List.d.ts +13 -3
  45. package/cjs/internals/Windowing/index.d.ts +1 -1
  46. package/cjs/internals/hooks/useCustom.js +25 -12
  47. package/cjs/internals/hooks/useEventCallback.js +8 -1
  48. package/cjs/useMediaQuery/useMediaQuery.js +12 -6
  49. package/dist/rsuite-no-reset-rtl.css +2 -2
  50. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  51. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  52. package/dist/rsuite-no-reset.css +2 -2
  53. package/dist/rsuite-no-reset.min.css +1 -1
  54. package/dist/rsuite-no-reset.min.css.map +1 -1
  55. package/dist/rsuite-rtl.css +2 -2
  56. package/dist/rsuite-rtl.min.css +1 -1
  57. package/dist/rsuite-rtl.min.css.map +1 -1
  58. package/dist/rsuite.css +2 -2
  59. package/dist/rsuite.js +84 -73
  60. package/dist/rsuite.js.map +1 -1
  61. package/dist/rsuite.min.css +1 -1
  62. package/dist/rsuite.min.css.map +1 -1
  63. package/dist/rsuite.min.js +1 -1
  64. package/dist/rsuite.min.js.map +1 -1
  65. package/esm/Calendar/Calendar.d.ts +7 -2
  66. package/esm/Calendar/Calendar.js +1 -1
  67. package/esm/Calendar/CalendarContainer.d.ts +5 -0
  68. package/esm/Calendar/CalendarContainer.js +15 -44
  69. package/esm/Calendar/CalendarContext.d.ts +126 -2
  70. package/esm/Calendar/CalendarContext.js +12 -3
  71. package/esm/Calendar/CalendarHeader.js +3 -20
  72. package/esm/Calendar/MonthDropdown.js +39 -29
  73. package/esm/Calendar/TimeDropdown.js +0 -14
  74. package/esm/Calendar/index.d.ts +1 -2
  75. package/esm/CascadeTree/CascadeTree.js +3 -1
  76. package/esm/CascadeTree/SearchView.d.ts +1 -0
  77. package/esm/CascadeTree/SearchView.js +3 -2
  78. package/esm/CascadeTree/types.d.ts +5 -1
  79. package/esm/Cascader/Cascader.d.ts +1 -1
  80. package/esm/Cascader/Cascader.js +1 -0
  81. package/esm/CustomProvider/CustomProvider.d.ts +13 -16
  82. package/esm/DateInput/hooks/useDateInputState.d.ts +0 -2
  83. package/esm/DateInput/hooks/useDateInputState.js +5 -2
  84. package/esm/DatePicker/DatePicker.d.ts +6 -1
  85. package/esm/DatePicker/DatePicker.js +10 -8
  86. package/esm/DateRangePicker/Calendar.d.ts +3 -3
  87. package/esm/DateRangePicker/Calendar.js +1 -1
  88. package/esm/DateRangePicker/DateRangePicker.d.ts +15 -3
  89. package/esm/DateRangePicker/DateRangePicker.js +19 -14
  90. package/esm/InputNumber/InputNumber.d.ts +9 -0
  91. package/esm/InputNumber/InputNumber.js +29 -9
  92. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  93. package/esm/MultiCascadeTree/MultiCascadeTree.js +4 -1
  94. package/esm/MultiCascadeTree/SearchView.d.ts +1 -0
  95. package/esm/MultiCascadeTree/SearchView.js +3 -2
  96. package/esm/MultiCascadeTree/types.d.ts +5 -1
  97. package/esm/MultiCascader/MultiCascader.d.ts +1 -1
  98. package/esm/MultiCascader/MultiCascader.js +3 -0
  99. package/esm/TreePicker/TreePicker.js +1 -0
  100. package/esm/internals/Windowing/List.d.ts +13 -3
  101. package/esm/internals/Windowing/index.d.ts +1 -1
  102. package/esm/internals/hooks/useCustom.js +25 -12
  103. package/esm/internals/hooks/useEventCallback.js +8 -2
  104. package/esm/useMediaQuery/useMediaQuery.js +13 -7
  105. package/package.json +2 -2
  106. package/cjs/Calendar/types.d.ts +0 -28
  107. package/cjs/Calendar/types.js +0 -4
  108. package/esm/Calendar/types.d.ts +0 -28
  109. package/esm/Calendar/types.js +0 -2
@@ -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,7 +1,17 @@
1
- import { VariableSizeList, ListItemKeySelector, ListOnScrollProps, ListOnItemsRenderedProps } from 'react-window';
2
- import { WithAsProps, RsRefForwardingComponent } from '../types';
1
+ import React from 'react';
2
+ import { VariableSizeList, ListItemKeySelector, ListOnScrollProps, ListOnItemsRenderedProps, ListProps as BaseListProps } from 'react-window';
3
+ import { RsRefForwardingComponent } from '../types';
3
4
  export declare const defaultItemSize: () => number;
4
- export interface ListProps<T = any> extends WithAsProps {
5
+ export interface ListProps<T = any> extends Omit<BaseListProps, 'width'> {
6
+ ref?: React.Ref<ListHandle>;
7
+ /**
8
+ * Width of the list.
9
+ *
10
+ * For horizontal lists, this must be a number. It affects the number of columns that will be rendered (and displayed) at any given time.
11
+ *
12
+ * For vertical lists, this can be a number or a string (e.g. "50%").
13
+ */
14
+ width?: number | string;
5
15
  /**
6
16
  * @deprecated use itemSize instead
7
17
  * Either a fixed row height (number) or a function that returns the height of a row given its index: ({ index: number }): number
@@ -1,5 +1,5 @@
1
1
  export { default as AutoSizer } from './AutoSizer';
2
2
  export { default as List, defaultItemSize } from './List';
3
3
  export { FixedSizeList, VariableSizeList } from 'react-window';
4
- export type { ListChildComponentProps } from 'react-window';
4
+ export type { ListChildComponentProps, FixedSizeListProps } from 'react-window';
5
5
  export type { ListProps, ListHandle } from './List';
@@ -43,25 +43,38 @@ function useCustom(keys, overrideLocale) {
43
43
  if (overrideLocale) {
44
44
  componentLocale = mergeObject([componentLocale, overrideLocale]);
45
45
  }
46
- var defaultFormatDate = (0, _react.useCallback)(function (date, formatStr) {
47
- var _locale$Calendar;
48
- return (0, _date.format)((0, _date.isValid)(date) ? date : new Date(), formatStr, {
49
- locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar = locale.Calendar) === null || _locale$Calendar === void 0 ? void 0 : _locale$Calendar.dateLocale
50
- });
51
- }, [(_locale$Calendar2 = locale.Calendar) === null || _locale$Calendar2 === void 0 ? void 0 : _locale$Calendar2.dateLocale]);
52
- var defaultParseDate = (0, _react.useCallback)(function (dateString, formatString) {
46
+ var _formatDate = (0, _react.useCallback)(function (date, formatStr, options) {
47
+ try {
48
+ var _locale$Calendar;
49
+ if (formatDate) {
50
+ return formatDate(date, formatStr, options);
51
+ }
52
+ return (0, _date.format)((0, _date.isValid)(date) ? date : new Date(), formatStr, (0, _extends2.default)({
53
+ locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar = locale.Calendar) === null || _locale$Calendar === void 0 ? void 0 : _locale$Calendar.dateLocale
54
+ }, options));
55
+ } catch (error) {
56
+ if (process.env.NODE_ENV === 'development') {
57
+ console.error('Error: Invalid date format', error);
58
+ }
59
+ return 'Error: Invalid date format';
60
+ }
61
+ }, [formatDate, locale === null || locale === void 0 ? void 0 : (_locale$Calendar2 = locale.Calendar) === null || _locale$Calendar2 === void 0 ? void 0 : _locale$Calendar2.dateLocale]);
62
+ var _parseDate = (0, _react.useCallback)(function (dateString, formatString, referenceDate, options) {
53
63
  var _locale$Calendar3;
54
- return (0, _date.parse)(dateString, formatString, new Date(), {
64
+ if (parseDate) {
65
+ return parseDate(dateString, formatString, referenceDate, options);
66
+ }
67
+ return (0, _date.parse)(dateString, formatString, referenceDate || new Date(), (0, _extends2.default)({
55
68
  locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar3 = locale.Calendar) === null || _locale$Calendar3 === void 0 ? void 0 : _locale$Calendar3.dateLocale
56
- });
57
- }, [(_locale$Calendar4 = locale.Calendar) === null || _locale$Calendar4 === void 0 ? void 0 : _locale$Calendar4.dateLocale]);
69
+ }, options));
70
+ }, [parseDate, locale === null || locale === void 0 ? void 0 : (_locale$Calendar4 = locale.Calendar) === null || _locale$Calendar4 === void 0 ? void 0 : _locale$Calendar4.dateLocale]);
58
71
  return {
59
72
  locale: componentLocale,
60
73
  rtl: rtl,
61
74
  toasters: toasters,
62
75
  disableRipple: disableRipple,
63
- formatDate: formatDate || defaultFormatDate,
64
- parseDate: parseDate || defaultParseDate
76
+ formatDate: _formatDate,
77
+ parseDate: _parseDate
65
78
  };
66
79
  }
67
80
  var _default = exports.default = useCustom;
@@ -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 () {
@@ -41,9 +41,12 @@ var matchMedia = function matchMedia(query) {
41
41
  */
42
42
  function useMediaQueryOld(query) {
43
43
  var queries = Array.isArray(query) ? query : [query];
44
- var mediaQueries = queries.map(function (query) {
45
- return mediaQuerySizeMap[query] || query;
46
- });
44
+ var mediaQueries = (0, _react.useMemo)(function () {
45
+ return queries.map(function (query) {
46
+ return mediaQuerySizeMap[query] || query;
47
+ });
48
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ [].concat(queries));
47
50
  var _useState = (0, _react.useState)(function () {
48
51
  return mediaQueries.map(function (query) {
49
52
  return (0, _pick.default)(matchMedia(query), ['matches', 'media']);
@@ -87,9 +90,12 @@ function useMediaQueryOld(query) {
87
90
  function useMediaQuery(query) {
88
91
  var _React$useSyncExterna;
89
92
  var queries = Array.isArray(query) ? query : [query];
90
- var mediaQueries = queries.map(function (query) {
91
- return mediaQuerySizeMap[query] || query;
92
- });
93
+ var mediaQueries = (0, _react.useMemo)(function () {
94
+ return queries.map(function (query) {
95
+ return mediaQuerySizeMap[query] || query;
96
+ });
97
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
98
+ [].concat(queries));
93
99
  var mediaQueryArray = (0, _react.useRef)(mediaQueries.map(function (query) {
94
100
  return matchMedia(query).matches;
95
101
  }));
@@ -3317,7 +3317,7 @@ tbody.rs-anim-collapse.rs-anim-in {
3317
3317
  .rs-calendar-month-view .rs-calendar-month-dropdown {
3318
3318
  display: block;
3319
3319
  }
3320
- .rs-calendar-month-view .rs-calendar-month-dropdown-content {
3320
+ .rs-calendar-month-view .rs-calendar-month-dropdown-scroll {
3321
3321
  -webkit-animation: 0.3s linear slideDown;
3322
3322
  animation: 0.3s linear slideDown;
3323
3323
  }
@@ -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
  }