rsuite 6.0.0-canary-2025032014 → 6.0.0-canary-20250416
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/AutoComplete/styles/index.css +112 -62
- package/AutoComplete/styles/index.less +1 -1
- package/Box/styles/index.css +12 -0
- package/CHANGELOG.md +24 -0
- package/Calendar/styles/index.css +11 -9
- package/Calendar/styles/index.less +3 -1
- package/Cascader/styles/index.css +112 -62
- package/CheckPicker/styles/index.css +112 -62
- package/CheckPicker/styles/index.less +1 -1
- package/CheckTree/styles/index.css +113 -63
- package/CheckTree/styles/index.less +1 -1
- package/CheckTreePicker/styles/index.css +113 -63
- package/DateInput/styles/index.css +0 -7
- package/DatePicker/styles/index.css +122 -74
- package/DatePicker/styles/index.less +5 -11
- package/DateRangeInput/styles/index.css +0 -7
- package/DateRangePicker/styles/index.css +132 -78
- package/DateRangePicker/styles/index.less +10 -4
- package/Divider/styles/index.css +2 -2
- package/Divider/styles/index.less +2 -2
- package/Grid/styles/columns.less +1 -2
- package/Grid/styles/grid-framework.less +1 -0
- package/Grid/styles/index.css +9 -4
- package/Grid/styles/row.less +2 -2
- package/Input/styles/index.css +0 -7
- package/Input/styles/index.less +0 -6
- package/Input/styles/mixin.less +0 -4
- package/InputGroup/styles/index.css +1 -1
- package/InputGroup/styles/index.less +1 -1
- package/InputNumber/styles/index.css +1 -8
- package/InputPicker/styles/index.css +121 -70
- package/InputPicker/styles/index.less +4 -4
- package/Link/package.json +7 -0
- package/Link/styles/index.css +32 -0
- package/Link/styles/index.less +39 -0
- package/Message/styles/index.css +9 -0
- package/Message/styles/index.less +11 -0
- package/MultiCascadeTree/styles/index.css +112 -62
- package/MultiCascader/styles/index.css +112 -62
- package/Nav/styles/index.css +1 -0
- package/Nav/styles/index.less +1 -0
- package/Pagination/styles/index.css +114 -64
- package/PasswordInput/package.json +7 -0
- package/PasswordInput/styles/index.css +172 -0
- package/PasswordInput/styles/index.less +1 -0
- package/PasswordStrengthMeter/package.json +7 -0
- package/PasswordStrengthMeter/styles/index.css +33 -0
- package/PasswordStrengthMeter/styles/index.less +39 -0
- package/README.md +3 -3
- package/RadioGroup/styles/index.css +1 -0
- package/RadioGroup/styles/index.less +1 -0
- package/RangeSlider/styles/index.css +76 -43
- package/Rate/styles/index.css +48 -34
- package/Rate/styles/index.less +32 -21
- package/SelectPicker/styles/index.css +112 -62
- package/SelectPicker/styles/index.less +1 -1
- package/Slider/styles/index.css +76 -43
- package/Slider/styles/index.less +95 -48
- package/Tabs/styles/index.css +1 -0
- package/TagInput/styles/index.css +152 -91
- package/TagInput/styles/index.less +1 -1
- package/TagPicker/styles/index.css +151 -90
- package/TagPicker/styles/index.less +52 -41
- package/Textarea/package.json +7 -0
- package/Textarea/styles/index.css +6 -0
- package/Textarea/styles/index.less +7 -0
- package/TimePicker/styles/index.css +122 -74
- package/TimeRangePicker/styles/index.css +132 -78
- package/Toggle/styles/index.css +146 -87
- package/Toggle/styles/index.less +66 -38
- package/Tree/styles/index.css +113 -63
- package/Tree/styles/index.less +1 -1
- package/TreePicker/styles/index.css +113 -63
- package/cjs/AutoComplete/AutoComplete.d.ts +1 -1
- package/cjs/AutoComplete/AutoComplete.js +13 -11
- package/cjs/Avatar/Avatar.d.ts +3 -4
- package/cjs/Breadcrumb/Breadcrumb.js +2 -2
- package/cjs/Breadcrumb/BreadcrumbItem.js +1 -1
- package/cjs/Button/Button.js +9 -10
- package/cjs/Calendar/CalendarProvider.js +0 -0
- package/cjs/Calendar/hooks/useCalendar.js +0 -0
- package/cjs/Carousel/Carousel.js +2 -2
- package/cjs/Cascader/Cascader.js +42 -45
- package/cjs/Cascader/useActive.d.ts +6 -4
- package/cjs/Cascader/useActive.js +10 -8
- package/cjs/CheckPicker/CheckPicker.js +38 -41
- package/cjs/CheckTreePicker/CheckTreePicker.js +20 -22
- package/cjs/CustomProvider/CustomProvider.d.ts +1 -4
- package/cjs/CustomProvider/types.d.ts +10 -2
- package/cjs/DatePicker/DatePicker.d.ts +1 -1
- package/cjs/DatePicker/DatePicker.js +28 -25
- package/cjs/DatePicker/utils.d.ts +3 -3
- package/cjs/DatePicker/utils.js +3 -3
- package/cjs/DateRangePicker/DateRangePicker.js +39 -33
- package/cjs/DateRangePicker/utils.js +0 -0
- package/cjs/Divider/Divider.d.ts +3 -2
- package/cjs/Divider/Divider.js +2 -2
- package/cjs/Form/hooks/useFormValidate.js +0 -0
- package/cjs/Form/hooks/useSchemaModel.js +2 -54
- package/cjs/Form/utils/constructFlatSchema.d.ts +4 -0
- package/cjs/Form/utils/constructFlatSchema.js +41 -0
- package/cjs/FormControl/hooks/useField.js +0 -0
- package/cjs/FormControl/utils.js +0 -0
- package/cjs/Grid/Row.d.ts +2 -2
- package/cjs/Grid/Row.js +2 -20
- package/cjs/Grid/types.d.ts +1 -0
- package/cjs/Grid/utils/styles.d.ts +6 -0
- package/cjs/Grid/utils/styles.js +43 -0
- package/cjs/Image/Image.js +12 -11
- package/cjs/Image/hooks/useImage.d.ts +2 -0
- package/cjs/Image/hooks/useImage.js +19 -43
- package/cjs/InlineEdit/InlineEdit.js +3 -1
- package/cjs/InlineEdit/useEditState.d.ts +2 -0
- package/cjs/InlineEdit/useEditState.js +8 -0
- package/cjs/Input/Input.d.ts +3 -12
- package/cjs/Input/Input.js +12 -73
- package/cjs/InputPicker/InputPicker.js +27 -28
- package/cjs/Link/ExternalLinkIcon.d.ts +3 -0
- package/cjs/Link/ExternalLinkIcon.js +23 -0
- package/cjs/Link/Link.d.ts +14 -0
- package/cjs/Link/Link.js +52 -0
- package/cjs/Link/index.d.ts +4 -0
- package/cjs/Link/index.js +11 -0
- package/cjs/List/List.js +6 -2
- package/cjs/List/helper/useSortHelper.d.ts +7 -5
- package/cjs/List/helper/useSortHelper.js +109 -16
- package/cjs/List/helper/utils.js +14 -6
- package/cjs/MultiCascader/MultiCascader.js +40 -43
- package/cjs/Nav/NavItem.js +1 -1
- package/cjs/Nav/NavMegaMenu.d.ts +5 -0
- package/cjs/Nav/NavMegaMenu.js +5 -0
- package/cjs/Navbar/NavbarItem.js +1 -1
- package/cjs/Navbar/NavbarMegaMenu.js +1 -1
- package/cjs/PasswordInput/PasswordInput.d.ts +14 -0
- package/cjs/PasswordInput/PasswordInput.js +71 -0
- package/cjs/PasswordInput/index.d.ts +4 -0
- package/cjs/PasswordInput/index.js +11 -0
- package/cjs/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
- package/cjs/PasswordStrengthMeter/PasswordStrengthMeter.js +50 -0
- package/cjs/PasswordStrengthMeter/index.d.ts +4 -0
- package/cjs/PasswordStrengthMeter/index.js +11 -0
- package/cjs/RangeSlider/RangeSlider.js +18 -3
- package/cjs/Rate/Character.d.ts +4 -3
- package/cjs/Rate/Character.js +19 -15
- package/cjs/Rate/Rate.d.ts +10 -2
- package/cjs/Rate/Rate.js +47 -42
- package/cjs/Rate/types.d.ts +8 -0
- package/cjs/Rate/types.js +4 -0
- package/cjs/Rate/useRatingStates.d.ts +20 -0
- package/cjs/Rate/useRatingStates.js +48 -0
- package/cjs/Rate/utils.d.ts +14 -3
- package/cjs/Rate/utils.js +50 -9
- package/cjs/SelectPicker/SelectPicker.js +45 -46
- package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +1 -1
- package/cjs/Sidenav/SidenavItem.js +1 -1
- package/cjs/Slider/Graduated.d.ts +4 -0
- package/cjs/Slider/Graduated.js +43 -20
- package/cjs/Slider/Handle.d.ts +1 -1
- package/cjs/Slider/Handle.js +12 -12
- package/cjs/Slider/Slider.d.ts +16 -1
- package/cjs/Slider/Slider.js +7 -2
- package/cjs/Slider/useDrag.d.ts +1 -0
- package/cjs/Slider/useDrag.js +8 -3
- package/cjs/Steps/Steps.js +2 -2
- package/cjs/Tabs/Tabs.js +2 -2
- package/cjs/Textarea/Textarea.d.ts +32 -0
- package/cjs/Textarea/Textarea.js +51 -0
- package/cjs/Textarea/index.d.ts +4 -0
- package/cjs/Textarea/index.js +11 -0
- package/cjs/Timeline/Timeline.js +2 -2
- package/cjs/Toggle/Toggle.d.ts +10 -1
- package/cjs/Toggle/Toggle.js +12 -9
- package/cjs/TreePicker/TreePicker.js +18 -19
- package/cjs/index.d.ts +4 -1
- package/cjs/index.js +24 -6
- package/cjs/internals/Box/Box.d.ts +4 -0
- package/cjs/internals/Box/Box.js +1 -1
- package/cjs/internals/Box/utils.js +5 -1
- package/cjs/internals/InputBase/InputBase.d.ts +45 -0
- package/cjs/internals/InputBase/InputBase.js +96 -0
- package/cjs/internals/InputBase/index.d.ts +3 -0
- package/cjs/internals/InputBase/index.js +8 -0
- package/cjs/internals/Overlay/Modal.d.ts +1 -1
- package/cjs/internals/Overlay/OverlayTrigger.d.ts +4 -3
- package/cjs/internals/Overlay/OverlayTrigger.js +8 -3
- package/cjs/internals/Picker/Listbox.js +7 -9
- package/cjs/internals/Picker/PickerDrawer.d.ts +8 -0
- package/cjs/internals/Picker/PickerDrawer.js +31 -0
- package/cjs/internals/Picker/PickerPopup.js +5 -3
- package/cjs/internals/Picker/PickerToggle.d.ts +1 -0
- package/cjs/internals/Picker/PickerToggle.js +10 -3
- package/cjs/internals/Picker/PickerToggleTrigger.d.ts +51 -11
- package/cjs/internals/Picker/PickerToggleTrigger.js +59 -13
- package/cjs/internals/Picker/hooks/index.d.ts +0 -1
- package/cjs/internals/Picker/hooks/index.js +2 -4
- package/cjs/internals/Picker/hooks/useCombobox.d.ts +1 -0
- package/cjs/internals/Picker/hooks/useCombobox.js +3 -1
- package/cjs/internals/Picker/index.d.ts +1 -2
- package/cjs/internals/Picker/index.js +10 -12
- package/{esm → cjs/internals}/SafeAnchor/SafeAnchor.d.ts +2 -2
- package/cjs/{SafeAnchor → internals/SafeAnchor}/SafeAnchor.js +3 -3
- package/cjs/internals/Tree/TreeView.js +3 -4
- package/cjs/internals/hooks/useRootClose.js +4 -4
- package/cjs/internals/index.d.ts +4 -0
- package/cjs/internals/index.js +13 -1
- package/cjs/internals/types/html.d.ts +2 -0
- package/cjs/internals/utils/{dom.d.ts → html/dom.d.ts} +1 -0
- package/cjs/internals/utils/{dom.js → html/dom.js} +8 -0
- package/cjs/internals/utils/{events.js → html/events.js} +0 -0
- package/cjs/internals/utils/{htmlPropsUtils.js → html/htmlPropsUtils.js} +0 -0
- package/cjs/internals/utils/html/index.d.ts +4 -0
- package/cjs/internals/utils/html/index.js +28 -0
- package/cjs/internals/utils/{safeSetSelection.js → html/safeSetSelection.js} +1 -1
- package/cjs/internals/utils/index.d.ts +3 -15
- package/cjs/internals/utils/index.js +20 -49
- package/cjs/internals/utils/{ReactChildren.d.ts → react/ReactChildren.d.ts} +2 -8
- package/cjs/internals/utils/{ReactChildren.js → react/ReactChildren.js} +5 -25
- package/cjs/internals/utils/react/ReactIs.d.ts +7 -0
- package/cjs/internals/utils/react/ReactIs.js +26 -0
- package/{esm/internals/utils → cjs/internals/utils/react}/createComponent.d.ts +2 -2
- package/cjs/internals/utils/{createComponent.js → react/createComponent.js} +3 -3
- package/cjs/internals/utils/{deprecateComponent.js → react/deprecateComponent.js} +1 -1
- package/cjs/internals/utils/{forwardRef.d.ts → react/forwardRef.d.ts} +1 -1
- package/cjs/internals/utils/react/index.d.ts +7 -0
- package/cjs/internals/utils/react/index.js +46 -0
- package/cjs/internals/utils/{mergeRefs.js → react/mergeRefs.js} +0 -0
- package/cjs/internals/utils/{getStringLength.d.ts → string/getStringLength.d.ts} +0 -1
- package/cjs/internals/utils/{getStringLength.js → string/getStringLength.js} +1 -3
- package/cjs/internals/utils/string/index.d.ts +4 -0
- package/cjs/internals/utils/string/index.js +28 -0
- package/cjs/internals/utils/{stringifyReactNode.js → string/stringifyReactNode.js} +0 -0
- package/cjs/internals/utils/{tplTransform.js → string/tplTransform.js} +0 -0
- package/cjs/locales/en_GB.js +2 -2
- package/cjs/locales/en_US.js +2 -2
- package/cjs/locales/index.js +0 -0
- package/cjs/locales/pl_PL.js +2 -3
- package/cjs/useBreakpointValue/useBreakpointValue.d.ts +6 -2
- package/cjs/useBreakpointValue/useBreakpointValue.js +9 -4
- package/cjs/useMediaQuery/breakpoints.d.ts +24 -0
- package/cjs/useMediaQuery/breakpoints.js +248 -0
- package/cjs/useMediaQuery/index.d.ts +1 -1
- package/cjs/useMediaQuery/types.d.ts +45 -0
- package/cjs/useMediaQuery/types.js +4 -0
- package/cjs/useMediaQuery/useMediaQuery.d.ts +4 -13
- package/cjs/useMediaQuery/useMediaQuery.js +30 -12
- package/cjs/useToaster/useToaster.d.ts +1 -1
- package/cjs/useToaster/useToaster.js +1 -1
- package/dist/rsuite-no-reset-rtl.css +565 -276
- 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 +565 -276
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +565 -276
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +565 -276
- package/dist/rsuite.js +508 -211
- 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/AutoComplete/AutoComplete.d.ts +1 -1
- package/esm/AutoComplete/AutoComplete.js +13 -11
- package/esm/Avatar/Avatar.d.ts +3 -4
- package/esm/Breadcrumb/Breadcrumb.js +3 -3
- package/esm/Breadcrumb/BreadcrumbItem.js +1 -1
- package/esm/Button/Button.js +10 -11
- package/esm/Calendar/CalendarProvider.js +0 -0
- package/esm/Calendar/hooks/useCalendar.js +0 -0
- package/esm/Carousel/Carousel.js +3 -3
- package/esm/Cascader/Cascader.js +43 -46
- package/esm/Cascader/useActive.d.ts +6 -4
- package/esm/Cascader/useActive.js +10 -8
- package/esm/CheckPicker/CheckPicker.js +39 -42
- package/esm/CheckTreePicker/CheckTreePicker.js +21 -23
- package/esm/CustomProvider/CustomProvider.d.ts +1 -4
- package/esm/CustomProvider/types.d.ts +10 -2
- package/esm/DatePicker/DatePicker.d.ts +1 -1
- package/esm/DatePicker/DatePicker.js +29 -26
- package/esm/DatePicker/utils.d.ts +3 -3
- package/esm/DatePicker/utils.js +4 -4
- package/esm/DateRangePicker/DateRangePicker.js +35 -29
- package/esm/DateRangePicker/utils.js +0 -0
- package/esm/Divider/Divider.d.ts +3 -2
- package/esm/Divider/Divider.js +2 -2
- package/esm/Form/hooks/useFormValidate.js +0 -0
- package/esm/Form/hooks/useSchemaModel.js +3 -55
- package/esm/Form/utils/constructFlatSchema.d.ts +4 -0
- package/esm/Form/utils/constructFlatSchema.js +37 -0
- package/esm/FormControl/hooks/useField.js +0 -0
- package/esm/FormControl/utils.js +0 -0
- package/esm/Grid/Row.d.ts +2 -2
- package/esm/Grid/Row.js +2 -20
- package/esm/Grid/types.d.ts +1 -0
- package/esm/Grid/utils/styles.d.ts +6 -0
- package/esm/Grid/utils/styles.js +37 -0
- package/esm/Image/Image.js +12 -11
- package/esm/Image/hooks/useImage.d.ts +2 -0
- package/esm/Image/hooks/useImage.js +20 -43
- package/esm/InlineEdit/InlineEdit.js +3 -1
- package/esm/InlineEdit/useEditState.d.ts +2 -0
- package/esm/InlineEdit/useEditState.js +8 -0
- package/esm/Input/Input.d.ts +3 -12
- package/esm/Input/Input.js +12 -74
- package/esm/InputPicker/InputPicker.js +28 -29
- package/esm/Link/ExternalLinkIcon.d.ts +3 -0
- package/esm/Link/ExternalLinkIcon.js +18 -0
- package/esm/Link/Link.d.ts +14 -0
- package/esm/Link/Link.js +47 -0
- package/esm/Link/index.d.ts +4 -0
- package/esm/Link/index.js +8 -0
- package/esm/List/List.js +6 -2
- package/esm/List/helper/useSortHelper.d.ts +7 -5
- package/esm/List/helper/useSortHelper.js +109 -16
- package/esm/List/helper/utils.js +14 -6
- package/esm/MultiCascader/MultiCascader.js +41 -44
- package/esm/Nav/NavItem.js +1 -1
- package/esm/Nav/NavMegaMenu.d.ts +5 -0
- package/esm/Nav/NavMegaMenu.js +5 -0
- package/esm/Navbar/NavbarItem.js +1 -1
- package/esm/Navbar/NavbarMegaMenu.js +1 -1
- package/esm/PasswordInput/PasswordInput.d.ts +14 -0
- package/esm/PasswordInput/PasswordInput.js +66 -0
- package/esm/PasswordInput/index.d.ts +4 -0
- package/esm/PasswordInput/index.js +8 -0
- package/esm/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
- package/esm/PasswordStrengthMeter/PasswordStrengthMeter.js +45 -0
- package/esm/PasswordStrengthMeter/index.d.ts +4 -0
- package/esm/PasswordStrengthMeter/index.js +8 -0
- package/esm/RangeSlider/RangeSlider.js +18 -3
- package/esm/Rate/Character.d.ts +4 -3
- package/esm/Rate/Character.js +20 -16
- package/esm/Rate/Rate.d.ts +10 -2
- package/esm/Rate/Rate.js +49 -42
- package/esm/Rate/types.d.ts +8 -0
- package/esm/Rate/types.js +2 -0
- package/esm/Rate/useRatingStates.d.ts +20 -0
- package/esm/Rate/useRatingStates.js +43 -0
- package/esm/Rate/utils.d.ts +14 -3
- package/esm/Rate/utils.js +46 -7
- package/esm/SelectPicker/SelectPicker.js +46 -47
- package/esm/Sidenav/ExpandedSidenavDropdownItem.js +1 -1
- package/esm/Sidenav/SidenavItem.js +1 -1
- package/esm/Slider/Graduated.d.ts +4 -0
- package/esm/Slider/Graduated.js +43 -20
- package/esm/Slider/Handle.d.ts +1 -1
- package/esm/Slider/Handle.js +12 -12
- package/esm/Slider/Slider.d.ts +16 -1
- package/esm/Slider/Slider.js +7 -2
- package/esm/Slider/useDrag.d.ts +1 -0
- package/esm/Slider/useDrag.js +8 -3
- package/esm/Steps/Steps.js +3 -3
- package/esm/Tabs/Tabs.js +3 -3
- package/esm/Textarea/Textarea.d.ts +32 -0
- package/esm/Textarea/Textarea.js +46 -0
- package/esm/Textarea/index.d.ts +4 -0
- package/esm/Textarea/index.js +8 -0
- package/esm/Timeline/Timeline.js +3 -3
- package/esm/Toggle/Toggle.d.ts +10 -1
- package/esm/Toggle/Toggle.js +12 -9
- package/esm/TreePicker/TreePicker.js +19 -20
- package/esm/index.d.ts +4 -1
- package/esm/index.js +4 -1
- package/esm/internals/Box/Box.d.ts +4 -0
- package/esm/internals/Box/Box.js +1 -1
- package/esm/internals/Box/utils.js +5 -1
- package/esm/internals/InputBase/InputBase.d.ts +45 -0
- package/esm/internals/InputBase/InputBase.js +89 -0
- package/esm/internals/InputBase/index.d.ts +3 -0
- package/esm/internals/InputBase/index.js +3 -0
- package/esm/internals/Overlay/Modal.d.ts +1 -1
- package/esm/internals/Overlay/OverlayTrigger.d.ts +4 -3
- package/esm/internals/Overlay/OverlayTrigger.js +8 -2
- package/esm/internals/Picker/Listbox.js +8 -10
- package/esm/internals/Picker/PickerDrawer.d.ts +8 -0
- package/esm/internals/Picker/PickerDrawer.js +26 -0
- package/esm/internals/Picker/PickerPopup.js +5 -3
- package/esm/internals/Picker/PickerToggle.d.ts +1 -0
- package/esm/internals/Picker/PickerToggle.js +10 -3
- package/esm/internals/Picker/PickerToggleTrigger.d.ts +51 -11
- package/esm/internals/Picker/PickerToggleTrigger.js +59 -12
- package/esm/internals/Picker/hooks/index.d.ts +0 -1
- package/esm/internals/Picker/hooks/index.js +1 -2
- package/esm/internals/Picker/hooks/useCombobox.d.ts +1 -0
- package/esm/internals/Picker/hooks/useCombobox.js +3 -1
- package/esm/internals/Picker/index.d.ts +1 -2
- package/esm/internals/Picker/index.js +1 -2
- package/{cjs → esm/internals}/SafeAnchor/SafeAnchor.d.ts +2 -2
- package/esm/{SafeAnchor → internals/SafeAnchor}/SafeAnchor.js +3 -3
- package/esm/internals/Tree/TreeView.js +4 -5
- package/esm/internals/hooks/useRootClose.js +1 -1
- package/esm/internals/index.d.ts +4 -0
- package/esm/internals/index.js +5 -0
- package/esm/internals/types/html.d.ts +2 -0
- package/esm/internals/utils/{dom.d.ts → html/dom.d.ts} +1 -0
- package/esm/internals/utils/{dom.js → html/dom.js} +7 -0
- package/esm/internals/utils/{events.js → html/events.js} +0 -0
- package/esm/internals/utils/{htmlPropsUtils.js → html/htmlPropsUtils.js} +0 -0
- package/esm/internals/utils/html/index.d.ts +4 -0
- package/esm/internals/utils/html/index.js +5 -0
- package/esm/internals/utils/{safeSetSelection.js → html/safeSetSelection.js} +1 -1
- package/esm/internals/utils/index.d.ts +3 -15
- package/esm/internals/utils/index.js +3 -14
- package/esm/internals/utils/{ReactChildren.d.ts → react/ReactChildren.d.ts} +2 -8
- package/esm/internals/utils/{ReactChildren.js → react/ReactChildren.js} +3 -21
- package/esm/internals/utils/react/ReactIs.d.ts +7 -0
- package/esm/internals/utils/react/ReactIs.js +22 -0
- package/{cjs/internals/utils → esm/internals/utils/react}/createComponent.d.ts +2 -2
- package/esm/internals/utils/{createComponent.js → react/createComponent.js} +3 -3
- package/esm/internals/utils/{deprecateComponent.js → react/deprecateComponent.js} +1 -1
- package/esm/internals/utils/{forwardRef.d.ts → react/forwardRef.d.ts} +1 -1
- package/esm/internals/utils/react/index.d.ts +7 -0
- package/esm/internals/utils/react/index.js +8 -0
- package/esm/internals/utils/{mergeRefs.js → react/mergeRefs.js} +0 -0
- package/esm/internals/utils/{getStringLength.d.ts → string/getStringLength.d.ts} +0 -1
- package/esm/internals/utils/{getStringLength.js → string/getStringLength.js} +1 -2
- package/esm/internals/utils/string/index.d.ts +4 -0
- package/esm/internals/utils/string/index.js +5 -0
- package/esm/internals/utils/{stringifyReactNode.js → string/stringifyReactNode.js} +0 -0
- package/esm/internals/utils/{tplTransform.js → string/tplTransform.js} +0 -0
- package/esm/locales/en_GB.js +2 -2
- package/esm/locales/en_US.js +2 -2
- package/esm/locales/index.js +0 -0
- package/esm/locales/pl_PL.js +1 -1
- package/esm/useBreakpointValue/useBreakpointValue.d.ts +6 -2
- package/esm/useBreakpointValue/useBreakpointValue.js +9 -4
- package/esm/useMediaQuery/breakpoints.d.ts +24 -0
- package/esm/useMediaQuery/breakpoints.js +244 -0
- package/esm/useMediaQuery/index.d.ts +1 -1
- package/esm/useMediaQuery/types.d.ts +45 -0
- package/esm/useMediaQuery/types.js +2 -0
- package/esm/useMediaQuery/useMediaQuery.d.ts +4 -13
- package/esm/useMediaQuery/useMediaQuery.js +29 -11
- package/esm/useToaster/useToaster.d.ts +1 -1
- package/esm/useToaster/useToaster.js +1 -1
- package/internals/Box/styles/index.less +4 -0
- package/internals/Picker/styles/index.less +105 -23
- package/internals/Picker/styles/mixin.less +6 -6
- package/package.json +3 -2
- package/styles/color-modes/dark.less +2 -2
- package/styles/color-modes/high-contrast.less +2 -2
- package/styles/color-modes/light.less +2 -2
- package/styles/index.less +3 -0
- package/styles/root.less +2 -0
- package/styles/variables.less +0 -24
- package/SafeAnchor/package.json +0 -7
- package/cjs/Form/hooks/useFormClassNames.d.ts +0 -5
- package/cjs/Form/hooks/useFormClassNames.js +0 -29
- package/cjs/internals/Picker/hooks/usePickerClassName.d.ts +0 -19
- package/cjs/internals/Picker/hooks/usePickerClassName.js +0 -45
- package/esm/Form/hooks/useFormClassNames.d.ts +0 -5
- package/esm/Form/hooks/useFormClassNames.js +0 -25
- package/esm/internals/Picker/hooks/usePickerClassName.d.ts +0 -19
- package/esm/internals/Picker/hooks/usePickerClassName.js +0 -40
- /package/cjs/{SafeAnchor → internals/SafeAnchor}/index.d.ts +0 -0
- /package/cjs/{SafeAnchor → internals/SafeAnchor}/index.js +0 -0
- /package/cjs/internals/utils/{events.d.ts → html/events.d.ts} +0 -0
- /package/cjs/internals/utils/{htmlPropsUtils.d.ts → html/htmlPropsUtils.d.ts} +0 -0
- /package/cjs/internals/utils/{safeSetSelection.d.ts → html/safeSetSelection.d.ts} +0 -0
- /package/cjs/internals/utils/{deprecateComponent.d.ts → react/deprecateComponent.d.ts} +0 -0
- /package/cjs/internals/utils/{forwardRef.js → react/forwardRef.js} +0 -0
- /package/cjs/internals/utils/{getDOMNode.d.ts → react/getDOMNode.d.ts} +0 -0
- /package/cjs/internals/utils/{getDOMNode.js → react/getDOMNode.js} +0 -0
- /package/cjs/internals/utils/{mergeRefs.d.ts → react/mergeRefs.d.ts} +0 -0
- /package/cjs/internals/utils/{getSafeRegExpString.d.ts → string/getSafeRegExpString.d.ts} +0 -0
- /package/cjs/internals/utils/{getSafeRegExpString.js → string/getSafeRegExpString.js} +0 -0
- /package/cjs/internals/utils/{stringifyReactNode.d.ts → string/stringifyReactNode.d.ts} +0 -0
- /package/cjs/internals/utils/{tplTransform.d.ts → string/tplTransform.d.ts} +0 -0
- /package/esm/{SafeAnchor → internals/SafeAnchor}/index.d.ts +0 -0
- /package/esm/{SafeAnchor → internals/SafeAnchor}/index.js +0 -0
- /package/esm/internals/utils/{events.d.ts → html/events.d.ts} +0 -0
- /package/esm/internals/utils/{htmlPropsUtils.d.ts → html/htmlPropsUtils.d.ts} +0 -0
- /package/esm/internals/utils/{safeSetSelection.d.ts → html/safeSetSelection.d.ts} +0 -0
- /package/esm/internals/utils/{deprecateComponent.d.ts → react/deprecateComponent.d.ts} +0 -0
- /package/esm/internals/utils/{forwardRef.js → react/forwardRef.js} +0 -0
- /package/esm/internals/utils/{getDOMNode.d.ts → react/getDOMNode.d.ts} +0 -0
- /package/esm/internals/utils/{getDOMNode.js → react/getDOMNode.js} +0 -0
- /package/esm/internals/utils/{mergeRefs.d.ts → react/mergeRefs.d.ts} +0 -0
- /package/esm/internals/utils/{getSafeRegExpString.d.ts → string/getSafeRegExpString.d.ts} +0 -0
- /package/esm/internals/utils/{getSafeRegExpString.js → string/getSafeRegExpString.js} +0 -0
- /package/esm/internals/utils/{stringifyReactNode.d.ts → string/stringifyReactNode.d.ts} +0 -0
- /package/esm/internals/utils/{tplTransform.d.ts → string/tplTransform.d.ts} +0 -0
|
@@ -12,6 +12,7 @@ var _getOffset = _interopRequireDefault(require("dom-lib/getOffset"));
|
|
|
12
12
|
var _ProgressBar = _interopRequireDefault(require("../Slider/ProgressBar"));
|
|
13
13
|
var _Handle = _interopRequireDefault(require("../Slider/Handle"));
|
|
14
14
|
var _Graduated = _interopRequireDefault(require("../Slider/Graduated"));
|
|
15
|
+
var _Plaintext = _interopRequireDefault(require("../internals/Plaintext"));
|
|
15
16
|
var _Box = _interopRequireDefault(require("../internals/Box"));
|
|
16
17
|
var _utils = require("../internals/utils");
|
|
17
18
|
var _hooks = require("../internals/hooks");
|
|
@@ -42,16 +43,21 @@ const RangeSlider = (0, _utils.forwardRef)((props, ref) => {
|
|
|
42
43
|
disabled,
|
|
43
44
|
graduated,
|
|
44
45
|
progress = true,
|
|
46
|
+
keepTooltipOpen = false,
|
|
45
47
|
vertical,
|
|
46
48
|
readOnly,
|
|
47
49
|
min = 0,
|
|
48
50
|
max: maxProp = 100,
|
|
49
51
|
step = 1,
|
|
52
|
+
size = 'sm',
|
|
50
53
|
value: valueProp,
|
|
51
54
|
handleClassName,
|
|
52
55
|
handleStyle,
|
|
53
56
|
handleTitle,
|
|
54
57
|
tooltip = true,
|
|
58
|
+
marks,
|
|
59
|
+
plaintext,
|
|
60
|
+
placeholder,
|
|
55
61
|
getAriaValueText,
|
|
56
62
|
renderTooltip,
|
|
57
63
|
renderMark,
|
|
@@ -267,7 +273,6 @@ const RangeSlider = (0, _utils.forwardRef)((props, ref) => {
|
|
|
267
273
|
position: (value[1] - min) / (max - min) * 100
|
|
268
274
|
}], [ariaValuetext, getAriaValueText, max, min, value]);
|
|
269
275
|
const handleCommonProps = {
|
|
270
|
-
rtl,
|
|
271
276
|
disabled,
|
|
272
277
|
vertical,
|
|
273
278
|
tooltip,
|
|
@@ -283,12 +288,21 @@ const RangeSlider = (0, _utils.forwardRef)((props, ref) => {
|
|
|
283
288
|
'aria-valuemax': max,
|
|
284
289
|
'aria-valuemin': min,
|
|
285
290
|
'aria-label': ariaLabel,
|
|
286
|
-
'aria-labelledby': ariaLabelledby
|
|
291
|
+
'aria-labelledby': ariaLabelledby,
|
|
292
|
+
keepTooltipOpen
|
|
287
293
|
};
|
|
294
|
+
if (plaintext) {
|
|
295
|
+
return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
|
|
296
|
+
localeKey: "notSelected",
|
|
297
|
+
ref: ref,
|
|
298
|
+
placeholder: placeholder
|
|
299
|
+
}, value && (value[0] || value[1]) ? value.join('~') : null);
|
|
300
|
+
}
|
|
288
301
|
return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
|
|
289
302
|
as: as,
|
|
290
303
|
ref: ref,
|
|
291
|
-
className: classes
|
|
304
|
+
className: classes,
|
|
305
|
+
"data-size": size
|
|
292
306
|
}, rest), /*#__PURE__*/_react.default.createElement("div", {
|
|
293
307
|
className: merge(barClassName, prefix('bar')),
|
|
294
308
|
ref: barRef,
|
|
@@ -304,6 +318,7 @@ const RangeSlider = (0, _utils.forwardRef)((props, ref) => {
|
|
|
304
318
|
max: max,
|
|
305
319
|
count: count,
|
|
306
320
|
value: value,
|
|
321
|
+
marks: marks,
|
|
307
322
|
renderMark: renderMark
|
|
308
323
|
})), /*#__PURE__*/_react.default.createElement(_Handle.default, (0, _extends2.default)({
|
|
309
324
|
"data-range": value
|
package/cjs/Rate/Character.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { BoxProps } from '../internals/Box';
|
|
3
|
+
import type { StarStatus } from './types';
|
|
3
4
|
interface CharacterProps extends BoxProps {
|
|
4
5
|
vertical?: boolean;
|
|
5
|
-
status?:
|
|
6
|
+
status?: StarStatus;
|
|
6
7
|
disabled?: boolean;
|
|
7
|
-
onMouseMove?: (key:
|
|
8
|
-
onClick?: (key:
|
|
8
|
+
onMouseMove?: (key: 'before' | 'after', event: React.MouseEvent) => void;
|
|
9
|
+
onClick?: (key: 'before' | 'after', event: React.MouseEvent) => void;
|
|
9
10
|
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
10
11
|
}
|
|
11
12
|
declare const Character: import("../internals/types").InternalRefForwardingComponent<"li", CharacterProps, never> & Record<string, never>;
|
package/cjs/Rate/Character.js
CHANGED
|
@@ -7,18 +7,15 @@ exports.default = void 0;
|
|
|
7
7
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _contains = _interopRequireDefault(require("dom-lib/contains"));
|
|
10
|
-
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
11
10
|
var _Box = _interopRequireDefault(require("../internals/Box"));
|
|
12
11
|
var _utils = require("../internals/utils");
|
|
12
|
+
var _utils2 = require("./utils");
|
|
13
13
|
var _hooks = require("../internals/hooks");
|
|
14
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
[0.5]: 'half',
|
|
19
|
-
[1]: 'full'
|
|
16
|
+
const getKey = (element, target) => {
|
|
17
|
+
return element && target && (0, _contains.default)(element, target) ? 'before' : 'after';
|
|
20
18
|
};
|
|
21
|
-
const getKey = (a, b) => (0, _contains.default)(a, b) ? 'before' : 'after';
|
|
22
19
|
const Character = (0, _utils.forwardRef)((props, ref) => {
|
|
23
20
|
const {
|
|
24
21
|
as = 'li',
|
|
@@ -34,27 +31,34 @@ const Character = (0, _utils.forwardRef)((props, ref) => {
|
|
|
34
31
|
...rest
|
|
35
32
|
} = props;
|
|
36
33
|
const {
|
|
37
|
-
merge,
|
|
38
34
|
prefix,
|
|
39
|
-
withPrefix
|
|
35
|
+
withPrefix,
|
|
36
|
+
merge
|
|
40
37
|
} = (0, _hooks.useStyles)(classPrefix);
|
|
41
38
|
const beforeRef = (0, _react.useRef)(null);
|
|
42
|
-
const classes = merge(className, withPrefix(!(0, _isNil.default)(status) && characterStatus[status]));
|
|
43
39
|
const handleMouseMove = (0, _hooks.useEventCallback)(event => {
|
|
44
40
|
onMouseMove === null || onMouseMove === void 0 || onMouseMove(getKey(beforeRef.current, event.target), event);
|
|
45
41
|
});
|
|
46
42
|
const handleClick = (0, _hooks.useEventCallback)(event => {
|
|
47
43
|
onClick === null || onClick === void 0 || onClick(getKey(beforeRef.current, event.target), event);
|
|
48
44
|
});
|
|
45
|
+
const eventHandlers = (0, _react.useMemo)(() => {
|
|
46
|
+
if (disabled) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
onClick: handleClick,
|
|
51
|
+
onKeyDown,
|
|
52
|
+
onMouseMove: handleMouseMove
|
|
53
|
+
};
|
|
54
|
+
}, [disabled, handleClick, onKeyDown, handleMouseMove]);
|
|
49
55
|
return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
|
|
50
56
|
as: as,
|
|
51
57
|
ref: ref,
|
|
52
|
-
className:
|
|
53
|
-
tabIndex: 0,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
onMouseMove: disabled ? null : handleMouseMove
|
|
57
|
-
}, rest), /*#__PURE__*/_react.default.createElement("div", {
|
|
58
|
+
className: merge(className, withPrefix()),
|
|
59
|
+
tabIndex: disabled ? -1 : 0,
|
|
60
|
+
"data-status": (0, _utils2.getStarStatus)(status)
|
|
61
|
+
}, eventHandlers, rest), /*#__PURE__*/_react.default.createElement("div", {
|
|
58
62
|
ref: beforeRef,
|
|
59
63
|
className: prefix('before', {
|
|
60
64
|
vertical
|
package/cjs/Rate/Rate.d.ts
CHANGED
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { StyledBoxProps } from '../internals/StyledBox';
|
|
3
3
|
import type { Color, FormControlBaseProps, Size } from '../internals/types';
|
|
4
|
-
export interface RateProps<T = number> extends
|
|
4
|
+
export interface RateProps<T = number> extends Omit<StyledBoxProps, 'name'>, FormControlBaseProps<T> {
|
|
5
|
+
/** Whether to allow semi selection */
|
|
5
6
|
allowHalf?: boolean;
|
|
7
|
+
/** Custom character of rate */
|
|
6
8
|
character?: React.ReactNode;
|
|
9
|
+
/** The prefix of the component CSS class */
|
|
7
10
|
classPrefix?: string;
|
|
11
|
+
/** Whether to allow cancel selection */
|
|
8
12
|
cleanable?: boolean;
|
|
9
13
|
/** A rate can have different sizes */
|
|
10
14
|
size?: Size;
|
|
11
15
|
/** A rate can have different colors */
|
|
12
16
|
color?: Color | React.CSSProperties['color'];
|
|
17
|
+
/** Maximum rate */
|
|
13
18
|
max?: number;
|
|
19
|
+
/** Vertical Rate half */
|
|
14
20
|
vertical?: boolean;
|
|
21
|
+
/** Render custom character */
|
|
15
22
|
renderCharacter?: (value: number, index: number) => React.ReactNode;
|
|
23
|
+
/** Callback function when hover state changes */
|
|
16
24
|
onChangeActive?: (value: T, event: React.SyntheticEvent) => void;
|
|
17
25
|
}
|
|
18
26
|
/**
|
package/cjs/Rate/Rate.js
CHANGED
|
@@ -5,19 +5,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
exports.__esModule = true;
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
10
10
|
var _Star = _interopRequireDefault(require("@rsuite/icons/Star"));
|
|
11
11
|
var _Character = _interopRequireDefault(require("./Character"));
|
|
12
12
|
var _Plaintext = _interopRequireDefault(require("../internals/Plaintext"));
|
|
13
|
-
var
|
|
13
|
+
var _StyledBox = _interopRequireDefault(require("../internals/StyledBox"));
|
|
14
14
|
var _constants = require("../internals/constants");
|
|
15
15
|
var _hooks = require("../internals/hooks");
|
|
16
16
|
var _utils = require("../internals/utils");
|
|
17
17
|
var _utils2 = require("./utils");
|
|
18
|
+
var _useRatingStates = require("./useRatingStates");
|
|
18
19
|
var _CustomProvider = require("../CustomProvider");
|
|
19
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
20
|
/**
|
|
22
21
|
* The `Rate` component is used for rating. It can be used to evaluate the quality of the content.
|
|
23
22
|
* @see https://rsuitejs.com/components/rate/
|
|
@@ -35,7 +34,7 @@ const Rate = (0, _utils.forwardRef)((props, ref) => {
|
|
|
35
34
|
max = 5,
|
|
36
35
|
readOnly,
|
|
37
36
|
vertical,
|
|
38
|
-
size
|
|
37
|
+
size,
|
|
39
38
|
color,
|
|
40
39
|
allowHalf = false,
|
|
41
40
|
value: valueProp,
|
|
@@ -49,39 +48,37 @@ const Rate = (0, _utils.forwardRef)((props, ref) => {
|
|
|
49
48
|
...rest
|
|
50
49
|
} = propsWithDefaults;
|
|
51
50
|
const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue);
|
|
52
|
-
const getCharacterMap = (0, _react.useCallback)(v => {
|
|
53
|
-
return (0, _utils2.transformValueToCharacterMap)(typeof v !== 'undefined' ? v : value, max, allowHalf);
|
|
54
|
-
}, [allowHalf, max, value]);
|
|
55
|
-
const [characterMap, setCharacterMap] = (0, _react.useState)(getCharacterMap());
|
|
56
|
-
const hoverValue = (0, _utils2.transformCharacterMapToValue)(characterMap);
|
|
57
51
|
const {
|
|
58
52
|
merge,
|
|
59
53
|
withPrefix
|
|
60
54
|
} = (0, _hooks.useStyles)(classPrefix);
|
|
61
|
-
const classes = merge(className, withPrefix(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
55
|
+
const classes = merge(className, withPrefix());
|
|
56
|
+
|
|
57
|
+
// Use the custom hook to manage rating star states
|
|
58
|
+
const {
|
|
59
|
+
starStates,
|
|
60
|
+
setStarStates,
|
|
61
|
+
resetStarStates,
|
|
62
|
+
hoverValue,
|
|
63
|
+
getStarStates
|
|
64
|
+
} = (0, _useRatingStates.useRatingStates)({
|
|
65
|
+
value,
|
|
66
|
+
max,
|
|
67
|
+
allowHalf,
|
|
68
|
+
valueProp
|
|
69
|
+
});
|
|
73
70
|
const handleMouseLeave = (0, _hooks.useEventCallback)(event => {
|
|
74
|
-
|
|
71
|
+
resetStarStates();
|
|
75
72
|
onChangeActive === null || onChangeActive === void 0 || onChangeActive(value, event);
|
|
76
73
|
});
|
|
77
74
|
const handleChangeValue = (0, _hooks.useEventCallback)((index, event) => {
|
|
78
|
-
let nextValue = (0, _utils2.
|
|
79
|
-
if (cleanable && value === nextValue &&
|
|
75
|
+
let nextValue = (0, _utils2.transformStarStatusToValue)(starStates);
|
|
76
|
+
if (cleanable && value === nextValue && getStarStates(value)[index] === starStates[index]) {
|
|
80
77
|
nextValue = 0;
|
|
81
78
|
}
|
|
82
79
|
if (nextValue !== value) {
|
|
83
80
|
setValue(nextValue);
|
|
84
|
-
|
|
81
|
+
setStarStates(getStarStates(nextValue));
|
|
85
82
|
onChange === null || onChange === void 0 || onChange(nextValue, event);
|
|
86
83
|
}
|
|
87
84
|
});
|
|
@@ -89,59 +86,67 @@ const Rate = (0, _utils.forwardRef)((props, ref) => {
|
|
|
89
86
|
const {
|
|
90
87
|
key
|
|
91
88
|
} = event;
|
|
92
|
-
let nextValue = (0, _utils2.
|
|
89
|
+
let nextValue = (0, _utils2.transformStarStatusToValue)(starStates);
|
|
93
90
|
if (key === _constants.KEY_VALUES.RIGHT && nextValue < max) {
|
|
94
91
|
nextValue = allowHalf ? nextValue + 0.5 : nextValue + 1;
|
|
95
92
|
} else if (key === _constants.KEY_VALUES.LEFT && nextValue > 0) {
|
|
96
93
|
nextValue = allowHalf ? nextValue - 0.5 : nextValue - 1;
|
|
97
94
|
}
|
|
98
|
-
|
|
95
|
+
setStarStates(getStarStates(nextValue));
|
|
99
96
|
if (key === _constants.KEY_VALUES.ENTER) {
|
|
100
97
|
handleChangeValue(index, event);
|
|
101
98
|
}
|
|
102
99
|
});
|
|
103
|
-
const
|
|
104
|
-
const
|
|
100
|
+
const handleChangeStarStates = (0, _hooks.useEventCallback)((index, key, event) => {
|
|
101
|
+
const nextStarStates = starStates.map((_item, i) => {
|
|
105
102
|
if (i === index && key === 'before' && allowHalf) {
|
|
106
103
|
return 0.5;
|
|
107
104
|
}
|
|
108
105
|
return index >= i ? 1 : 0;
|
|
109
106
|
});
|
|
110
|
-
if (!(0, _utils.shallowEqualArray)(
|
|
111
|
-
|
|
112
|
-
onChangeActive === null || onChangeActive === void 0 || onChangeActive((0, _utils2.
|
|
107
|
+
if (!(0, _utils.shallowEqualArray)(starStates, nextStarStates)) {
|
|
108
|
+
setStarStates(nextStarStates);
|
|
109
|
+
onChangeActive === null || onChangeActive === void 0 || onChangeActive((0, _utils2.transformStarStatusToValue)(nextStarStates), event);
|
|
113
110
|
}
|
|
114
111
|
});
|
|
115
112
|
const handleClick = (0, _hooks.useEventCallback)((index, key, event) => {
|
|
116
|
-
|
|
113
|
+
handleChangeStarStates(index, key, event);
|
|
117
114
|
handleChangeValue(index, event);
|
|
118
115
|
});
|
|
119
116
|
if (plaintext) {
|
|
120
117
|
return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
|
|
121
118
|
localeKey: "notSelected",
|
|
122
119
|
className: className
|
|
123
|
-
}, !(0, _isNil.default)(value) ? `${value}
|
|
120
|
+
}, !(0, _isNil.default)(value) ? `${value}/${max}` : null);
|
|
124
121
|
}
|
|
125
|
-
|
|
122
|
+
const mergedStyle = (0, _utils.mergeStyles)(style, {
|
|
123
|
+
'--rs-rate-before-size': (0, _utils2.getFractionalValue)(value)
|
|
124
|
+
});
|
|
125
|
+
return /*#__PURE__*/_react.default.createElement(_StyledBox.default, (0, _extends2.default)({
|
|
126
126
|
as: as,
|
|
127
|
+
name: "rate",
|
|
128
|
+
size: size,
|
|
129
|
+
color: color,
|
|
127
130
|
role: "radiogroup",
|
|
128
|
-
tabIndex: 0,
|
|
131
|
+
tabIndex: disabled ? -1 : 0,
|
|
129
132
|
ref: ref,
|
|
130
133
|
className: classes,
|
|
131
|
-
style:
|
|
132
|
-
onMouseLeave: handleMouseLeave
|
|
133
|
-
|
|
134
|
+
style: mergedStyle,
|
|
135
|
+
onMouseLeave: handleMouseLeave,
|
|
136
|
+
"data-disabled": disabled,
|
|
137
|
+
"data-readonly": readOnly
|
|
138
|
+
}, rest), starStates.map((status, index) => /*#__PURE__*/_react.default.createElement(_Character.default, {
|
|
134
139
|
role: "radio",
|
|
135
140
|
"aria-posinset": index + 1,
|
|
136
141
|
"aria-setsize": max,
|
|
137
142
|
"aria-checked": value === index + 1,
|
|
138
143
|
key: index,
|
|
139
|
-
status:
|
|
144
|
+
status: status,
|
|
140
145
|
disabled: disabled || readOnly,
|
|
141
146
|
vertical: vertical,
|
|
142
147
|
onClick: (key, event) => handleClick(index, key, event),
|
|
143
148
|
onKeyDown: event => handleKeyDown(index, event),
|
|
144
|
-
onMouseMove: (key, event) =>
|
|
149
|
+
onMouseMove: (key, event) => handleChangeStarStates(index, key, event)
|
|
145
150
|
}, renderCharacter ? renderCharacter(hoverValue, index) : character)));
|
|
146
151
|
});
|
|
147
152
|
Rate.displayName = 'Rate';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { StarStatus } from './types';
|
|
3
|
+
interface UseRatingStatesParams {
|
|
4
|
+
value: number;
|
|
5
|
+
max: number;
|
|
6
|
+
allowHalf: boolean;
|
|
7
|
+
valueProp?: number;
|
|
8
|
+
}
|
|
9
|
+
interface UseRatingStatesReturn {
|
|
10
|
+
starStates: StarStatus[];
|
|
11
|
+
hoverValue: number;
|
|
12
|
+
setStarStates: React.Dispatch<React.SetStateAction<StarStatus[]>>;
|
|
13
|
+
resetStarStates: () => void;
|
|
14
|
+
getStarStates: (v?: number) => StarStatus[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Custom hook to manage rating star states for Rate component
|
|
18
|
+
*/
|
|
19
|
+
export declare const useRatingStates: ({ value, max, allowHalf, valueProp }: UseRatingStatesParams) => UseRatingStatesReturn;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.useRatingStates = void 0;
|
|
6
|
+
var _react = require("react");
|
|
7
|
+
var _utils = require("./utils");
|
|
8
|
+
/**
|
|
9
|
+
* Custom hook to manage rating star states for Rate component
|
|
10
|
+
*/
|
|
11
|
+
const useRatingStates = _ref => {
|
|
12
|
+
let {
|
|
13
|
+
value,
|
|
14
|
+
max,
|
|
15
|
+
allowHalf,
|
|
16
|
+
valueProp
|
|
17
|
+
} = _ref;
|
|
18
|
+
// Create a function to generate star states based on value
|
|
19
|
+
const getStarStates = (0, _react.useCallback)(v => {
|
|
20
|
+
return (0, _utils.transformValueToStarStatus)(typeof v !== 'undefined' ? v : value, max, allowHalf);
|
|
21
|
+
}, [allowHalf, max, value]);
|
|
22
|
+
|
|
23
|
+
// Initialize star states
|
|
24
|
+
const [starStates, setStarStates] = (0, _react.useState)(getStarStates());
|
|
25
|
+
|
|
26
|
+
// Calculate hover value from star states
|
|
27
|
+
const hoverValue = (0, _utils.transformStarStatusToValue)(starStates);
|
|
28
|
+
|
|
29
|
+
// Function to reset star states to current value
|
|
30
|
+
const resetStarStates = (0, _react.useCallback)(() => {
|
|
31
|
+
setStarStates(getStarStates());
|
|
32
|
+
}, [getStarStates]);
|
|
33
|
+
|
|
34
|
+
// Update star states when value prop changes
|
|
35
|
+
(0, _react.useEffect)(() => {
|
|
36
|
+
if (typeof valueProp !== 'undefined') {
|
|
37
|
+
setStarStates(getStarStates(valueProp));
|
|
38
|
+
}
|
|
39
|
+
}, [valueProp, getStarStates]);
|
|
40
|
+
return {
|
|
41
|
+
starStates,
|
|
42
|
+
setStarStates,
|
|
43
|
+
resetStarStates,
|
|
44
|
+
hoverValue,
|
|
45
|
+
getStarStates
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
exports.useRatingStates = useRatingStates;
|
package/cjs/Rate/utils.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { StarStatus } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Transforms a numeric value into a character map array.
|
|
4
|
+
*/
|
|
5
|
+
export declare const transformValueToStarStatus: (value: number, max: number, allowHalf: boolean) => StarStatus[];
|
|
6
|
+
/**
|
|
7
|
+
* Transforms a character map array into a numeric value.
|
|
8
|
+
*/
|
|
9
|
+
export declare const transformStarStatusToValue: (characterMap: StarStatus[]) => number;
|
|
10
|
+
/**
|
|
11
|
+
* Calculates the fractional part of a value as a percentage string.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getFractionalValue: (value: number) => string | undefined;
|
|
14
|
+
export declare const getStarStatus: (status?: StarStatus) => any;
|
package/cjs/Rate/utils.js
CHANGED
|
@@ -2,24 +2,65 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.
|
|
6
|
-
|
|
5
|
+
exports.transformValueToStarStatus = exports.transformStarStatusToValue = exports.getStarStatus = exports.getFractionalValue = void 0;
|
|
6
|
+
/**
|
|
7
|
+
* Transforms a numeric value into a character map array.
|
|
8
|
+
*/
|
|
9
|
+
const transformValueToStarStatus = (value, max, allowHalf) => {
|
|
7
10
|
const characterMap = [];
|
|
8
11
|
for (let i = 0; i < max; i++) {
|
|
9
|
-
if (i < value) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
if (i < value && value >= i + 1) {
|
|
13
|
+
// Fully filled star
|
|
14
|
+
characterMap.push(1);
|
|
15
|
+
} else if (i < value && value < i + 1) {
|
|
16
|
+
// Partially filled star
|
|
17
|
+
if (allowHalf) {
|
|
18
|
+
// Use 0.5 to represent partial fill when half ratings are allowed
|
|
19
|
+
characterMap.push(0.5);
|
|
12
20
|
} else {
|
|
13
|
-
|
|
21
|
+
// Extract the decimal part
|
|
22
|
+
characterMap.push(value - i);
|
|
14
23
|
}
|
|
15
24
|
} else {
|
|
25
|
+
// Empty star
|
|
16
26
|
characterMap.push(0);
|
|
17
27
|
}
|
|
18
28
|
}
|
|
19
29
|
return characterMap;
|
|
20
30
|
};
|
|
21
|
-
|
|
22
|
-
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Transforms a character map array into a numeric value.
|
|
34
|
+
*/
|
|
35
|
+
exports.transformValueToStarStatus = transformValueToStarStatus;
|
|
36
|
+
const transformStarStatusToValue = characterMap => characterMap.reduce((total, currentValue) => {
|
|
23
37
|
return total + currentValue;
|
|
24
38
|
});
|
|
25
|
-
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Calculates the fractional part of a value as a percentage string.
|
|
42
|
+
*/
|
|
43
|
+
exports.transformStarStatusToValue = transformStarStatusToValue;
|
|
44
|
+
const getFractionalValue = value => {
|
|
45
|
+
if (!value) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
const integer = Math.floor(value);
|
|
49
|
+
const decimal = value - integer;
|
|
50
|
+
|
|
51
|
+
// Round to avoid floating-point precision issues
|
|
52
|
+
return decimal ? `${Math.round(decimal * 100)}%` : undefined;
|
|
53
|
+
};
|
|
54
|
+
exports.getFractionalValue = getFractionalValue;
|
|
55
|
+
const starStatusMap = {
|
|
56
|
+
[0]: 'empty',
|
|
57
|
+
[0.5]: 'half',
|
|
58
|
+
[1]: 'full'
|
|
59
|
+
};
|
|
60
|
+
const getStarStatus = status => {
|
|
61
|
+
if (typeof status === 'number') {
|
|
62
|
+
return starStatusMap[status] || 'frac';
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
};
|
|
66
|
+
exports.getStarStatus = getStarStatus;
|