rsuite 5.46.1 → 5.47.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 (161) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/CloseButton/styles/index.less +13 -7
  3. package/Message/styles/mixin.less +8 -0
  4. package/Notification/styles/index.less +8 -0
  5. package/Picker/styles/index.less +0 -9
  6. package/Tag/styles/index.less +2 -5
  7. package/Uploader/styles/index.less +1 -2
  8. package/cjs/Checkbox/Checkbox.d.ts +2 -0
  9. package/cjs/CloseButton/CloseButton.js +3 -5
  10. package/cjs/CustomProvider/CustomProvider.d.ts +3 -3
  11. package/cjs/InputPicker/InputPicker.d.ts +3 -22
  12. package/cjs/InputPicker/InputPicker.js +8 -8
  13. package/cjs/InputPicker/InputPickerContext.d.ts +26 -0
  14. package/cjs/InputPicker/InputPickerContext.js +13 -0
  15. package/cjs/Picker/DropdownMenu.d.ts +1 -0
  16. package/cjs/Picker/DropdownMenu.js +7 -3
  17. package/cjs/Picker/DropdownMenuCheckItem.d.ts +2 -0
  18. package/cjs/Picker/DropdownMenuCheckItem.js +18 -14
  19. package/cjs/Picker/PickerToggle.js +3 -1
  20. package/cjs/RadioTile/RadioTile.d.ts +5 -0
  21. package/cjs/RadioTile/RadioTile.js +5 -0
  22. package/cjs/Tag/Tag.js +7 -1
  23. package/cjs/TagInput/index.d.ts +3 -15
  24. package/cjs/TagInput/index.js +3 -2
  25. package/cjs/TagPicker/index.d.ts +12 -10
  26. package/cjs/TagPicker/index.js +12 -5
  27. package/cjs/Uploader/UploadFileItem.js +19 -5
  28. package/cjs/locales/ar_EG.d.ts +3 -0
  29. package/cjs/locales/ar_EG.js +5 -2
  30. package/cjs/locales/da_DK.d.ts +3 -0
  31. package/cjs/locales/da_DK.js +5 -2
  32. package/cjs/locales/de_DE.d.ts +3 -0
  33. package/cjs/locales/de_DE.js +5 -2
  34. package/cjs/locales/default.d.ts +3 -0
  35. package/cjs/locales/default.js +5 -2
  36. package/cjs/locales/en_US.d.ts +3 -0
  37. package/cjs/locales/en_US.js +5 -2
  38. package/cjs/locales/es_AR.d.ts +3 -0
  39. package/cjs/locales/es_AR.js +5 -2
  40. package/cjs/locales/es_ES.d.ts +3 -0
  41. package/cjs/locales/es_ES.js +5 -2
  42. package/cjs/locales/fa_IR.d.ts +3 -0
  43. package/cjs/locales/fa_IR.js +5 -2
  44. package/cjs/locales/fi_FI.d.ts +3 -0
  45. package/cjs/locales/fi_FI.js +5 -2
  46. package/cjs/locales/fr_FR.d.ts +3 -0
  47. package/cjs/locales/fr_FR.js +5 -2
  48. package/cjs/locales/hu_HU.d.ts +3 -0
  49. package/cjs/locales/hu_HU.js +5 -2
  50. package/cjs/locales/index.d.ts +1 -1
  51. package/cjs/locales/it_IT.d.ts +3 -0
  52. package/cjs/locales/it_IT.js +5 -2
  53. package/cjs/locales/ja_JP.d.ts +3 -0
  54. package/cjs/locales/ja_JP.js +5 -2
  55. package/cjs/locales/kk_KZ.d.ts +3 -0
  56. package/cjs/locales/kk_KZ.js +5 -2
  57. package/cjs/locales/ko_KR.d.ts +3 -0
  58. package/cjs/locales/ko_KR.js +5 -2
  59. package/cjs/locales/ne_NP.d.ts +3 -0
  60. package/cjs/locales/ne_NP.js +5 -2
  61. package/cjs/locales/nl_NL.d.ts +3 -0
  62. package/cjs/locales/nl_NL.js +5 -2
  63. package/cjs/locales/pt_BR.d.ts +3 -0
  64. package/cjs/locales/pt_BR.js +5 -2
  65. package/cjs/locales/ru_RU.d.ts +3 -0
  66. package/cjs/locales/ru_RU.js +6 -3
  67. package/cjs/locales/sv_SE.d.ts +3 -0
  68. package/cjs/locales/sv_SE.js +5 -2
  69. package/cjs/locales/tr_TR.d.ts +3 -0
  70. package/cjs/locales/tr_TR.js +5 -2
  71. package/cjs/locales/zh_CN.d.ts +3 -0
  72. package/cjs/locales/zh_CN.js +5 -2
  73. package/cjs/locales/zh_TW.d.ts +3 -0
  74. package/cjs/locales/zh_TW.js +5 -2
  75. package/dist/rsuite-no-reset-rtl.css +54 -25
  76. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  77. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  78. package/dist/rsuite-no-reset.css +54 -25
  79. package/dist/rsuite-no-reset.min.css +1 -1
  80. package/dist/rsuite-no-reset.min.css.map +1 -1
  81. package/dist/rsuite-rtl.css +54 -25
  82. package/dist/rsuite-rtl.min.css +1 -1
  83. package/dist/rsuite-rtl.min.css.map +1 -1
  84. package/dist/rsuite.css +54 -25
  85. package/dist/rsuite.js +23 -12
  86. package/dist/rsuite.js.map +1 -1
  87. package/dist/rsuite.min.css +1 -1
  88. package/dist/rsuite.min.css.map +1 -1
  89. package/dist/rsuite.min.js +1 -1
  90. package/dist/rsuite.min.js.map +1 -1
  91. package/esm/Checkbox/Checkbox.d.ts +2 -0
  92. package/esm/CloseButton/CloseButton.js +3 -5
  93. package/esm/CustomProvider/CustomProvider.d.ts +3 -3
  94. package/esm/InputPicker/InputPicker.d.ts +3 -22
  95. package/esm/InputPicker/InputPicker.js +6 -5
  96. package/esm/InputPicker/InputPickerContext.d.ts +26 -0
  97. package/esm/InputPicker/InputPickerContext.js +7 -0
  98. package/esm/Picker/DropdownMenu.d.ts +1 -0
  99. package/esm/Picker/DropdownMenu.js +7 -3
  100. package/esm/Picker/DropdownMenuCheckItem.d.ts +2 -0
  101. package/esm/Picker/DropdownMenuCheckItem.js +18 -14
  102. package/esm/Picker/PickerToggle.js +4 -2
  103. package/esm/RadioTile/RadioTile.d.ts +5 -0
  104. package/esm/RadioTile/RadioTile.js +5 -0
  105. package/esm/Tag/Tag.js +8 -2
  106. package/esm/TagInput/index.d.ts +3 -15
  107. package/esm/TagInput/index.js +2 -1
  108. package/esm/TagPicker/index.d.ts +12 -10
  109. package/esm/TagPicker/index.js +11 -4
  110. package/esm/Uploader/UploadFileItem.js +19 -5
  111. package/esm/locales/ar_EG.d.ts +3 -0
  112. package/esm/locales/ar_EG.js +5 -2
  113. package/esm/locales/da_DK.d.ts +3 -0
  114. package/esm/locales/da_DK.js +5 -2
  115. package/esm/locales/de_DE.d.ts +3 -0
  116. package/esm/locales/de_DE.js +5 -2
  117. package/esm/locales/default.d.ts +3 -0
  118. package/esm/locales/default.js +5 -2
  119. package/esm/locales/en_US.d.ts +3 -0
  120. package/esm/locales/en_US.js +5 -2
  121. package/esm/locales/es_AR.d.ts +3 -0
  122. package/esm/locales/es_AR.js +5 -2
  123. package/esm/locales/es_ES.d.ts +3 -0
  124. package/esm/locales/es_ES.js +5 -2
  125. package/esm/locales/fa_IR.d.ts +3 -0
  126. package/esm/locales/fa_IR.js +5 -2
  127. package/esm/locales/fi_FI.d.ts +3 -0
  128. package/esm/locales/fi_FI.js +5 -2
  129. package/esm/locales/fr_FR.d.ts +3 -0
  130. package/esm/locales/fr_FR.js +5 -2
  131. package/esm/locales/hu_HU.d.ts +3 -0
  132. package/esm/locales/hu_HU.js +5 -2
  133. package/esm/locales/index.d.ts +1 -1
  134. package/esm/locales/it_IT.d.ts +3 -0
  135. package/esm/locales/it_IT.js +5 -2
  136. package/esm/locales/ja_JP.d.ts +3 -0
  137. package/esm/locales/ja_JP.js +5 -2
  138. package/esm/locales/kk_KZ.d.ts +3 -0
  139. package/esm/locales/kk_KZ.js +5 -2
  140. package/esm/locales/ko_KR.d.ts +3 -0
  141. package/esm/locales/ko_KR.js +5 -2
  142. package/esm/locales/ne_NP.d.ts +3 -0
  143. package/esm/locales/ne_NP.js +5 -2
  144. package/esm/locales/nl_NL.d.ts +3 -0
  145. package/esm/locales/nl_NL.js +5 -2
  146. package/esm/locales/pt_BR.d.ts +3 -0
  147. package/esm/locales/pt_BR.js +5 -2
  148. package/esm/locales/ru_RU.d.ts +3 -0
  149. package/esm/locales/ru_RU.js +6 -3
  150. package/esm/locales/sv_SE.d.ts +3 -0
  151. package/esm/locales/sv_SE.js +5 -2
  152. package/esm/locales/tr_TR.d.ts +3 -0
  153. package/esm/locales/tr_TR.js +5 -2
  154. package/esm/locales/zh_CN.d.ts +3 -0
  155. package/esm/locales/zh_CN.js +5 -2
  156. package/esm/locales/zh_TW.d.ts +3 -0
  157. package/esm/locales/zh_TW.js +5 -2
  158. package/package.json +1 -1
  159. package/styles/color-modes/dark.less +3 -1
  160. package/styles/color-modes/high-contrast.less +3 -1
  161. package/styles/color-modes/light.less +3 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ # [5.47.0](https://github.com/rsuite/rsuite/compare/v5.46.1...v5.47.0) (2023-12-08)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **CloseButton:** fix close label translation string ([#3483](https://github.com/rsuite/rsuite/issues/3483)) ([feedbde](https://github.com/rsuite/rsuite/commit/feedbde550d96d207d6be690b89c3d12247b87d9))
