rsuite 5.64.2 → 5.65.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 (97) hide show
  1. package/AutoComplete/styles/index.css +14 -6
  2. package/CHANGELOG.md +31 -0
  3. package/Cascader/styles/index.css +14 -6
  4. package/CheckPicker/styles/index.css +14 -6
  5. package/CheckTree/styles/index.css +14 -6
  6. package/CheckTreePicker/styles/index.css +14 -6
  7. package/DatePicker/styles/index.css +14 -6
  8. package/DateRangePicker/styles/index.css +14 -6
  9. package/Divider/styles/index.css +3 -1
  10. package/Divider/styles/index.less +3 -1
  11. package/HStack/package.json +7 -0
  12. package/InputPicker/styles/index.css +14 -6
  13. package/MultiCascadeTree/styles/index.css +14 -6
  14. package/MultiCascader/styles/index.css +14 -6
  15. package/Pagination/styles/index.css +17 -7
  16. package/Progress/styles/index.css +1 -0
  17. package/Progress/styles/index.less +1 -0
  18. package/SelectPicker/styles/index.css +14 -6
  19. package/Table/styles/index.css +14 -7
  20. package/Table/styles/index.less +11 -7
  21. package/TagInput/styles/index.css +14 -6
  22. package/TagPicker/styles/index.css +14 -6
  23. package/Uploader/styles/index.css +3 -0
  24. package/Uploader/styles/index.less +4 -0
  25. package/VStack/package.json +7 -0
  26. package/cjs/DatePicker/DatePicker.js +3 -2
  27. package/cjs/DateRangePicker/DateRangePicker.js +3 -2
  28. package/cjs/Drawer/Drawer.js +1 -0
  29. package/cjs/FormControl/hooks/useField.d.ts +1 -1
  30. package/cjs/FormControl/hooks/useField.js +15 -5
  31. package/cjs/Message/Message.js +10 -6
  32. package/cjs/Notification/Notification.d.ts +9 -5
  33. package/cjs/Notification/Notification.js +10 -6
  34. package/cjs/Stack/HStack.d.ts +10 -0
  35. package/cjs/Stack/HStack.js +29 -0
  36. package/cjs/Stack/VStack.d.ts +7 -0
  37. package/cjs/Stack/VStack.js +32 -0
  38. package/cjs/Stack/index.d.ts +4 -0
  39. package/cjs/Stack/index.js +5 -1
  40. package/cjs/index.d.ts +2 -2
  41. package/cjs/index.js +4 -2
  42. package/cjs/internals/hooks/useCustom.js +1 -1
  43. package/cjs/internals/hooks/useIsomorphicLayoutEffect.js +1 -1
  44. package/cjs/internals/types/index.d.ts +1 -0
  45. package/cjs/toaster/ToastContainer.d.ts +11 -2
  46. package/cjs/toaster/ToastContainer.js +28 -18
  47. package/cjs/toaster/ToastContext.d.ts +2 -0
  48. package/cjs/toaster/hooks/useDelayedClosure.d.ts +27 -0
  49. package/cjs/toaster/hooks/useDelayedClosure.js +47 -0
  50. package/dist/rsuite-no-reset-rtl.css +35 -14
  51. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  52. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  53. package/dist/rsuite-no-reset.css +35 -14
  54. package/dist/rsuite-no-reset.min.css +1 -1
  55. package/dist/rsuite-no-reset.min.css.map +1 -1
  56. package/dist/rsuite-rtl.css +35 -14
  57. package/dist/rsuite-rtl.min.css +1 -1
  58. package/dist/rsuite-rtl.min.css.map +1 -1
  59. package/dist/rsuite.css +35 -14
  60. package/dist/rsuite.js +46 -13
  61. package/dist/rsuite.js.map +1 -1
  62. package/dist/rsuite.min.css +1 -1
  63. package/dist/rsuite.min.css.map +1 -1
  64. package/dist/rsuite.min.js +1 -1
  65. package/dist/rsuite.min.js.map +1 -1
  66. package/esm/DatePicker/DatePicker.js +3 -2
  67. package/esm/DateRangePicker/DateRangePicker.js +3 -2
  68. package/esm/Drawer/Drawer.js +1 -0
  69. package/esm/FormControl/hooks/useField.d.ts +1 -1
  70. package/esm/FormControl/hooks/useField.js +13 -3
  71. package/esm/Message/Message.js +12 -8
  72. package/esm/Notification/Notification.d.ts +9 -5
  73. package/esm/Notification/Notification.js +12 -8
  74. package/esm/Stack/HStack.d.ts +10 -0
  75. package/esm/Stack/HStack.js +24 -0
  76. package/esm/Stack/VStack.d.ts +7 -0
  77. package/esm/Stack/VStack.js +27 -0
  78. package/esm/Stack/index.d.ts +4 -0
  79. package/esm/Stack/index.js +2 -0
  80. package/esm/index.d.ts +2 -2
  81. package/esm/index.js +1 -1
  82. package/esm/internals/hooks/useCustom.js +1 -1
  83. package/esm/internals/hooks/useIsomorphicLayoutEffect.js +1 -1
  84. package/esm/internals/types/index.d.ts +1 -0
  85. package/esm/toaster/ToastContainer.d.ts +11 -2
  86. package/esm/toaster/ToastContainer.js +28 -18
  87. package/esm/toaster/ToastContext.d.ts +2 -0
  88. package/esm/toaster/hooks/useDelayedClosure.d.ts +27 -0
  89. package/esm/toaster/hooks/useDelayedClosure.js +42 -0
  90. package/internals/Picker/styles/index.less +9 -4
  91. package/package.json +1 -2
  92. package/styles/color-modes/dark.less +1 -0
  93. package/styles/color-modes/high-contrast.less +1 -0
  94. package/styles/color-modes/light.less +3 -0
  95. package/styles/color-modes.less +4 -3
  96. package/styles/mixins/color-modes.less +4 -2
  97. package/styles/variables.less +3 -0
