rsuite 6.0.0 → 6.1.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.
- package/Accordion/styles/index.scss +3 -0
- package/Animation/styles/_animation.scss +95 -0
- package/Animation/styles/_bounce.scss +36 -0
- package/Animation/styles/_collapse.scss +23 -0
- package/Animation/styles/_fade.scss +10 -0
- package/Animation/styles/_mixin.scss +15 -0
- package/Animation/styles/_slide.scss +34 -0
- package/Animation/styles/_variables.scss +4 -0
- package/Animation/styles/index.scss +8 -0
- package/AutoComplete/styles/index.scss +43 -0
- package/Avatar/styles/index.scss +48 -0
- package/AvatarGroup/styles/index.scss +27 -0
- package/Badge/styles/_variables.scss +48 -0
- package/Badge/styles/index.scss +111 -0
- package/Box/styles/index.scss +1 -0
- package/Breadcrumb/styles/index.scss +50 -0
- package/Button/styles/_mixin.scss +83 -0
- package/Button/styles/_variables.scss +38 -0
- package/Button/styles/index.scss +374 -0
- package/ButtonGroup/styles/index.scss +96 -0
- package/ButtonToolbar/styles/index.scss +9 -0
- package/CHANGELOG.md +31 -0
- package/Calendar/styles/_variables.scss +16 -0
- package/Calendar/styles/index.scss +673 -0
- package/Card/styles/index.scss +63 -0
- package/CardGroup/styles/index.scss +10 -0
- package/Carousel/styles/index.scss +204 -0
- package/CascadeTree/styles/_search.scss +39 -0
- package/CascadeTree/styles/index.scss +83 -0
- package/Cascader/styles/index.scss +5 -0
- package/Center/styles/index.scss +11 -0
- package/CheckPicker/styles/index.scss +23 -0
- package/CheckTree/styles/_variables.scss +5 -0
- package/CheckTree/styles/index.scss +121 -0
- package/CheckTreePicker/styles/index.scss +20 -0
- package/Checkbox/styles/_mixin.scss +5 -0
- package/Checkbox/styles/_variables.scss +4 -0
- package/Checkbox/styles/index.scss +158 -0
- package/CheckboxGroup/styles/index.scss +14 -0
- package/Col/styles/index.scss +2 -0
- package/Container/stories/styles.scss +23 -0
- package/Container/styles/index.scss +16 -0
- package/Content/styles/index.scss +6 -0
- package/DateInput/styles/index.scss +1 -0
- package/DatePicker/styles/_mixin.scss +10 -0
- package/DatePicker/styles/index.scss +171 -0
- package/DateRangeInput/styles/index.scss +1 -0
- package/DateRangePicker/styles/index.scss +151 -0
- package/Divider/styles/index.scss +85 -0
- package/Drawer/styles/_mixin.scss +23 -0
- package/Drawer/styles/_variables.scss +18 -0
- package/Drawer/styles/index.scss +244 -0
- package/Dropdown/styles/_mixin.scss +4 -0
- package/Dropdown/styles/_variables.scss +12 -0
- package/Dropdown/styles/index.scss +334 -0
- package/FlexboxGrid/styles/index.scss +82 -0
- package/Footer/styles/index.scss +5 -0
- package/Form/styles/index.scss +3 -0
- package/FormControl/styles/_variables.scss +4 -0
- package/FormControl/styles/index.scss +82 -0
- package/FormControlLabel/styles/index.scss +7 -0
- package/FormErrorMessage/styles/_animation.scss +43 -0
- package/FormErrorMessage/styles/_variables.scss +7 -0
- package/FormErrorMessage/styles/index.scss +146 -0
- package/FormGroup/styles/index.scss +75 -0
- package/FormHelpText/styles/index.scss +21 -0
- package/FormStack/styles/index.scss +15 -0
- package/Grid/styles/_columns.scss +23 -0
- package/Grid/styles/_mixin.scss +110 -0
- package/Grid/styles/_row.scss +44 -0
- package/Grid/styles/_variables.scss +6 -0
- package/Grid/styles/index.scss +115 -0
- package/Header/styles/index.scss +5 -0
- package/Heading/styles/_variables.scss +19 -0
- package/Heading/styles/index.scss +42 -0
- package/HeadingGroup/styles/index.scss +5 -0
- package/Highlight/styles/index.scss +9 -0
- package/IconButton/styles/index.scss +90 -0
- package/Image/styles/index.scss +36 -0
- package/InlineEdit/styles/index.scss +51 -0
- package/Input/styles/_mixin.scss +39 -0
- package/Input/styles/_variables.scss +27 -0
- package/Input/styles/index.scss +23 -0
- package/InputGroup/styles/index.scss +264 -0
- package/InputNumber/styles/index.scss +1 -0
- package/InputPicker/styles/_mixin.scss +7 -0
- package/InputPicker/styles/index.scss +64 -0
- package/Kbd/styles/_mixin.scss +24 -0
- package/Kbd/styles/_variables.scss +13 -0
- package/Kbd/styles/index.scss +21 -0
- package/Link/styles/index.scss +41 -0
- package/List/styles/index.scss +111 -0
- package/Loader/styles/_mixin.scss +37 -0
- package/Loader/styles/_variables.scss +19 -0
- package/Loader/styles/index.scss +120 -0
- package/Menu/styles/index.scss +109 -0
- package/Message/styles/index.scss +189 -0
- package/Modal/styles/_animation.scss +15 -0
- package/Modal/styles/_variables.scss +16 -0
- package/Modal/styles/index.scss +186 -0
- package/MultiCascadeTree/styles/index.scss +35 -0
- package/MultiCascader/styles/index.scss +3 -0
- package/Nav/styles/index.scss +383 -0
- package/Navbar/styles/index.scss +253 -0
- package/Notification/styles/index.scss +116 -0
- package/NumberInput/styles/_mixin.scss +11 -0
- package/NumberInput/styles/index.scss +78 -0
- package/Pagination/styles/_pagination-group.scss +52 -0
- package/Pagination/styles/index.scss +77 -0
- package/Panel/styles/index.scss +122 -0
- package/PanelGroup/styles/index.scss +34 -0
- package/PasswordInput/styles/index.scss +3 -0
- package/PasswordStrengthMeter/styles/index.scss +41 -0
- package/PinInput/styles/index.scss +93 -0
- package/Placeholder/styles/_mixin.scss +9 -0
- package/Placeholder/styles/index.scss +155 -0
- package/Popover/styles/index.scss +224 -0
- package/Popover/styles/mixins.scss +54 -0
- package/Progress/styles/_animation.scss +69 -0
- package/Progress/styles/_mixins.scss +6 -0
- package/Progress/styles/_progress-line.scss +343 -0
- package/Progress/styles/index.scss +3 -0
- package/ProgressCircle/styles/index.scss +2 -0
- package/ProgressCircle/styles/progress-circle.scss +49 -0
- package/Radio/styles/_mixin.scss +5 -0
- package/Radio/styles/_variables.scss +5 -0
- package/Radio/styles/index.scss +147 -0
- package/RadioGroup/styles/_variables.scss +10 -0
- package/RadioGroup/styles/index.scss +83 -0
- package/RadioTile/styles/index.scss +80 -0
- package/RadioTileGroup/styles/index.scss +1 -0
- package/RangeSlider/styles/index.scss +4 -0
- package/Rate/styles/index.scss +141 -0
- package/Row/styles/index.scss +2 -0
- package/SegmentedControl/styles/_mixin.scss +7 -0
- package/SegmentedControl/styles/_variables.scss +43 -0
- package/SegmentedControl/styles/index.scss +147 -0
- package/SelectPicker/styles/index.scss +44 -0
- package/Sidebar/styles/index.scss +17 -0
- package/Sidenav/styles/index.scss +635 -0
- package/Sidenav/styles/mixin.scss +23 -0
- package/Slider/styles/index.scss +298 -0
- package/Stack/styles/_variables.scss +11 -0
- package/Stack/styles/index.scss +79 -0
- package/Stat/styles/index.scss +126 -0
- package/StatGroup/styles/index.scss +10 -0
- package/Steps/styles/index.scss +222 -0
- package/Table/styles/index.scss +473 -0
- package/Table/styles/mixin.scss +8 -0
- package/Tabs/styles/index.scss +24 -0
- package/Tag/styles/_variables.scss +13 -0
- package/Tag/styles/index.scss +62 -0
- package/TagGroup/styles/index.scss +14 -0
- package/TagInput/styles/index.scss +5 -0
- package/TagPicker/styles/index.scss +141 -0
- package/Text/styles/index.scss +142 -0
- package/Text/styles/variables.scss +9 -0
- package/Textarea/styles/index.scss +9 -0
- package/TimePicker/styles/index.scss +1 -0
- package/TimeRangePicker/styles/index.scss +1 -0
- package/Timeline/stories/styles.scss +29 -0
- package/Timeline/styles/_mixin.scss +13 -0
- package/Timeline/styles/index.scss +187 -0
- package/Toggle/styles/index.scss +284 -0
- package/Tooltip/styles/index.scss +160 -0
- package/Tooltip/styles/mixins.scss +56 -0
- package/Tree/styles/_indent-line.scss +8 -0
- package/Tree/styles/_toggle.scss +32 -0
- package/Tree/styles/_variables.scss +8 -0
- package/Tree/styles/index.scss +184 -0
- package/TreePicker/styles/index.scss +16 -0
- package/Uploader/styles/_mixin.scss +11 -0
- package/Uploader/styles/index.scss +491 -0
- package/VisuallyHidden/styles/index.scss +11 -0
- package/cjs/Breadcrumb/BreadcrumbItem.js +12 -7
- package/cjs/Cascader/Cascader.js +1 -1
- package/cjs/CheckPicker/CheckPicker.js +1 -1
- package/cjs/CheckTree/CheckTree.js +3 -0
- package/cjs/CheckTree/CheckTreeView.js +7 -3
- package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +1 -0
- package/cjs/CheckTree/hooks/useTreeCheckState.js +54 -3
- package/cjs/CheckTree/utils.d.ts +9 -2
- package/cjs/CheckTree/utils.js +70 -11
- package/cjs/CheckTreePicker/CheckTreePicker.js +2 -1
- package/cjs/Checkbox/Checkbox.js +2 -1
- package/cjs/Checkbox/hooks/useIndeterminateCheckbox.d.ts +19 -0
- package/cjs/Checkbox/hooks/useIndeterminateCheckbox.js +32 -0
- package/cjs/DateInput/DateInput.js +24 -0
- package/cjs/DateInput/hooks/useKeyboardInputEvent.d.ts +2 -1
- package/cjs/DateInput/hooks/useKeyboardInputEvent.js +14 -0
- package/cjs/DatePicker/DatePicker.js +1 -1
- package/cjs/DateRangeInput/DateRangeInput.js +24 -0
- package/cjs/DateRangePicker/DateRangePicker.js +1 -1
- package/cjs/Form/Form.js +5 -1
- package/cjs/InputPicker/InputPicker.js +1 -1
- package/cjs/MultiCascader/MultiCascader.js +1 -1
- package/cjs/Panel/PanelHeader.d.ts +1 -1
- package/cjs/Panel/PanelHeader.js +4 -5
- package/cjs/Rate/Rate.d.ts +8 -0
- package/cjs/Rate/Rate.js +3 -1
- package/cjs/SelectPicker/SelectPicker.js +1 -1
- package/cjs/Tree/hooks/useFlattenTree.d.ts +4 -0
- package/cjs/Tree/hooks/useFlattenTree.js +22 -1
- package/cjs/Tree/hooks/useFocusTree.js +19 -1
- package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +1 -0
- package/cjs/Tree/hooks/useVirtualizedTreeData.js +5 -2
- package/cjs/Tree/utils/focusableTree.d.ts +8 -0
- package/cjs/Tree/utils/focusableTree.js +40 -2
- package/cjs/Tree/utils/index.d.ts +1 -1
- package/cjs/Tree/utils/index.js +3 -1
- package/cjs/TreePicker/TreePicker.js +1 -1
- package/cjs/internals/Picker/PickerToggleTrigger.d.ts +2 -0
- package/cjs/internals/Picker/PickerToggleTrigger.js +3 -1
- package/cjs/internals/Picker/utils.d.ts +2 -0
- package/cjs/internals/Picker/utils.js +13 -1
- package/cjs/internals/StyledBox/StyledBox.d.ts +1 -1
- package/cjs/internals/StyledBox/StyledBox.js +2 -2
- package/dist/rsuite.js +40 -29
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Breadcrumb/BreadcrumbItem.js +10 -5
- package/esm/Cascader/Cascader.js +1 -1
- package/esm/CheckPicker/CheckPicker.js +1 -1
- package/esm/CheckTree/CheckTree.js +3 -0
- package/esm/CheckTree/CheckTreeView.js +7 -3
- package/esm/CheckTree/hooks/useTreeCheckState.d.ts +1 -0
- package/esm/CheckTree/hooks/useTreeCheckState.js +55 -4
- package/esm/CheckTree/utils.d.ts +9 -2
- package/esm/CheckTree/utils.js +71 -12
- package/esm/CheckTreePicker/CheckTreePicker.js +2 -1
- package/esm/Checkbox/Checkbox.js +3 -2
- package/esm/Checkbox/hooks/useIndeterminateCheckbox.d.ts +19 -0
- package/esm/Checkbox/hooks/useIndeterminateCheckbox.js +29 -0
- package/esm/DateInput/DateInput.js +24 -0
- package/esm/DateInput/hooks/useKeyboardInputEvent.d.ts +2 -1
- package/esm/DateInput/hooks/useKeyboardInputEvent.js +14 -0
- package/esm/DatePicker/DatePicker.js +1 -1
- package/esm/DateRangeInput/DateRangeInput.js +24 -0
- package/esm/DateRangePicker/DateRangePicker.js +1 -1
- package/esm/Form/Form.js +5 -1
- package/esm/InputPicker/InputPicker.js +1 -1
- package/esm/MultiCascader/MultiCascader.js +1 -1
- package/esm/Panel/PanelHeader.d.ts +1 -1
- package/esm/Panel/PanelHeader.js +4 -5
- package/esm/Rate/Rate.d.ts +8 -0
- package/esm/Rate/Rate.js +3 -1
- package/esm/SelectPicker/SelectPicker.js +1 -1
- package/esm/Tree/hooks/useFlattenTree.d.ts +4 -0
- package/esm/Tree/hooks/useFlattenTree.js +22 -1
- package/esm/Tree/hooks/useFocusTree.js +20 -2
- package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +1 -0
- package/esm/Tree/hooks/useVirtualizedTreeData.js +5 -2
- package/esm/Tree/utils/focusableTree.d.ts +8 -0
- package/esm/Tree/utils/focusableTree.js +36 -0
- package/esm/Tree/utils/index.d.ts +1 -1
- package/esm/Tree/utils/index.js +1 -1
- package/esm/TreePicker/TreePicker.js +1 -1
- package/esm/internals/Picker/PickerToggleTrigger.d.ts +2 -0
- package/esm/internals/Picker/PickerToggleTrigger.js +3 -1
- package/esm/internals/Picker/utils.d.ts +2 -0
- package/esm/internals/Picker/utils.js +13 -1
- package/esm/internals/StyledBox/StyledBox.d.ts +1 -1
- package/esm/internals/StyledBox/StyledBox.js +2 -2
- package/internals/Box/styles/index.scss +31 -0
- package/internals/Burger/styles/index.scss +72 -0
- package/internals/CloseButton/styles/index.scss +14 -0
- package/internals/Picker/styles/_mixin.scss +219 -0
- package/internals/Picker/styles/_variables.scss +9 -0
- package/internals/Picker/styles/index.scss +476 -0
- package/internals/Ripple/styles/_mixins.scss +10 -0
- package/internals/Ripple/styles/index.scss +40 -0
- package/internals/ScrollView/styles/index.scss +77 -0
- package/internals/SearchBox/styles/index.scss +7 -0
- package/package.json +4 -4
- package/styles/_base.scss +37 -0
- package/styles/_css-reset.scss +345 -0
- package/styles/_themes.scss +132 -0
- package/styles/_variables.scss +48 -0
- package/styles/color-modes/_dark.scss +458 -0
- package/styles/color-modes/_high-contrast.scss +469 -0
- package/styles/color-modes/_light.scss +475 -0
- package/styles/colors/_colors-base.scss +39 -0
- package/styles/colors/_dark.scss +114 -0
- package/styles/colors/_high-contrast.scss +114 -0
- package/styles/colors/_light.scss +115 -0
- package/styles/colors/_palette.scss +413 -0
- package/styles/components.scss +114 -0
- package/styles/index.scss +2 -0
- package/styles/mixins/_color-modes.scss +20 -0
- package/styles/mixins/_combobox.scss +6 -0
- package/styles/mixins/_hacks.scss +33 -0
- package/styles/mixins/_input.scss +30 -0
- package/styles/mixins/_listbox.scss +70 -0
- package/styles/mixins/_menu.scss +12 -0
- package/styles/mixins/_utilities.scss +130 -0
- package/toaster/styles/animation.scss +54 -0
- package/toaster/styles/index.scss +109 -0
- package/useToaster/styles/index.scss +1 -0
package/cjs/Form/Form.js
CHANGED
|
@@ -111,7 +111,11 @@ const Form = (0, _utils.forwardRef)((props, ref) => {
|
|
|
111
111
|
});
|
|
112
112
|
const reset = (0, _hooks.useEventCallback)(event => {
|
|
113
113
|
resetErrors();
|
|
114
|
-
|
|
114
|
+
const resetValue = resetFormValue();
|
|
115
|
+
if (resetValue) {
|
|
116
|
+
onChange === null || onChange === void 0 || onChange(resetValue);
|
|
117
|
+
}
|
|
118
|
+
onReset === null || onReset === void 0 || onReset(resetValue, event);
|
|
115
119
|
});
|
|
116
120
|
const handleSubmit = (0, _hooks.useEventCallback)(event => {
|
|
117
121
|
var _event$preventDefault, _event$stopPropagatio;
|
|
@@ -596,7 +596,7 @@ const InputPicker = (0, _utils3.forwardRef)((props, ref) => {
|
|
|
596
596
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, (0, _extends2.default)({
|
|
597
597
|
id: id,
|
|
598
598
|
multiple: multi,
|
|
599
|
-
|
|
599
|
+
pickerType: multi ? 'tag' : 'input',
|
|
600
600
|
block: block,
|
|
601
601
|
disabled: disabled,
|
|
602
602
|
appearance: appearance,
|
|
@@ -301,7 +301,7 @@ const MultiCascader = (0, _utils3.forwardRef)((props, ref) => {
|
|
|
301
301
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
302
302
|
as: as,
|
|
303
303
|
id: id,
|
|
304
|
-
|
|
304
|
+
pickerType: "multi-cascader",
|
|
305
305
|
block: block,
|
|
306
306
|
disabled: disabled,
|
|
307
307
|
appearance: appearance,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { BoxProps } from '../internals/Box';
|
|
3
|
-
export interface PanelHeaderProps extends BoxProps, Omit<React.HTMLAttributes<HTMLHeadingElement>, 'color'> {
|
|
3
|
+
export interface PanelHeaderProps extends BoxProps, Omit<React.HTMLAttributes<HTMLDivElement | HTMLHeadingElement>, 'color'> {
|
|
4
4
|
caretAs?: React.ElementType;
|
|
5
5
|
collapsible?: boolean;
|
|
6
6
|
disabled?: boolean;
|
package/cjs/Panel/PanelHeader.js
CHANGED
|
@@ -7,14 +7,14 @@ exports.default = void 0;
|
|
|
7
7
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
10
|
-
var _Heading = _interopRequireDefault(require("../Heading"));
|
|
11
10
|
var _AccordionButton = _interopRequireDefault(require("./AccordionButton"));
|
|
12
11
|
var _Box = _interopRequireDefault(require("../internals/Box"));
|
|
13
12
|
var _hooks = require("../internals/hooks");
|
|
13
|
+
var _utils = require("../internals/utils");
|
|
14
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
15
|
const PanelHeader = props => {
|
|
16
16
|
const {
|
|
17
|
-
as =
|
|
17
|
+
as = 'div',
|
|
18
18
|
classPrefix = 'panel',
|
|
19
19
|
className,
|
|
20
20
|
children,
|
|
@@ -33,8 +33,8 @@ const PanelHeader = props => {
|
|
|
33
33
|
prefix
|
|
34
34
|
} = (0, _hooks.useStyles)(classPrefix);
|
|
35
35
|
let headerElement;
|
|
36
|
-
if (! /*#__PURE__*/(0, _react.isValidElement)(children) || Array.isArray(children)) {
|
|
37
|
-
headerElement = /*#__PURE__*/_react.default.createElement("
|
|
36
|
+
if (! /*#__PURE__*/(0, _react.isValidElement)(children) || Array.isArray(children) || (0, _utils.isFragment)(children)) {
|
|
37
|
+
headerElement = /*#__PURE__*/_react.default.createElement("div", {
|
|
38
38
|
className: prefix('title')
|
|
39
39
|
}, children);
|
|
40
40
|
} else {
|
|
@@ -45,7 +45,6 @@ const PanelHeader = props => {
|
|
|
45
45
|
}
|
|
46
46
|
return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
|
|
47
47
|
as: as,
|
|
48
|
-
level: 2,
|
|
49
48
|
className: merge(className, prefix('header'))
|
|
50
49
|
}, rest), collapsible ? /*#__PURE__*/_react.default.createElement(_AccordionButton.default, {
|
|
51
50
|
id: buttonId,
|
package/cjs/Rate/Rate.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import { StyledBoxProps } from '../internals/StyledBox';
|
|
3
3
|
import type { Color, FormControlBaseProps, Size } from '../internals/types';
|
|
4
4
|
export interface RateProps<T = number> extends Omit<StyledBoxProps, 'name'>, FormControlBaseProps<T> {
|
|
5
|
+
/** Element type to render as */
|
|
6
|
+
as?: React.ElementType;
|
|
5
7
|
/** Whether to allow semi selection */
|
|
6
8
|
allowHalf?: boolean;
|
|
7
9
|
/** Custom character of rate */
|
|
@@ -16,6 +18,12 @@ export interface RateProps<T = number> extends Omit<StyledBoxProps, 'name'>, For
|
|
|
16
18
|
color?: Color | React.CSSProperties['color'];
|
|
17
19
|
/** Maximum rate */
|
|
18
20
|
max?: number;
|
|
21
|
+
/**
|
|
22
|
+
* The name of the form control.
|
|
23
|
+
* Used for form integration and does not affect the internal component styling.
|
|
24
|
+
* @private Internal use only - extracted from props to prevent conflicts with StyledBox
|
|
25
|
+
*/
|
|
26
|
+
name?: string;
|
|
19
27
|
/** Vertical Rate half */
|
|
20
28
|
vertical?: boolean;
|
|
21
29
|
/** Render custom character */
|
package/cjs/Rate/Rate.js
CHANGED
|
@@ -31,6 +31,7 @@ const Rate = (0, _utils.forwardRef)((props, ref) => {
|
|
|
31
31
|
classPrefix = 'rate',
|
|
32
32
|
disabled,
|
|
33
33
|
max = 5,
|
|
34
|
+
name,
|
|
34
35
|
readOnly,
|
|
35
36
|
vertical,
|
|
36
37
|
size,
|
|
@@ -133,7 +134,8 @@ const Rate = (0, _utils.forwardRef)((props, ref) => {
|
|
|
133
134
|
style: mergedStyle,
|
|
134
135
|
onMouseLeave: handleMouseLeave,
|
|
135
136
|
"data-disabled": disabled,
|
|
136
|
-
"data-readonly": readOnly
|
|
137
|
+
"data-readonly": readOnly,
|
|
138
|
+
"data-name": name
|
|
137
139
|
}, rest), starStates.map((status, index) => /*#__PURE__*/_react.default.createElement(_Character.default, {
|
|
138
140
|
role: "radio",
|
|
139
141
|
"aria-posinset": index + 1,
|
|
@@ -250,7 +250,7 @@ const SelectPicker = (0, _utils.forwardRef)((props, ref) => {
|
|
|
250
250
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
251
251
|
as: as,
|
|
252
252
|
id: id,
|
|
253
|
-
|
|
253
|
+
pickerType: "select",
|
|
254
254
|
block: block,
|
|
255
255
|
disabled: disabled,
|
|
256
256
|
appearance: appearance,
|
|
@@ -28,6 +28,10 @@ interface UseFlattenTreeOptions {
|
|
|
28
28
|
* An array of item values that should not be selectable.
|
|
29
29
|
*/
|
|
30
30
|
uncheckableItemValues?: any[];
|
|
31
|
+
/**
|
|
32
|
+
* An array of item values that should be disabled.
|
|
33
|
+
*/
|
|
34
|
+
disabledItemValues?: any[];
|
|
31
35
|
/**
|
|
32
36
|
* A callback function that will be called when the tree nodes change.
|
|
33
37
|
* It receives a map of the tree nodes.
|
|
@@ -21,6 +21,7 @@ function useFlattenTree(data, options) {
|
|
|
21
21
|
valueKey,
|
|
22
22
|
childrenKey,
|
|
23
23
|
uncheckableItemValues = [],
|
|
24
|
+
disabledItemValues = [],
|
|
24
25
|
cascade,
|
|
25
26
|
multiple,
|
|
26
27
|
callback
|
|
@@ -32,6 +33,26 @@ function useFlattenTree(data, options) {
|
|
|
32
33
|
// Reset values to false
|
|
33
34
|
Object.keys(flattenedNodes.current).forEach(refKey => {
|
|
34
35
|
const node = flattenedNodes.current[refKey];
|
|
36
|
+
|
|
37
|
+
// Check if this node or any of its parents is disabled
|
|
38
|
+
const isNodeDisabled = disabledItemValues.some(disabledValue => (0, _utils.shallowEqual)(node[valueKey], disabledValue));
|
|
39
|
+
let hasDisabledParent = false;
|
|
40
|
+
let currentNode = node;
|
|
41
|
+
while (currentNode.parent && !hasDisabledParent) {
|
|
42
|
+
const parentRefKey = currentNode.parent.refKey;
|
|
43
|
+
if (parentRefKey && flattenedNodes.current[parentRefKey]) {
|
|
44
|
+
const parentValue = flattenedNodes.current[parentRefKey][valueKey];
|
|
45
|
+
if (disabledItemValues.some(disabledValue => (0, _utils.shallowEqual)(parentValue, disabledValue))) {
|
|
46
|
+
hasDisabledParent = true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
currentNode = currentNode.parent;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Skip disabled nodes - they should not be affected by cascade or value changes
|
|
53
|
+
if (isNodeDisabled || hasDisabledParent) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
35
56
|
if (cascade && !(0, _isNil.default)(node.parent) && !(0, _isNil.default)(node.parent.refKey)) {
|
|
36
57
|
node.check = flattenedNodes.current[node.parent.refKey].check;
|
|
37
58
|
} else {
|
|
@@ -43,7 +64,7 @@ function useFlattenTree(data, options) {
|
|
|
43
64
|
}
|
|
44
65
|
});
|
|
45
66
|
});
|
|
46
|
-
}, [cascade, uncheckableItemValues, valueKey]);
|
|
67
|
+
}, [cascade, uncheckableItemValues, disabledItemValues, valueKey]);
|
|
47
68
|
const flattenTreeData = (0, _react.useCallback)((treeData, parent, layer = 1) => {
|
|
48
69
|
if (!Array.isArray(treeData) || treeData.length === 0) {
|
|
49
70
|
return [];
|
|
@@ -104,12 +104,30 @@ function useFocusTree(props) {
|
|
|
104
104
|
onFocusItem
|
|
105
105
|
});
|
|
106
106
|
});
|
|
107
|
+
const handleHomeKey = (0, _hooks.useEventCallback)(() => {
|
|
108
|
+
const focusProps = getFocusProps();
|
|
109
|
+
const focusedValue = (0, _utils.focusFirstItem)(focusProps);
|
|
110
|
+
if (focusedValue) {
|
|
111
|
+
setFocusItemValue(focusedValue);
|
|
112
|
+
onFocused === null || onFocused === void 0 || onFocused(focusedValue);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const handleEndKey = (0, _hooks.useEventCallback)(() => {
|
|
116
|
+
const focusProps = getFocusProps();
|
|
117
|
+
const focusedValue = (0, _utils.focusLastItem)(focusProps);
|
|
118
|
+
if (focusedValue) {
|
|
119
|
+
setFocusItemValue(focusedValue);
|
|
120
|
+
onFocused === null || onFocused === void 0 || onFocused(focusedValue);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
107
123
|
const onTreeKeydown = (0, _hooks.useEventCallback)(event => {
|
|
108
124
|
(0, _Picker.onMenuKeyDown)(event, {
|
|
109
125
|
down: () => handleFocusItem(_constants.KEY_VALUES.DOWN),
|
|
110
126
|
up: () => handleFocusItem(_constants.KEY_VALUES.UP),
|
|
111
127
|
left: rtl ? handleRightArrowEvent : handleLeftArrowEvent,
|
|
112
|
-
right: rtl ? handleLeftArrowEvent : handleRightArrowEvent
|
|
128
|
+
right: rtl ? handleLeftArrowEvent : handleRightArrowEvent,
|
|
129
|
+
home: handleHomeKey,
|
|
130
|
+
end: handleEndKey
|
|
113
131
|
});
|
|
114
132
|
});
|
|
115
133
|
const focusTreeFirstNode = (0, _hooks.useEventCallback)(() => {
|
|
@@ -3,5 +3,6 @@ declare function useVirtualizedTreeData(nodes: TreeNodeMap, data: TreeNode[], op
|
|
|
3
3
|
expandItemValues: (string | number)[];
|
|
4
4
|
cascade?: boolean;
|
|
5
5
|
searchKeyword?: string;
|
|
6
|
+
disabledItemValues?: (string | number)[];
|
|
6
7
|
}): () => TreeNode[];
|
|
7
8
|
export default useVirtualizedTreeData;
|
|
@@ -35,7 +35,8 @@ function useVirtualizedTreeData(nodes, data, options) {
|
|
|
35
35
|
const {
|
|
36
36
|
cascade,
|
|
37
37
|
searchKeyword,
|
|
38
|
-
expandItemValues
|
|
38
|
+
expandItemValues,
|
|
39
|
+
disabledItemValues = []
|
|
39
40
|
} = options;
|
|
40
41
|
return (0, _flattenTree.UNSAFE_flattenTree)(data, childrenKey, node => {
|
|
41
42
|
let formatted = {};
|
|
@@ -59,7 +60,9 @@ function useVirtualizedTreeData(nodes, data, options) {
|
|
|
59
60
|
const checkState = !(0, _isUndefined.default)(cascade) ? (0, _utils.getNodeCheckState)(curNode, {
|
|
60
61
|
cascade,
|
|
61
62
|
nodes,
|
|
62
|
-
childrenKey
|
|
63
|
+
childrenKey,
|
|
64
|
+
disabledItemValues,
|
|
65
|
+
valueKey
|
|
63
66
|
}) : undefined;
|
|
64
67
|
formatted = {
|
|
65
68
|
...node,
|
|
@@ -35,6 +35,14 @@ export declare const focusNextItem: (props: FocusItemProps) => any;
|
|
|
35
35
|
* Focuses on the previous item in a tree.
|
|
36
36
|
*/
|
|
37
37
|
export declare const focusPreviousItem: (props: FocusItemProps) => any;
|
|
38
|
+
/**
|
|
39
|
+
* Focuses on the first item in a tree.
|
|
40
|
+
*/
|
|
41
|
+
export declare const focusFirstItem: (props: FocusItemProps) => any;
|
|
42
|
+
/**
|
|
43
|
+
* Focuses on the last item in a tree.
|
|
44
|
+
*/
|
|
45
|
+
export declare const focusLastItem: (props: FocusItemProps) => any;
|
|
38
46
|
interface ScrollToActiveTreeNodeProps {
|
|
39
47
|
value: any;
|
|
40
48
|
valueKey: string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.getFocusableItems = exports.getActiveItem = exports.focusTreeNode = exports.focusPreviousItem = exports.focusNextItem = exports.focusCurrentItem = void 0;
|
|
5
|
+
exports.getFocusableItems = exports.getActiveItem = exports.focusTreeNode = exports.focusPreviousItem = exports.focusNextItem = exports.focusLastItem = exports.focusFirstItem = exports.focusCurrentItem = void 0;
|
|
6
6
|
exports.scrollToActiveTreeNode = scrollToActiveTreeNode;
|
|
7
7
|
var _utils = require("../../internals/utils");
|
|
8
8
|
// Active tree node selector
|
|
@@ -118,9 +118,47 @@ const focusPreviousItem = props => {
|
|
|
118
118
|
};
|
|
119
119
|
|
|
120
120
|
/**
|
|
121
|
-
*
|
|
121
|
+
* Focuses on the first item in a tree.
|
|
122
122
|
*/
|
|
123
123
|
exports.focusPreviousItem = focusPreviousItem;
|
|
124
|
+
const focusFirstItem = props => {
|
|
125
|
+
const {
|
|
126
|
+
focusableItems,
|
|
127
|
+
treeNodesRefs,
|
|
128
|
+
valueKey
|
|
129
|
+
} = props;
|
|
130
|
+
if (focusableItems.length === 0) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const firstItem = focusableItems[0];
|
|
134
|
+
const value = firstItem[valueKey];
|
|
135
|
+
focusTreeNode(firstItem.refKey, treeNodesRefs);
|
|
136
|
+
return value;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Focuses on the last item in a tree.
|
|
141
|
+
*/
|
|
142
|
+
exports.focusFirstItem = focusFirstItem;
|
|
143
|
+
const focusLastItem = props => {
|
|
144
|
+
const {
|
|
145
|
+
focusableItems,
|
|
146
|
+
treeNodesRefs,
|
|
147
|
+
valueKey
|
|
148
|
+
} = props;
|
|
149
|
+
if (focusableItems.length === 0) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const lastItem = focusableItems[focusableItems.length - 1];
|
|
153
|
+
const value = lastItem[valueKey];
|
|
154
|
+
focusTreeNode(lastItem.refKey, treeNodesRefs);
|
|
155
|
+
return value;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Returns the index of the first visible node in the tree that matches the given value.
|
|
160
|
+
*/
|
|
161
|
+
exports.focusLastItem = focusLastItem;
|
|
124
162
|
const getScrollToIndex = (nodes, value, valueKey) => {
|
|
125
163
|
return nodes.filter(n => n.visible).findIndex(item => item[valueKey] === value);
|
|
126
164
|
};
|
|
@@ -7,5 +7,5 @@ export { formatNodeRefKey } from './formatNodeRefKey';
|
|
|
7
7
|
export { indentTreeNode } from './indentTreeNode';
|
|
8
8
|
export { isSearching } from './isSearching';
|
|
9
9
|
export { isExpand } from './isExpand';
|
|
10
|
-
export { getFocusableItems, getActiveItem, focusNextItem, focusPreviousItem, focusTreeNode, focusCurrentItem } from './focusableTree';
|
|
10
|
+
export { getFocusableItems, getActiveItem, focusNextItem, focusPreviousItem, focusFirstItem, focusLastItem, focusTreeNode, focusCurrentItem } from './focusableTree';
|
|
11
11
|
export { handleLeftArrow, handleRightArrow } from './treeKeyboardInteractions';
|
package/cjs/Tree/utils/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.isSearching = exports.isExpand = exports.indentTreeNode = exports.hasVisibleChildren = exports.handleRightArrow = exports.handleLeftArrow = exports.getTreeActiveNode = exports.getNodeParentKeys = exports.getFocusableItems = exports.getExpandItemValues = exports.getActiveItem = exports.formatNodeRefKey = exports.focusTreeNode = exports.focusPreviousItem = exports.focusNextItem = exports.focusCurrentItem = exports.flattenTree = exports.WalkTreeStrategy = exports.UNSAFE_flattenTree = void 0;
|
|
5
|
+
exports.isSearching = exports.isExpand = exports.indentTreeNode = exports.hasVisibleChildren = exports.handleRightArrow = exports.handleLeftArrow = exports.getTreeActiveNode = exports.getNodeParentKeys = exports.getFocusableItems = exports.getExpandItemValues = exports.getActiveItem = exports.formatNodeRefKey = exports.focusTreeNode = exports.focusPreviousItem = exports.focusNextItem = exports.focusLastItem = exports.focusFirstItem = exports.focusCurrentItem = exports.flattenTree = exports.WalkTreeStrategy = exports.UNSAFE_flattenTree = void 0;
|
|
6
6
|
var _getNodeParentKeys = require("./getNodeParentKeys");
|
|
7
7
|
exports.getNodeParentKeys = _getNodeParentKeys.getNodeParentKeys;
|
|
8
8
|
var _flattenTree = require("./flattenTree");
|
|
@@ -28,6 +28,8 @@ exports.getFocusableItems = _focusableTree.getFocusableItems;
|
|
|
28
28
|
exports.getActiveItem = _focusableTree.getActiveItem;
|
|
29
29
|
exports.focusNextItem = _focusableTree.focusNextItem;
|
|
30
30
|
exports.focusPreviousItem = _focusableTree.focusPreviousItem;
|
|
31
|
+
exports.focusFirstItem = _focusableTree.focusFirstItem;
|
|
32
|
+
exports.focusLastItem = _focusableTree.focusLastItem;
|
|
31
33
|
exports.focusTreeNode = _focusableTree.focusTreeNode;
|
|
32
34
|
exports.focusCurrentItem = _focusableTree.focusCurrentItem;
|
|
33
35
|
var _treeKeyboardInteractions = require("./treeKeyboardInteractions");
|
|
@@ -261,7 +261,7 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
|
|
|
261
261
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
262
262
|
as: as,
|
|
263
263
|
id: id,
|
|
264
|
-
|
|
264
|
+
pickerType: "tree",
|
|
265
265
|
block: block,
|
|
266
266
|
disabled: disabled,
|
|
267
267
|
appearance: appearance,
|
|
@@ -29,6 +29,8 @@ export interface PickerToggleTriggerProps
|
|
|
29
29
|
name?: string;
|
|
30
30
|
/** Controls the open state of the picker */
|
|
31
31
|
open?: boolean;
|
|
32
|
+
/** Picker type identifier for data-picker attribute */
|
|
33
|
+
pickerType?: string;
|
|
32
34
|
/** Additional properties for the picker */
|
|
33
35
|
triggerProps: any;
|
|
34
36
|
/** Placement of the component */
|
|
@@ -32,6 +32,7 @@ const PickerToggleTrigger = exports.PickerToggleTrigger = /*#__PURE__*/_react.de
|
|
|
32
32
|
id,
|
|
33
33
|
multiple,
|
|
34
34
|
name,
|
|
35
|
+
pickerType,
|
|
35
36
|
triggerProps,
|
|
36
37
|
placement,
|
|
37
38
|
popupType = 'listbox',
|
|
@@ -81,7 +82,8 @@ const PickerToggleTrigger = exports.PickerToggleTrigger = /*#__PURE__*/_react.de
|
|
|
81
82
|
className: classes,
|
|
82
83
|
style: style,
|
|
83
84
|
ref: rootRef,
|
|
84
|
-
|
|
85
|
+
name: name,
|
|
86
|
+
"data-picker": pickerType,
|
|
85
87
|
"data-appearance": appearance,
|
|
86
88
|
"data-size": size,
|
|
87
89
|
"data-disabled": disabled || undefined,
|
|
@@ -13,6 +13,8 @@ export interface KeyboardEvents {
|
|
|
13
13
|
esc?: React.KeyboardEventHandler;
|
|
14
14
|
right?: React.KeyboardEventHandler;
|
|
15
15
|
left?: React.KeyboardEventHandler;
|
|
16
|
+
home?: React.KeyboardEventHandler;
|
|
17
|
+
end?: React.KeyboardEventHandler;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Handling keyboard events...
|
|
@@ -54,7 +54,9 @@ function onMenuKeyDown(event, events) {
|
|
|
54
54
|
del,
|
|
55
55
|
esc,
|
|
56
56
|
right,
|
|
57
|
-
left
|
|
57
|
+
left,
|
|
58
|
+
home,
|
|
59
|
+
end
|
|
58
60
|
} = events;
|
|
59
61
|
switch (event.key) {
|
|
60
62
|
// down
|
|
@@ -89,6 +91,16 @@ function onMenuKeyDown(event, events) {
|
|
|
89
91
|
case _constants.KEY_VALUES.RIGHT:
|
|
90
92
|
right === null || right === void 0 || right(event);
|
|
91
93
|
break;
|
|
94
|
+
// home
|
|
95
|
+
case _constants.KEY_VALUES.HOME:
|
|
96
|
+
home === null || home === void 0 || home(event);
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
break;
|
|
99
|
+
// end
|
|
100
|
+
case _constants.KEY_VALUES.END:
|
|
101
|
+
end === null || end === void 0 || end(event);
|
|
102
|
+
event.preventDefault();
|
|
103
|
+
break;
|
|
92
104
|
default:
|
|
93
105
|
}
|
|
94
106
|
}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { BoxProps } from '../Box';
|
|
3
3
|
import type { Size, Color } from '../types';
|
|
4
4
|
export interface StyledBoxProps extends BoxProps {
|
|
5
|
-
/**
|
|
5
|
+
/** Component identifier for CSS variable generation */
|
|
6
6
|
name: string;
|
|
7
7
|
/** Size of the Box */
|
|
8
8
|
size?: Size | number | string;
|
|
@@ -12,12 +12,12 @@ const StyledBox = (0, _utils.forwardRef)((props, ref) => {
|
|
|
12
12
|
const {
|
|
13
13
|
as,
|
|
14
14
|
color,
|
|
15
|
-
name,
|
|
15
|
+
name: componentName,
|
|
16
16
|
style,
|
|
17
17
|
size,
|
|
18
18
|
...rest
|
|
19
19
|
} = props;
|
|
20
|
-
const boxStyle = (0, _utils.mergeStyles)(style, (0, _utils.getSizeStyle)(size,
|
|
20
|
+
const boxStyle = (0, _utils.mergeStyles)(style, (0, _utils.getSizeStyle)(size, componentName), (0, _utils.getColorStyle)(color, componentName));
|
|
21
21
|
return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
|
|
22
22
|
as: as,
|
|
23
23
|
ref: ref,
|