6
+ - **CloseButton:** improve CloseButton accessibility ([#3488](https://github.com/rsuite/rsuite/issues/3488)) ([92ed9a5](https://github.com/rsuite/rsuite/commit/92ed9a5080e241f7e4057cbbc6e971240fb464fe))
7
+
8
+ ### Features
9
+
10
+ - **TagPicker:** add support for renderMenuItemCheckbox ([#3481](https://github.com/rsuite/rsuite/issues/3481)) ([6b044e9](https://github.com/rsuite/rsuite/commit/6b044e9621db421ea75dc549da27d63493a91261))
11
+
1
12
  ## [5.46.1](https://github.com/rsuite/rsuite/compare/v5.46.0...v5.46.1) (2023-12-01)
2
13
 
3
14
  ### Bug Fixes
@@ -2,18 +2,24 @@
2
2
 
3
3
  // Close button
4
4
  .rs-btn-close {
5
- background: transparent;
6
- position: absolute;
7
- top: 0;
8
- right: 0;
9
- padding: @message-close-btn-padding;
10
- font-size: @message-close-btn-size;
11
- line-height: 1;
12
5
  border: none;
13
6
  outline: none !important;
7
+ background: transparent;
8
+ line-height: 1;
9
+
14
10
  cursor: pointer;
15
11
 
16
12
  .rs-icon {
17
13
  vertical-align: bottom;
18
14
  }
15
+
16
+ &:hover,
17
+ &:focus {
18
+ color: var(--rs-close-button-hover-color);
19
+
20
+ svg path {
21
+ stroke: var(--rs-close-button-hover-color);
22
+ stroke-width: 1;
23
+ }
24
+ }
19
25
  }
@@ -11,6 +11,14 @@
11
11
  color: @text-color;
12
12
  }
13
13
 
14
+ .rs-btn-close {
15
+ position: absolute;
16
+ right: 0;
17
+ top: 0;
18
+ padding: 8px;
19
+ font-size: 12px;
20
+ }
21
+
14
22
  .rs-message-icon-wrapper > .rs-icon,
15
23
  .rs-btn-close {
16
24
  color: @icon-color;
@@ -79,6 +79,14 @@
79
79
  margin-top: 0;
80
80
  }
81
81
  }
82
+
83
+ .rs-btn-close {
84
+ position: absolute;
85
+ right: 0;
86
+ top: 0;
87
+ padding: 8px;
88
+ font-size: 12px;
89
+ }
82
90
  }
83
91
 
84
92
  // Alternate styles
@@ -245,15 +245,6 @@
245
245
  padding: 4px 0;
246
246
  }