@@ -30,13 +30,19 @@ var useMessages = function useMessages() {
30
30
  return key;
31
31
  }, [messages]);
32
32
  var push = (0, _react.useCallback)(function (message, options) {
33
+ var _ref = options || {},
34
+ duration = _ref.duration,
35
+ _ref$mouseReset = _ref.mouseReset,
36
+ mouseReset = _ref$mouseReset === void 0 ? true : _ref$mouseReset;
33
37
  var key = (0, _utils.guid)();
34
38
  setMessages(function (prevMessages) {
35
- return [].concat(prevMessages, [(0, _extends2.default)({
39
+ return [].concat(prevMessages, [{
36
40
  key: key,
37
41
  visible: true,
38
- node: message
39
- }, options)]);
42
+ node: message,
43
+ duration: duration,
44
+ mouseReset: mouseReset
45
+ }]);
40
46
  });
41
47
  return key;
42
48
  }, []);
@@ -107,8 +113,17 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
107
113
  };
108
114
  });
109
115
  var elements = messages.map(function (item) {
110
- return /*#__PURE__*/_react.default.createElement(_Transition.default, {
111
- key: item.key,
116
+ var mouseReset = item.mouseReset,
117
+ duration = item.duration,
118
+ node = item.node;
119
+ return /*#__PURE__*/_react.default.createElement(_ToastContext.default.Provider, {
120
+ value: {
121
+ usedToaster: true,
122
+ mouseReset: mouseReset,
123
+ duration: duration
124
+ },
125
+ key: item.key
126
+ }, /*#__PURE__*/_react.default.createElement(_Transition.default, {
112
127
  in: item.visible,
113
128
  exitedClassName: rootPrefix('toast-fade-exited'),
114
129
  exitingClassName: rootPrefix('toast-fade-exiting'),
@@ -116,31 +131,26 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
116
131
  enteredClassName: rootPrefix('toast-fade-entered'),
117
132
  timeout: 300
118
133
  }, function (transitionProps, ref) {
119
- var _item$node, _item$node$props, _item$node2, _item$node2$props;
134
+ var _node$props, _node$props2;
120
135
  var transitionClassName = transitionProps.className,
121
136
  rest = (0, _objectWithoutPropertiesLoose2.default)(transitionProps, _excluded2);
122
- return /*#__PURE__*/_react.default.cloneElement(item.node, (0, _extends2.default)({}, rest, {
137
+ return /*#__PURE__*/_react.default.cloneElement(node, (0, _extends2.default)({}, rest, {
123
138
  ref: ref,
124
- duration: item.duration,
125
- // Remove the message after the specified time.
126
- onClose: (0, _utils.createChainedFunction)((_item$node = item.node) === null || _item$node === void 0 ? void 0 : (_item$node$props = _item$node.props) === null || _item$node$props === void 0 ? void 0 : _item$node$props.onClose, function () {
139
+ duration: duration,
140
+ onClose: (0, _utils.createChainedFunction)((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.onClose, function () {
127
141
  return remove(item.key);
128
142
  }),
129
- className: merge(rootPrefix('toast'), (_item$node2 = item.node) === null || _item$node2 === void 0 ? void 0 : (_item$node2$props = _item$node2.props) === null || _item$node2$props === void 0 ? void 0 : _item$node2$props.className, transitionClassName)
143
+ className: merge(rootPrefix('toast'), (_node$props2 = node.props) === null || _node$props2 === void 0 ? void 0 : _node$props2.className, transitionClassName)
130
144
  }));
131
- });
145
+ }));
132
146
  });
133
- return /*#__PURE__*/_react.default.createElement(_ToastContext.default.Provider, {
134
- value: {
135
- usedToaster: true
136
- }
137
- }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
147
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
138
148
  ref: function ref(selfRef) {
139
149
  rootRef.current = selfRef;
140
150
  callback === null || callback === void 0 ? void 0 : callback(selfRef);
141
151
  },
142
152
  className: classes
143
- }), elements));
153
+ }), elements);
144
154
  });
