rsuite 5.53.1 → 5.54.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 (106) hide show
  1. package/AutoComplete/styles/index.css +0 -2
  2. package/CHANGELOG.md +28 -0
  3. package/Cascader/styles/index.css +0 -2
  4. package/CheckPicker/styles/index.css +0 -2
  5. package/CheckTree/styles/index.css +0 -2
  6. package/CheckTreePicker/styles/index.css +0 -2
  7. package/DatePicker/styles/index.css +0 -2
  8. package/DateRangePicker/styles/index.css +0 -2
  9. package/FormGroup/styles/index.css +3 -0
  10. package/FormGroup/styles/index.less +2 -0
  11. package/InlineEdit/package.json +7 -0
  12. package/InlineEdit/styles/index.css +112 -0
  13. package/InlineEdit/styles/index.less +48 -0
  14. package/InputGroup/styles/index.css +0 -2
  15. package/InputGroup/styles/index.less +0 -2
  16. package/InputNumber/styles/index.css +0 -2
  17. package/InputPicker/styles/index.css +0 -2
  18. package/MultiCascader/styles/index.css +0 -2
  19. package/Pagination/styles/index.css +0 -2
  20. package/SelectPicker/styles/index.css +0 -2
  21. package/TagInput/styles/index.css +1 -4
  22. package/TagPicker/styles/index.css +1 -4
  23. package/TagPicker/styles/index.less +1 -2
  24. package/cjs/CheckTreePicker/CheckTreePicker.js +20 -10
  25. package/cjs/DatePicker/DatePicker.js +1 -1
  26. package/cjs/DateRangePicker/DateRangePicker.js +5 -0
  27. package/cjs/InlineEdit/EditableControls.d.ts +8 -0
  28. package/cjs/InlineEdit/EditableControls.js +34 -0
  29. package/cjs/InlineEdit/InlineEdit.d.ts +56 -0
  30. package/cjs/InlineEdit/InlineEdit.js +98 -0
  31. package/cjs/InlineEdit/index.d.ts +3 -0
  32. package/cjs/InlineEdit/index.js +9 -0
  33. package/cjs/InlineEdit/renderChildren.d.ts +12 -0
  34. package/cjs/InlineEdit/renderChildren.js +40 -0
  35. package/cjs/InlineEdit/useEditState.d.ts +22 -0
  36. package/cjs/InlineEdit/useEditState.js +82 -0
  37. package/cjs/InlineEdit/useFocusEvent.d.ts +14 -0
  38. package/cjs/InlineEdit/useFocusEvent.js +61 -0
  39. package/cjs/Input/Input.js +6 -3
  40. package/cjs/InputPicker/InputPicker.js +6 -5
  41. package/cjs/Slider/Slider.d.ts +2 -0
  42. package/cjs/Slider/Slider.js +4 -2
  43. package/cjs/TreePicker/TreePicker.js +20 -11
  44. package/cjs/index.d.ts +2 -0
  45. package/cjs/index.js +3 -1
  46. package/cjs/internals/Picker/ListCheckItem.js +0 -1
  47. package/cjs/internals/Picker/Listbox.d.ts +5 -1
  48. package/cjs/internals/Picker/Listbox.js +6 -5
  49. package/cjs/internals/Picker/hooks/usePickerRef.js +2 -0
  50. package/cjs/internals/Picker/types.d.ts +2 -0
  51. package/cjs/internals/symbols.d.ts +2 -0
  52. package/cjs/internals/symbols.js +9 -0
  53. package/cjs/utils/getDataGroupBy.d.ts +0 -1
  54. package/cjs/utils/getDataGroupBy.js +3 -5
  55. package/dist/rsuite-no-reset-rtl.css +91 -4
  56. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  57. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  58. package/dist/rsuite-no-reset.css +91 -4
  59. package/dist/rsuite-no-reset.min.css +1 -1
  60. package/dist/rsuite-no-reset.min.css.map +1 -1
  61. package/dist/rsuite-rtl.css +91 -4
  62. package/dist/rsuite-rtl.min.css +1 -1
  63. package/dist/rsuite-rtl.min.css.map +1 -1
  64. package/dist/rsuite.css +91 -4
  65. package/dist/rsuite.js +89 -12
  66. package/dist/rsuite.js.map +1 -1
  67. package/dist/rsuite.min.css +1 -1
  68. package/dist/rsuite.min.css.map +1 -1
  69. package/dist/rsuite.min.js +1 -1
  70. package/dist/rsuite.min.js.map +1 -1
  71. package/esm/CheckTreePicker/CheckTreePicker.js +20 -10
  72. package/esm/DatePicker/DatePicker.js +1 -1
  73. package/esm/DateRangePicker/DateRangePicker.js +5 -0
  74. package/esm/InlineEdit/EditableControls.d.ts +8 -0
  75. package/esm/InlineEdit/EditableControls.js +28 -0
  76. package/esm/InlineEdit/InlineEdit.d.ts +56 -0
  77. package/esm/InlineEdit/InlineEdit.js +92 -0
  78. package/esm/InlineEdit/index.d.ts +3 -0
  79. package/esm/InlineEdit/index.js +3 -0
  80. package/esm/InlineEdit/renderChildren.d.ts +12 -0
  81. package/esm/InlineEdit/renderChildren.js +34 -0
  82. package/esm/InlineEdit/useEditState.d.ts +22 -0
  83. package/esm/InlineEdit/useEditState.js +76 -0
  84. package/esm/InlineEdit/useFocusEvent.d.ts +14 -0
  85. package/esm/InlineEdit/useFocusEvent.js +56 -0
  86. package/esm/Input/Input.js +6 -3
  87. package/esm/InputPicker/InputPicker.js +6 -5
  88. package/esm/Slider/Slider.d.ts +2 -0
  89. package/esm/Slider/Slider.js +4 -2
  90. package/esm/TreePicker/TreePicker.js +20 -11
  91. package/esm/index.d.ts +2 -0
  92. package/esm/index.js +1 -0
  93. package/esm/internals/Picker/ListCheckItem.js +0 -1
  94. package/esm/internals/Picker/Listbox.d.ts +5 -1
  95. package/esm/internals/Picker/Listbox.js +7 -6
  96. package/esm/internals/Picker/hooks/usePickerRef.js +2 -0
  97. package/esm/internals/Picker/types.d.ts +2 -0
  98. package/esm/internals/symbols.d.ts +2 -0
  99. package/esm/internals/symbols.js +3 -0
  100. package/esm/utils/getDataGroupBy.d.ts +0 -1
  101. package/esm/utils/getDataGroupBy.js +2 -3
  102. package/package.json +1 -1
  103. package/styles/color-modes/dark.less +3 -0
  104. package/styles/color-modes/high-contrast.less +3 -0
  105. package/styles/color-modes/light.less +3 -0
  106. package/styles/index.less +1 -0