247
247
 
248
- &:hover {
249
- color: var(--rs-state-error);
250
- }
251
-
252
- &:hover svg path {
253
- stroke: var(--rs-state-error);
254
- stroke-width: 1;
255
- }
256
-
257
248
  .rs-@{date-picker-prefix} &,
258
249
  .rs-@{date-range-picker-prefix} & {
259
250
  right: (@picker-toggle-clean-right + @picker-item-content-padding-vertical);
@@ -17,11 +17,8 @@
17
17
 
18
18
  &-icon-close {
19
19
  position: absolute;
20
- font-size: 12px;
21
- }
22
-
23
- &-default &-icon-close:hover {
24
- color: var(--rs-tag-close);
20
+ top: 0;
21
+ right: 0;
25
22
  }
26
23
 
27
24
  &-group {
@@ -109,8 +109,7 @@
109
109
 
110
110
  &-btn-remove {
111
111
  position: absolute;
112
- font-size: 12px;
113
- // (36px - font-size)/2
112
+ font-size: 14px;
114
113
  top: 12px;
115
114
  right: @padding-x;
116
115
  color: var(--rs-text-secondary);
@@ -36,6 +36,8 @@ export interface CheckboxProps<V = ValueType> extends WithAsProps {
36
36
  onClick?: (event: React.SyntheticEvent) => void;
37
37
  /** Called when the checkbox is clicked. */
38
38
  onCheckboxClick?: (event: React.SyntheticEvent) => void;
39
+ /** Called when the user presses down a key. */
40
+ onKeyDown?: (event: React.KeyboardEvent) => void;
39
41
  }
40
42
  declare const Checkbox: RsRefForwardingComponent<'div', CheckboxProps>;
41
43
  export default Checkbox;
@@ -14,7 +14,7 @@ var _utils = require("../utils");
14
14
  */
15
15
  var CloseButton = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
16
16
  var _props$as = props.as,
17
- Component = _props$as === void 0 ? 'span' : _props$as,
17
+ Component = _props$as === void 0 ? 'button' : _props$as,
18
18
  _props$classPrefix = props.classPrefix,
19
19
  classPrefix = _props$classPrefix === void 0 ? 'btn-close' : _props$classPrefix,
20
20
  className = props.className,
@@ -27,13 +27,11 @@ var CloseButton = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
27
27
  locale = _useCustom.locale;
28
28
  var classes = merge(className, withClassPrefix());
29
29
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
30
- role: "button"
31
- }, rest, {
30
+ type: "button",
32
31
  ref: ref,
33
32
  className: classes,
34
- title: locale === null || locale === void 0 ? void 0 : locale.closeLabel,
35
33
  "aria-label": locale === null || locale === void 0 ? void 0 : locale.closeLabel
36
- }), /*#__PURE__*/_react.default.createElement(_Close.default, null));
34
+ }, rest), /*#__PURE__*/_react.default.createElement(_Close.default, null));
37
35
  });
