rsuite 5.40.0 → 5.42.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/CHANGELOG.md +30 -0
- package/Navbar/styles/index.less +1 -1
- package/SelectPicker/styles/index.less +4 -8
- package/cjs/@types/common.js +1 -0
- package/cjs/@types/utils.js +12 -2
- package/cjs/Affix/Affix.js +39 -59
- package/cjs/Affix/index.js +1 -3
- package/cjs/Animation/Bounce.js +4 -13
- package/cjs/Animation/Collapse.js +19 -40
- package/cjs/Animation/Fade.js +6 -15
- package/cjs/Animation/Slide.js +6 -15
- package/cjs/Animation/Transition.js +16 -83
- package/cjs/Animation/index.js +1 -7
- package/cjs/Animation/utils.js +1 -6
- package/cjs/AutoComplete/AutoComplete.js +55 -90
- package/cjs/AutoComplete/index.js +1 -3
- package/cjs/AutoComplete/utils.js +1 -9
- package/cjs/Avatar/Avatar.js +18 -32
- package/cjs/Avatar/index.js +1 -3
- package/cjs/AvatarGroup/AvatarGroup.js +13 -27
- package/cjs/AvatarGroup/index.js +1 -3
- package/cjs/Badge/Badge.js +14 -27
- package/cjs/Badge/index.js +1 -3
- package/cjs/Breadcrumb/Breadcrumb.js +19 -41
- package/cjs/Breadcrumb/BreadcrumbItem.js +14 -26
- package/cjs/Breadcrumb/index.js +1 -3
- package/cjs/Button/Button.js +22 -40
- package/cjs/Button/index.js +1 -3
- package/cjs/ButtonGroup/ButtonGroup.js +15 -26
- package/cjs/ButtonGroup/ButtonGroupContext.js +1 -4
- package/cjs/ButtonGroup/index.js +1 -4
- package/cjs/ButtonToolbar/ButtonToolbar.js +10 -20
- package/cjs/ButtonToolbar/index.js +1 -3
- package/cjs/Calendar/Calendar.js +24 -43
- package/cjs/Calendar/CalendarBody.js +14 -28
- package/cjs/Calendar/CalendarContainer.js +46 -69
- package/cjs/Calendar/CalendarContext.js +1 -6
- package/cjs/Calendar/CalendarHeader.js +32 -59
- package/cjs/Calendar/MonthDropdown.js +22 -45
- package/cjs/Calendar/MonthDropdownItem.js +16 -31
- package/cjs/Calendar/Table.js +10 -21
- package/cjs/Calendar/TableHeaderRow.js +11 -25
- package/cjs/Calendar/TableRow.js +35 -66
- package/cjs/Calendar/TimeDropdown.js +24 -64
- package/cjs/Calendar/index.js +1 -8
- package/cjs/Calendar/types.js +1 -0
- package/cjs/Calendar/useCalendarDate.js +3 -13
- package/cjs/Calendar/useCalendarState.js +3 -8
- package/cjs/Carousel/Carousel.js +40 -65
- package/cjs/Carousel/index.js +1 -3
- package/cjs/Cascader/Cascader.js +126 -197
- package/cjs/Cascader/DropdownMenu.js +33 -65
- package/cjs/Cascader/index.js +1 -3
- package/cjs/Cascader/utils.js +13 -24
- package/cjs/CheckPicker/CheckPicker.js +105 -156
- package/cjs/CheckPicker/index.js +1 -3
- package/cjs/CheckTree/index.js +1 -8
- package/cjs/CheckTreePicker/CheckTreeNode.js +28 -54
- package/cjs/CheckTreePicker/CheckTreePicker.js +165 -247
- package/cjs/CheckTreePicker/index.js +1 -3
- package/cjs/CheckTreePicker/utils.js +12 -52
- package/cjs/Checkbox/Checkbox.js +48 -77
- package/cjs/Checkbox/index.js +1 -3
- package/cjs/CheckboxGroup/CheckboxGroup.js +20 -38
- package/cjs/CheckboxGroup/CheckboxGroupContext.js +1 -4
- package/cjs/CheckboxGroup/index.js +1 -4
- package/cjs/CloseButton/CloseButton.js +10 -20
- package/cjs/CloseButton/index.js +1 -3
- package/cjs/Col/Col.js +10 -23
- package/cjs/Col/index.js +1 -3
- package/cjs/Container/Container.js +11 -24
- package/cjs/Container/index.js +1 -3
- package/cjs/Content/Content.js +1 -3
- package/cjs/Content/index.js +1 -3
- package/cjs/CustomProvider/CustomProvider.js +13 -28
- package/cjs/CustomProvider/FormattedDate.js +3 -9
- package/cjs/CustomProvider/index.js +1 -6
- package/cjs/DOMHelper/index.js +1 -7
- package/cjs/DOMHelper/isElement.js +1 -2
- package/cjs/DatePicker/DatePicker.js +108 -161
- package/cjs/DatePicker/PredefinedRanges.js +12 -29
- package/cjs/DatePicker/Toolbar.js +20 -36
- package/cjs/DatePicker/index.js +1 -3
- package/cjs/DatePicker/types.js +1 -0
- package/cjs/DatePicker/utils.js +5 -13
- package/cjs/DateRangePicker/Calendar.js +18 -28
- package/cjs/DateRangePicker/DateRangePicker.js +128 -207
- package/cjs/DateRangePicker/DateRangePickerContext.js +1 -6
- package/cjs/DateRangePicker/disabledDateUtils.js +9 -32
- package/cjs/DateRangePicker/index.js +1 -3
- package/cjs/DateRangePicker/types.js +1 -0
- package/cjs/DateRangePicker/utils.js +7 -20
- package/cjs/Disclosure/Disclosure.js +14 -34
- package/cjs/Disclosure/DisclosureButton.js +4 -12
- package/cjs/Disclosure/DisclosureContent.js +1 -5
- package/cjs/Disclosure/DisclosureContext.js +1 -6
- package/cjs/Disclosure/index.js +1 -3
- package/cjs/Disclosure/useDisclosureContext.js +1 -6
- package/cjs/Divider/Divider.js +11 -20
- package/cjs/Divider/index.js +1 -3
- package/cjs/Drawer/Drawer.js +10 -27
- package/cjs/Drawer/index.js +1 -3
- package/cjs/Dropdown/Dropdown.js +35 -68
- package/cjs/Dropdown/DropdownContext.js +1 -4
- package/cjs/Dropdown/DropdownItem.js +22 -49
- package/cjs/Dropdown/DropdownMenu.js +36 -63
- package/cjs/Dropdown/DropdownSeparator.js +8 -17
- package/cjs/Dropdown/DropdownState.js +1 -10
- package/cjs/Dropdown/DropdownToggle.js +17 -29
- package/cjs/Dropdown/index.js +1 -3
- package/cjs/Dropdown/useRenderDropdownItem.js +1 -5
- package/cjs/FlexboxGrid/FlexboxGrid.js +12 -22
- package/cjs/FlexboxGrid/FlexboxGridItem.js +12 -22
- package/cjs/FlexboxGrid/index.js +1 -3
- package/cjs/Footer/Footer.js +1 -3
- package/cjs/Footer/index.js +1 -3
- package/cjs/Form/Form.js +38 -79
- package/cjs/Form/FormContext.d.ts +2 -3
- package/cjs/Form/FormContext.js +1 -8
- package/cjs/Form/index.js +1 -4
- package/cjs/Form/useFormClassNames.js +11 -14
- package/cjs/Form/useSchemaModel.js +2 -6
- package/cjs/FormControl/FormControl.js +48 -84
- package/cjs/FormControl/index.js +1 -3
- package/cjs/FormControl/useRegisterModel.js +1 -3
- package/cjs/FormControlLabel/FormControlLabel.js +10 -22
- package/cjs/FormControlLabel/index.js +1 -3
- package/cjs/FormErrorMessage/FormErrorMessage.js +12 -27
- package/cjs/FormErrorMessage/index.js +1 -3
- package/cjs/FormGroup/FormGroup.js +9 -21
- package/cjs/FormGroup/index.js +1 -3
- package/cjs/FormHelpText/FormHelpText.js +11 -28
- package/cjs/FormHelpText/index.js +1 -3
- package/cjs/Grid/Grid.js +10 -19
- package/cjs/Grid/index.js +1 -3
- package/cjs/Header/Header.js +1 -3
- package/cjs/Header/index.js +1 -3
- package/cjs/IconButton/IconButton.js +11 -21
- package/cjs/IconButton/index.js +1 -3
- package/cjs/Input/Input.js +26 -43
- package/cjs/Input/index.js +1 -3
- package/cjs/InputGroup/InputGroup.js +23 -39
- package/cjs/InputGroup/InputGroupAddon.js +9 -18
- package/cjs/InputGroup/InputGroupButton.js +7 -17
- package/cjs/InputGroup/index.js +1 -3
- package/cjs/InputNumber/InputNumber.js +42 -88
- package/cjs/InputNumber/index.js +1 -3
- package/cjs/InputPicker/InputAutosize.js +17 -42
- package/cjs/InputPicker/InputPicker.d.ts +2 -0
- package/cjs/InputPicker/InputPicker.js +152 -251
- package/cjs/InputPicker/InputSearch.js +15 -28
- package/cjs/InputPicker/index.js +1 -3
- package/cjs/List/List.js +37 -51
- package/cjs/List/ListContext.js +1 -5
- package/cjs/List/ListItem.js +26 -40
- package/cjs/List/helper/AutoScroller.js +11 -21
- package/cjs/List/helper/useManager.js +1 -8
- package/cjs/List/helper/useSortHelper.js +58 -82
- package/cjs/List/helper/utils.js +6 -19
- package/cjs/List/index.js +1 -3
- package/cjs/Loader/Loader.js +17 -26
- package/cjs/Loader/index.js +1 -3
- package/cjs/MaskedInput/MaskedInput.js +2 -8
- package/cjs/MaskedInput/TextMask.js +14 -23
- package/cjs/MaskedInput/adjustCaretPosition.js +99 -70
- package/cjs/MaskedInput/conformToMask.js +79 -73
- package/cjs/MaskedInput/createTextMaskInputElement.js +65 -71
- package/cjs/MaskedInput/index.js +1 -3
- package/cjs/MaskedInput/types.js +1 -0
- package/cjs/MaskedInput/utilities.js +1 -8
- package/cjs/Menu/Menu.js +35 -79
- package/cjs/Menu/MenuContext.js +1 -8
- package/cjs/Menu/MenuItem.js +15 -26
- package/cjs/Menu/Menubar.js +13 -32
- package/cjs/Menu/index.js +1 -3
- package/cjs/Menu/useMenu.js +5 -34
- package/cjs/Message/Message.js +23 -45
- package/cjs/Message/index.js +1 -3
- package/cjs/Modal/Modal.js +70 -91
- package/cjs/Modal/ModalBody.js +11 -25
- package/cjs/Modal/ModalContext.js +1 -4
- package/cjs/Modal/ModalDialog.js +14 -26
- package/cjs/Modal/ModalFooter.js +1 -3
- package/cjs/Modal/ModalHeader.js +14 -29
- package/cjs/Modal/ModalTitle.js +9 -20
- package/cjs/Modal/index.js +1 -3
- package/cjs/Modal/utils.js +8 -19
- package/cjs/MultiCascader/DropdownMenu.js +38 -64
- package/cjs/MultiCascader/MultiCascader.js +129 -192
- package/cjs/MultiCascader/index.js +1 -3
- package/cjs/MultiCascader/utils.js +44 -106
- package/cjs/Nav/Nav.js +27 -69
- package/cjs/Nav/NavContext.js +1 -4
- package/cjs/Nav/NavDropdown.js +28 -60
- package/cjs/Nav/NavDropdownItem.js +20 -42
- package/cjs/Nav/NavDropdownMenu.js +26 -54
- package/cjs/Nav/NavDropdownToggle.js +12 -26
- package/cjs/Nav/NavItem.js +20 -39
- package/cjs/Nav/NavMenu.js +2 -28
- package/cjs/Nav/index.js +1 -3
- package/cjs/Navbar/Navbar.js +10 -23
- package/cjs/Navbar/NavbarBody.js +1 -6
- package/cjs/Navbar/NavbarBrand.js +1 -3
- package/cjs/Navbar/NavbarDropdown.js +25 -49
- package/cjs/Navbar/NavbarDropdownItem.js +18 -44
- package/cjs/Navbar/NavbarDropdownMenu.js +22 -51
- package/cjs/Navbar/NavbarDropdownToggle.js +12 -25
- package/cjs/Navbar/NavbarHeader.js +1 -6
- package/cjs/Navbar/NavbarItem.js +19 -35
- package/cjs/Navbar/index.js +1 -3
- package/cjs/Notification/Notification.js +20 -43
- package/cjs/Notification/index.js +1 -3
- package/cjs/Overlay/Modal.js +40 -79
- package/cjs/Overlay/ModalManager.js +1 -26
- package/cjs/Overlay/Overlay.js +28 -50
- package/cjs/Overlay/OverlayContext.js +1 -4
- package/cjs/Overlay/OverlayTrigger.js +67 -116
- package/cjs/Overlay/Position.js +25 -64
- package/cjs/Overlay/index.js +1 -3
- package/cjs/Overlay/positionUtils.js +25 -86
- package/cjs/Pagination/Pagination.js +30 -70
- package/cjs/Pagination/PaginationButton.js +15 -29
- package/cjs/Pagination/PaginationGroup.js +38 -63
- package/cjs/Pagination/index.js +1 -3
- package/cjs/Panel/Panel.js +37 -61
- package/cjs/Panel/index.js +1 -3
- package/cjs/PanelGroup/PanelGroup.js +16 -29
- package/cjs/PanelGroup/index.js +1 -3
- package/cjs/Picker/DropdownMenu.js +50 -93
- package/cjs/Picker/DropdownMenuCheckItem.js +22 -33
- package/cjs/Picker/DropdownMenuGroup.js +10 -22
- package/cjs/Picker/DropdownMenuItem.js +15 -26
- package/cjs/Picker/PickerOverlay.js +12 -28
- package/cjs/Picker/PickerToggle.js +57 -89
- package/cjs/Picker/PickerToggleTrigger.js +8 -19
- package/cjs/Picker/SearchBar.js +14 -26
- package/cjs/Picker/SelectedElement.js +9 -17
- package/cjs/Picker/ToggleButton.js +1 -6
- package/cjs/Picker/index.js +1 -24
- package/cjs/Picker/propTypes.js +1 -7
- package/cjs/Picker/types.js +1 -0
- package/cjs/Picker/utils.js +94 -200
- package/cjs/Placeholder/Placeholder.js +1 -5
- package/cjs/Placeholder/PlaceholderGraph.js +13 -22
- package/cjs/Placeholder/PlaceholderGrid.js +18 -34
- package/cjs/Placeholder/PlaceholderParagraph.js +17 -29
- package/cjs/Placeholder/index.js +1 -3
- package/cjs/Plaintext/Plaintext.js +14 -23
- package/cjs/Plaintext/index.js +1 -3
- package/cjs/Popover/Popover.js +16 -27
- package/cjs/Popover/index.js +1 -3
- package/cjs/Progress/Progress.js +1 -4
- package/cjs/Progress/ProgressCircle.js +30 -47
- package/cjs/Progress/ProgressLine.js +19 -29
- package/cjs/Progress/index.js +1 -3
- package/cjs/Radio/Radio.js +42 -62
- package/cjs/Radio/index.js +1 -3
- package/cjs/RadioGroup/RadioGroup.js +22 -37
- package/cjs/RadioGroup/index.js +1 -3
- package/cjs/RadioTile/RadioTile.js +30 -47
- package/cjs/RadioTile/index.js +1 -3
- package/cjs/RadioTileGroup/RadioTileGroup.js +17 -32
- package/cjs/RadioTileGroup/index.js +1 -3
- package/cjs/RangeSlider/RangeSlider.js +63 -104
- package/cjs/RangeSlider/index.js +1 -3
- package/cjs/Rate/Character.js +16 -31
- package/cjs/Rate/Rate.js +35 -62
- package/cjs/Rate/index.js +1 -3
- package/cjs/Rate/utils.js +1 -6
- package/cjs/Ripple/Ripple.js +16 -40
- package/cjs/Ripple/index.js +1 -3
- package/cjs/Row/Row.js +11 -22
- package/cjs/Row/index.js +1 -3
- package/cjs/SafeAnchor/SafeAnchor.js +8 -19
- package/cjs/SafeAnchor/index.js +1 -3
- package/cjs/Schema/Schema.js +1 -2
- package/cjs/Schema/index.js +1 -3
- package/cjs/SelectPicker/SelectPicker.js +136 -170
- package/cjs/SelectPicker/index.js +1 -3
- package/cjs/Sidebar/Sidebar.js +13 -26
- package/cjs/Sidebar/index.js +1 -3
- package/cjs/Sidenav/ExpandedSidenavDropdown.js +32 -54
- package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +19 -41
- package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +22 -46
- package/cjs/Sidenav/Node.js +1 -12
- package/cjs/Sidenav/Sidenav.js +22 -45
- package/cjs/Sidenav/SidenavBody.js +1 -3
- package/cjs/Sidenav/SidenavDropdown.js +39 -70
- package/cjs/Sidenav/SidenavDropdownCollapse.js +9 -22
- package/cjs/Sidenav/SidenavDropdownItem.js +19 -45
- package/cjs/Sidenav/SidenavDropdownMenu.js +26 -54
- package/cjs/Sidenav/SidenavDropdownToggle.js +12 -25
- package/cjs/Sidenav/SidenavHeader.js +1 -3
- package/cjs/Sidenav/SidenavItem.js +27 -55
- package/cjs/Sidenav/SidenavToggle.js +11 -31
- package/cjs/Sidenav/index.js +1 -3
- package/cjs/Slider/Graduated.js +14 -29
- package/cjs/Slider/Handle.js +27 -52
- package/cjs/Slider/Input.js +2 -8
- package/cjs/Slider/Mark.js +11 -20
- package/cjs/Slider/ProgressBar.js +14 -23
- package/cjs/Slider/Slider.js +51 -84
- package/cjs/Slider/index.js +1 -3
- package/cjs/Slider/utils.js +1 -6
- package/cjs/Stack/Stack.js +22 -35
- package/cjs/Stack/StackItem.js +11 -17
- package/cjs/Stack/index.js +1 -3
- package/cjs/Steps/StepItem.js +16 -32
- package/cjs/Steps/Steps.js +18 -32
- package/cjs/Steps/index.js +1 -3
- package/cjs/Table/Table.js +6 -16
- package/cjs/Table/index.js +1 -3
- package/cjs/Tag/Tag.js +16 -28
- package/cjs/Tag/index.js +1 -3
- package/cjs/TagGroup/TagGroup.js +1 -3
- package/cjs/TagGroup/index.js +1 -3
- package/cjs/TagInput/index.d.ts +3 -0
- package/cjs/TagInput/index.js +11 -16
- package/cjs/TagPicker/index.d.ts +3 -0
- package/cjs/TagPicker/index.js +9 -14
- package/cjs/Timeline/Timeline.js +14 -29
- package/cjs/Timeline/TimelineItem.js +14 -23
- package/cjs/Timeline/index.js +1 -3
- package/cjs/Toggle/Toggle.js +26 -45
- package/cjs/Toggle/index.js +1 -3
- package/cjs/Tooltip/Tooltip.js +13 -22
- package/cjs/Tooltip/index.js +1 -3
- package/cjs/Tree/Tree.js +1 -10
- package/cjs/Tree/TreeContext.js +1 -4
- package/cjs/Tree/index.js +1 -3
- package/cjs/TreePicker/TreeNode.js +37 -60
- package/cjs/TreePicker/TreePicker.js +155 -231
- package/cjs/TreePicker/index.js +1 -3
- package/cjs/Uploader/UploadFileItem.js +37 -82
- package/cjs/Uploader/UploadTrigger.js +24 -46
- package/cjs/Uploader/Uploader.js +89 -141
- package/cjs/Uploader/index.js +1 -3
- package/cjs/Whisper/Whisper.js +8 -20
- package/cjs/Whisper/index.js +1 -3
- package/cjs/Windowing/AutoSizer.js +13 -33
- package/cjs/Windowing/List.d.ts +2 -2
- package/cjs/Windowing/List.js +6 -22
- package/cjs/Windowing/index.js +1 -7
- package/cjs/index.js +1 -164
- package/cjs/locales/ar_EG.js +1 -4
- package/cjs/locales/da_DK.js +1 -5
- package/cjs/locales/de_DE.js +1 -5
- package/cjs/locales/default.js +1 -5
- package/cjs/locales/en_GB.js +1 -3
- package/cjs/locales/en_US.js +1 -4
- package/cjs/locales/es_AR.js +1 -5
- package/cjs/locales/es_ES.js +1 -5
- package/cjs/locales/fa_IR.js +1 -4
- package/cjs/locales/fi_FI.js +1 -5
- package/cjs/locales/fr_FR.js +1 -4
- package/cjs/locales/hu_HU.js +1 -5
- package/cjs/locales/index.js +1 -47
- package/cjs/locales/it_IT.js +1 -5
- package/cjs/locales/ja_JP.js +1 -5
- package/cjs/locales/kk_KZ.js +1 -4
- package/cjs/locales/ko_KR.js +1 -5
- package/cjs/locales/ne_NP.js +1 -5
- package/cjs/locales/nl_NL.js +1 -4
- package/cjs/locales/pt_BR.js +1 -4
- package/cjs/locales/ru_RU.js +1 -4
- package/cjs/locales/sv_SE.js +1 -5
- package/cjs/locales/tr_TR.js +1 -4
- package/cjs/locales/zh_CN.js +1 -4
- package/cjs/locales/zh_TW.js +1 -4
- package/cjs/toaster/ToastContainer.js +29 -52
- package/cjs/toaster/ToastContext.js +1 -4
- package/cjs/toaster/index.js +1 -4
- package/cjs/toaster/toaster.js +4 -27
- package/cjs/toaster/useToaster.js +2 -8
- package/cjs/utils/BrowserDetection.js +7 -24
- package/cjs/utils/ReactChildren.js +2 -19
- package/cjs/utils/ajaxUpload.js +15 -33
- package/cjs/utils/appendTooltip.js +3 -9
- package/cjs/utils/attachParent.js +1 -1
- package/cjs/utils/clone.js +1 -2
- package/cjs/utils/composeFunctions.js +1 -3
- package/cjs/utils/constants.js +3 -8
- package/cjs/utils/createChainedFunction.js +2 -6
- package/cjs/utils/createComponent.js +12 -24
- package/cjs/utils/dateUtils.js +7 -121
- package/cjs/utils/deprecateComponent.js +1 -8
- package/cjs/utils/deprecatePropType.js +2 -9
- package/cjs/utils/dom.js +3 -2
- package/cjs/utils/events.js +2 -3
- package/cjs/utils/getDOMNode.js +16 -9
- package/cjs/utils/getDataGroupBy.d.ts +0 -23
- package/cjs/utils/getDataGroupBy.js +5 -44
- package/cjs/utils/getSafeRegExpString.js +1 -1
- package/cjs/utils/guid.js +1 -1
- package/cjs/utils/htmlPropsUtils.js +23 -20
- package/cjs/utils/index.js +1 -86
- package/cjs/utils/isOneOf.js +1 -2
- package/cjs/utils/mergeRefs.js +1 -2
- package/cjs/utils/placementPolyfill.js +2 -5
- package/cjs/utils/prefix.js +4 -15
- package/cjs/utils/previewFile.js +1 -6
- package/cjs/utils/propTypeChecker.js +1 -8
- package/cjs/utils/reactToString.js +1 -5
- package/cjs/utils/render.js +3 -10
- package/cjs/utils/scrollTopAnimation.js +1 -9
- package/cjs/utils/shallowEqual.js +8 -14
- package/cjs/utils/shallowEqualArray.js +1 -7
- package/cjs/utils/statusIcons.js +1 -9
- package/cjs/utils/stringToObject.js +1 -7
- package/cjs/utils/tplTransform.js +2 -7
- package/cjs/utils/treeUtils.js +112 -327
- package/cjs/utils/useClassNames.js +9 -15
- package/cjs/utils/useClickOutside.js +4 -8
- package/cjs/utils/useControlled.js +11 -7
- package/cjs/utils/useCustom.js +12 -25
- package/cjs/utils/useElementResize.js +1 -6
- package/cjs/utils/useEnsuredRef.js +1 -4
- package/cjs/utils/useEventCallback.js +1 -4
- package/cjs/utils/useEventListener.js +1 -5
- package/cjs/utils/useFocus.js +5 -6
- package/cjs/utils/useInternalId.js +1 -6
- package/cjs/utils/useIsMounted.js +1 -3
- package/cjs/utils/useMap.js +5 -7
- package/cjs/utils/useMount.js +1 -4
- package/cjs/utils/usePortal.js +7 -20
- package/cjs/utils/useRootClose.js +9 -19
- package/cjs/utils/useTimeout.js +3 -8
- package/cjs/utils/useToggleCaret.js +2 -14
- package/cjs/utils/useUniqueId.js +2 -9
- package/cjs/utils/useUpdateEffect.js +3 -5
- package/cjs/utils/useUpdatedRef.js +1 -2
- package/cjs/utils/useWillUnmount.js +3 -5
- package/cjs/utils/warnOnce.js +2 -2
- package/dist/rsuite-no-reset-rtl.css +23 -25
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +23 -25
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +23 -25
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +23 -25
- package/dist/rsuite.js +438 -471
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.js +1 -0
- package/esm/@types/utils.js +14 -2
- package/esm/Affix/Affix.js +39 -50
- package/esm/Affix/index.js +1 -0
- package/esm/Animation/Bounce.js +4 -5
- package/esm/Animation/Collapse.js +19 -26
- package/esm/Animation/Fade.js +6 -7
- package/esm/Animation/Slide.js +6 -7
- package/esm/Animation/Transition.js +16 -69
- package/esm/Animation/index.js +1 -0
- package/esm/Animation/utils.js +1 -2
- package/esm/AutoComplete/AutoComplete.js +55 -75
- package/esm/AutoComplete/index.js +1 -0
- package/esm/AutoComplete/utils.js +1 -4
- package/esm/Avatar/Avatar.js +18 -22
- package/esm/Avatar/index.js +1 -0
- package/esm/AvatarGroup/AvatarGroup.js +13 -16
- package/esm/AvatarGroup/index.js +1 -0
- package/esm/Badge/Badge.js +14 -19
- package/esm/Badge/index.js +1 -0
- package/esm/Breadcrumb/Breadcrumb.js +19 -30
- package/esm/Breadcrumb/BreadcrumbItem.js +14 -17
- package/esm/Breadcrumb/index.js +1 -0
- package/esm/Button/Button.js +22 -28
- package/esm/Button/index.js +1 -0
- package/esm/ButtonGroup/ButtonGroup.js +15 -16
- package/esm/ButtonGroup/ButtonGroupContext.js +1 -0
- package/esm/ButtonGroup/index.js +1 -0
- package/esm/ButtonToolbar/ButtonToolbar.js +10 -12
- package/esm/ButtonToolbar/index.js +1 -0
- package/esm/Calendar/Calendar.js +24 -29
- package/esm/Calendar/CalendarBody.js +14 -18
- package/esm/Calendar/CalendarContainer.js +46 -51
- package/esm/Calendar/CalendarContext.js +1 -0
- package/esm/Calendar/CalendarHeader.js +32 -41
- package/esm/Calendar/MonthDropdown.js +22 -27
- package/esm/Calendar/MonthDropdownItem.js +16 -20
- package/esm/Calendar/Table.js +10 -11
- package/esm/Calendar/TableHeaderRow.js +11 -15
- package/esm/Calendar/TableRow.js +36 -50
- package/esm/Calendar/TimeDropdown.js +24 -48
- package/esm/Calendar/index.js +1 -0
- package/esm/Calendar/types.js +1 -0
- package/esm/Calendar/useCalendarDate.js +3 -11
- package/esm/Calendar/useCalendarState.js +3 -6
- package/esm/Carousel/Carousel.js +40 -52
- package/esm/Carousel/index.js +1 -0
- package/esm/Cascader/Cascader.js +126 -178
- package/esm/Cascader/DropdownMenu.js +33 -45
- package/esm/Cascader/index.js +1 -0
- package/esm/Cascader/utils.js +13 -22
- package/esm/CheckPicker/CheckPicker.js +105 -139
- package/esm/CheckPicker/index.js +1 -0
- package/esm/CheckTree/index.js +1 -0
- package/esm/CheckTreePicker/CheckTreeNode.js +28 -44
- package/esm/CheckTreePicker/CheckTreePicker.js +165 -232
- package/esm/CheckTreePicker/index.js +1 -0
- package/esm/CheckTreePicker/utils.js +12 -35
- package/esm/Checkbox/Checkbox.js +48 -66
- package/esm/Checkbox/index.js +1 -0
- package/esm/CheckboxGroup/CheckboxGroup.js +20 -25
- package/esm/CheckboxGroup/CheckboxGroupContext.js +1 -0
- package/esm/CheckboxGroup/index.js +1 -0
- package/esm/CloseButton/CloseButton.js +10 -13
- package/esm/CloseButton/index.js +1 -0
- package/esm/Col/Col.js +10 -13
- package/esm/Col/index.js +1 -0
- package/esm/Container/Container.js +11 -13
- package/esm/Container/index.js +1 -0
- package/esm/Content/Content.js +1 -1
- package/esm/Content/index.js +1 -0
- package/esm/CustomProvider/CustomProvider.js +13 -16
- package/esm/CustomProvider/FormattedDate.js +3 -6
- package/esm/CustomProvider/index.js +1 -0
- package/esm/DOMHelper/index.js +1 -2
- package/esm/DOMHelper/isElement.js +1 -1
- package/esm/DatePicker/DatePicker.js +108 -131
- package/esm/DatePicker/PredefinedRanges.js +12 -19
- package/esm/DatePicker/Toolbar.js +20 -26
- package/esm/DatePicker/index.js +1 -0
- package/esm/DatePicker/types.js +1 -0
- package/esm/DatePicker/utils.js +5 -8
- package/esm/DateRangePicker/Calendar.js +18 -18
- package/esm/DateRangePicker/DateRangePicker.js +128 -184
- package/esm/DateRangePicker/DateRangePickerContext.js +1 -0
- package/esm/DateRangePicker/disabledDateUtils.js +9 -24
- package/esm/DateRangePicker/index.js +1 -0
- package/esm/DateRangePicker/types.js +1 -0
- package/esm/DateRangePicker/utils.js +7 -12
- package/esm/Disclosure/Disclosure.js +13 -24
- package/esm/Disclosure/DisclosureButton.js +4 -7
- package/esm/Disclosure/DisclosureContent.js +1 -2
- package/esm/Disclosure/DisclosureContext.js +1 -2
- package/esm/Disclosure/index.js +1 -0
- package/esm/Disclosure/useDisclosureContext.js +1 -2
- package/esm/Divider/Divider.js +11 -12
- package/esm/Divider/index.js +1 -0
- package/esm/Drawer/Drawer.js +10 -11
- package/esm/Drawer/index.js +1 -0
- package/esm/Dropdown/Dropdown.js +35 -50
- package/esm/Dropdown/DropdownContext.js +1 -0
- package/esm/Dropdown/DropdownItem.js +22 -31
- package/esm/Dropdown/DropdownMenu.js +36 -49
- package/esm/Dropdown/DropdownSeparator.js +8 -10
- package/esm/Dropdown/DropdownState.js +1 -7
- package/esm/Dropdown/DropdownToggle.js +17 -17
- package/esm/Dropdown/index.js +1 -0
- package/esm/Dropdown/useRenderDropdownItem.js +1 -2
- package/esm/FlexboxGrid/FlexboxGrid.js +12 -13
- package/esm/FlexboxGrid/FlexboxGridItem.js +12 -14
- package/esm/FlexboxGrid/index.js +1 -0
- package/esm/Footer/Footer.js +1 -0
- package/esm/Footer/index.js +1 -0
- package/esm/Form/Form.js +38 -66
- package/esm/Form/FormContext.d.ts +2 -3
- package/esm/Form/FormContext.js +1 -0
- package/esm/Form/index.js +1 -0
- package/esm/Form/useFormClassNames.js +11 -13
- package/esm/Form/useSchemaModel.js +2 -4
- package/esm/FormControl/FormControl.js +46 -70
- package/esm/FormControl/index.js +1 -0
- package/esm/FormControl/useRegisterModel.js +1 -2
- package/esm/FormControlLabel/FormControlLabel.js +10 -12
- package/esm/FormControlLabel/index.js +1 -0
- package/esm/FormErrorMessage/FormErrorMessage.js +12 -18
- package/esm/FormErrorMessage/index.js +1 -0
- package/esm/FormGroup/FormGroup.js +9 -10
- package/esm/FormGroup/index.js +1 -0
- package/esm/FormHelpText/FormHelpText.js +11 -15
- package/esm/FormHelpText/index.js +1 -0
- package/esm/Grid/Grid.js +10 -11
- package/esm/Grid/index.js +1 -0
- package/esm/Header/Header.js +1 -0
- package/esm/Header/index.js +1 -0
- package/esm/IconButton/IconButton.js +11 -12
- package/esm/IconButton/index.js +1 -0
- package/esm/Input/Input.js +26 -32
- package/esm/Input/index.js +1 -0
- package/esm/InputGroup/InputGroup.js +23 -26
- package/esm/InputGroup/InputGroupAddon.js +9 -10
- package/esm/InputGroup/InputGroupButton.js +7 -9
- package/esm/InputGroup/index.js +1 -0
- package/esm/InputNumber/InputNumber.js +42 -72
- package/esm/InputNumber/index.js +1 -0
- package/esm/InputPicker/InputAutosize.js +17 -37
- package/esm/InputPicker/InputPicker.d.ts +2 -0
- package/esm/InputPicker/InputPicker.js +152 -226
- package/esm/InputPicker/InputSearch.js +15 -20
- package/esm/InputPicker/index.js +1 -0
- package/esm/List/List.js +37 -39
- package/esm/List/ListContext.js +1 -0
- package/esm/List/ListItem.js +26 -30
- package/esm/List/helper/AutoScroller.js +11 -21
- package/esm/List/helper/useManager.js +1 -6
- package/esm/List/helper/useSortHelper.js +58 -74
- package/esm/List/helper/utils.js +6 -11
- package/esm/List/index.js +1 -0
- package/esm/Loader/Loader.js +17 -19
- package/esm/Loader/index.js +1 -0
- package/esm/MaskedInput/MaskedInput.js +2 -1
- package/esm/MaskedInput/TextMask.js +12 -14
- package/esm/MaskedInput/adjustCaretPosition.js +99 -69
- package/esm/MaskedInput/conformToMask.js +79 -70
- package/esm/MaskedInput/createTextMaskInputElement.js +65 -62
- package/esm/MaskedInput/index.js +1 -0
- package/esm/MaskedInput/types.js +1 -0
- package/esm/MaskedInput/utilities.js +1 -6
- package/esm/Menu/Menu.js +35 -66
- package/esm/Menu/MenuContext.js +1 -4
- package/esm/Menu/MenuItem.js +15 -19
- package/esm/Menu/Menubar.js +13 -23
- package/esm/Menu/index.js +1 -0
- package/esm/Menu/useMenu.js +4 -27
- package/esm/Message/Message.js +23 -34
- package/esm/Message/index.js +1 -0
- package/esm/Modal/Modal.js +70 -69
- package/esm/Modal/ModalBody.js +11 -13
- package/esm/Modal/ModalContext.js +1 -0
- package/esm/Modal/ModalDialog.js +14 -18
- package/esm/Modal/ModalFooter.js +1 -0
- package/esm/Modal/ModalHeader.js +14 -16
- package/esm/Modal/ModalTitle.js +9 -10
- package/esm/Modal/index.js +1 -0
- package/esm/Modal/utils.js +8 -12
- package/esm/MultiCascader/DropdownMenu.js +38 -48
- package/esm/MultiCascader/MultiCascader.js +129 -174
- package/esm/MultiCascader/index.js +1 -0
- package/esm/MultiCascader/utils.js +44 -87
- package/esm/Nav/Nav.js +27 -45
- package/esm/Nav/NavContext.js +1 -0
- package/esm/Nav/NavDropdown.js +28 -44
- package/esm/Nav/NavDropdownItem.js +20 -31
- package/esm/Nav/NavDropdownMenu.js +26 -42
- package/esm/Nav/NavDropdownToggle.js +12 -15
- package/esm/Nav/NavItem.js +20 -28
- package/esm/Nav/NavMenu.js +2 -13
- package/esm/Nav/index.js +1 -0
- package/esm/Navbar/Navbar.js +10 -11
- package/esm/Navbar/NavbarBody.js +1 -0
- package/esm/Navbar/NavbarBrand.js +1 -0
- package/esm/Navbar/NavbarDropdown.js +25 -33
- package/esm/Navbar/NavbarDropdownItem.js +18 -30
- package/esm/Navbar/NavbarDropdownMenu.js +22 -37
- package/esm/Navbar/NavbarDropdownToggle.js +12 -14
- package/esm/Navbar/NavbarHeader.js +1 -0
- package/esm/Navbar/NavbarItem.js +19 -23
- package/esm/Navbar/index.js +1 -0
- package/esm/Notification/Notification.js +20 -32
- package/esm/Notification/index.js +1 -0
- package/esm/Overlay/Modal.js +40 -64
- package/esm/Overlay/ModalManager.js +1 -19
- package/esm/Overlay/Overlay.js +28 -37
- package/esm/Overlay/OverlayContext.js +1 -0
- package/esm/Overlay/OverlayTrigger.js +68 -101
- package/esm/Overlay/Position.js +25 -47
- package/esm/Overlay/index.js +1 -0
- package/esm/Overlay/positionUtils.js +25 -73
- package/esm/Pagination/Pagination.js +30 -55
- package/esm/Pagination/PaginationButton.js +15 -19
- package/esm/Pagination/PaginationGroup.js +38 -49
- package/esm/Pagination/index.js +1 -0
- package/esm/Panel/Panel.js +37 -49
- package/esm/Panel/index.js +1 -0
- package/esm/PanelGroup/PanelGroup.js +16 -18
- package/esm/PanelGroup/index.js +1 -0
- package/esm/Picker/DropdownMenu.js +50 -72
- package/esm/Picker/DropdownMenuCheckItem.js +22 -24
- package/esm/Picker/DropdownMenuGroup.js +10 -13
- package/esm/Picker/DropdownMenuItem.js +15 -18
- package/esm/Picker/PickerOverlay.js +12 -17
- package/esm/Picker/PickerToggle.js +57 -71
- package/esm/Picker/PickerToggleTrigger.js +8 -10
- package/esm/Picker/SearchBar.js +14 -15
- package/esm/Picker/SelectedElement.js +9 -14
- package/esm/Picker/ToggleButton.js +1 -0
- package/esm/Picker/index.js +1 -0
- package/esm/Picker/propTypes.js +1 -1
- package/esm/Picker/types.js +1 -0
- package/esm/Picker/utils.js +94 -182
- package/esm/Placeholder/Placeholder.js +1 -0
- package/esm/Placeholder/PlaceholderGraph.js +13 -16
- package/esm/Placeholder/PlaceholderGrid.js +18 -25
- package/esm/Placeholder/PlaceholderParagraph.js +17 -20
- package/esm/Placeholder/index.js +1 -0
- package/esm/Plaintext/Plaintext.js +14 -17
- package/esm/Plaintext/index.js +1 -0
- package/esm/Popover/Popover.js +16 -21
- package/esm/Popover/index.js +1 -0
- package/esm/Progress/Progress.js +1 -0
- package/esm/Progress/ProgressCircle.js +30 -39
- package/esm/Progress/ProgressLine.js +19 -21
- package/esm/Progress/index.js +1 -0
- package/esm/Radio/Radio.js +42 -52
- package/esm/Radio/index.js +1 -0
- package/esm/RadioGroup/RadioGroup.js +22 -25
- package/esm/RadioGroup/index.js +1 -0
- package/esm/RadioTile/RadioTile.js +30 -34
- package/esm/RadioTile/index.js +1 -0
- package/esm/RadioTileGroup/RadioTileGroup.js +17 -20
- package/esm/RadioTileGroup/index.js +1 -0
- package/esm/RangeSlider/RangeSlider.js +63 -86
- package/esm/RangeSlider/index.js +1 -0
- package/esm/Rate/Character.js +16 -21
- package/esm/Rate/Rate.js +35 -48
- package/esm/Rate/index.js +1 -0
- package/esm/Rate/utils.js +1 -2
- package/esm/Ripple/Ripple.js +16 -30
- package/esm/Ripple/index.js +1 -0
- package/esm/Row/Row.js +11 -14
- package/esm/Row/index.js +1 -0
- package/esm/SafeAnchor/SafeAnchor.js +8 -13
- package/esm/SafeAnchor/index.js +1 -0
- package/esm/Schema/Schema.js +1 -0
- package/esm/Schema/index.js +1 -0
- package/esm/SelectPicker/SelectPicker.js +137 -157
- package/esm/SelectPicker/index.js +1 -0
- package/esm/Sidebar/Sidebar.js +13 -18
- package/esm/Sidebar/index.js +1 -0
- package/esm/Sidenav/ExpandedSidenavDropdown.js +32 -35
- package/esm/Sidenav/ExpandedSidenavDropdownItem.js +19 -27
- package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +22 -29
- package/esm/Sidenav/Node.js +1 -10
- package/esm/Sidenav/Sidenav.js +22 -28
- package/esm/Sidenav/SidenavBody.js +1 -0
- package/esm/Sidenav/SidenavDropdown.js +39 -52
- package/esm/Sidenav/SidenavDropdownCollapse.js +9 -13
- package/esm/Sidenav/SidenavDropdownItem.js +19 -31
- package/esm/Sidenav/SidenavDropdownMenu.js +26 -41
- package/esm/Sidenav/SidenavDropdownToggle.js +12 -14
- package/esm/Sidenav/SidenavHeader.js +1 -0
- package/esm/Sidenav/SidenavItem.js +27 -37
- package/esm/Sidenav/SidenavToggle.js +11 -18
- package/esm/Sidenav/index.js +1 -0
- package/esm/Slider/Graduated.js +14 -21
- package/esm/Slider/Handle.js +27 -39
- package/esm/Slider/Input.js +2 -2
- package/esm/Slider/Mark.js +11 -14
- package/esm/Slider/ProgressBar.js +14 -18
- package/esm/Slider/Slider.js +51 -67
- package/esm/Slider/index.js +1 -0
- package/esm/Slider/utils.js +1 -5
- package/esm/Stack/Stack.js +22 -27
- package/esm/Stack/StackItem.js +11 -11
- package/esm/Stack/index.js +1 -0
- package/esm/Steps/StepItem.js +16 -22
- package/esm/Steps/Steps.js +18 -22
- package/esm/Steps/index.js +1 -0
- package/esm/Table/Table.js +6 -7
- package/esm/Table/index.js +1 -0
- package/esm/Tag/Tag.js +16 -19
- package/esm/Tag/index.js +1 -0
- package/esm/TagGroup/TagGroup.js +1 -0
- package/esm/TagGroup/index.js +1 -0
- package/esm/TagInput/index.d.ts +3 -0
- package/esm/TagInput/index.js +11 -9
- package/esm/TagPicker/index.d.ts +3 -0
- package/esm/TagPicker/index.js +9 -7
- package/esm/Timeline/Timeline.js +14 -19
- package/esm/Timeline/TimelineItem.js +14 -15
- package/esm/Timeline/index.js +1 -0
- package/esm/Toggle/Toggle.js +26 -35
- package/esm/Toggle/index.js +1 -0
- package/esm/Tooltip/Tooltip.js +13 -16
- package/esm/Tooltip/index.js +1 -0
- package/esm/Tree/Tree.js +1 -3
- package/esm/Tree/TreeContext.js +1 -0
- package/esm/Tree/index.js +1 -0
- package/esm/TreePicker/TreeNode.js +37 -49
- package/esm/TreePicker/TreePicker.js +155 -218
- package/esm/TreePicker/index.js +1 -0
- package/esm/Uploader/UploadFileItem.js +37 -68
- package/esm/Uploader/UploadTrigger.js +24 -38
- package/esm/Uploader/Uploader.js +90 -132
- package/esm/Uploader/index.js +1 -0
- package/esm/Whisper/Whisper.js +8 -10
- package/esm/Whisper/index.js +1 -0
- package/esm/Windowing/AutoSizer.js +13 -24
- package/esm/Windowing/List.d.ts +2 -2
- package/esm/Windowing/List.js +6 -15
- package/esm/Windowing/index.js +1 -0
- package/esm/index.js +3 -0
- package/esm/locales/ar_EG.js +1 -0
- package/esm/locales/da_DK.js +1 -1
- package/esm/locales/de_DE.js +1 -1
- package/esm/locales/default.js +1 -1
- package/esm/locales/en_GB.js +1 -0
- package/esm/locales/en_US.js +1 -0
- package/esm/locales/es_AR.js +1 -1
- package/esm/locales/es_ES.js +1 -1
- package/esm/locales/fa_IR.js +1 -0
- package/esm/locales/fi_FI.js +1 -1
- package/esm/locales/fr_FR.js +1 -0
- package/esm/locales/hu_HU.js +1 -1
- package/esm/locales/index.js +1 -0
- package/esm/locales/it_IT.js +1 -1
- package/esm/locales/ja_JP.js +1 -1
- package/esm/locales/kk_KZ.js +1 -0
- package/esm/locales/ko_KR.js +1 -1
- package/esm/locales/ne_NP.js +1 -1
- package/esm/locales/nl_NL.js +1 -0
- package/esm/locales/pt_BR.js +1 -0
- package/esm/locales/ru_RU.js +1 -0
- package/esm/locales/sv_SE.js +1 -1
- package/esm/locales/tr_TR.js +1 -0
- package/esm/locales/zh_CN.js +1 -0
- package/esm/locales/zh_TW.js +1 -0
- package/esm/toaster/ToastContainer.js +29 -42
- package/esm/toaster/ToastContext.js +1 -0
- package/esm/toaster/index.js +1 -0
- package/esm/toaster/toaster.js +4 -22
- package/esm/toaster/useToaster.js +3 -5
- package/esm/utils/BrowserDetection.js +9 -9
- package/esm/utils/ReactChildren.js +2 -8
- package/esm/utils/ajaxUpload.js +15 -32
- package/esm/utils/appendTooltip.js +3 -3
- package/esm/utils/attachParent.js +1 -0
- package/esm/utils/clone.js +1 -1
- package/esm/utils/composeFunctions.js +1 -1
- package/esm/utils/constants.js +4 -7
- package/esm/utils/createChainedFunction.js +2 -5
- package/esm/utils/createComponent.js +12 -16
- package/esm/utils/dateUtils.js +7 -23
- package/esm/utils/deprecateComponent.js +2 -2
- package/esm/utils/deprecatePropType.js +4 -6
- package/esm/utils/dom.js +3 -1
- package/esm/utils/events.js +2 -1
- package/esm/utils/getDOMNode.js +15 -8
- package/esm/utils/getDataGroupBy.d.ts +0 -23
- package/esm/utils/getDataGroupBy.js +5 -39
- package/esm/utils/getSafeRegExpString.js +1 -0
- package/esm/utils/guid.js +1 -0
- package/esm/utils/htmlPropsUtils.js +23 -14
- package/esm/utils/index.js +2 -1
- package/esm/utils/isOneOf.js +1 -1
- package/esm/utils/mergeRefs.js +1 -1
- package/esm/utils/placementPolyfill.js +2 -4
- package/esm/utils/prefix.js +4 -4
- package/esm/utils/previewFile.js +1 -3
- package/esm/utils/propTypeChecker.js +1 -3
- package/esm/utils/reactToString.js +1 -2
- package/esm/utils/render.js +3 -5
- package/esm/utils/scrollTopAnimation.js +1 -5
- package/esm/utils/shallowEqual.js +8 -13
- package/esm/utils/shallowEqualArray.js +1 -5
- package/esm/utils/statusIcons.js +1 -0
- package/esm/utils/stringToObject.js +3 -4
- package/esm/utils/tplTransform.js +2 -4
- package/esm/utils/treeUtils.js +113 -265
- package/esm/utils/useClassNames.js +9 -9
- package/esm/utils/useClickOutside.js +4 -6
- package/esm/utils/useControlled.js +12 -6
- package/esm/utils/useCustom.js +12 -20
- package/esm/utils/useElementResize.js +2 -4
- package/esm/utils/useEnsuredRef.js +2 -3
- package/esm/utils/useEventCallback.js +2 -3
- package/esm/utils/useEventListener.js +2 -2
- package/esm/utils/useFocus.js +5 -4
- package/esm/utils/useInternalId.js +2 -3
- package/esm/utils/useIsMounted.js +1 -2
- package/esm/utils/useMap.js +5 -5
- package/esm/utils/useMount.js +1 -3
- package/esm/utils/usePortal.js +7 -13
- package/esm/utils/useRootClose.js +9 -13
- package/esm/utils/useTimeout.js +3 -7
- package/esm/utils/useToggleCaret.js +2 -7
- package/esm/utils/useUniqueId.js +2 -4
- package/esm/utils/useUpdateEffect.js +3 -4
- package/esm/utils/useUpdatedRef.js +2 -1
- package/esm/utils/useWillUnmount.js +4 -2
- package/esm/utils/warnOnce.js +2 -2
- package/package.json +2 -2
- package/styles/color-modes/light.less +4 -4
- package/styles/mixins/listbox.less +0 -2
- package/cjs/SelectPicker/Listbox.d.ts +0 -34
- package/cjs/SelectPicker/Listbox.js +0 -263
- package/cjs/SelectPicker/ListboxOption.d.ts +0 -11
- package/cjs/SelectPicker/ListboxOption.js +0 -50
- package/cjs/SelectPicker/ListboxOptionGroup.d.ts +0 -9
- package/cjs/SelectPicker/ListboxOptionGroup.js +0 -69
- package/esm/SelectPicker/Listbox.d.ts +0 -34
- package/esm/SelectPicker/Listbox.js +0 -240
- package/esm/SelectPicker/ListboxOption.d.ts +0 -11
- package/esm/SelectPicker/ListboxOption.js +0 -37
- package/esm/SelectPicker/ListboxOptionGroup.d.ts +0 -9
- package/esm/SelectPicker/ListboxOptionGroup.js +0 -53
package/cjs/Menu/Menu.js
CHANGED
|
@@ -1,56 +1,41 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
6
|
exports.__esModule = true;
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
11
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
17
|
-
|
|
18
12
|
var _MenuContext = _interopRequireWildcard(require("./MenuContext"));
|
|
19
|
-
|
|
20
13
|
var _utils = require("../utils");
|
|
21
|
-
|
|
22
14
|
var _useUniqueId = _interopRequireDefault(require("../utils/useUniqueId"));
|
|
23
|
-
|
|
24
15
|
var _useMenu = _interopRequireDefault(require("./useMenu"));
|
|
25
|
-
|
|
26
16
|
var _useFocus2 = _interopRequireDefault(require("../utils/useFocus"));
|
|
27
|
-
|
|
28
17
|
var _useClickOutside = _interopRequireDefault(require("../utils/useClickOutside"));
|
|
29
|
-
|
|
30
18
|
var _events = require("../utils/events");
|
|
31
|
-
|
|
32
19
|
var _dom = require("../utils/dom");
|
|
33
|
-
|
|
34
20
|
var defaultOpenMenuOn = ['click'];
|
|
21
|
+
|
|
35
22
|
/**
|
|
36
23
|
* Headless ARIA `menu`
|
|
37
24
|
* @private
|
|
38
25
|
*/
|
|
39
|
-
|
|
40
26
|
function Menu(_ref) {
|
|
41
27
|
var _items$activeItemInde;
|
|
42
|
-
|
|
43
28
|
var disabled = _ref.disabled,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
29
|
+
children = _ref.children,
|
|
30
|
+
_ref$openMenuOn = _ref.openMenuOn,
|
|
31
|
+
openMenuOn = _ref$openMenuOn === void 0 ? defaultOpenMenuOn : _ref$openMenuOn,
|
|
32
|
+
_ref$defaultOpen = _ref.defaultOpen,
|
|
33
|
+
defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
|
|
34
|
+
openProp = _ref.open,
|
|
35
|
+
menuButtonText = _ref.menuButtonText,
|
|
36
|
+
renderMenuButton = _ref.renderMenuButton,
|
|
37
|
+
renderMenuPopup = _ref.renderMenuPopup,
|
|
38
|
+
onToggleMenu = _ref.onToggleMenu;
|
|
54
39
|
var buttonElementRef = (0, _react.useRef)(null);
|
|
55
40
|
var menuElementRef = (0, _react.useRef)(null);
|
|
56
41
|
var parentMenu = (0, _react.useContext)(_MenuContext.default);
|
|
@@ -59,33 +44,27 @@ function Menu(_ref) {
|
|
|
59
44
|
open: defaultOpen
|
|
60
45
|
});
|
|
61
46
|
var _menu$ = menu[0],
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
47
|
+
openState = _menu$.open,
|
|
48
|
+
items = _menu$.items,
|
|
49
|
+
activeItemIndex = _menu$.activeItemIndex,
|
|
50
|
+
dispatch = menu[1];
|
|
66
51
|
var openControlled = typeof openProp !== 'undefined';
|
|
67
52
|
var open = openControlled ? openProp : openState;
|
|
68
|
-
|
|
69
53
|
var _useCustom = (0, _utils.useCustom)('Menu'),
|
|
70
|
-
|
|
71
|
-
|
|
54
|
+
rtl = _useCustom.rtl;
|
|
72
55
|
var activeItem = (0, _isNil.default)(activeItemIndex) ? null : (_items$activeItemInde = items[activeItemIndex]) === null || _items$activeItemInde === void 0 ? void 0 : _items$activeItemInde.element;
|
|
73
|
-
|
|
74
56
|
var _useFocus = (0, _useFocus2.default)(menuElementRef),
|
|
75
|
-
|
|
76
|
-
|
|
57
|
+
grabFocus = _useFocus.grab;
|
|
77
58
|
var openMenu = (0, _react.useCallback)(function (event) {
|
|
78
59
|
dispatch({
|
|
79
60
|
type: _MenuContext.MenuActionTypes.OpenMenu
|
|
80
61
|
});
|
|
81
|
-
|
|
82
62
|
if (!event.isTrusted) {
|
|
83
63
|
dispatch({
|
|
84
64
|
type: _MenuContext.MenuActionTypes.MoveFocus,
|
|
85
65
|
to: _MenuContext.MoveFocusTo.First
|
|
86
66
|
});
|
|
87
67
|
}
|
|
88
|
-
|
|
89
68
|
onToggleMenu === null || onToggleMenu === void 0 ? void 0 : onToggleMenu(true, event);
|
|
90
69
|
grabFocus();
|
|
91
70
|
}, [dispatch, onToggleMenu, grabFocus]);
|
|
@@ -93,7 +72,6 @@ function Menu(_ref) {
|
|
|
93
72
|
if (returnFocusToButton === void 0) {
|
|
94
73
|
returnFocusToButton = true;
|
|
95
74
|
}
|
|
96
|
-
|
|
97
75
|
dispatch({
|
|
98
76
|
type: _MenuContext.MenuActionTypes.CloseMenu
|
|
99
77
|
});
|
|
@@ -102,10 +80,8 @@ function Menu(_ref) {
|
|
|
102
80
|
to: _MenuContext.MoveFocusTo.None
|
|
103
81
|
});
|
|
104
82
|
onToggleMenu === null || onToggleMenu === void 0 ? void 0 : onToggleMenu(false, event);
|
|
105
|
-
|
|
106
83
|
if (returnFocusToButton) {
|
|
107
84
|
var _buttonElementRef$cur;
|
|
108
|
-
|
|
109
85
|
(_buttonElementRef$cur = buttonElementRef.current) === null || _buttonElementRef$cur === void 0 ? void 0 : _buttonElementRef$cur.focus({
|
|
110
86
|
preventScroll: true
|
|
111
87
|
});
|
|
@@ -122,7 +98,6 @@ function Menu(_ref) {
|
|
|
122
98
|
enabled: open,
|
|
123
99
|
isOutside: function isOutside(event) {
|
|
124
100
|
var _buttonElementRef$cur2, _menuElementRef$curre;
|
|
125
|
-
|
|
126
101
|
return !((_buttonElementRef$cur2 = buttonElementRef.current) !== null && _buttonElementRef$cur2 !== void 0 && _buttonElementRef$cur2.contains(event.target)) && !((_menuElementRef$curre = menuElementRef.current) !== null && _menuElementRef$curre !== void 0 && _menuElementRef$curre.contains(event.target));
|
|
127
102
|
},
|
|
128
103
|
// fixme if clicking on a focusable element, don't move focus to menu button
|
|
@@ -130,11 +105,11 @@ function Menu(_ref) {
|
|
|
130
105
|
return closeMenu(event, !(0, _dom.isFocusableElement)(event.target));
|
|
131
106
|
}
|
|
132
107
|
});
|
|
108
|
+
|
|
133
109
|
/**
|
|
134
110
|
* Keyboard interaction on menu button
|
|
135
111
|
* @see https://www.w3.org/TR/wai-aria-practices-1.2/#keyboard-interaction-13
|
|
136
112
|
*/
|
|
137
|
-
|
|
138
113
|
var handleButtonKeydown = (0, _react.useCallback)(function (e) {
|
|
139
114
|
switch (e.key) {
|
|
140
115
|
// Open the menu
|
|
@@ -142,7 +117,6 @@ function Menu(_ref) {
|
|
|
142
117
|
case _utils.KEY_VALUES.SPACE:
|
|
143
118
|
e.preventDefault();
|
|
144
119
|
e.stopPropagation();
|
|
145
|
-
|
|
146
120
|
if (!open) {
|
|
147
121
|
openMenu(e);
|
|
148
122
|
dispatch({
|
|
@@ -152,19 +126,15 @@ function Menu(_ref) {
|
|
|
152
126
|
} else {
|
|
153
127
|
closeMenu(e);
|
|
154
128
|
}
|
|
155
|
-
|
|
156
129
|
break;
|
|
157
130
|
// Open the menu (if closed) and move focus to first item
|
|
158
131
|
// This is mostly useful after opening the menu with click
|
|
159
|
-
|
|
160
132
|
case _utils.KEY_VALUES.DOWN:
|
|
161
133
|
e.preventDefault();
|
|
162
134
|
e.stopPropagation();
|
|
163
|
-
|
|
164
135
|
if (!open) {
|
|
165
136
|
openMenu(e);
|
|
166
137
|
}
|
|
167
|
-
|
|
168
138
|
dispatch({
|
|
169
139
|
type: _MenuContext.MenuActionTypes.MoveFocus,
|
|
170
140
|
to: _MenuContext.MoveFocusTo.First
|
|
@@ -176,13 +146,13 @@ function Menu(_ref) {
|
|
|
176
146
|
if (disabled) {
|
|
177
147
|
return;
|
|
178
148
|
}
|
|
179
|
-
|
|
180
149
|
toggleMenu(event);
|
|
181
150
|
}, [disabled, toggleMenu]);
|
|
182
151
|
var handleButtonContextMenu = (0, _react.useCallback)(function (event) {
|
|
183
152
|
// prevents default contextmenu
|
|
184
|
-
event.preventDefault();
|
|
153
|
+
event.preventDefault();
|
|
185
154
|
|
|
155
|
+
// Only opens menu on right click. Left click can close the menu opened by a right click
|
|
186
156
|
if (open) return;
|
|
187
157
|
if (disabled) return;
|
|
188
158
|
openMenu(event);
|
|
@@ -191,19 +161,17 @@ function Menu(_ref) {
|
|
|
191
161
|
var buttonEventHandlers = {
|
|
192
162
|
onKeyDown: handleButtonKeydown
|
|
193
163
|
};
|
|
164
|
+
|
|
194
165
|
/**
|
|
195
166
|
* Bind event of trigger,
|
|
196
167
|
* not used in in the expanded state of '<Sidenav>'
|
|
197
168
|
*/
|
|
198
|
-
|
|
199
169
|
if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('click')) {
|
|
200
170
|
buttonEventHandlers.onClick = handleButtonClick;
|
|
201
171
|
}
|
|
202
|
-
|
|
203
172
|
if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('contextmenu')) {
|
|
204
173
|
buttonEventHandlers.onContextMenu = handleButtonContextMenu;
|
|
205
174
|
}
|
|
206
|
-
|
|
207
175
|
return buttonEventHandlers;
|
|
208
176
|
}, [openMenuOn, handleButtonKeydown, handleButtonClick, handleButtonContextMenu]);
|
|
209
177
|
var buttonId = (0, _useUniqueId.default)('menubutton-');
|
|
@@ -232,11 +200,11 @@ function Menu(_ref) {
|
|
|
232
200
|
var buttonElement = customMenuButton !== null && customMenuButton !== void 0 ? customMenuButton : /*#__PURE__*/_react.default.createElement("button", (0, _extends2.default)({
|
|
233
201
|
ref: buttonElementRef
|
|
234
202
|
}, buttonProps), menuButtonText);
|
|
203
|
+
|
|
235
204
|
/**
|
|
236
205
|
* Keyboard interaction on menu
|
|
237
206
|
* @see https://www.w3.org/TR/wai-aria-practices-1.2/#keyboard-interaction-12
|
|
238
207
|
*/
|
|
239
|
-
|
|
240
208
|
var handleMenuKeydown = (0, _react.useCallback)(function (e) {
|
|
241
209
|
switch (e.key) {
|
|
242
210
|
// Move focus to previous item
|
|
@@ -249,7 +217,6 @@ function Menu(_ref) {
|
|
|
249
217
|
});
|
|
250
218
|
break;
|
|
251
219
|
// Move focus to next item
|
|
252
|
-
|
|
253
220
|
case _utils.KEY_VALUES.DOWN:
|
|
254
221
|
e.preventDefault();
|
|
255
222
|
e.stopPropagation();
|
|
@@ -259,11 +226,9 @@ function Menu(_ref) {
|
|
|
259
226
|
});
|
|
260
227
|
break;
|
|
261
228
|
// When focus is in a menu and on a menuitem that has a submenu, opens the submenu and places focus on its first item.
|
|
262
|
-
|
|
263
229
|
case _utils.KEY_VALUES.RIGHT:
|
|
264
230
|
e.preventDefault();
|
|
265
231
|
e.stopPropagation();
|
|
266
|
-
|
|
267
232
|
if (!rtl) {
|
|
268
233
|
if ((activeItem === null || activeItem === void 0 ? void 0 : activeItem.getAttribute('aria-haspopup')) === 'menu') {
|
|
269
234
|
activeItem.click();
|
|
@@ -273,14 +238,11 @@ function Menu(_ref) {
|
|
|
273
238
|
type: _MenuContext.MenuActionTypes.CloseMenu
|
|
274
239
|
});
|
|
275
240
|
}
|
|
276
|
-
|
|
277
241
|
break;
|
|
278
242
|
// When focus is in a submenu of an item in a menu, closes the submenu and returns focus to the parent menuitem.
|
|
279
|
-
|
|
280
243
|
case _utils.KEY_VALUES.LEFT:
|
|
281
244
|
e.preventDefault();
|
|
282
245
|
e.stopPropagation();
|
|
283
|
-
|
|
284
246
|
if (!rtl) {
|
|
285
247
|
if (isSubmenu) {
|
|
286
248
|
closeMenu(e);
|
|
@@ -288,10 +250,8 @@ function Menu(_ref) {
|
|
|
288
250
|
} else if ((activeItem === null || activeItem === void 0 ? void 0 : activeItem.getAttribute('aria-haspopup')) === 'menu') {
|
|
289
251
|
activeItem.click();
|
|
290
252
|
}
|
|
291
|
-
|
|
292
253
|
break;
|
|
293
254
|
// Move focus to the first item
|
|
294
|
-
|
|
295
255
|
case _utils.KEY_VALUES.HOME:
|
|
296
256
|
e.preventDefault();
|
|
297
257
|
e.stopPropagation();
|
|
@@ -301,7 +261,6 @@ function Menu(_ref) {
|
|
|
301
261
|
});
|
|
302
262
|
break;
|
|
303
263
|
// Move focus to the last item
|
|
304
|
-
|
|
305
264
|
case _utils.KEY_VALUES.END:
|
|
306
265
|
e.preventDefault();
|
|
307
266
|
e.stopPropagation();
|
|
@@ -312,40 +271,41 @@ function Menu(_ref) {
|
|
|
312
271
|
break;
|
|
313
272
|
// - When focus is on a menuitem that has a submenu, opens the submenu and places focus on its first item.
|
|
314
273
|
// - Otherwise, activates the item and closes the menu.
|
|
315
|
-
|
|
316
274
|
case _utils.KEY_VALUES.ENTER:
|
|
317
275
|
case _utils.KEY_VALUES.SPACE:
|
|
318
276
|
if (activeItem) {
|
|
319
277
|
e.preventDefault();
|
|
320
278
|
e.stopPropagation();
|
|
321
279
|
activeItem.click();
|
|
322
|
-
|
|
323
280
|
if (!activeItem.getAttribute('aria-haspopup')) {
|
|
324
281
|
closeMenu(e);
|
|
325
282
|
}
|
|
326
283
|
}
|
|
327
|
-
|
|
328
284
|
break;
|
|
329
285
|
// Close the menu that contains focus and return focus to the element or context,
|
|
330
286
|
// e.g., menu button or parent menuitem, from which the menu was opened.
|
|
331
|
-
|
|
332
287
|
case _utils.KEY_VALUES.ESC:
|
|
333
288
|
closeMenu(e);
|
|
334
289
|
break;
|
|
335
290
|
}
|
|
336
|
-
}, [dispatch, activeItem, isSubmenu, rtl, closeMenu]);
|
|
291
|
+
}, [dispatch, activeItem, isSubmenu, rtl, closeMenu]);
|
|
337
292
|
|
|
293
|
+
// Only used for clicks bubbling from child `menuitem`s.
|
|
338
294
|
var handleMenuClick = (0, _react.useCallback)(function (event) {
|
|
339
|
-
var target = event.target;
|
|
295
|
+
var target = event.target;
|
|
340
296
|
|
|
341
|
-
|
|
297
|
+
// Only handle clicks on `menuitem`s
|
|
298
|
+
if (target.getAttribute('role') !== 'menuitem') return;
|
|
342
299
|
|
|
343
|
-
|
|
300
|
+
// Ignore clicks on `menuitem`s that controls a submenu
|
|
301
|
+
if (target.getAttribute('aria-haspopup') === 'menu') return;
|
|
344
302
|
|
|
303
|
+
// Ignore disabled `menuitem`s
|
|
345
304
|
if (target.getAttribute('aria-disabled') === 'true') return;
|
|
346
305
|
closeMenu(event, !isSubmenu);
|
|
347
|
-
}, [closeMenu, isSubmenu]);
|
|
306
|
+
}, [closeMenu, isSubmenu]);
|
|
348
307
|
|
|
308
|
+
// Ref: https://www.w3.org/TR/wai-aria-practices-1.2/#wai-aria-roles-states-and-properties-13
|
|
349
309
|
var menuAriaAttributes = {
|
|
350
310
|
role: 'menu',
|
|
351
311
|
'aria-labelledby': buttonId,
|
|
@@ -362,8 +322,9 @@ function Menu(_ref) {
|
|
|
362
322
|
});
|
|
363
323
|
var customMenuPopup = renderMenuPopup === null || renderMenuPopup === void 0 ? void 0 : renderMenuPopup((0, _extends2.default)({}, menuProps, {
|
|
364
324
|
open: open
|
|
365
|
-
}), menuElementRef);
|
|
325
|
+
}), menuElementRef);
|
|
366
326
|
|
|
327
|
+
// fixme Wrong children here
|
|
367
328
|
var menuElement = customMenuPopup !== null && customMenuPopup !== void 0 ? customMenuPopup : /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
368
329
|
ref: menuElementRef
|
|
369
330
|
}, menuProps, {
|
|
@@ -389,12 +350,10 @@ function Menu(_ref) {
|
|
|
389
350
|
var rootEventHandlers = {
|
|
390
351
|
onBlur: handleContainerBlur
|
|
391
352
|
};
|
|
392
|
-
|
|
393
353
|
if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('mouseover')) {
|
|
394
354
|
rootEventHandlers.onMouseEnter = handleMouseEnter;
|
|
395
355
|
rootEventHandlers.onMouseLeave = handleMouseLeave;
|
|
396
356
|
}
|
|
397
|
-
|
|
398
357
|
var rootProps = (0, _extends2.default)({}, rootEventHandlers, {
|
|
399
358
|
children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, buttonElement, /*#__PURE__*/_react.default.createElement(_MenuContext.default.Provider, {
|
|
400
359
|
value: menu
|
|
@@ -402,14 +361,11 @@ function Menu(_ref) {
|
|
|
402
361
|
// render props
|
|
403
362
|
open: open
|
|
404
363
|
});
|
|
405
|
-
|
|
406
364
|
if (isSubmenu) {
|
|
407
365
|
rootProps.role = 'none presentation';
|
|
408
366
|
}
|
|
409
|
-
|
|
410
367
|
return children(rootProps, rootElementRef);
|
|
411
368
|
}
|
|
412
|
-
|
|
413
369
|
Menu.displayName = 'Menu';
|
|
414
370
|
Menu.propTypes = {
|
|
415
371
|
children: _propTypes.default.func.isRequired
|
package/cjs/Menu/MenuContext.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
5
|
exports.__esModule = true;
|
|
6
6
|
exports.default = exports.MoveFocusTo = exports.MenuActionTypes = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var MenuActionTypes;
|
|
11
9
|
exports.MenuActionTypes = MenuActionTypes;
|
|
12
|
-
|
|
13
10
|
(function (MenuActionTypes) {
|
|
14
11
|
MenuActionTypes[MenuActionTypes["RegisterItem"] = 0] = "RegisterItem";
|
|
15
12
|
MenuActionTypes[MenuActionTypes["UnregisterItem"] = 1] = "UnregisterItem";
|
|
@@ -17,10 +14,8 @@ exports.MenuActionTypes = MenuActionTypes;
|
|
|
17
14
|
MenuActionTypes[MenuActionTypes["CloseMenu"] = 3] = "CloseMenu";
|
|
18
15
|
MenuActionTypes[MenuActionTypes["MoveFocus"] = 4] = "MoveFocus";
|
|
19
16
|
})(MenuActionTypes || (exports.MenuActionTypes = MenuActionTypes = {}));
|
|
20
|
-
|
|
21
17
|
var MoveFocusTo;
|
|
22
18
|
exports.MoveFocusTo = MoveFocusTo;
|
|
23
|
-
|
|
24
19
|
(function (MoveFocusTo) {
|
|
25
20
|
MoveFocusTo[MoveFocusTo["Next"] = 0] = "Next";
|
|
26
21
|
MoveFocusTo[MoveFocusTo["Prev"] = 1] = "Prev";
|
|
@@ -29,10 +24,8 @@ exports.MoveFocusTo = MoveFocusTo;
|
|
|
29
24
|
MoveFocusTo[MoveFocusTo["Specific"] = 4] = "Specific";
|
|
30
25
|
MoveFocusTo[MoveFocusTo["None"] = 5] = "None";
|
|
31
26
|
})(MoveFocusTo || (exports.MoveFocusTo = MoveFocusTo = {}));
|
|
32
|
-
|
|
33
27
|
// Defaults to null for checking whether a Menu is inside another menu
|
|
34
28
|
var MenuContext = /*#__PURE__*/_react.default.createContext(null);
|
|
35
|
-
|
|
36
29
|
MenuContext.displayName = 'MenuContext';
|
|
37
30
|
var _default = MenuContext;
|
|
38
31
|
exports.default = _default;
|
package/cjs/Menu/MenuItem.js
CHANGED
|
@@ -1,54 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
6
|
exports.__esModule = true;
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = require("react");
|
|
11
|
-
|
|
12
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
-
|
|
14
10
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
15
|
-
|
|
16
11
|
var _useUniqueId = _interopRequireDefault(require("../utils/useUniqueId"));
|
|
17
|
-
|
|
18
12
|
var _MenuContext = _interopRequireWildcard(require("./MenuContext"));
|
|
19
|
-
|
|
20
13
|
/**
|
|
21
14
|
* Headless ARIA `menuitem`
|
|
22
15
|
* @private
|
|
23
16
|
*/
|
|
24
17
|
function MenuItem(props) {
|
|
25
18
|
var _menuState$items$menu;
|
|
26
|
-
|
|
27
19
|
var children = props.children,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
_props$selected = props.selected,
|
|
21
|
+
selected = _props$selected === void 0 ? false : _props$selected,
|
|
22
|
+
_props$disabled = props.disabled,
|
|
23
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
24
|
+
onActivate = props.onActivate;
|
|
33
25
|
var menuitemRef = (0, _react.useRef)(null);
|
|
34
26
|
var menuitemId = (0, _useUniqueId.default)('menuitem-');
|
|
35
27
|
var menu = (0, _react.useContext)(_MenuContext.default);
|
|
36
|
-
|
|
37
28
|
if (!menu) {
|
|
38
29
|
throw new Error('<MenuItem> must be rendered within a <Menu>');
|
|
39
30
|
}
|
|
40
|
-
|
|
41
31
|
var menuState = menu[0],
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
dispatch = menu[1]; // Whether this menuitem has focus (indicated by `aria-activedescendant` from parent menu)
|
|
44
33
|
var hasFocus = !(0, _isNil.default)(menuitemRef.current) && !(0, _isNil.default)(menuState.activeItemIndex) && ((_menuState$items$menu = menuState.items[menuState.activeItemIndex]) === null || _menuState$items$menu === void 0 ? void 0 : _menuState$items$menu.element) === menuitemRef.current;
|
|
45
34
|
var handleClick = (0, _react.useCallback)(function (event) {
|
|
46
35
|
if (disabled) {
|
|
47
36
|
return;
|
|
48
37
|
}
|
|
49
|
-
|
|
50
38
|
onActivate === null || onActivate === void 0 ? void 0 : onActivate(event);
|
|
51
|
-
}, [disabled, onActivate]);
|
|
39
|
+
}, [disabled, onActivate]);
|
|
40
|
+
|
|
41
|
+
// Gain/release focus on mousedown in `menubar`
|
|
52
42
|
|
|
53
43
|
var handleMouseDown = (0, _react.useCallback)(function () {
|
|
54
44
|
if (!(0, _isNil.default)(menuitemRef.current) && !hasFocus) {
|
|
@@ -58,8 +48,9 @@ function MenuItem(props) {
|
|
|
58
48
|
id: menuitemRef.current.id
|
|
59
49
|
});
|
|
60
50
|
}
|
|
61
|
-
}, [dispatch, hasFocus]);
|
|
51
|
+
}, [dispatch, hasFocus]);
|
|
62
52
|
|
|
53
|
+
// Gain/release focus on mouseenter/mouseleave in `menu`
|
|
63
54
|
var handleMouseMove = (0, _react.useCallback)(function () {
|
|
64
55
|
if (!(0, _isNil.default)(menuitemRef.current) && !hasFocus) {
|
|
65
56
|
dispatch({
|
|
@@ -77,7 +68,6 @@ function MenuItem(props) {
|
|
|
77
68
|
}, [dispatch]);
|
|
78
69
|
(0, _react.useEffect)(function () {
|
|
79
70
|
var menuitemElement = menuitemRef.current;
|
|
80
|
-
|
|
81
71
|
if (menuitemElement) {
|
|
82
72
|
dispatch({
|
|
83
73
|
type: _MenuContext.MenuActionTypes.RegisterItem,
|
|
@@ -103,24 +93,23 @@ function MenuItem(props) {
|
|
|
103
93
|
tabIndex: -1,
|
|
104
94
|
onClick: handleClick,
|
|
105
95
|
// render props
|
|
96
|
+
|
|
106
97
|
selected: selected,
|
|
107
98
|
active: hasFocus
|
|
108
|
-
};
|
|
99
|
+
};
|
|
109
100
|
|
|
101
|
+
// Only move focus on hover in a `menu`, not `menubar`
|
|
110
102
|
if ((menuState === null || menuState === void 0 ? void 0 : menuState.role) === 'menu') {
|
|
111
103
|
menuitemProps.onMouseMove = handleMouseMove;
|
|
112
104
|
menuitemProps.onMouseLeave = handleMouseLeave;
|
|
113
105
|
}
|
|
114
|
-
|
|
115
106
|
if ((menuState === null || menuState === void 0 ? void 0 : menuState.role) === 'menubar') {
|
|
116
107
|
menuitemProps.onMouseDown = handleMouseDown;
|
|
117
108
|
menuitemProps.onMouseOver = handleMouseMove;
|
|
118
109
|
menuitemProps.onMouseLeave = handleMouseLeave;
|
|
119
110
|
}
|
|
120
|
-
|
|
121
111
|
return children(menuitemProps, menuitemRef);
|
|
122
112
|
}
|
|
123
|
-
|
|
124
113
|
MenuItem.displayName = 'MenuItem';
|
|
125
114
|
MenuItem.propTypes = {
|
|
126
115
|
selected: _propTypes.default.bool,
|
package/cjs/Menu/Menubar.js
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
-
|
|
7
6
|
exports.__esModule = true;
|
|
8
7
|
exports.default = Menubar;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
13
|
-
|
|
14
10
|
var _MenuContext = _interopRequireWildcard(require("./MenuContext"));
|
|
15
|
-
|
|
16
11
|
var _utils = require("../utils");
|
|
17
|
-
|
|
18
12
|
var _events = require("../utils/events");
|
|
19
|
-
|
|
20
13
|
var _useMenu = _interopRequireDefault(require("./useMenu"));
|
|
21
|
-
|
|
22
14
|
var _dom = require("../utils/dom");
|
|
23
|
-
|
|
24
15
|
// Headless ARIA `menubar`
|
|
25
16
|
|
|
26
17
|
/**
|
|
@@ -28,22 +19,22 @@ var _dom = require("../utils/dom");
|
|
|
28
19
|
*/
|
|
29
20
|
function Menubar(_ref) {
|
|
30
21
|
var _items$activeItemInde3;
|
|
31
|
-
|
|
32
22
|
var _ref$vertical = _ref.vertical,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
vertical = _ref$vertical === void 0 ? false : _ref$vertical,
|
|
24
|
+
children = _ref.children,
|
|
25
|
+
onActivateItem = _ref.onActivateItem;
|
|
36
26
|
var menubar = (0, _useMenu.default)({
|
|
37
27
|
role: 'menubar'
|
|
38
28
|
});
|
|
39
29
|
var _menubar$ = menubar[0],
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
items = _menubar$.items,
|
|
31
|
+
activeItemIndex = _menubar$.activeItemIndex,
|
|
32
|
+
dispatch = menubar[1];
|
|
43
33
|
var menubarElementRef = (0, _react.useRef)(null);
|
|
44
34
|
var onFocus = (0, _react.useCallback)(function (event) {
|
|
45
35
|
// Focus moves inside Menubar
|
|
46
|
-
if ((0, _events.isFocusEntering)(event) &&
|
|
36
|
+
if ((0, _events.isFocusEntering)(event) &&
|
|
37
|
+
// Skip if focus is moving to a focusable element within this menu
|
|
47
38
|
!(event.target !== event.currentTarget && (0, _dom.isFocusableElement)(event.target))) {
|
|
48
39
|
if (activeItemIndex === null) {
|
|
49
40
|
dispatch({
|
|
@@ -62,15 +53,11 @@ function Menubar(_ref) {
|
|
|
62
53
|
});
|
|
63
54
|
}
|
|
64
55
|
}, [dispatch]);
|
|
65
|
-
|
|
66
56
|
var _useCustom = (0, _utils.useCustom)('Menubar'),
|
|
67
|
-
|
|
68
|
-
|
|
57
|
+
rtl = _useCustom.rtl;
|
|
69
58
|
var onKeyDown = (0, _react.useCallback)(function (event) {
|
|
70
59
|
var _items$activeItemInde, _items$activeItemInde2;
|
|
71
|
-
|
|
72
60
|
var activeItemElement = (0, _isNil.default)(activeItemIndex) ? null : (_items$activeItemInde = (_items$activeItemInde2 = items[activeItemIndex]) === null || _items$activeItemInde2 === void 0 ? void 0 : _items$activeItemInde2.element) !== null && _items$activeItemInde !== void 0 ? _items$activeItemInde : null;
|
|
73
|
-
|
|
74
61
|
switch (true) {
|
|
75
62
|
case !vertical && !rtl && event.key === _utils.KEY_VALUES.RIGHT:
|
|
76
63
|
case !vertical && rtl && event.key === _utils.KEY_VALUES.LEFT:
|
|
@@ -82,7 +69,6 @@ function Menubar(_ref) {
|
|
|
82
69
|
to: _MenuContext.MoveFocusTo.Next
|
|
83
70
|
});
|
|
84
71
|
break;
|
|
85
|
-
|
|
86
72
|
case !vertical && !rtl && event.key === _utils.KEY_VALUES.LEFT:
|
|
87
73
|
case !vertical && rtl && event.key === _utils.KEY_VALUES.RIGHT:
|
|
88
74
|
case vertical && event.key === _utils.KEY_VALUES.UP:
|
|
@@ -93,7 +79,6 @@ function Menubar(_ref) {
|
|
|
93
79
|
to: _MenuContext.MoveFocusTo.Prev
|
|
94
80
|
});
|
|
95
81
|
break;
|
|
96
|
-
|
|
97
82
|
case event.key === _utils.KEY_VALUES.HOME:
|
|
98
83
|
event.preventDefault();
|
|
99
84
|
event.stopPropagation();
|
|
@@ -102,7 +87,6 @@ function Menubar(_ref) {
|
|
|
102
87
|
to: _MenuContext.MoveFocusTo.First
|
|
103
88
|
});
|
|
104
89
|
break;
|
|
105
|
-
|
|
106
90
|
case event.key === _utils.KEY_VALUES.END:
|
|
107
91
|
event.preventDefault();
|
|
108
92
|
event.stopPropagation();
|
|
@@ -111,7 +95,6 @@ function Menubar(_ref) {
|
|
|
111
95
|
to: _MenuContext.MoveFocusTo.Last
|
|
112
96
|
});
|
|
113
97
|
break;
|
|
114
|
-
|
|
115
98
|
case !vertical && event.key === _utils.KEY_VALUES.DOWN:
|
|
116
99
|
case vertical && !rtl && event.key === _utils.KEY_VALUES.RIGHT:
|
|
117
100
|
case vertical && rtl && event.key === _utils.KEY_VALUES.LEFT:
|
|
@@ -120,9 +103,7 @@ function Menubar(_ref) {
|
|
|
120
103
|
event.stopPropagation();
|
|
121
104
|
activeItemElement.click();
|
|
122
105
|
}
|
|
123
|
-
|
|
124
106
|
break;
|
|
125
|
-
|
|
126
107
|
case event.key === _utils.KEY_VALUES.ENTER:
|
|
127
108
|
case event.key === _utils.KEY_VALUES.SPACE:
|
|
128
109
|
event.preventDefault();
|
|
@@ -130,9 +111,10 @@ function Menubar(_ref) {
|
|
|
130
111
|
activeItemElement === null || activeItemElement === void 0 ? void 0 : activeItemElement.click();
|
|
131
112
|
break;
|
|
132
113
|
}
|
|
133
|
-
}, [rtl, items, activeItemIndex, dispatch, vertical]);
|
|
134
|
-
// Which indicates that a child menuitem is being activated
|
|
114
|
+
}, [rtl, items, activeItemIndex, dispatch, vertical]);
|
|
135
115
|
|
|
116
|
+
// Only used for handling click events bubbling from children
|
|
117
|
+
// Which indicates that a child menuitem is being activated
|
|
136
118
|
var onClick = (0, _react.useCallback)(function (event) {
|
|
137
119
|
if (items.some(function (item) {
|
|
138
120
|
return item.element === event.target;
|
|
@@ -151,6 +133,5 @@ function Menubar(_ref) {
|
|
|
151
133
|
onClick: onClick,
|
|
152
134
|
'aria-activedescendant': (0, _isNil.default)(activeItemIndex) ? undefined : (_items$activeItemInde3 = items[activeItemIndex]) === null || _items$activeItemInde3 === void 0 ? void 0 : _items$activeItemInde3.element.id,
|
|
153
135
|
'aria-orientation': vertical ? 'vertical' : undefined // implicitly set 'horizontal'
|
|
154
|
-
|
|
155
136
|
}, menubarElementRef));
|
|
156
137
|
}
|
package/cjs/Menu/index.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
5
|
exports.__esModule = true;
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Menu = _interopRequireDefault(require("./Menu"));
|
|
9
|
-
|
|
10
8
|
var _default = _Menu.default;
|
|
11
9
|
exports.default = _default;
|