@@ -24,6 +24,7 @@ var _utils = require("../../utils");
24
24
  var _ListItemGroup = _interopRequireDefault(require("./ListItemGroup"));
25
25
  var _getDataGroupBy = require("../../utils/getDataGroupBy");
26
26
  var _useCombobox2 = _interopRequireDefault(require("./hooks/useCombobox"));
27
+ var _symbols = require("../../internals/symbols");
27
28
  var _this = void 0;
28
29
  var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
29
30
  var _props$data = props.data,
@@ -92,7 +93,7 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
92
93
  });
93
94
  var getRowHeight = function getRowHeight(list, index) {
94
95
  var item = list[index];
95
- if (group && item[_getDataGroupBy.KEY_GROUP] && index !== 0) {
96
+ if (group && item[_symbols.RSUITE_PICKER_GROUP_KEY] && index !== 0) {
96
97
  return rowGroupHeight;
97
98
  }
98
99
  return rowHeight;
@@ -121,7 +122,7 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
121
122
  var filteredItems = group ? data.filter(function (item) {
122
123
  var _item$parent;
123
124
  // Display group title items
124
- if (item[_getDataGroupBy.KEY_GROUP]) return true;
125
+ if (item[_symbols.RSUITE_PICKER_GROUP_KEY]) return true;
125
126
 
126
127
  // Display items under the unfolded group
127
128
  // FIXME-Doma
@@ -145,7 +146,7 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
145
146
  var item = itemData || data[index];
146
147
  var value = item[valueKey];
147
148
  var label = item[labelKey];
148
- if ((0, _isUndefined.default)(label) && !item[_getDataGroupBy.KEY_GROUP]) {
149
+ if ((0, _isUndefined.default)(label) && !item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
149
150
  throw Error("labelKey \"" + labelKey + "\" is not defined in \"data\" : " + index);
150
151
  }
151
152
 
@@ -156,7 +157,7 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
156
157
  * Render <ListboxGroup>
157
158
  * when if `group` is enabled
158
159
  */
159
- if (group && item[_getDataGroupBy.KEY_GROUP]) {
160
+ if (group && item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
160
161
  var groupValue = item[_getDataGroupBy.KEY_GROUP_TITLE];
161
162
  // TODO: grouped options should be owned by group
162
163
  return /*#__PURE__*/_react.default.createElement(_ListItemGroup.default, {
@@ -170,7 +171,7 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
170
171
  key: "group-" + groupValue,
171
172
  onClick: handleGroupTitleClick.bind(null, groupValue)
172
173
  }, renderMenuGroup ? renderMenuGroup(groupValue, item) : groupValue);
173
- } else if ((0, _isUndefined.default)(value) && !(0, _isUndefined.default)(item[_getDataGroupBy.KEY_GROUP])) {
174
+ } else if ((0, _isUndefined.default)(value) && !(0, _isUndefined.default)(item[_symbols.RSUITE_PICKER_GROUP_KEY])) {
174
175
  throw Error("valueKey \"" + valueKey + "\" is not defined in \"data\" : " + index + " ");
175
176
  }
176
177
  var disabled = disabledItemValues === null || disabledItemValues === void 0 ? void 0 : disabledItemValues.some(function (disabledValue) {
@@ -6,6 +6,7 @@ exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _useEventCallback = _interopRequireDefault(require("../../../utils/useEventCallback"));
9
+ var _symbols = require("../../../internals/symbols");
9
10
  /**
10
11
  * A hook of the exposed method of Picker
11
12
  */
@@ -69,6 +70,7 @@ function usePickerRef(ref, parmas) {
69
70
  }
70
71
  return list === null || list === void 0 ? void 0 : list.current;
71
72
  },
73
+ type: _symbols.RSUITE_PICKER_TYPE,
72
74
  updatePosition: handleUpdatePosition,
73
75
  open: handleOpen,
74
76
  close: handleClose
@@ -1,7 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { RsRefForwardingComponent } from '../../@types/common';
3
3
  import type { ListHandle } from '../../internals/Windowing';
4
+ import { RSUITE_PICKER_TYPE } from '../../internals/symbols';
4
5
  export interface PickerHandle {
6
+ type?: typeof RSUITE_PICKER_TYPE;
5
7
  root: HTMLElement | null;
6
8
  list?: ListHandle;
7
9
  overlay?: HTMLElement | null;
@@ -0,0 +1,2 @@
1
+ export declare const RSUITE_PICKER_TYPE: symbol;
2
+ export declare const RSUITE_PICKER_GROUP_KEY: unique symbol;
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.RSUITE_PICKER_GROUP_KEY = exports.RSUITE_PICKER_TYPE = void 0;
6
+ var RSUITE_PICKER_TYPE = Symbol.for('rsuite.picker');
7
+ exports.RSUITE_PICKER_TYPE = RSUITE_PICKER_TYPE;
8
+ var RSUITE_PICKER_GROUP_KEY = Symbol.for('rsuite.picker_group_key');
9
+ exports.RSUITE_PICKER_GROUP_KEY = RSUITE_PICKER_GROUP_KEY;
@@ -1,4 +1,3 @@
1
- export declare const KEY_GROUP: string | symbol;
2
1
  export declare const KEY_GROUP_TITLE = "groupTitle";
3
2
  export declare function getDataGroupBy<T>(data: readonly T[], key: string, sort?: (isGroup: boolean) => <T>(a: T, b: T) => number): (T | {
4
3
  groupTitle: string;
@@ -4,12 +4,10 @@
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
5
  exports.__esModule = true;
6
6
  exports.getDataGroupBy = getDataGroupBy;
7
- exports.KEY_GROUP_TITLE = exports.KEY_GROUP = void 0;
7
+ exports.KEY_GROUP_TITLE = void 0;
8
8
  var _groupBy2 = _interopRequireDefault(require("lodash/groupBy"));
9
9
  var _treeUtils = require("../utils/treeUtils");
10
- var hasSymbol = typeof Symbol === 'function';
11
- var KEY_GROUP = hasSymbol ? Symbol('_$grouped') : '_$grouped';
12
- exports.KEY_GROUP = KEY_GROUP;
10
+ var _symbols = require("../internals/symbols");
13
11
  var KEY_GROUP_TITLE = 'groupTitle';
14
12
  exports.KEY_GROUP_TITLE = KEY_GROUP_TITLE;
15
13
  function getDataGroupBy(data, key, sort) {
@@ -21,7 +19,7 @@ function getDataGroupBy(data, key, sort) {
21
19
  children = _ref[1];
22
20
  return _ref2 = {
23
21
  children: isSort ? children.sort(sort(false)) : children
24
- }, _ref2[KEY_GROUP_TITLE] = groupTitle, _ref2[KEY_GROUP] = true, _ref2;
22
+ }, _ref2[KEY_GROUP_TITLE] = groupTitle, _ref2[_symbols.RSUITE_PICKER_GROUP_KEY] = true, _ref2;
25
23
  });
26
24
  if (isSort) {
27
25
  groups.sort(sort(true));
@@ -264,6 +264,7 @@
264
264
  --rs-input-bg: var(--rs-gray-0);
265
265
  --rs-input-focus-border: var(--rs-primary-500);
266
266
  --rs-input-disabled-bg: var(--rs-gray-50);
267
+ --rs-inline-edit-hover-bg: var(--rs-gray-200);
267
268
  --rs-listbox-option-hover-bg: rgb(from var(--rs-primary-100) r g b / 50%);
268
269
  --rs-listbox-option-hover-text: var(--rs-primary-700);
269
270
  --rs-listbox-option-selected-text: var(--rs-primary-700);
@@ -634,6 +635,7 @@
634
635
  --rs-input-bg: var(--rs-gray-800);
635
636
  --rs-input-focus-border: var(--rs-primary-500);
636
637
  --rs-input-disabled-bg: var(--rs-gray-700);
638
+ --rs-inline-edit-hover-bg: var(--rs-gray-500);
637
639
  --rs-listbox-option-hover-bg: var(--rs-gray-600);
638
640
  --rs-listbox-option-hover-text: currentColor;
639
641
  --rs-listbox-option-selected-text: var(--rs-primary-500);
@@ -999,6 +1001,7 @@
999
1001
  --rs-input-bg: var(--rs-gray-800);
1000
1002
  --rs-input-focus-border: var(--rs-primary-500);
1001
1003
  --rs-input-disabled-bg: var(--rs-gray-700);
1004
+ --rs-inline-edit-hover-bg: transparent;
1002
1005
  --rs-listbox-option-hover-bg: transparent;
1003
1006
  --rs-listbox-option-hover-text: var(--rs-primary-500);
1004
1007
  --rs-listbox-option-selected-text: var(--rs-primary-500);
@@ -5543,6 +5546,9 @@ label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
5543
5546
  .rs-form-inline .rs-form-group .rs-sr-only + .rs-form-control-wrapper {
5544
5547
  margin-right: 0;
5545
5548
  }
5549
+ .rs-form-group {
5550
+ position: relative;
5551
+ }
5546
5552
  .rs-form:not(.rs-form-inline) .rs-form-group:not(:last-child) {
5547
5553
  margin-bottom: 24px;
5548
5554
  }
@@ -8056,7 +8062,6 @@ textarea.rs-input-sm {
8056
8062
  width: 100%;
8057
8063
  border: none;
8058
8064
  outline: none;
8059
- padding-left: 36px;
8060
8065
  }
8061
8066
  .rs-input-group.rs-input-group-inside .rs-input-group-btn,
8062
8067
  .rs-input-group.rs-input-group-inside .rs-input-group-addon {
@@ -8071,7 +8076,6 @@ textarea.rs-input-sm {
8071
8076
  background-color: transparent;
8072
8077
  border: none;
8073
8078
  color: inherit;
8074
- position: absolute;
8075
8079
  height: 34px;
8076
8080
  padding: 7px 11px;
8077
8081
  border-radius: 6px 0 0 6px;
@@ -8697,6 +8701,90 @@ textarea.rs-picker-search-input {
8697
8701
  .rs-picker-focused .rs-picker-search-input {
8698
8702
  z-index: 6;
8699
8703
  }
8704
+ .rs-inline-edit {
8705
+ position: relative;
8706
+ display: inline-block;
8707
+ }
8708
+ .rs-inline-edit .rs-plaintext {
8709
+ /* stylelint-disable */
8710
+ padding: 7px 11px;
8711
+ font-size: 14px;
8712
+ line-height: 1.42857143;
8713
+ /* stylelint-enable */
8714
+ border-radius: 6px;
8715
+ }
8716
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
8717
+ .rs-inline-edit .rs-plaintext {
8718
+ height: 36px;
8719
+ }
8720
+ }
8721
+ textarea.rs-inline-edit .rs-plaintext {
8722
+ height: auto;
8723
+ }
8724
+ .rs-inline-edit .rs-plaintext:hover {
8725
+ background-color: #e5e5ea;
8726
+ background-color: var(--rs-inline-edit-hover-bg);
8727
+ }
8728
+ .rs-inline-edit-disabled .rs-plaintext:hover {
8729
+ background-color: transparent;
8730
+ }
8731
+ .rs-inline-edit-controls {
8732
+ position: absolute;
8733
+ inset-block-start: 100%;
8734
+ inset-inline-end: 0px;
8735
+ -webkit-margin-before: 6px;
8736
+ margin-block-start: 6px;
8737
+ z-index: 7;
8738
+ }
8739
+ .rs-inline-edit-controls .rs-btn {
8740
+ -webkit-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.12), 0 0 10px rgba(0, 0, 0, 0.06);
8741
+ box-shadow: 0 4px 4px rgba(0, 0, 0, 0.12), 0 0 10px rgba(0, 0, 0, 0.06);
8742
+ }
8743
+ .rs-inline-edit-xs .rs-plaintext {
8744
+ /* stylelint-disable */
8745
+ padding: 1px 11px;
8746
+ font-size: 12px;
8747
+ line-height: 1.66666667;
8748
+ /* stylelint-enable */
8749
+ }
8750
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
8751
+ .rs-inline-edit-xs .rs-plaintext {
8752
+ height: 24px;
8753
+ }
8754
+ }
8755
+ textarea.rs-inline-edit-xs .rs-plaintext {
8756
+ height: auto;
8757
+ }
8758
+ .rs-inline-edit-lg .rs-plaintext {
8759
+ /* stylelint-disable */
8760
+ padding: 9px 11px;
8761
+ font-size: 16px;
8762
+ line-height: 1.375;
8763
+ /* stylelint-enable */
8764
+ }
8765
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
8766
+ .rs-inline-edit-lg .rs-plaintext {
8767
+ height: 42px;
8768
+ }
8769
+ }
8770
+ textarea.rs-inline-edit-lg .rs-plaintext {
8771
+ height: auto;
8772
+ }
8773
+ .rs-inline-edit-sm .rs-plaintext {
8774
+ /* stylelint-disable */
8775
+ padding: 4px 11px;
8776
+ font-size: 14px;
8777
+ line-height: 1.42857143;
8778
+ /* stylelint-enable */
8779
+ }
8780
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
8781
+ .rs-inline-edit-sm .rs-plaintext {
8782
+ height: 30px;
8783
+ }
8784
+ }
8785
+ textarea.rs-inline-edit-sm .rs-plaintext {
8786
+ height: auto;
8787
+ }
8700
8788
  .rs-list {
8701
8789
  position: relative;
8702
8790
  -webkit-box-shadow: 0 1px 0 #e5e5ea, 0 -1px 0 #e5e5ea;
@@ -13714,8 +13802,7 @@ textarea.rs-picker-search-input {
13714
13802
  display: contents;
13715
13803
  }
13716
13804
  .rs-plaintext .rs-tag {
13717
- margin-right: 6px;
13718
- margin-bottom: 6px;
13805
+ margin: 0;
13719
13806
  }
13720
13807
  .rs-picker-disabled-options .rs-picker-toggle {
13721
13808
  padding-left: 32px !important;