38
36
  CloseButton.displayName = 'CloseButton';
39
37
  var _default = CloseButton;
@@ -55,6 +55,8 @@ declare const CustomContext: React.Context<CustomProviderProps<{
55
55
  common?: {
56
56
  loading: string;
57
57
  emptyMessage: string;
58
+ remove: string;
59
+ clear: string;
58
60
  } | undefined;
59
61
  Plaintext?: {
60
62
  unfilled: string;
@@ -134,9 +136,6 @@ declare const CustomContext: React.Context<CustomProviderProps<{
134
136
  } | undefined;
135
137
  InputPicker?: {
136
138
  newItem: string;
137
- /**
138
- * A Map of toast containers
139
- */
140
139
  createOption: string;
141
140
  } | undefined;
142
141
  Uploader?: {
@@ -146,6 +145,7 @@ declare const CustomContext: React.Context<CustomProviderProps<{
146
145
  complete: string;
147
146
  emptyFile: string;
148
147
  upload: string;
148
+ removeFile: string;
149
149
  } | undefined;
150
150
  CloseButton?: {
151
151
  closeLabel: string;
@@ -1,27 +1,8 @@
1
1
  import React from 'react';
2
- import { InputPickerLocale } from '../locales';
3
2
  import { PickerComponent, PickerToggleProps } from '../Picker';
4
- import { TagProps } from '../Tag';
5
- import { ItemDataType, FormControlPickerProps } from '../@types/common';
6
- import { SelectProps } from '../SelectPicker';
7
- export declare type TriggerType = 'Enter' | 'Space' | 'Comma';
8
- export interface InputPickerContextProps {
9
- /** Multiple selections are allowed */
10
- multi?: boolean;
11
- /** Tag related props. */
12
- tagProps: TagProps;
13
- /**
14
- * Set the trigger for creating tags. only valid when creatable
15
- */
16
- trigger: TriggerType | TriggerType[];
17
- /**
18
- * No overlay provides options
19
- */
20
- disabledOptions?: boolean;
21
- /** Callback fired when a tag is removed. */
22
- onTagRemove?: (tag: string, event: React.MouseEvent) => void;
23
- }
24
- export declare const InputPickerContext: React.Context<InputPickerContextProps>;
3
+ import type { ItemDataType, FormControlPickerProps } from '../@types/common';
4
+ import type { InputPickerLocale } from '../locales';
5
+ import type { SelectProps } from '../SelectPicker';
25
6
  interface InputItemDataType extends ItemDataType {
26
7
  create?: boolean;
27
8
  }
@@ -4,7 +4,7 @@
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
6
  exports.__esModule = true;
7
- exports.default = exports.InputPickerContext = void 0;
7
+ exports.default = void 0;
8
8
  var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
@@ -28,12 +28,8 @@ var _Picker = require("../Picker");
28
28
  var _Tag = _interopRequireDefault(require("../Tag"));
29
29
  var _InputAutosize = _interopRequireDefault(require("./InputAutosize"));
30
30
  var _InputSearch = _interopRequireDefault(require("./InputSearch"));
31
+ var _InputPickerContext = _interopRequireDefault(require("./InputPickerContext"));
31
32
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
32
- var InputPickerContext = /*#__PURE__*/_react.default.createContext({
33
- tagProps: {},
34
- trigger: 'Enter'
35
- });
36
- exports.InputPickerContext = InputPickerContext;
37
33
  var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
38
34
  var _merge;
39
35
  var _props$as = props.as,
@@ -104,12 +100,13 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
104
100
  _props$placement = props.placement,
105
101
  placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
106
102
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "appearance", "cleanable", "cacheData", "classPrefix", "data", "disabled", "readOnly", "plaintext", "defaultValue", "defaultOpen", "disabledItemValues", "locale", "toggleAs", "style", "searchable", "open", "placeholder", "groupBy", "menuClassName", "menuStyle", "menuAutoWidth", "menuMaxHeight", "creatable", "shouldDisplayCreateOption", "value", "valueKey", "virtualized", "labelKey", "listProps", "id", "tabIndex", "sort", "renderMenu", "renderExtraFooter", "renderValue", "renderMenuItem", "renderMenuGroup", "onEnter", "onEntered", "onExit", "onExited", "onChange", "onClean", "onCreate", "onSearch", "onSelect", "onOpen", "onClose", "onBlur", "onFocus", "searchBy", "placement"]);
107
- var _useContext = (0, _react.useContext)(InputPickerContext),
103
+ var _useContext = (0, _react.useContext)(_InputPickerContext.default),
108
104
  multi = _useContext.multi,
109
105
  tagProps = _useContext.tagProps,
110
106
  trigger = _useContext.trigger,
111
107
  disabledOptions = _useContext.disabledOptions,
112
- onTagRemove = _useContext.onTagRemove;
108
+ onTagRemove = _useContext.onTagRemove,
109
+ renderMenuItemCheckbox = _useContext.renderMenuItemCheckbox;
113
110
  if (groupBy === valueKey || groupBy === labelKey) {
114
111
  throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');
115
112
  }
@@ -564,6 +561,9 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
564
561
  classPrefix: menuClassPrefix,
565
562
  dropdownMenuItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
566
563
  dropdownMenuItemAs: multi ? _Picker.DropdownMenuCheckItem : _Picker.DropdownMenuItem,
564
+ dropdownMenuItemProps: {
565
+ renderMenuItemCheckbox: renderMenuItemCheckbox
566
+ },
567
567
  activeItemValues: multi ? value : [value],
568
568
  focusItemValue: focusItemValue,
569
569
  maxHeight: menuMaxHeight,
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import type { TagProps } from '../Tag';
3
+ import type { CheckboxProps } from '../Checkbox';
4
+ export declare type TriggerType = 'Enter' | 'Space' | 'Comma';
5
+ export interface TagOnlyProps {
6
+ /** Tag related props. */
7
+ tagProps: TagProps;
8
+ /**
9
+ * Set the trigger for creating tags. only valid when creatable
10
+ */
11
+ trigger: TriggerType | TriggerType[];
12
+ /** Callback fired when a tag is removed. */
13
+ onTagRemove?: (tag: string, event: React.MouseEvent) => void;
14
+ }
15
+ export interface InputPickerContextProps extends TagOnlyProps {
16
+ /** Multiple selections are allowed */
17
+ multi?: boolean;
18
+ /**
19
+ * No overlay provides options
20
+ */
21
+ disabledOptions?: boolean;
22
+ /** Custom render checkbox on menu item */
23
+ renderMenuItemCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
24
+ }
25
+ declare const InputPickerContext: React.Context<InputPickerContextProps>;
26
+ export default InputPickerContext;
@@ -0,0 +1,13 @@
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 = _interopRequireDefault(require("react"));
8
+ var InputPickerContext = /*#__PURE__*/_react.default.createContext({
9
+ tagProps: {},
10
+ trigger: 'Enter'
11
+ });
12
+ var _default = InputPickerContext;
13
+ exports.default = _default;
@@ -17,6 +17,7 @@ export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit
17
17
  style?: React.CSSProperties;
18
18
  dropdownMenuItemAs: React.ElementType | string;
19
19
  dropdownMenuItemClassPrefix?: string;
20
+ dropdownMenuItemProps?: any;
20
21
  rowHeight?: number;
21
22
  rowGroupHeight?: number;
22
23
  virtualized?: boolean;
@@ -14,6 +14,7 @@ var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
14
14
  var _isString = _interopRequireDefault(require("lodash/isString"));
15
15
  var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
16
16
  var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
17
+ var _pickBy = _interopRequireDefault(require("lodash/pickBy"));
17
18
  var _getPosition = _interopRequireDefault(require("dom-lib/getPosition"));
18
19
  var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
19
20
  var _getHeight = _interopRequireDefault(require("dom-lib/getHeight"));
@@ -49,6 +50,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
49
50
  focusItemValue = props.focusItemValue,
50
51
  dropdownMenuItemClassPrefix = props.dropdownMenuItemClassPrefix,
51
52
  DropdownMenuItem = props.dropdownMenuItemAs,
53
+ dropdownMenuItemProps = props.dropdownMenuItemProps,
52
54
  _props$rowHeight = props.rowHeight,
53
55
  rowHeight = _props$rowHeight === void 0 ? 36 : _props$rowHeight,
54
56
  _props$rowGroupHeight = props.rowGroupHeight,
@@ -57,7 +59,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
57
59
  renderMenuItem = props.renderMenuItem,
58
60
  onGroupTitleClick = props.onGroupTitleClick,
59
61
  onSelect = props.onSelect,
60
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "group", "groupBy", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
62
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "group", "groupBy", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "dropdownMenuItemProps", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
61
63
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
62
64
  withClassPrefix = _useClassNames.withClassPrefix,
63
65
  prefix = _useClassNames.prefix,
@@ -155,7 +157,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
155
157
  return (0, _shallowEqual.default)(v, value);
156
158
  });