145
155
  ToastContainer.getInstance = function (props) {
146
156
  var container = props.container,
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  export interface ToastContextProps {
3
3
  usedToaster?: boolean;
4
+ duration?: number;
5
+ mouseReset?: boolean;
4
6
  }
5
7
  declare const ToastContext: React.Context<ToastContextProps>;
6
8
  export default ToastContext;
@@ -0,0 +1,27 @@
1
+ /// <reference types="react" />
2
+ interface UseDelayedClosureProps {
3
+ /**
4
+ * Callback function to be called when the closure is triggered.
5
+ */
6
+ onClose?: (event?: React.MouseEvent<HTMLButtonElement>) => void;
7
+ /**
8
+ * The duration (in milliseconds) after which the closure should be triggered.
9
+ */
10
+ duration: number;
11
+ /**
12
+ * Optional reference to the target element.
13
+ */
14
+ targetRef?: React.RefObject<HTMLElement>;
15
+ /**
16
+ * Reset the hide timer if the mouse moves over the target element.
17
+ */
18
+ mouseReset?: boolean;
19
+ }
20
+ /**
21
+ * A hook that delays the closure of the message box.
22
+ */
23
+ declare function useDelayedClosure(props: UseDelayedClosureProps): {
24
+ clear: () => void;
25
+ reset: () => void;
26
+ };
27
+ export default useDelayedClosure;
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _on = _interopRequireDefault(require("dom-lib/on"));
9
+ var _hooks = require("../../internals/hooks");
10
+ var _ToastContext = _interopRequireDefault(require("../ToastContext"));
11
+ /**
12
+ * A hook that delays the closure of the message box.
13
+ */
14
+ function useDelayedClosure(props) {
15
+ var onClose = props.onClose,
16
+ durationProp = props.duration,
17
+ targetRef = props.targetRef;
18
+ var _useContext = (0, _react.useContext)(_ToastContext.default),
19
+ usedToaster = _useContext.usedToaster,
20
+ _useContext$duration = _useContext.duration,
21
+ duration = _useContext$duration === void 0 ? durationProp : _useContext$duration,
22
+ mouseReset = _useContext.mouseReset;
23
+ var mouseEnterRef = (0, _react.useRef)();
24
+ var mouseLeaveRef = (0, _react.useRef)();
25
+ var _useTimeout = (0, _hooks.useTimeout)(onClose, duration, usedToaster && duration > 0),
26
+ clear = _useTimeout.clear,
27
+ reset = _useTimeout.reset;
28
+ (0, _hooks.useMount)(function () {
29
+ if (targetRef !== null && targetRef !== void 0 && targetRef.current && mouseReset) {
30
+ if (mouseEnterRef.current || mouseLeaveRef.current) {
31
+ return;
32
+ }
33
+ mouseEnterRef.current = (0, _on.default)(targetRef.current, 'mouseenter', clear);
34
+ mouseLeaveRef.current = (0, _on.default)(targetRef.current, 'mouseleave', reset);
35
+ return function () {
36
+ var _mouseEnterRef$curren, _mouseLeaveRef$curren;
37
+ (_mouseEnterRef$curren = mouseEnterRef.current) === null || _mouseEnterRef$curren === void 0 ? void 0 : _mouseEnterRef$curren.off();
38
+ (_mouseLeaveRef$curren = mouseLeaveRef.current) === null || _mouseLeaveRef$curren === void 0 ? void 0 : _mouseLeaveRef$curren.off();
39
+ };
40
+ }
41
+ });
42
+ return {
43
+ clear: clear,
44
+ reset: reset
45
+ };
46
+ }
47
+ var _default = exports.default = useDelayedClosure;
@@ -340,6 +340,7 @@
340
340
  --rs-list-placeholder-border: var(--rs-primary-500);
341
341
  --rs-timeline-indicator-bg: var(--rs-gray-300);
342
342
  --rs-timeline-indicator-active-bg: var(--rs-primary-500);
343
+ --rs-table-border-color: var(--rs-border-secondary);
343
344
  --rs-table-shadow: rgba(9, 9, 9, 0.08);
344
345
  --rs-table-sort: var(--rs-primary-500);
345
346
  --rs-table-resize: var(--rs-primary-500);
@@ -355,6 +356,8 @@
355
356
  --rs-picker-value: var(--rs-primary-700);
356
357
  --rs-picker-count-bg: var(--rs-primary-500);
357
358
  --rs-picker-count-text: #fff;
359
+ --rs-picker-state-error: var(--rs-state-error);
360
+ --rs-picker-state-error-outline: var(--rs-state-error-outline);
358
361
  --rs-calendar-today-bg: var(--rs-primary-500);
359
362
  --rs-calendar-today-text: #fff;
360
363
  --rs-calendar-range-bg: rgb(from var(--rs-primary-100) r g b / 50%);
@@ -713,6 +716,7 @@
713
716
  --rs-list-placeholder-border: var(--rs-primary-500);
714
717
  --rs-timeline-indicator-bg: var(--rs-gray-500);
715
718
  --rs-timeline-indicator-active-bg: var(--rs-primary-500);
719
+ --rs-table-border-color: var(--rs-border-secondary);
716
720
  --rs-table-shadow: rgba(9, 9, 9, 0.99);
717
721
  --rs-table-sort: var(--rs-primary-500);
718
722
  --rs-table-resize: var(--rs-primary-500);
@@ -1089,6 +1093,7 @@
1089
1093
  --rs-list-placeholder-border: var(--rs-primary-500);
1090
1094
  --rs-timeline-indicator-bg: var(--rs-gray-500);
1091
1095
  --rs-timeline-indicator-active-bg: var(--rs-primary-500);
1096
+ --rs-table-border-color: var(--rs-border-secondary);
1092
1097
  --rs-table-shadow: rgba(9, 9, 9, 0.99);
1093
1098
  --rs-table-sort: var(--rs-primary-500);
1094
1099
  --rs-table-resize: var(--rs-primary-500);
@@ -4742,13 +4747,15 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
4742
4747
  }