157
159
  var focus = !(0, _isUndefined.default)(focusItemValue) && (0, _shallowEqual.default)(focusItemValue, value);
158
- return /*#__PURE__*/_react.default.createElement(DropdownMenuItem, {
160
+ return /*#__PURE__*/_react.default.createElement(DropdownMenuItem, (0, _extends2.default)({
159
161
  style: style,
160
162
  key: itemKey,
161
163
  disabled: disabled,
@@ -164,7 +166,9 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
164
166
  value: value,
165
167
  classPrefix: dropdownMenuItemClassPrefix,
166
168
  onSelect: handleSelect.bind(null, item)
167
- }, renderMenuItem ? renderMenuItem(label, item) : label);
169
+ }, (0, _pickBy.default)(dropdownMenuItemProps, function (v) {
170
+ return v !== undefined;
171
+ })), renderMenuItem ? renderMenuItem(label, item) : label);
168
172
  };
169
173
  var filteredItems = group ? data.filter(function (item) {
170
174
  var _item$parent;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { CheckboxProps } from '../Checkbox';
2
3
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
4
  export interface DropdownMenuCheckItemProps extends WithAsProps {
4
5
  active?: boolean;
@@ -16,6 +17,7 @@ export interface DropdownMenuCheckItemProps extends WithAsProps {
16
17
  onCheck?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
17
18
  onSelectItem?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
18
19
  onKeyDown?: (event: React.KeyboardEvent) => void;
20
+ renderMenuItemCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
19
21
  }
20
22
  declare const DropdownMenuCheckItem: RsRefForwardingComponent<'div', DropdownMenuCheckItemProps>;
21
23
  export default DropdownMenuCheckItem;
@@ -32,7 +32,8 @@ var DropdownMenuCheckItem = /*#__PURE__*/_react.default.forwardRef(function (pro
32
32
  onSelect = props.onSelect,
33
33
  onCheck = props.onCheck,
34
34
  onSelectItem = props.onSelectItem,
35
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["active", "as", "checkboxAs", "classPrefix", "checkable", "disabled", "value", "focus", "children", "className", "indeterminate", "onKeyDown", "onSelect", "onCheck", "onSelectItem"]);
35
+ renderMenuItemCheckbox = props.renderMenuItemCheckbox,
36
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["active", "as", "checkboxAs", "classPrefix", "checkable", "disabled", "value", "focus", "children", "className", "indeterminate", "onKeyDown", "onSelect", "onCheck", "onSelectItem", "renderMenuItemCheckbox"]);
36
37
  var handleChange = (0, _react.useCallback)(function (value, checked, event) {
37
38
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, event, checked);
38
39
  }, [onSelect]);
@@ -51,6 +52,19 @@ var DropdownMenuCheckItem = /*#__PURE__*/_react.default.forwardRef(function (pro
51
52
  var checkboxItemClasses = withClassPrefix({
52
53
  focus: focus
53
54
  });
55
+ var checkboxProps = {
56
+ value: value,
57
+ disabled: disabled,
58
+ indeterminate: indeterminate,
59
+ checkable: checkable,
60
+ children: children,
61
+ checked: active,
62
+ className: checkboxItemClasses,
63
+ onKeyDown: disabled ? undefined : onKeyDown,
64
+ onChange: handleChange,
65
+ onClick: handleSelectItem,
66
+ onCheckboxClick: handleCheck
67
+ };
54
68
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
55
69
  role: "option",
56
70
  "aria-selected": active,
@@ -60,19 +74,9 @@ var DropdownMenuCheckItem = /*#__PURE__*/_react.default.forwardRef(function (pro
60
74
  ref: ref,
61
75
  className: className,
62
76
  tabIndex: -1
63
- }), /*#__PURE__*/_react.default.createElement(CheckboxItem, {
64
- value: value,
65
- role: "checkbox",
66
- disabled: disabled,
67
- checked: active,
68
- checkable: checkable,
69
- indeterminate: indeterminate,
70
- className: checkboxItemClasses,
71
- onKeyDown: disabled ? null : onKeyDown,
72
- onChange: handleChange,
73
- onClick: handleSelectItem,
74
- onCheckboxClick: handleCheck
75
- }, children));
77
+ }), renderMenuItemCheckbox ? renderMenuItemCheckbox(checkboxProps) : /*#__PURE__*/_react.default.createElement(CheckboxItem, (0, _extends2.default)({
78
+ role: "checkbox"
79
+ }, checkboxProps)));
76
80
  });
77
81
  DropdownMenuCheckItem.displayName = 'DropdownMenuCheckItem';
78
82
  DropdownMenuCheckItem.propTypes = {
@@ -64,6 +64,8 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
64
64
  label = props.label,
65
65
  name = props.name,
66
66
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "editable", "loading", "cleanable", "tabIndex", "id", "value", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBackspace", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label", "name"]);
67
+ var _useCustom = (0, _utils.useCustom)(),
68
+ locale = _useCustom.locale;
67
69
  var inputRef = (0, _react.useRef)(null);
68
70
  var comboboxRef = (0, _react.useRef)(null);
69
71
  var _useState = (0, _react.useState)(false),
@@ -224,7 +226,7 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
224
226
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["clean"]))),
225
227
  tabIndex: -1,
226
228
  locale: {
227
- closeLabel: 'Clear'
229
+ closeLabel: locale === null || locale === void 0 ? void 0 : locale.clear
228
230
  },
229
231
  onClick: handleClean
230
232
  }), caret && !showCleanButton && /*#__PURE__*/_react.default.createElement(Caret, {
@@ -21,5 +21,10 @@ export interface RadioTileProps<T = ValueType> extends WithAsProps, Omit<React.H
21
21
  /** Callback function with value changed */
22
22
  onChange?: (value?: T, event?: React.ChangeEvent<HTMLInputElement>) => void;
23
23
  }
24
+ /**
25
+ * A series of selectable tile components that behave like Radio.
26
+ * @version 5.35.0
27
+ * @see https://rsuitejs.com/components/radio-tile/
28
+ */
24
29
  declare const RadioTile: React.ForwardRefExoticComponent<RadioTileProps<ValueType> & React.RefAttributes<unknown>>;
25
30
  export default RadioTile;
@@ -14,6 +14,11 @@ var _Stack = _interopRequireDefault(require("../Stack"));
14
14
  var _RadioTileGroup = require("../RadioTileGroup/RadioTileGroup");
15
15
  var _utils = require("../utils");
16
16
  var _useUniqueId = _interopRequireDefault(require("../utils/useUniqueId"));
17
+ /**
18
+ * A series of selectable tile components that behave like Radio.
19
+ * @version 5.35.0
20
+ * @see https://rsuitejs.com/components/radio-tile/
21
+ */
17
22
  var RadioTile = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
18
23
  var _useContext = (0, _react.useContext)(_RadioTileGroup.RadioTileContext),
19
24
  groupValue = _useContext.value,
package/cjs/Tag/Tag.js CHANGED
@@ -33,6 +33,8 @@ var Tag = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
33
  var classes = merge(className, withClassPrefix(size, color, {
34
34
  closable: closable
35
35
  }));
36
+ var _useCustom = (0, _utils.useCustom)(),
37
+ locale = _useCustom.locale;
36
38
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
37
39
  ref: ref,
38
40
  className: classes
@@ -40,7 +42,11 @@ var Tag = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
40
42
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["text"])))
41
43
  }, children), closable && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