4743
4748
  .rs-divider-vertical {
4744
4749
  display: inline-block;
4745
- height: 1em;
4750
+ min-height: 1em;
4751
+ height: 100%;
4746
4752
  width: 1px;
4747
4753
  vertical-align: middle;
4748
4754
  margin: 0 12px;
4749
4755
  }
4750
4756
  .rs-divider-horizontal {
4751
4757
  height: 1px;
4758
+ width: 100%;
4752
4759
  margin: 24px 0;
4753
4760
  }
4754
4761
  .rs-divider-horizontal.rs-divider-with-text {
@@ -11997,6 +12004,7 @@ textarea.rs-inline-edit-sm .rs-plaintext {
11997
12004
  -ms-flex-preferred-size: auto;
11998
12005
  flex-basis: auto;
11999
12006
  padding-right: 0;
12007
+ padding-bottom: 12px;
12000
12008
  width: auto;
12001
12009
  }
12002
12010
  .rs-progress-line.rs-progress-line-vertical .rs-progress-line-bg {
@@ -13709,7 +13717,7 @@ textarea.rs-inline-edit-sm .rs-plaintext {
13709
13717
  width: 100%;
13710
13718
  z-index: 4;
13711
13719
  border-top: 1px solid #f2f2f5;
13712
- border-top: 1px solid var(--rs-border-secondary);
13720
+ border-top: 1px solid var(--rs-table-border-color);
13713
13721
  padding: 10px;
13714
13722
  background-color: #fff;
13715
13723
  background-color: var(--rs-bg-card);
@@ -13855,7 +13863,7 @@ textarea.rs-inline-edit-sm .rs-plaintext {
13855
13863
  background-color: #fff;
13856
13864
  background-color: var(--rs-bg-card);
13857
13865
  border-bottom: 1px solid #f2f2f5;
13858
- border-bottom: 1px solid var(--rs-border-secondary);
13866
+ border-bottom: 1px solid var(--rs-table-border-color);
13859
13867
  }
13860
13868
  .rs-table-cell.first {
13861
13869
  border-right-width: 0;
@@ -13894,7 +13902,7 @@ textarea.rs-inline-edit-sm .rs-plaintext {
13894
13902
  }
13895
13903
  .rs-table-cell-rowspan {
13896
13904
  border-bottom: 1px solid #f2f2f5 !important;
13897
- border-bottom: 1px solid var(--rs-border-secondary) !important;
13905
+ border-bottom: 1px solid var(--rs-table-border-color) !important;
13898
13906
  }
13899
13907
  .rs-table-cell-full-text:hover {
13900
13908
  z-index: 1 !important;
@@ -14002,11 +14010,11 @@ textarea.rs-inline-edit-sm .rs-plaintext {
14002
14010
  }
14003
14011
  .rs-table-bordered {
14004
14012
  border: 1px solid #f2f2f5;
14005
- border: 1px solid var(--rs-border-secondary);
14013
+ border: 1px solid var(--rs-table-border-color);
14006
14014
  }
14007
14015
  .rs-table-cell-bordered .rs-table-cell {
14008
14016
  border-left: 1px solid #f2f2f5;
14009
- border-left: 1px solid var(--rs-border-secondary);
14017
+ border-left: 1px solid var(--rs-table-border-color);
14010
14018
  }
14011
14019
  .rs-table-column-group {
14012
14020
  position: absolute;
@@ -14017,7 +14025,7 @@ textarea.rs-inline-edit-sm .rs-plaintext {
14017
14025
  }
14018
14026
  .rs-table-column-group-header {
14019
14027
  border-bottom: 1px solid #f2f2f5;
14020
- border-bottom: 1px solid var(--rs-border-secondary);
14028
+ border-bottom: 1px solid var(--rs-table-border-color);
14021
14029
  position: absolute;
14022
14030
  width: 100%;
14023
14031
  }
@@ -14028,7 +14036,11 @@ textarea.rs-inline-edit-sm .rs-plaintext {
14028
14036
  .rs-table-column-group-cell {
14029
14037
  position: absolute;
14030
14038
  border-left: 1px solid #f2f2f5;
14031
- border-left: 1px solid var(--rs-border-secondary);
14039
+ border-left: 1px solid var(--rs-table-border-color);
14040
+ }
14041
+ .rs-table-row:not(.rs-table-row-rowspan) {
14042
+ border-bottom: 1px solid #f2f2f5;
14043
+ border-bottom: 1px solid var(--rs-table-border-color);
14032
14044
  }
14033
14045
  .rs-table-cell-expand-wrapper {
14034
14046
  margin-left: 10px;
@@ -15422,6 +15434,9 @@ textarea.rs-inline-edit-sm .rs-plaintext {
15422
15434
  opacity: 0.3;
15423
15435
  cursor: not-allowed;
15424
15436
  }
15437
+ .rs-uploader-file-item-disabled:hover {
15438
+ background-color: transparent !important;
15439
+ }
15425
15440
  .rs-uploader-picture .rs-uploader-file-item-disabled .rs-uploader-file-item-status {
15426
15441
  cursor: not-allowed;
15427
15442
  }
@@ -16670,13 +16685,19 @@ kbd.rs-text {
16670
16685
  -ms-flex-align: center;
16671
16686
  align-items: center;
16672
16687
  }
16673
- .rs-picker-error > .rs-input-group {
16674
- border-color: #f44336 !important;
16675
- border-color: var(--rs-state-error) !important;
16688
+ .rs-picker-error > .rs-picker-input-group {
16689
+ border-color: #f44336;
16690
+ border-color: var(--rs-picker-state-error);
16676
16691
  }
16677
- .rs-picker-error > .rs-input-group:focus-within {
16678
- outline: 3px solid rgb(from #f44336 r g b / 25%) !important;
16679
- outline: var(--rs-state-error-outline) !important;
16692
+ .rs-picker-error > .rs-picker-input-group:hover {
16693
+ border-color: #f44336;
16694
+ border-color: var(--rs-picker-state-error);
16695
+ }
16696
+ .rs-picker-error > .rs-picker-input-group:focus-within {
16697
+ border-color: #f44336;
16698
+ border-color: var(--rs-picker-state-error);
16699
+ outline: 3px solid rgb(from #f44336 r g b / 25%);
16700
+ outline: var(--rs-picker-state-error-outline);
16680
16701
  }
16681
16702
  .rs-picker-toggle {
16682
16703
  display: -webkit-inline-box;