42
44
  className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["icon-close"]))),
43
- onClick: onClose
45
+ onClick: onClose,
46
+ tabIndex: -1,
47
+ locale: {
48
+ closeLabel: locale === null || locale === void 0 ? void 0 : locale.remove
49
+ }
44
50
  }));
45
51
  });
46
52
  Tag.displayName = 'Tag';
@@ -1,18 +1,6 @@
1
- import React from 'react';
2
- import { InputPickerProps, TriggerType } from '../InputPicker/InputPicker';
1
+ import { InputPickerProps } from '../InputPicker/InputPicker';
2
+ import { TagOnlyProps } from '../InputPicker/InputPickerContext';
3
3
  import type { PickerComponent } from '../Picker/types';
4
- import type { TagProps } from '../Tag';
5
- export interface TagInputProps extends Omit<InputPickerProps<readonly string[]>, 'data'> {
6
- /** Tag related props. */
7
- tagProps?: TagProps;
8
- /**
9
- * Set the trigger for creating tags. only valid when creatable
10
- *
11
- * @todo Declare as readonly array
12
- */
13
- trigger?: TriggerType | TriggerType[];
14
- /** Callback fired when a tag is removed. */
15
- onTagRemove?: (tag: string, event: React.MouseEvent) => void;
16
- }
4
+ export declare type TagInputProps = Omit<InputPickerProps<readonly string[]>, 'data'> & Partial<TagOnlyProps>;
17
5
  declare const TagInput: PickerComponent<TagInputProps>;
18
6
  export default TagInput;
@@ -8,7 +8,8 @@ exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _InputPicker = _interopRequireWildcard(require("../InputPicker/InputPicker"));
11
+ var _InputPicker = _interopRequireDefault(require("../InputPicker/InputPicker"));
12
+ var _InputPickerContext = _interopRequireDefault(require("../InputPicker/InputPickerContext"));
12
13
  var TagInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
13
14
  var _props$tagProps = props.tagProps,
14
15
  tagProps = _props$tagProps === void 0 ? {} : _props$tagProps,
@@ -35,7 +36,7 @@ var TagInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
35
36
  };
36
37
  });
37
38
  }, [defaultValue, value]);
38
- return /*#__PURE__*/_react.default.createElement(_InputPicker.InputPickerContext.Provider, {
39
+ return /*#__PURE__*/_react.default.createElement(_InputPickerContext.default.Provider, {
39
40
  value: contextValue
40
41
  }, /*#__PURE__*/_react.default.createElement(_InputPicker.default, (0, _extends2.default)({}, rest, {
41
42
  value: value,
@@ -1,16 +1,18 @@
1
1
  import React from 'react';
2
- import { InputPickerProps, TriggerType } from '../InputPicker/InputPicker';
2
+ import { InputPickerProps } from '../InputPicker/InputPicker';
3
+ import { TagOnlyProps } from '../InputPicker/InputPickerContext';
3
4
  import type { PickerComponent } from '../Picker/types';
4
- import type { TagProps } from '../Tag';
5
- export interface TagPickerProps extends InputPickerProps {
6
- /** Tag related props. */
7
- tagProps?: TagProps;
5
+ import type { CheckboxProps } from '../Checkbox';
6
+ export interface TagPickerProps extends InputPickerProps, Partial<TagOnlyProps> {
8
7
  /**
9
- * Set the trigger for creating tags. only valid when creatable
10
- */
11
- trigger?: TriggerType | TriggerType[];
12
- /** Callback fired when a tag is removed. */
13
- onTagRemove?: (tag: string, event: React.MouseEvent) => void;
8
+ * Custom render checkbox on menu item
9
+ * @version 5.47.0
10
+ **/
11
+ renderMenuItemCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
14
12
  }
13
+ /**
14
+ * Multi-select by tag and support new options
15
+ * @see https://rsuitejs.com/components/tag-picker/
16
+ */
15
17
  declare const TagPicker: PickerComponent<TagPickerProps>;
16
18
  export default TagPicker;
@@ -8,23 +8,30 @@ exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _InputPicker = _interopRequireWildcard(require("../InputPicker/InputPicker"));
11
+ var _InputPicker = _interopRequireDefault(require("../InputPicker/InputPicker"));
12
+ var _InputPickerContext = _interopRequireDefault(require("../InputPicker/InputPickerContext"));
13
+ /**
14
+ * Multi-select by tag and support new options
15
+ * @see https://rsuitejs.com/components/tag-picker/
16
+ */
12
17
  var TagPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
13
18
  var _props$tagProps = props.tagProps,
14
19
  tagProps = _props$tagProps === void 0 ? {} : _props$tagProps,
15
20
  _props$trigger = props.trigger,
16
21
  trigger = _props$trigger === void 0 ? 'Enter' : _props$trigger,
17
22
  onTagRemove = props.onTagRemove,
18
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["tagProps", "trigger", "onTagRemove"]);
23
+ renderMenuItemCheckbox = props.renderMenuItemCheckbox,
24
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["tagProps", "trigger", "onTagRemove", "renderMenuItemCheckbox"]);
19
25
  var contextValue = (0, _react.useMemo)(function () {
20
26
  return {
21
27
  multi: true,
22
28
  trigger: trigger,
23
29
  tagProps: tagProps,
24
- onTagRemove: onTagRemove
30
+ onTagRemove: onTagRemove,
31
+ renderMenuItemCheckbox: renderMenuItemCheckbox
25
32
  };
26
- }, [onTagRemove, tagProps, trigger]);
27
- return /*#__PURE__*/_react.default.createElement(_InputPicker.InputPickerContext.Provider, {
33
+ }, [onTagRemove, renderMenuItemCheckbox, tagProps, trigger]);
34
+ return /*#__PURE__*/_react.default.createElement(_InputPickerContext.default.Provider, {
28
35
  value: contextValue
29
36
  }, /*#__PURE__*/_react.default.createElement(_InputPicker.default, (0, _extends2.default)({}, rest, {
30
37
  ref: ref