@broxus/react-uikit 0.1.3 → 0.2.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/LICENSE +154 -167
- package/dist/cjs/components/Accordion/Accordion.d.ts +3 -2
- package/dist/cjs/components/Accordion/Accordion.js +8 -5
- package/dist/cjs/components/Accordion/Item.d.ts +3 -6
- package/dist/cjs/components/Accordion/Item.js +4 -5
- package/dist/cjs/components/Accordion/index.d.ts +6 -5
- package/dist/cjs/components/Accordion/index.js +2 -2
- package/dist/cjs/components/Alert/index.d.ts +3 -3
- package/dist/cjs/components/Alert/index.js +17 -10
- package/dist/cjs/components/Align/Align.d.ts +5 -7
- package/dist/cjs/components/Align/Align.js +9 -6
- package/dist/cjs/components/Align/Left.d.ts +3 -5
- package/dist/cjs/components/Align/Left.js +3 -6
- package/dist/cjs/components/Align/Right.d.ts +3 -5
- package/dist/cjs/components/Align/Right.js +3 -6
- package/dist/cjs/components/Align/index.d.ts +8 -7
- package/dist/cjs/components/Align/index.js +3 -3
- package/dist/cjs/components/Article/Article.d.ts +1 -1
- package/dist/cjs/components/Article/Article.js +9 -4
- package/dist/cjs/components/Article/Meta.d.ts +4 -9
- package/dist/cjs/components/Article/Meta.js +8 -6
- package/dist/cjs/components/Article/Title.d.ts +4 -9
- package/dist/cjs/components/Article/Title.js +8 -6
- package/dist/cjs/components/Article/index.d.ts +7 -9
- package/dist/cjs/components/Article/index.js +3 -3
- package/dist/cjs/components/Badge/index.d.ts +4 -6
- package/dist/cjs/components/Badge/index.js +7 -4
- package/dist/cjs/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/cjs/components/Breadcrumb/Breadcrumb.js +7 -4
- package/dist/cjs/components/Breadcrumb/Item.d.ts +1 -4
- package/dist/cjs/components/Breadcrumb/Item.js +3 -4
- package/dist/cjs/components/Breadcrumb/index.d.ts +5 -5
- package/dist/cjs/components/Breadcrumb/index.js +2 -2
- package/dist/cjs/components/Button/Button.d.ts +1 -1
- package/dist/cjs/components/Button/Button.js +16 -14
- package/dist/cjs/components/Button/Group.d.ts +1 -4
- package/dist/cjs/components/Button/Group.js +6 -6
- package/dist/cjs/components/Button/index.d.ts +5 -5
- package/dist/cjs/components/Button/index.js +2 -2
- package/dist/cjs/components/Card/Badge.d.ts +3 -7
- package/dist/cjs/components/Card/Badge.js +10 -7
- package/dist/cjs/components/Card/Body.d.ts +1 -4
- package/dist/cjs/components/Card/Body.js +8 -6
- package/dist/cjs/components/Card/Card.d.ts +4 -6
- package/dist/cjs/components/Card/Card.js +17 -11
- package/dist/cjs/components/Card/Footer.d.ts +4 -9
- package/dist/cjs/components/Card/Footer.js +8 -6
- package/dist/cjs/components/Card/Header.d.ts +4 -9
- package/dist/cjs/components/Card/Header.js +8 -6
- package/dist/cjs/components/Card/Media.d.ts +1 -4
- package/dist/cjs/components/Card/Media.js +8 -6
- package/dist/cjs/components/Card/Title.d.ts +4 -9
- package/dist/cjs/components/Card/Title.js +9 -7
- package/dist/cjs/components/Card/index.d.ts +10 -10
- package/dist/cjs/components/Card/index.js +7 -7
- package/dist/cjs/components/Close/index.d.ts +3 -7
- package/dist/cjs/components/Close/index.js +7 -4
- package/dist/cjs/components/Component/index.d.ts +9 -4
- package/dist/cjs/components/Component/index.js +26 -2
- package/dist/cjs/components/ComponentProvider/index.d.ts +11 -0
- package/dist/cjs/components/ComponentProvider/index.js +49 -0
- package/dist/cjs/components/ConfrigProvider/index.d.ts +9 -7
- package/dist/cjs/components/ConfrigProvider/index.js +37 -7
- package/dist/cjs/components/Container/index.d.ts +4 -5
- package/dist/cjs/components/Container/index.js +12 -7
- package/dist/cjs/components/Control/Checkbox/Checkbox.d.ts +7 -2
- package/dist/cjs/components/Control/Checkbox/Checkbox.js +66 -46
- package/dist/cjs/components/Control/Checkbox/CheckboxGroupContext.d.ts +26 -0
- package/dist/cjs/components/Control/Checkbox/{Context.js → CheckboxGroupContext.js} +6 -3
- package/dist/cjs/components/Control/Checkbox/Group.d.ts +14 -2
- package/dist/cjs/components/Control/Checkbox/Group.js +31 -28
- package/dist/cjs/components/Control/Checkbox/index.d.ts +8 -6
- package/dist/cjs/components/Control/Checkbox/index.js +3 -3
- package/dist/cjs/components/Control/Checkbox/index.scss +7 -2
- package/dist/cjs/components/Control/Checkbox/types.d.ts +3 -66
- package/dist/cjs/components/Control/Input/Input.d.ts +2 -2
- package/dist/cjs/components/Control/Input/Input.js +22 -13
- package/dist/cjs/components/Control/Input/Number/index.d.ts +2 -2
- package/dist/cjs/components/Control/Input/Number/index.js +24 -19
- package/dist/cjs/components/Control/Input/Password/index.d.ts +2 -2
- package/dist/cjs/components/Control/Input/Password/index.js +39 -27
- package/dist/cjs/components/Control/Input/index.d.ts +7 -7
- package/dist/cjs/components/Control/Input/index.js +5 -5
- package/dist/cjs/components/Control/Input/types.d.ts +5 -5
- package/dist/cjs/components/Control/Input/useInput.d.ts +5 -4
- package/dist/cjs/components/Control/Input/useInput.js +47 -50
- package/dist/cjs/components/Control/Radio/Group.d.ts +7 -2
- package/dist/cjs/components/Control/Radio/Group.js +24 -17
- package/dist/cjs/components/Control/Radio/Radio.d.ts +6 -2
- package/dist/cjs/components/Control/Radio/Radio.js +57 -40
- package/dist/cjs/components/Control/Radio/RadioGroupContext.d.ts +9 -0
- package/dist/cjs/components/Control/Radio/{Context.js → RadioGroupContext.js} +6 -3
- package/dist/cjs/components/Control/Radio/index.d.ts +6 -6
- package/dist/cjs/components/Control/Radio/index.js +2 -17
- package/dist/cjs/components/Control/Radio/index.scss +1 -0
- package/dist/cjs/components/Control/Select/index.d.ts +8 -12
- package/dist/cjs/components/Control/Select/index.js +72 -49
- package/dist/cjs/components/Control/TextArea/index.d.ts +3 -10
- package/dist/cjs/components/Control/TextArea/index.js +51 -47
- package/dist/cjs/components/Control/TextArea/index.scss +1 -1
- package/dist/cjs/components/Control/index.d.ts +6 -6
- package/dist/cjs/components/Control/index.js +6 -6
- package/dist/cjs/components/Control/types.d.ts +8 -7
- package/dist/cjs/components/Cover/index.d.ts +2 -1
- package/dist/cjs/components/Cover/index.js +24 -17
- package/dist/cjs/components/DescriptionList/Description.d.ts +1 -6
- package/dist/cjs/components/DescriptionList/Description.js +2 -5
- package/dist/cjs/components/DescriptionList/DescriptionList.d.ts +2 -1
- package/dist/cjs/components/DescriptionList/DescriptionList.js +10 -5
- package/dist/cjs/components/DescriptionList/Term.d.ts +1 -6
- package/dist/cjs/components/DescriptionList/Term.js +2 -5
- package/dist/cjs/components/DescriptionList/index.d.ts +6 -6
- package/dist/cjs/components/DescriptionList/index.js +3 -3
- package/dist/cjs/components/Divider/index.d.ts +2 -1
- package/dist/cjs/components/Divider/index.js +11 -6
- package/dist/cjs/components/Dotnav/Dotnav.d.ts +2 -1
- package/dist/cjs/components/Dotnav/Dotnav.js +10 -5
- package/dist/cjs/components/Dotnav/Item.d.ts +1 -4
- package/dist/cjs/components/Dotnav/Item.js +7 -6
- package/dist/cjs/components/Dotnav/index.d.ts +5 -5
- package/dist/cjs/components/Dotnav/index.js +2 -2
- package/dist/cjs/components/Drawer/index.d.ts +7 -44
- package/dist/cjs/components/Drawer/index.js +40 -139
- package/dist/cjs/components/Drawer/index.scss +11 -14
- package/dist/cjs/components/Drop/index.d.ts +12 -4
- package/dist/cjs/components/Drop/index.js +38 -21
- package/dist/cjs/components/Drop/index.scss +0 -26
- package/dist/cjs/components/Dropdown/index.d.ts +3 -3
- package/dist/cjs/components/Dropdown/index.js +5 -2
- package/dist/cjs/components/Flex/index.d.ts +14 -15
- package/dist/cjs/components/Flex/index.js +15 -13
- package/dist/cjs/components/Form/Controls.d.ts +3 -4
- package/dist/cjs/components/Form/Controls.js +10 -6
- package/dist/cjs/components/Form/ControlsText.d.ts +3 -4
- package/dist/cjs/components/Form/ControlsText.js +10 -6
- package/dist/cjs/components/Form/Fieldset.d.ts +4 -4
- package/dist/cjs/components/Form/Fieldset.js +10 -6
- package/dist/cjs/components/Form/Form.d.ts +4 -5
- package/dist/cjs/components/Form/Form.js +11 -7
- package/dist/cjs/components/Form/Label.d.ts +3 -4
- package/dist/cjs/components/Form/Label.js +9 -6
- package/dist/cjs/components/Form/Legend.d.ts +3 -4
- package/dist/cjs/components/Form/Legend.js +8 -6
- package/dist/cjs/components/Form/index.d.ts +9 -9
- package/dist/cjs/components/Form/index.js +6 -6
- package/dist/cjs/components/Grid/index.d.ts +7 -8
- package/dist/cjs/components/Grid/index.js +13 -11
- package/dist/cjs/components/Heading/index.d.ts +5 -6
- package/dist/cjs/components/Heading/index.js +11 -6
- package/dist/cjs/components/Icon/Button.d.ts +3 -5
- package/dist/cjs/components/Icon/Button.js +3 -6
- package/dist/cjs/components/Icon/Icon.d.ts +4 -6
- package/dist/cjs/components/Icon/Icon.js +9 -9
- package/dist/cjs/components/Icon/Link.d.ts +3 -5
- package/dist/cjs/components/Icon/Link.js +3 -6
- package/dist/cjs/components/Icon/default-svg-props.d.ts +1 -1
- package/dist/cjs/components/Icon/default-svg-props.js +2 -2
- package/dist/cjs/components/Icon/index.d.ts +9 -9
- package/dist/cjs/components/Icon/index.js +5 -5
- package/dist/cjs/components/Iconnav/Iconnav.d.ts +1 -1
- package/dist/cjs/components/Iconnav/Iconnav.js +6 -6
- package/dist/cjs/components/Iconnav/Item.d.ts +1 -5
- package/dist/cjs/components/Iconnav/Item.js +4 -5
- package/dist/cjs/components/Iconnav/index.d.ts +5 -5
- package/dist/cjs/components/Iconnav/index.js +2 -2
- package/dist/cjs/components/Label/index.d.ts +1 -1
- package/dist/cjs/components/Label/index.js +7 -7
- package/dist/cjs/components/Label/index.scss +1 -1
- package/dist/cjs/components/Link/index.d.ts +3 -3
- package/dist/cjs/components/Link/index.js +9 -3
- package/dist/cjs/components/List/Item.d.ts +2 -5
- package/dist/cjs/components/List/Item.js +2 -5
- package/dist/cjs/components/List/List.d.ts +1 -1
- package/dist/cjs/components/List/List.js +8 -8
- package/dist/cjs/components/List/index.d.ts +5 -5
- package/dist/cjs/components/List/index.js +2 -2
- package/dist/cjs/components/Modal/Modal.d.ts +4 -3
- package/dist/cjs/components/Modal/Modal.js +19 -16
- package/dist/cjs/components/Modal/index.d.ts +1 -1
- package/dist/cjs/components/Modal/index.js +1 -1
- package/dist/cjs/components/Nav/Divider.d.ts +3 -8
- package/dist/cjs/components/Nav/Divider.js +6 -7
- package/dist/cjs/components/Nav/Group/InternalNavItemGroup.d.ts +11 -0
- package/dist/cjs/components/Nav/Group/InternalNavItemGroup.js +42 -0
- package/dist/cjs/components/Nav/Group/index.d.ts +3 -0
- package/dist/cjs/components/Nav/{Group.js → Group/index.js} +10 -19
- package/dist/cjs/components/Nav/Header.d.ts +1 -1
- package/dist/cjs/components/Nav/Header.js +2 -2
- package/dist/cjs/components/Nav/Item/InternalNavItem.d.ts +16 -2
- package/dist/cjs/components/Nav/Item/InternalNavItem.js +54 -35
- package/dist/cjs/components/Nav/Item/LegacyNavItem.js +1 -1
- package/dist/cjs/components/Nav/Item/index.d.ts +2 -28
- package/dist/cjs/components/Nav/Item/index.js +6 -7
- package/dist/cjs/components/Nav/Nav.d.ts +23 -5
- package/dist/cjs/components/Nav/Nav.js +165 -123
- package/dist/cjs/components/Nav/Sub/InlineSubNavList.js +3 -3
- package/dist/cjs/components/Nav/Sub/PopupTrigger.d.ts +6 -6
- package/dist/cjs/components/Nav/Sub/PopupTrigger.js +21 -14
- package/dist/cjs/components/Nav/Sub/SubNavList.d.ts +1 -1
- package/dist/cjs/components/Nav/Sub/SubNavList.js +5 -3
- package/dist/cjs/components/Nav/Sub/index.d.ts +3 -19
- package/dist/cjs/components/Nav/Sub/index.js +58 -41
- package/dist/cjs/components/Nav/context/IdContext.js +3 -0
- package/dist/cjs/components/Nav/context/NavContext.d.ts +5 -4
- package/dist/cjs/components/Nav/context/NavContext.js +9 -3
- package/dist/cjs/components/Nav/context/PathContext.js +5 -0
- package/dist/cjs/components/Nav/context/PrivateContext.d.ts +7 -0
- package/dist/cjs/components/{Component/Component.js → Nav/context/PrivateContext.js} +2 -3
- package/dist/cjs/components/Nav/hooks/useAccessibility.d.ts +2 -2
- package/dist/cjs/components/Nav/hooks/useAccessibility.js +4 -3
- package/dist/cjs/components/Nav/hooks/useActive.d.ts +2 -2
- package/dist/cjs/components/Nav/hooks/useActive.js +6 -5
- package/dist/cjs/components/Nav/hooks/useDirectionStyle.d.ts +2 -0
- package/dist/cjs/components/Nav/hooks/useDirectionStyle.js +37 -0
- package/dist/cjs/components/Nav/hooks/useKeyRecords.d.ts +3 -3
- package/dist/cjs/components/Nav/hooks/useKeyRecords.js +14 -14
- package/dist/cjs/components/Nav/hooks/useMemoCallback.d.ts +1 -1
- package/dist/cjs/components/Nav/hooks/useMemoCallback.js +3 -1
- package/dist/cjs/components/Nav/hooks/useUUID.d.ts +1 -1
- package/dist/cjs/components/Nav/hooks/useUUID.js +3 -2
- package/dist/cjs/components/Nav/index.d.ts +9 -9
- package/dist/cjs/components/Nav/index.js +6 -6
- package/dist/cjs/components/Nav/index.scss +10 -7
- package/dist/cjs/components/Nav/types.d.ts +58 -10
- package/dist/cjs/components/Nav/utils/alignUtil.d.ts +1 -1
- package/dist/cjs/components/Nav/utils/motionUtil.d.ts +1 -1
- package/dist/cjs/components/Nav/utils/nodeUtil.d.ts +3 -1
- package/dist/cjs/components/Nav/utils/nodeUtil.js +38 -1
- package/dist/cjs/components/Nav/utils/warnUtil.d.ts +1 -1
- package/dist/cjs/components/Navbar/Center.d.ts +5 -7
- package/dist/cjs/components/Navbar/Center.js +8 -6
- package/dist/cjs/components/Navbar/Container.d.ts +4 -8
- package/dist/cjs/components/Navbar/Container.js +9 -7
- package/dist/cjs/components/Navbar/Item.d.ts +5 -8
- package/dist/cjs/components/Navbar/Item.js +8 -6
- package/dist/cjs/components/Navbar/Left.d.ts +5 -7
- package/dist/cjs/components/Navbar/Left.js +8 -6
- package/dist/cjs/components/Navbar/Nav.d.ts +2 -1
- package/dist/cjs/components/Navbar/Nav.js +5 -2
- package/dist/cjs/components/Navbar/Right.d.ts +3 -3
- package/dist/cjs/components/Navbar/Toggle.d.ts +5 -4
- package/dist/cjs/components/Navbar/index.d.ts +11 -11
- package/dist/cjs/components/Navbar/index.js +8 -8
- package/dist/cjs/components/Progress/index.d.ts +6 -0
- package/dist/cjs/components/Progress/index.js +39 -0
- package/dist/cjs/components/Progress/index.scss +129 -0
- package/dist/cjs/components/Section/index.d.ts +4 -6
- package/dist/cjs/components/Section/index.js +10 -8
- package/dist/cjs/components/Spinner/index.d.ts +3 -3
- package/dist/cjs/components/Spinner/index.js +7 -5
- package/dist/cjs/components/Tabs/index.d.ts +7 -11
- package/dist/cjs/components/Tabs/index.js +17 -18
- package/dist/cjs/components/Tabs/index.scss +9 -1
- package/dist/cjs/components/Text/index.d.ts +7 -8
- package/dist/cjs/components/Text/index.js +22 -20
- package/dist/cjs/components/Tile/index.d.ts +5 -6
- package/dist/cjs/components/Tile/index.js +10 -8
- package/dist/cjs/components/Tile/index.scss +8 -8
- package/dist/cjs/components/Width/Width.d.ts +5 -6
- package/dist/cjs/components/Width/Width.js +12 -6
- package/dist/cjs/components/Width/index.d.ts +3 -3
- package/dist/cjs/components/Width/index.js +3 -3
- package/dist/cjs/components/Width/types.d.ts +6 -6
- package/dist/cjs/components/Width/utils.d.ts +1 -1
- package/dist/cjs/components/Width/utils.js +3 -1
- package/dist/cjs/hooks/index.d.ts +3 -0
- package/dist/cjs/{utils/hooks → hooks}/index.js +3 -1
- package/dist/cjs/hooks/useContext.d.ts +2 -0
- package/dist/cjs/hooks/useContext.js +35 -0
- package/dist/cjs/hooks/useMounted.d.ts +1 -0
- package/dist/cjs/hooks/useMounted.js +38 -0
- package/dist/cjs/index.d.ts +33 -30
- package/dist/cjs/index.js +33 -30
- package/dist/cjs/styles/_import.components.scss +1 -2
- package/dist/cjs/styles/_import.scss +1 -2
- package/dist/cjs/styles/animation.scss +35 -35
- package/dist/cjs/styles/column.scss +0 -1
- package/dist/cjs/styles/mixins.scss +30 -8
- package/dist/cjs/styles/motion.scss +367 -44
- package/dist/cjs/styles/progress.scss +1 -129
- package/dist/cjs/styles/variables.scss +6 -4
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/cjs/types.d.ts +15 -3
- package/dist/cjs/utils/get-breakpoints-config-classes.d.ts +1 -1
- package/dist/cjs/utils/index.d.ts +3 -4
- package/dist/cjs/utils/index.js +3 -4
- package/dist/cjs/utils/motion.d.ts +3 -3
- package/dist/cjs/utils/motion.js +23 -21
- package/dist/esm/components/Accordion/Accordion.d.ts +3 -2
- package/dist/esm/components/Accordion/Accordion.js +8 -4
- package/dist/esm/components/Accordion/Item.d.ts +3 -6
- package/dist/esm/components/Accordion/Item.js +3 -3
- package/dist/esm/components/Accordion/index.d.ts +6 -5
- package/dist/esm/components/Accordion/index.js +2 -2
- package/dist/esm/components/Alert/index.d.ts +3 -3
- package/dist/esm/components/Alert/index.js +17 -10
- package/dist/esm/components/Align/Align.d.ts +5 -7
- package/dist/esm/components/Align/Align.js +9 -5
- package/dist/esm/components/Align/Left.d.ts +3 -5
- package/dist/esm/components/Align/Left.js +2 -4
- package/dist/esm/components/Align/Right.d.ts +3 -5
- package/dist/esm/components/Align/Right.js +2 -4
- package/dist/esm/components/Align/index.d.ts +8 -7
- package/dist/esm/components/Align/index.js +3 -3
- package/dist/esm/components/Article/Article.d.ts +1 -1
- package/dist/esm/components/Article/Article.js +9 -3
- package/dist/esm/components/Article/Meta.d.ts +4 -9
- package/dist/esm/components/Article/Meta.js +7 -4
- package/dist/esm/components/Article/Title.d.ts +4 -9
- package/dist/esm/components/Article/Title.js +7 -4
- package/dist/esm/components/Article/index.d.ts +7 -9
- package/dist/esm/components/Article/index.js +3 -3
- package/dist/esm/components/Badge/index.d.ts +4 -6
- package/dist/esm/components/Badge/index.js +7 -3
- package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.js +7 -3
- package/dist/esm/components/Breadcrumb/Item.d.ts +1 -4
- package/dist/esm/components/Breadcrumb/Item.js +2 -2
- package/dist/esm/components/Breadcrumb/index.d.ts +5 -5
- package/dist/esm/components/Breadcrumb/index.js +3 -3
- package/dist/esm/components/Button/Button.d.ts +1 -1
- package/dist/esm/components/Button/Button.js +16 -14
- package/dist/esm/components/Button/Group.d.ts +1 -4
- package/dist/esm/components/Button/Group.js +5 -4
- package/dist/esm/components/Button/index.d.ts +5 -5
- package/dist/esm/components/Button/index.js +2 -2
- package/dist/esm/components/Card/Badge.d.ts +3 -7
- package/dist/esm/components/Card/Badge.js +9 -5
- package/dist/esm/components/Card/Body.d.ts +1 -4
- package/dist/esm/components/Card/Body.js +7 -4
- package/dist/esm/components/Card/Card.d.ts +4 -6
- package/dist/esm/components/Card/Card.js +17 -10
- package/dist/esm/components/Card/Footer.d.ts +4 -9
- package/dist/esm/components/Card/Footer.js +7 -4
- package/dist/esm/components/Card/Header.d.ts +4 -9
- package/dist/esm/components/Card/Header.js +7 -4
- package/dist/esm/components/Card/Media.d.ts +1 -4
- package/dist/esm/components/Card/Media.js +7 -4
- package/dist/esm/components/Card/Title.d.ts +4 -9
- package/dist/esm/components/Card/Title.js +8 -5
- package/dist/esm/components/Card/index.d.ts +10 -10
- package/dist/esm/components/Card/index.js +7 -7
- package/dist/esm/components/Close/index.d.ts +3 -7
- package/dist/esm/components/Close/index.js +7 -3
- package/dist/esm/components/Component/index.d.ts +9 -4
- package/dist/esm/components/Component/index.js +3 -1
- package/dist/esm/components/ComponentProvider/index.d.ts +11 -0
- package/dist/esm/components/ComponentProvider/index.js +21 -0
- package/dist/esm/components/ConfrigProvider/index.d.ts +9 -7
- package/dist/esm/components/ConfrigProvider/index.js +37 -7
- package/dist/esm/components/Container/index.d.ts +4 -5
- package/dist/esm/components/Container/index.js +12 -6
- package/dist/esm/components/Control/Checkbox/Checkbox.d.ts +7 -2
- package/dist/esm/components/Control/Checkbox/Checkbox.js +65 -45
- package/dist/esm/components/Control/Checkbox/CheckboxGroupContext.d.ts +26 -0
- package/dist/esm/components/Control/Checkbox/CheckboxGroupContext.js +8 -0
- package/dist/esm/components/Control/Checkbox/Group.d.ts +14 -2
- package/dist/esm/components/Control/Checkbox/Group.js +31 -28
- package/dist/esm/components/Control/Checkbox/index.d.ts +8 -6
- package/dist/esm/components/Control/Checkbox/index.js +3 -3
- package/dist/esm/components/Control/Checkbox/index.scss +7 -2
- package/dist/esm/components/Control/Checkbox/types.d.ts +3 -66
- package/dist/esm/components/Control/Input/Input.d.ts +2 -2
- package/dist/esm/components/Control/Input/Input.js +22 -13
- package/dist/esm/components/Control/Input/Number/index.d.ts +2 -2
- package/dist/esm/components/Control/Input/Number/index.js +24 -19
- package/dist/esm/components/Control/Input/Password/index.d.ts +2 -2
- package/dist/esm/components/Control/Input/Password/index.js +39 -27
- package/dist/esm/components/Control/Input/index.d.ts +7 -7
- package/dist/esm/components/Control/Input/index.js +5 -5
- package/dist/esm/components/Control/Input/types.d.ts +5 -5
- package/dist/esm/components/Control/Input/useInput.d.ts +5 -4
- package/dist/esm/components/Control/Input/useInput.js +47 -50
- package/dist/esm/components/Control/Radio/Group.d.ts +7 -2
- package/dist/esm/components/Control/Radio/Group.js +24 -17
- package/dist/esm/components/Control/Radio/Radio.d.ts +6 -2
- package/dist/esm/components/Control/Radio/Radio.js +56 -39
- package/dist/esm/components/Control/Radio/RadioGroupContext.d.ts +9 -0
- package/dist/esm/components/Control/Radio/RadioGroupContext.js +8 -0
- package/dist/esm/components/Control/Radio/index.d.ts +6 -6
- package/dist/esm/components/Control/Radio/index.js +2 -3
- package/dist/esm/components/Control/Radio/index.scss +1 -0
- package/dist/esm/components/Control/Select/index.d.ts +8 -12
- package/dist/esm/components/Control/Select/index.js +73 -50
- package/dist/esm/components/Control/TextArea/index.d.ts +3 -10
- package/dist/esm/components/Control/TextArea/index.js +51 -47
- package/dist/esm/components/Control/TextArea/index.scss +1 -1
- package/dist/esm/components/Control/index.d.ts +6 -6
- package/dist/esm/components/Control/index.js +6 -6
- package/dist/esm/components/Control/types.d.ts +8 -7
- package/dist/esm/components/Cover/index.d.ts +2 -1
- package/dist/esm/components/Cover/index.js +24 -16
- package/dist/esm/components/DescriptionList/Description.d.ts +1 -6
- package/dist/esm/components/DescriptionList/Description.js +1 -3
- package/dist/esm/components/DescriptionList/DescriptionList.d.ts +2 -1
- package/dist/esm/components/DescriptionList/DescriptionList.js +10 -4
- package/dist/esm/components/DescriptionList/Term.d.ts +1 -6
- package/dist/esm/components/DescriptionList/Term.js +1 -3
- package/dist/esm/components/DescriptionList/index.d.ts +6 -6
- package/dist/esm/components/DescriptionList/index.js +3 -3
- package/dist/esm/components/Divider/index.d.ts +2 -1
- package/dist/esm/components/Divider/index.js +11 -5
- package/dist/esm/components/Dotnav/Dotnav.d.ts +2 -1
- package/dist/esm/components/Dotnav/Dotnav.js +10 -4
- package/dist/esm/components/Dotnav/Item.d.ts +1 -4
- package/dist/esm/components/Dotnav/Item.js +6 -4
- package/dist/esm/components/Dotnav/index.d.ts +5 -5
- package/dist/esm/components/Dotnav/index.js +2 -2
- package/dist/esm/components/Drawer/index.d.ts +7 -44
- package/dist/esm/components/Drawer/index.js +42 -141
- package/dist/esm/components/Drawer/index.scss +11 -14
- package/dist/esm/components/Drop/index.d.ts +12 -4
- package/dist/esm/components/Drop/index.js +38 -21
- package/dist/esm/components/Drop/index.scss +0 -26
- package/dist/esm/components/Dropdown/index.d.ts +3 -3
- package/dist/esm/components/Dropdown/index.js +5 -2
- package/dist/esm/components/Flex/index.d.ts +14 -15
- package/dist/esm/components/Flex/index.js +15 -12
- package/dist/esm/components/Form/Controls.d.ts +3 -4
- package/dist/esm/components/Form/Controls.js +9 -4
- package/dist/esm/components/Form/ControlsText.d.ts +3 -4
- package/dist/esm/components/Form/ControlsText.js +9 -4
- package/dist/esm/components/Form/Fieldset.d.ts +4 -4
- package/dist/esm/components/Form/Fieldset.js +9 -4
- package/dist/esm/components/Form/Form.d.ts +4 -5
- package/dist/esm/components/Form/Form.js +11 -6
- package/dist/esm/components/Form/Label.d.ts +3 -4
- package/dist/esm/components/Form/Label.js +8 -4
- package/dist/esm/components/Form/Legend.d.ts +3 -4
- package/dist/esm/components/Form/Legend.js +7 -4
- package/dist/esm/components/Form/index.d.ts +9 -9
- package/dist/esm/components/Form/index.js +6 -6
- package/dist/esm/components/Grid/index.d.ts +7 -8
- package/dist/esm/components/Grid/index.js +14 -11
- package/dist/esm/components/Heading/index.d.ts +5 -6
- package/dist/esm/components/Heading/index.js +11 -5
- package/dist/esm/components/Icon/Button.d.ts +3 -5
- package/dist/esm/components/Icon/Button.js +2 -4
- package/dist/esm/components/Icon/Icon.d.ts +4 -6
- package/dist/esm/components/Icon/Icon.js +9 -8
- package/dist/esm/components/Icon/Link.d.ts +3 -5
- package/dist/esm/components/Icon/Link.js +2 -4
- package/dist/esm/components/Icon/default-svg-props.d.ts +1 -1
- package/dist/esm/components/Icon/default-svg-props.js +1 -1
- package/dist/esm/components/Icon/index.d.ts +9 -9
- package/dist/esm/components/Icon/index.js +5 -5
- package/dist/esm/components/Iconnav/Iconnav.d.ts +1 -1
- package/dist/esm/components/Iconnav/Iconnav.js +6 -5
- package/dist/esm/components/Iconnav/Item.d.ts +1 -5
- package/dist/esm/components/Iconnav/Item.js +3 -3
- package/dist/esm/components/Iconnav/index.d.ts +5 -5
- package/dist/esm/components/Iconnav/index.js +2 -2
- package/dist/esm/components/Label/index.d.ts +1 -1
- package/dist/esm/components/Label/index.js +7 -6
- package/dist/esm/components/Label/index.scss +1 -1
- package/dist/esm/components/Link/index.d.ts +3 -3
- package/dist/esm/components/Link/index.js +9 -3
- package/dist/esm/components/List/Item.d.ts +2 -5
- package/dist/esm/components/List/Item.js +1 -3
- package/dist/esm/components/List/List.d.ts +1 -1
- package/dist/esm/components/List/List.js +8 -7
- package/dist/esm/components/List/index.d.ts +5 -5
- package/dist/esm/components/List/index.js +2 -2
- package/dist/esm/components/Modal/Modal.d.ts +4 -3
- package/dist/esm/components/Modal/Modal.js +19 -15
- package/dist/esm/components/Modal/index.d.ts +1 -1
- package/dist/esm/components/Modal/index.js +1 -1
- package/dist/esm/components/Nav/Divider.d.ts +3 -8
- package/dist/esm/components/Nav/Divider.js +5 -5
- package/dist/esm/components/Nav/Group/InternalNavItemGroup.d.ts +11 -0
- package/dist/esm/components/Nav/Group/InternalNavItemGroup.js +13 -0
- package/dist/esm/components/Nav/Group/index.d.ts +3 -0
- package/dist/esm/components/Nav/Group/index.js +18 -0
- package/dist/esm/components/Nav/Header.d.ts +1 -1
- package/dist/esm/components/Nav/Header.js +2 -2
- package/dist/esm/components/Nav/Item/InternalNavItem.d.ts +16 -2
- package/dist/esm/components/Nav/Item/InternalNavItem.js +54 -34
- package/dist/esm/components/Nav/Item/LegacyNavItem.js +1 -1
- package/dist/esm/components/Nav/Item/index.d.ts +2 -28
- package/dist/esm/components/Nav/Item/index.js +5 -5
- package/dist/esm/components/Nav/Nav.d.ts +23 -5
- package/dist/esm/components/Nav/Nav.js +161 -118
- package/dist/esm/components/Nav/Sub/InlineSubNavList.js +3 -3
- package/dist/esm/components/Nav/Sub/PopupTrigger.d.ts +6 -6
- package/dist/esm/components/Nav/Sub/PopupTrigger.js +21 -13
- package/dist/esm/components/Nav/Sub/SubNavList.d.ts +1 -1
- package/dist/esm/components/Nav/Sub/SubNavList.js +5 -3
- package/dist/esm/components/Nav/Sub/index.d.ts +3 -19
- package/dist/esm/components/Nav/Sub/index.js +55 -37
- package/dist/esm/components/Nav/context/IdContext.js +3 -0
- package/dist/esm/components/Nav/context/NavContext.d.ts +5 -4
- package/dist/esm/components/Nav/context/NavContext.js +9 -3
- package/dist/esm/components/Nav/context/PathContext.js +5 -0
- package/dist/esm/components/Nav/context/PrivateContext.d.ts +7 -0
- package/dist/esm/components/Nav/context/PrivateContext.js +2 -0
- package/dist/esm/components/Nav/hooks/useAccessibility.d.ts +2 -2
- package/dist/esm/components/Nav/hooks/useAccessibility.js +3 -3
- package/dist/esm/components/Nav/hooks/useActive.d.ts +2 -2
- package/dist/esm/components/Nav/hooks/useActive.js +5 -5
- package/dist/esm/components/Nav/hooks/useDirectionStyle.d.ts +2 -0
- package/dist/esm/components/Nav/hooks/useDirectionStyle.js +10 -0
- package/dist/esm/components/Nav/hooks/useKeyRecords.d.ts +3 -3
- package/dist/esm/components/Nav/hooks/useKeyRecords.js +13 -13
- package/dist/esm/components/Nav/hooks/useMemoCallback.d.ts +1 -1
- package/dist/esm/components/Nav/hooks/useMemoCallback.js +2 -1
- package/dist/esm/components/Nav/hooks/useUUID.d.ts +1 -1
- package/dist/esm/components/Nav/hooks/useUUID.js +2 -2
- package/dist/esm/components/Nav/index.d.ts +9 -9
- package/dist/esm/components/Nav/index.js +6 -6
- package/dist/esm/components/Nav/index.scss +10 -7
- package/dist/esm/components/Nav/types.d.ts +58 -10
- package/dist/esm/components/Nav/utils/alignUtil.d.ts +1 -1
- package/dist/esm/components/Nav/utils/motionUtil.d.ts +1 -1
- package/dist/esm/components/Nav/utils/nodeUtil.d.ts +3 -1
- package/dist/esm/components/Nav/utils/nodeUtil.js +36 -0
- package/dist/esm/components/Nav/utils/warnUtil.d.ts +1 -1
- package/dist/esm/components/Navbar/Center.d.ts +5 -7
- package/dist/esm/components/Navbar/Center.js +7 -4
- package/dist/esm/components/Navbar/Container.d.ts +4 -8
- package/dist/esm/components/Navbar/Container.js +8 -5
- package/dist/esm/components/Navbar/Item.d.ts +5 -8
- package/dist/esm/components/Navbar/Item.js +7 -4
- package/dist/esm/components/Navbar/Left.d.ts +5 -7
- package/dist/esm/components/Navbar/Left.js +7 -4
- package/dist/esm/components/Navbar/Nav.d.ts +2 -1
- package/dist/esm/components/Navbar/Nav.js +5 -2
- package/dist/esm/components/Navbar/Right.d.ts +3 -3
- package/dist/esm/components/Navbar/Toggle.d.ts +5 -4
- package/dist/esm/components/Navbar/index.d.ts +11 -11
- package/dist/esm/components/Navbar/index.js +8 -8
- package/dist/esm/components/Progress/index.d.ts +6 -0
- package/dist/esm/components/Progress/index.js +10 -0
- package/dist/esm/components/Progress/index.scss +129 -0
- package/dist/esm/components/Section/index.d.ts +4 -6
- package/dist/esm/components/Section/index.js +10 -7
- package/dist/esm/components/Spinner/index.d.ts +3 -3
- package/dist/esm/components/Spinner/index.js +8 -6
- package/dist/esm/components/Tabs/index.d.ts +7 -11
- package/dist/esm/components/Tabs/index.js +17 -17
- package/dist/esm/components/Tabs/index.scss +9 -1
- package/dist/esm/components/Text/index.d.ts +7 -8
- package/dist/esm/components/Text/index.js +22 -19
- package/dist/esm/components/Tile/index.d.ts +5 -6
- package/dist/esm/components/Tile/index.js +10 -7
- package/dist/esm/components/Tile/index.scss +8 -8
- package/dist/esm/components/Width/Width.d.ts +5 -6
- package/dist/esm/components/Width/Width.js +12 -5
- package/dist/esm/components/Width/index.d.ts +3 -3
- package/dist/esm/components/Width/index.js +3 -3
- package/dist/esm/components/Width/types.d.ts +6 -6
- package/dist/esm/components/Width/utils.d.ts +1 -1
- package/dist/esm/components/Width/utils.js +3 -1
- package/dist/esm/hooks/index.d.ts +3 -0
- package/dist/esm/hooks/index.js +3 -0
- package/dist/esm/hooks/useContext.d.ts +2 -0
- package/dist/esm/hooks/useContext.js +8 -0
- package/dist/esm/hooks/useMounted.d.ts +1 -0
- package/dist/esm/hooks/useMounted.js +11 -0
- package/dist/esm/index.d.ts +33 -30
- package/dist/esm/index.js +33 -30
- package/dist/esm/styles/_import.components.scss +1 -2
- package/dist/esm/styles/_import.scss +1 -2
- package/dist/esm/styles/animation.scss +35 -35
- package/dist/esm/styles/column.scss +0 -1
- package/dist/esm/styles/mixins.scss +30 -8
- package/dist/esm/styles/motion.scss +367 -44
- package/dist/esm/styles/progress.scss +1 -129
- package/dist/esm/styles/variables.scss +6 -4
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/esm/types.d.ts +15 -3
- package/dist/esm/utils/get-breakpoints-config-classes.d.ts +1 -1
- package/dist/esm/utils/index.d.ts +3 -4
- package/dist/esm/utils/index.js +3 -4
- package/dist/esm/utils/motion.d.ts +3 -3
- package/dist/esm/utils/motion.js +20 -19
- package/package.json +36 -34
- package/dist/cjs/components/Component/Component.d.ts +0 -8
- package/dist/cjs/components/Control/Checkbox/Context.d.ts +0 -4
- package/dist/cjs/components/Control/Radio/Context.d.ts +0 -4
- package/dist/cjs/components/Control/Radio/types.d.ts +0 -25
- package/dist/cjs/components/Control/Radio/types.js +0 -2
- package/dist/cjs/components/Nav/Group.d.ts +0 -14
- package/dist/cjs/utils/hooks/index.d.ts +0 -1
- package/dist/esm/components/Component/Component.d.ts +0 -8
- package/dist/esm/components/Component/Component.js +0 -3
- package/dist/esm/components/Control/Checkbox/Context.d.ts +0 -4
- package/dist/esm/components/Control/Checkbox/Context.js +0 -5
- package/dist/esm/components/Control/Radio/Context.d.ts +0 -4
- package/dist/esm/components/Control/Radio/Context.js +0 -5
- package/dist/esm/components/Control/Radio/types.d.ts +0 -25
- package/dist/esm/components/Control/Radio/types.js +0 -1
- package/dist/esm/components/Nav/Group.d.ts +0 -14
- package/dist/esm/components/Nav/Group.js +0 -26
- package/dist/esm/utils/hooks/index.d.ts +0 -1
- package/dist/esm/utils/hooks/index.js +0 -1
- /package/dist/cjs/{utils/hooks → hooks}/useForceUpdate.d.ts +0 -0
- /package/dist/cjs/{utils/hooks → hooks}/useForceUpdate.js +0 -0
- /package/dist/esm/{utils/hooks → hooks}/useForceUpdate.d.ts +0 -0
- /package/dist/esm/{utils/hooks → hooks}/useForceUpdate.js +0 -0
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
+
import { useConfig } from '../../ConfrigProvider';
|
|
3
4
|
export function fixControlledValue(value) {
|
|
4
5
|
if (value == null) {
|
|
5
6
|
return '';
|
|
6
7
|
}
|
|
7
8
|
return value;
|
|
8
9
|
}
|
|
9
|
-
export function useInput(
|
|
10
|
-
|
|
10
|
+
export function useInput(props) {
|
|
11
|
+
const config = useConfig();
|
|
11
12
|
const inputRef = React.useRef(null);
|
|
12
|
-
|
|
13
|
+
const { className, direction, prefixCls = config.prefixCls, size, state, useInternalValueState = true, onPressEnter, ...restProps } = props;
|
|
13
14
|
const [focused, setFocused] = React.useState(false);
|
|
14
|
-
const [internalValue, setInternalValue] = React.useState(useInternalValueState ?
|
|
15
|
-
|
|
16
|
-
const onChange = (event) => {
|
|
15
|
+
const [internalValue, setInternalValue] = React.useState(useInternalValueState ? restProps.value || restProps.defaultValue : undefined);
|
|
16
|
+
const onChange = React.useCallback((event) => {
|
|
17
17
|
if (useInternalValueState) {
|
|
18
18
|
if (typeof event === 'string' || typeof event === 'number') {
|
|
19
19
|
setInternalValue(event);
|
|
@@ -22,67 +22,64 @@ export function useInput({ className, direction, size, state, useInternalValueSt
|
|
|
22
22
|
setInternalValue(event.target.value);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
const onClear = event => {
|
|
25
|
+
restProps.onChange?.(event);
|
|
26
|
+
}, [restProps, useInternalValueState]);
|
|
27
|
+
const onClear = React.useCallback(event => {
|
|
28
28
|
if (inputRef.current) {
|
|
29
29
|
inputRef.current.value = '';
|
|
30
30
|
}
|
|
31
31
|
onChange(event);
|
|
32
|
-
};
|
|
33
|
-
const onBlur = event => {
|
|
32
|
+
}, [onChange]);
|
|
33
|
+
const onBlur = React.useCallback(event => {
|
|
34
34
|
setFocused(false);
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
const onFocus = event => {
|
|
35
|
+
restProps.onBlur?.(event);
|
|
36
|
+
}, [restProps]);
|
|
37
|
+
const onFocus = React.useCallback(event => {
|
|
38
38
|
setFocused(true);
|
|
39
|
-
|
|
40
|
-
};
|
|
41
|
-
const onKeyDown = event => {
|
|
42
|
-
if (onPressEnter && event.keyCode === 13) {
|
|
39
|
+
restProps.onFocus?.(event);
|
|
40
|
+
}, [restProps]);
|
|
41
|
+
const onKeyDown = React.useCallback(event => {
|
|
42
|
+
if (onPressEnter && (event.keyCode === 13 || event.key === 'Enter')) {
|
|
43
43
|
onPressEnter(event);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
// Effects
|
|
48
|
-
React.useEffect(() => {
|
|
49
|
-
if (useInternalValueState) {
|
|
50
|
-
setInternalValue(props.value);
|
|
51
|
-
}
|
|
52
|
-
}, [props.value]);
|
|
53
|
-
// Pre-render logic
|
|
45
|
+
restProps.onKeyDown?.(event);
|
|
46
|
+
}, [onPressEnter, restProps]);
|
|
54
47
|
const inputProps = React.useMemo(() => ({
|
|
55
|
-
...
|
|
56
|
-
value: fixControlledValue(internalValue ||
|
|
48
|
+
...restProps,
|
|
49
|
+
value: fixControlledValue(internalValue || restProps.value),
|
|
57
50
|
// eslint-disable-next-line sort-keys
|
|
58
51
|
onBlur,
|
|
59
52
|
onChange,
|
|
60
53
|
onClear,
|
|
61
54
|
onFocus,
|
|
62
55
|
onKeyDown,
|
|
63
|
-
}), [
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
[
|
|
67
|
-
[
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
56
|
+
}), [restProps, internalValue, onBlur, onChange, onClear, onFocus, onKeyDown]);
|
|
57
|
+
const controlCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'control'), [config, prefixCls]);
|
|
58
|
+
const wrapperClasses = React.useMemo(() => classNames(controlCls, {
|
|
59
|
+
[`${controlCls}-${restProps.type}`]: restProps.type,
|
|
60
|
+
[`${controlCls}-${size}`]: size,
|
|
61
|
+
[`${controlCls}-${state}`]: state,
|
|
62
|
+
[`${controlCls}-rtl`]: direction === 'rtl',
|
|
63
|
+
[`${prefixCls || config.prefixCls}-disabled`]: restProps.disabled,
|
|
64
|
+
[`${prefixCls || config.prefixCls}-focused`]: focused,
|
|
65
|
+
[`${prefixCls || config.prefixCls}-readonly`]: restProps.readOnly,
|
|
72
66
|
}, className), [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
67
|
+
controlCls,
|
|
68
|
+
restProps.type,
|
|
69
|
+
restProps.disabled,
|
|
70
|
+
restProps.readOnly,
|
|
76
71
|
size,
|
|
77
72
|
state,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
73
|
+
direction,
|
|
74
|
+
prefixCls,
|
|
75
|
+
config.prefixCls,
|
|
76
|
+
focused,
|
|
77
|
+
className,
|
|
81
78
|
]);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
};
|
|
79
|
+
React.useEffect(() => {
|
|
80
|
+
if (useInternalValueState) {
|
|
81
|
+
setInternalValue(restProps.value);
|
|
82
|
+
}
|
|
83
|
+
}, [restProps.value, useInternalValueState]);
|
|
84
|
+
return { ...inputProps, inputRef, wrapperClasses };
|
|
88
85
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type
|
|
3
|
-
export
|
|
2
|
+
import { type AbstractCheckboxGroupProps } from '../../Control/Checkbox';
|
|
3
|
+
export interface RadioGroupProps<T = any> extends AbstractCheckboxGroupProps<T> {
|
|
4
|
+
defaultValue?: T;
|
|
5
|
+
value?: T;
|
|
6
|
+
onChange?: (option: T) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const Group: React.MemoExoticComponent<React.ForwardRefExoticComponent<RadioGroupProps<any> & React.RefAttributes<HTMLDivElement>>>;
|
|
@@ -1,45 +1,52 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import useMergedState from 'rc-util/lib/hooks/useMergedState';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import { useConfig } from '../../ConfrigProvider';
|
|
5
|
+
import { Radio } from '../../Control/Radio/Radio';
|
|
6
|
+
import { RadioGroupContext } from '../../Control/Radio/RadioGroupContext';
|
|
7
|
+
const ForwardedGroup = React.forwardRef((props, ref) => {
|
|
8
|
+
const config = useConfig();
|
|
9
|
+
const { block, children, className, defaultValue, direction = config.direction, disabled, id, options, prefixCls = config.prefixCls, size, stack, style, ...restProps } = props;
|
|
8
10
|
const [value, setValue] = useMergedState(defaultValue, {
|
|
9
11
|
value: restProps.value,
|
|
10
12
|
});
|
|
11
|
-
const
|
|
13
|
+
const onChange = React.useCallback(event => {
|
|
12
14
|
const lastValue = value;
|
|
13
15
|
const val = event.target.value;
|
|
14
16
|
if (!('value' in restProps)) {
|
|
15
17
|
setValue(val);
|
|
16
18
|
}
|
|
17
19
|
if (val !== lastValue) {
|
|
18
|
-
restProps.onChange?.(
|
|
20
|
+
restProps.onChange?.(val);
|
|
19
21
|
}
|
|
20
|
-
};
|
|
22
|
+
}, [restProps, setValue, value]);
|
|
23
|
+
const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'radio-group'), [config, prefixCls]);
|
|
21
24
|
const context = React.useMemo(() => ({
|
|
22
25
|
disabled,
|
|
23
26
|
name: restProps.name,
|
|
24
27
|
value,
|
|
25
28
|
// eslint-disable-next-line sort-keys
|
|
26
|
-
onChange
|
|
27
|
-
}), [disabled, value,
|
|
29
|
+
onChange,
|
|
30
|
+
}), [disabled, restProps.name, value, onChange]);
|
|
28
31
|
const renderGroup = () => {
|
|
29
32
|
let childrenToRender = children;
|
|
30
33
|
if (options && options.length > 0) {
|
|
31
34
|
childrenToRender = options.map((option) => {
|
|
32
35
|
if (typeof option === 'string') {
|
|
33
|
-
return (React.createElement(Radio, { key: option, block: block, checked: value === option, direction: direction, disabled: disabled, size: size, value: option
|
|
36
|
+
return (React.createElement(Radio, { key: option, block: block, className: `${rootCls}-item`, checked: value === option, direction: direction, disabled: disabled, size: size, value: option }, option));
|
|
34
37
|
}
|
|
35
|
-
return (React.createElement(Radio, { key: `radio-group-value-options-${option.value}`, block: block, checked: value === option.value, direction: direction, disabled: option.disabled || disabled, size: size,
|
|
38
|
+
return (React.createElement(Radio, { key: `radio-group-value-options-${option.value}`, block: block, checked: value === option.value, className: `${rootCls}-item`, direction: direction, disabled: option.disabled || disabled, size: size, style: option.style, value: option.value }, option.label));
|
|
36
39
|
});
|
|
37
40
|
}
|
|
38
|
-
return (React.createElement("div", {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}, className), id: id, style: style,
|
|
41
|
+
return (React.createElement("div", { className: classNames(rootCls, {
|
|
42
|
+
[`${rootCls}-rtl`]: direction === 'rtl',
|
|
43
|
+
[`${rootCls}-stack`]: stack,
|
|
44
|
+
}, className), id: id, style: style, ref: ref }, childrenToRender));
|
|
42
45
|
};
|
|
43
|
-
return
|
|
46
|
+
return React.createElement(RadioGroupContext.Provider, { value: context }, renderGroup());
|
|
44
47
|
});
|
|
45
|
-
Group
|
|
48
|
+
export const Group = React.memo(ForwardedGroup);
|
|
49
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
50
|
+
ForwardedGroup.displayName = 'Radio.Group.Forwarded';
|
|
51
|
+
Group.displayName = 'Radio.Group';
|
|
52
|
+
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type
|
|
3
|
-
export
|
|
2
|
+
import { type AbstractCheckboxProps } from '../../Control/Checkbox';
|
|
3
|
+
export interface RadioProps extends AbstractCheckboxProps {
|
|
4
|
+
onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;
|
|
5
|
+
onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
|
|
6
|
+
}
|
|
7
|
+
export declare const Radio: React.MemoExoticComponent<React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>>;
|
|
@@ -1,56 +1,73 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { retrieveGlobalAttributes } from '@broxus/js-utils';
|
|
2
3
|
import classNames from 'classnames';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const { block, size, className, children, direction, skipGroup, style, type = 'radio', onMouseEnter, onMouseLeave, ...restProps } = props;
|
|
4
|
+
import { useConfig } from '../../ConfrigProvider';
|
|
5
|
+
import { useRadioGroup } from '../../Control/Radio/RadioGroupContext';
|
|
6
|
+
const ForwardedRadio = React.forwardRef((props, ref) => {
|
|
7
|
+
const config = useConfig();
|
|
8
8
|
const radioGroup = useRadioGroup();
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const onChange = (event) => {
|
|
9
|
+
const { block, size, className, children, direction = config.direction, disabled, id, prefixCls = config.prefixCls, skipGroup, style, onMouseEnter, onMouseLeave, ...restProps } = props;
|
|
10
|
+
const [internalChecked, setInternalChecked] = React.useState(restProps.checked ??
|
|
11
|
+
restProps.defaultChecked ??
|
|
12
|
+
('value' in restProps && restProps.value === radioGroup?.value));
|
|
13
|
+
const onChange = React.useCallback(event => {
|
|
15
14
|
setInternalChecked(true);
|
|
16
15
|
restProps.onChange?.(event);
|
|
17
16
|
radioGroup?.onChange?.(event);
|
|
18
|
-
};
|
|
19
|
-
React.useEffect(() => {
|
|
20
|
-
setInternalChecked(restProps.checked
|
|
21
|
-
?? restProps.defaultChecked
|
|
22
|
-
?? ('value' in restProps && restProps.value === radioGroup?.value));
|
|
23
|
-
}, [restProps.checked, restProps.defaultChecked, radioGroup?.value]);
|
|
17
|
+
}, [radioGroup, restProps]);
|
|
24
18
|
const radioProps = React.useMemo(() => ({
|
|
25
19
|
...restProps,
|
|
26
20
|
checked: internalChecked,
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
disabled,
|
|
22
|
+
id,
|
|
29
23
|
onChange,
|
|
30
|
-
}), [
|
|
24
|
+
}), [disabled, id, internalChecked, onChange, restProps]);
|
|
31
25
|
if (radioGroup && !skipGroup) {
|
|
32
26
|
radioProps.checked = restProps.value === radioGroup.value;
|
|
33
|
-
radioProps.disabled =
|
|
27
|
+
radioProps.disabled = disabled || radioGroup.disabled;
|
|
34
28
|
radioProps.name = radioGroup.name;
|
|
35
29
|
radioProps.onChange = onChange;
|
|
36
30
|
}
|
|
37
|
-
const
|
|
31
|
+
const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'radio'), [config, prefixCls]);
|
|
32
|
+
const controlCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'control'), [config, prefixCls]);
|
|
38
33
|
const wrapperClasses = React.useMemo(() => classNames({
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
[
|
|
42
|
-
[`${
|
|
43
|
-
[`${
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
34
|
+
[controlCls]: block,
|
|
35
|
+
[`${controlCls}-radio`]: block,
|
|
36
|
+
[`${controlCls}-${size}`]: block && size,
|
|
37
|
+
[`${rootCls}-wrapper`]: true,
|
|
38
|
+
[`${rootCls}-rtl`]: direction === 'rtl',
|
|
39
|
+
[`${prefixCls || config.prefixCls}-checked`]: internalChecked,
|
|
40
|
+
[`${prefixCls || config.prefixCls}-disabled`]: radioProps.disabled,
|
|
41
|
+
}, className), [
|
|
42
|
+
controlCls,
|
|
43
|
+
block,
|
|
44
|
+
size,
|
|
45
|
+
rootCls,
|
|
46
|
+
direction,
|
|
47
|
+
prefixCls,
|
|
48
|
+
config.prefixCls,
|
|
49
|
+
internalChecked,
|
|
50
|
+
radioProps.disabled,
|
|
51
|
+
className,
|
|
52
|
+
]);
|
|
53
|
+
const radioClasses = React.useMemo(() => classNames(rootCls, {
|
|
54
|
+
[`${rootCls}-checked`]: internalChecked,
|
|
55
|
+
[`${rootCls}-disabled`]: disabled,
|
|
56
|
+
}), [rootCls, internalChecked, disabled]);
|
|
57
|
+
const globalAttributes = React.useMemo(() => retrieveGlobalAttributes(restProps), [restProps]);
|
|
58
|
+
React.useEffect(() => {
|
|
59
|
+
setInternalChecked(restProps.checked ??
|
|
60
|
+
restProps.defaultChecked ??
|
|
61
|
+
('value' in restProps && restProps.value === radioGroup?.value));
|
|
62
|
+
}, [restProps.checked, restProps.defaultChecked, radioGroup?.value, restProps]);
|
|
63
|
+
return (React.createElement("label", { className: wrapperClasses, htmlFor: id, style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave },
|
|
64
|
+
React.createElement("span", { className: classNames(radioClasses) },
|
|
65
|
+
React.createElement("input", { className: `${rootCls}-input`, ref: ref, ...radioProps, type: "radio", ...globalAttributes }),
|
|
66
|
+
React.createElement("span", { className: `${rootCls}-inner` })),
|
|
67
|
+
children !== undefined && React.createElement("span", { className: `${rootCls}-label` }, children)));
|
|
55
68
|
});
|
|
56
|
-
Radio
|
|
69
|
+
export const Radio = React.memo(ForwardedRadio);
|
|
70
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
71
|
+
ForwardedRadio.displayName = 'Radio.Forwarded';
|
|
72
|
+
Radio.displayName = 'Radio';
|
|
73
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface RadioGroupConsumerProps<T = any> {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
name?: string;
|
|
5
|
+
value?: T;
|
|
6
|
+
onChange: (option: T) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const RadioGroupContext: React.Context<RadioGroupConsumerProps<any> | null>;
|
|
9
|
+
export declare function useRadioGroup(): RadioGroupConsumerProps | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export const RadioGroupContext = React.createContext(null);
|
|
3
|
+
export function useRadioGroup() {
|
|
4
|
+
return React.useContext(RadioGroupContext);
|
|
5
|
+
}
|
|
6
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
7
|
+
RadioGroupContext.displayName = 'RadioGroupContext';
|
|
8
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { Group } from '
|
|
3
|
-
import type
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import { Group } from '../../Control/Radio/Group';
|
|
3
|
+
import { type RadioProps } from '../../Control/Radio/Radio';
|
|
4
4
|
import './index.scss';
|
|
5
|
-
export
|
|
6
|
-
export interface
|
|
5
|
+
export type { RadioProps };
|
|
6
|
+
export interface Radio extends React.MemoExoticComponent<React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>> {
|
|
7
7
|
Group: typeof Group;
|
|
8
8
|
}
|
|
9
|
-
export declare const Radio:
|
|
9
|
+
export declare const Radio: Radio;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Group } from '
|
|
2
|
-
import { Radio as InternalRadio } from '
|
|
1
|
+
import { Group } from '../../Control/Radio/Group';
|
|
2
|
+
import { Radio as InternalRadio } from '../../Control/Radio/Radio';
|
|
3
3
|
import './index.scss';
|
|
4
|
-
export * from './types';
|
|
5
4
|
export const Radio = InternalRadio;
|
|
6
5
|
Radio.Group = Group;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { OptGroup, Option } from 'rc-select';
|
|
3
|
-
import
|
|
4
|
-
import type
|
|
5
|
-
import type
|
|
6
|
-
import type { ControlProps, SizeType } from '../types';
|
|
2
|
+
import { type BaseSelectRef, OptGroup, Option, type SelectProps as RcSelectProps } from 'rc-select';
|
|
3
|
+
import { type OptionProps } from 'rc-select/lib/Option';
|
|
4
|
+
import { type BaseOptionType, type DefaultOptionType } from 'rc-select/lib/Select';
|
|
5
|
+
import { type ControlProps, type SizeType } from '../../Control/types';
|
|
7
6
|
import './index.scss';
|
|
8
|
-
export type { OptionProps };
|
|
7
|
+
export type { BaseSelectRef, OptionProps };
|
|
9
8
|
export interface InternalSelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<RcSelectProps<ValueType, OptionType>, 'mode'> {
|
|
10
9
|
mode?: 'multiple' | 'tags' | 'SECRET_COMBOBOX_MODE_DO_NOT_USE';
|
|
11
10
|
size?: SizeType;
|
|
@@ -14,13 +13,10 @@ export interface InternalSelectProps<ValueType = any, OptionType extends BaseOpt
|
|
|
14
13
|
export interface SelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<ControlProps<ValueType>, 'value' | 'defaultValue'>, Omit<InternalSelectProps<ValueType, OptionType>, 'inputIcon' | 'mode' | 'getInputElement' | 'backfill'> {
|
|
15
14
|
mode?: 'multiple' | 'tags';
|
|
16
15
|
}
|
|
17
|
-
declare const
|
|
16
|
+
export declare const Select: (<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(props: SelectProps<ValueType, OptionType> & {
|
|
18
17
|
ref?: React.Ref<BaseSelectRef> | undefined;
|
|
19
|
-
}) => React.ReactElement
|
|
20
|
-
declare type InternalSelectType = typeof ForwardedSelect;
|
|
21
|
-
interface Select extends InternalSelectType {
|
|
18
|
+
}) => React.ReactElement) & {
|
|
22
19
|
SECRET_COMBOBOX_MODE_DO_NOT_USE: string;
|
|
23
20
|
Option: typeof Option;
|
|
24
21
|
OptGroup: typeof OptGroup;
|
|
25
|
-
}
|
|
26
|
-
export declare const Select: Select;
|
|
22
|
+
};
|
|
@@ -1,38 +1,30 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
-
import RcSelect, { OptGroup, Option } from 'rc-select';
|
|
3
|
+
import RcSelect, { OptGroup, Option, } from 'rc-select';
|
|
4
|
+
import { useConfig } from '../../ConfrigProvider';
|
|
4
5
|
import { Icon } from '../../Icon';
|
|
5
6
|
import { Spinner } from '../../Spinner';
|
|
6
7
|
import './index.scss';
|
|
7
8
|
const SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';
|
|
9
|
+
/* eslint-disable jsx-a11y/label-has-associated-control */
|
|
8
10
|
function InternalSelect(props, ref) {
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
+
const config = useConfig();
|
|
12
|
+
const { className, listHeight = 256, listItemHeight = 24, prefixCls = config.prefixCls, showArrow = true, showSearch = false, onPressEnter, ...restProps } = props;
|
|
13
|
+
const inputRef = React.useRef(null);
|
|
11
14
|
const labelRef = React.useRef(null);
|
|
12
15
|
const [focused, setFocused] = React.useState(false);
|
|
13
16
|
const [internalOpen, setInternalOpen] = React.useState(restProps.defaultOpen || restProps.open || false);
|
|
14
17
|
const [offsetY, setOffsetY] = React.useState(2);
|
|
15
|
-
React.
|
|
16
|
-
blur() {
|
|
17
|
-
innerRef.current?.blur();
|
|
18
|
-
},
|
|
19
|
-
focus() {
|
|
20
|
-
innerRef.current?.focus();
|
|
21
|
-
},
|
|
22
|
-
scrollTo() {
|
|
23
|
-
return innerRef.current?.scrollTo;
|
|
24
|
-
},
|
|
25
|
-
}));
|
|
26
|
-
const onBlur = event => {
|
|
18
|
+
const onBlur = React.useCallback(event => {
|
|
27
19
|
setFocused(false);
|
|
28
20
|
setInternalOpen(false);
|
|
29
21
|
restProps.onBlur?.(event);
|
|
30
|
-
};
|
|
31
|
-
const onFocus = event => {
|
|
22
|
+
}, [restProps]);
|
|
23
|
+
const onFocus = React.useCallback(event => {
|
|
32
24
|
setFocused(true);
|
|
33
25
|
restProps.onFocus?.(event);
|
|
34
|
-
};
|
|
35
|
-
const onKeyDown = event => {
|
|
26
|
+
}, [restProps]);
|
|
27
|
+
const onKeyDown = React.useCallback(event => {
|
|
36
28
|
if (event.keyCode === 13) {
|
|
37
29
|
setInternalOpen(true);
|
|
38
30
|
onPressEnter?.(event);
|
|
@@ -41,17 +33,17 @@ function InternalSelect(props, ref) {
|
|
|
41
33
|
setInternalOpen(true);
|
|
42
34
|
}
|
|
43
35
|
restProps.onKeyDown?.(event);
|
|
44
|
-
};
|
|
45
|
-
const onDropdownVisibleChange = (open) => {
|
|
36
|
+
}, [onPressEnter, restProps]);
|
|
37
|
+
const onDropdownVisibleChange = React.useCallback((open) => {
|
|
46
38
|
setInternalOpen(open);
|
|
47
39
|
restProps.onDropdownVisibleChange?.(open);
|
|
48
|
-
};
|
|
49
|
-
const onClickIcon = () => {
|
|
40
|
+
}, [restProps]);
|
|
41
|
+
const onClickIcon = React.useCallback(() => {
|
|
50
42
|
setInternalOpen(true);
|
|
51
|
-
};
|
|
43
|
+
}, []);
|
|
52
44
|
React.useEffect(() => {
|
|
53
45
|
setInternalOpen(restProps.defaultOpen || restProps.open || internalOpen);
|
|
54
|
-
}, [restProps.open, restProps.defaultOpen]);
|
|
46
|
+
}, [restProps.open, restProps.defaultOpen, internalOpen]);
|
|
55
47
|
React.useEffect(() => {
|
|
56
48
|
const select = labelRef.current?.firstElementChild;
|
|
57
49
|
if (select) {
|
|
@@ -61,9 +53,9 @@ function InternalSelect(props, ref) {
|
|
|
61
53
|
}
|
|
62
54
|
setOffsetY(offset);
|
|
63
55
|
}
|
|
64
|
-
}, [
|
|
65
|
-
const
|
|
66
|
-
const
|
|
56
|
+
}, [restProps.direction]);
|
|
57
|
+
const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'select'), [config, prefixCls]);
|
|
58
|
+
const controlCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'control'), [config, prefixCls]);
|
|
67
59
|
const mode = React.useMemo(() => {
|
|
68
60
|
const { mode: m } = restProps;
|
|
69
61
|
if (m === 'combobox') {
|
|
@@ -73,34 +65,38 @@ function InternalSelect(props, ref) {
|
|
|
73
65
|
return 'combobox';
|
|
74
66
|
}
|
|
75
67
|
return m;
|
|
76
|
-
}, [restProps
|
|
77
|
-
const wrapperClasses = React.useMemo(() => classNames([
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
[
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
68
|
+
}, [restProps]);
|
|
69
|
+
const wrapperClasses = React.useMemo(() => classNames([controlCls, `${controlCls}-select`], {
|
|
70
|
+
[`${controlCls}-${restProps.size}`]: restProps.size,
|
|
71
|
+
[`${controlCls}-rtl`]: restProps.direction === 'rtl',
|
|
72
|
+
[`${prefixCls || config.prefixCls}-focused`]: focused,
|
|
73
|
+
[`${prefixCls || config.prefixCls}-disabled`]: restProps.disabled,
|
|
74
|
+
}, className), [
|
|
75
|
+
className,
|
|
76
|
+
config.prefixCls,
|
|
77
|
+
controlCls,
|
|
78
|
+
focused,
|
|
79
|
+
prefixCls,
|
|
80
|
+
restProps.direction,
|
|
81
|
+
restProps.disabled,
|
|
82
|
+
restProps.size,
|
|
83
|
+
]);
|
|
87
84
|
const inputProps = React.useMemo(() => {
|
|
88
85
|
// Arrow or loading icon
|
|
89
86
|
let inputIcon;
|
|
90
87
|
if (restProps.loading) {
|
|
91
|
-
inputIcon =
|
|
88
|
+
inputIcon = React.createElement(Spinner, { key: "spinner", ratio: 0.9 });
|
|
92
89
|
}
|
|
93
90
|
else if (showArrow) {
|
|
94
91
|
const isMultiple = mode === 'multiple' || mode === 'tags';
|
|
95
92
|
if (isMultiple) {
|
|
96
|
-
inputIcon =
|
|
93
|
+
inputIcon = React.createElement(Icon, { key: "add_box", icon: "add_box", onClick: onClickIcon });
|
|
97
94
|
}
|
|
98
95
|
else if (showSearch && internalOpen) {
|
|
99
|
-
inputIcon =
|
|
96
|
+
inputIcon = React.createElement(Icon, { key: "manage_search", icon: "manage_search" });
|
|
100
97
|
}
|
|
101
98
|
else {
|
|
102
|
-
inputIcon = internalOpen
|
|
103
|
-
? (React.createElement(Icon, { key: "expand_less", icon: "expand_less" })) : (React.createElement(Icon, { key: "expand_more", icon: "expand_more", onClick: onClickIcon }));
|
|
99
|
+
inputIcon = internalOpen ? (React.createElement(Icon, { key: "expand_less", icon: "expand_less" })) : (React.createElement(Icon, { key: "expand_more", icon: "expand_more", onClick: onClickIcon }));
|
|
104
100
|
}
|
|
105
101
|
}
|
|
106
102
|
// Not found content
|
|
@@ -122,14 +118,14 @@ function InternalSelect(props, ref) {
|
|
|
122
118
|
listItemHeight,
|
|
123
119
|
menuItemSelectedIcon: React.createElement(Icon, { icon: "check" }),
|
|
124
120
|
open: internalOpen,
|
|
125
|
-
prefixCls,
|
|
121
|
+
prefixCls: rootCls,
|
|
126
122
|
removeIcon: React.createElement(Icon, { icon: "clear" }),
|
|
127
123
|
showArrow,
|
|
128
124
|
showSearch,
|
|
129
|
-
transitionName:
|
|
125
|
+
transitionName: `${prefixCls || config.prefixCls}-motion-slide-bottom-small`,
|
|
130
126
|
...restProps,
|
|
131
127
|
dropdownClassName: classNames(restProps.dropdownClassName, {
|
|
132
|
-
[`${prefixCls}-dropdown-rtl`]: restProps.direction === 'rtl',
|
|
128
|
+
[`${prefixCls || config.prefixCls}-dropdown-rtl`]: restProps.direction === 'rtl',
|
|
133
129
|
}),
|
|
134
130
|
notFoundContent: mergedNotFound,
|
|
135
131
|
onBlur,
|
|
@@ -137,14 +133,41 @@ function InternalSelect(props, ref) {
|
|
|
137
133
|
onFocus,
|
|
138
134
|
onKeyDown,
|
|
139
135
|
};
|
|
140
|
-
}, [
|
|
136
|
+
}, [
|
|
137
|
+
restProps,
|
|
138
|
+
showArrow,
|
|
139
|
+
mode,
|
|
140
|
+
listHeight,
|
|
141
|
+
listItemHeight,
|
|
142
|
+
internalOpen,
|
|
143
|
+
rootCls,
|
|
144
|
+
showSearch,
|
|
145
|
+
prefixCls,
|
|
146
|
+
config.prefixCls,
|
|
147
|
+
onBlur,
|
|
148
|
+
onDropdownVisibleChange,
|
|
149
|
+
onFocus,
|
|
150
|
+
onKeyDown,
|
|
151
|
+
onClickIcon,
|
|
152
|
+
]);
|
|
153
|
+
React.useImperativeHandle(ref, () => ({
|
|
154
|
+
blur() {
|
|
155
|
+
inputRef.current?.blur();
|
|
156
|
+
},
|
|
157
|
+
focus() {
|
|
158
|
+
inputRef.current?.focus();
|
|
159
|
+
},
|
|
160
|
+
scrollTo() {
|
|
161
|
+
return inputRef.current?.scrollTo;
|
|
162
|
+
},
|
|
163
|
+
}));
|
|
141
164
|
return (React.createElement("label", { ref: labelRef, className: wrapperClasses, htmlFor: restProps.id },
|
|
142
|
-
React.createElement(RcSelect, { ref:
|
|
165
|
+
React.createElement(RcSelect, { ref: inputRef, ...inputProps, dropdownAlign: {
|
|
143
166
|
offset: [offsetY, 5],
|
|
144
167
|
}, mode: mode })));
|
|
145
168
|
}
|
|
146
169
|
const ForwardedSelect = React.forwardRef(InternalSelect);
|
|
147
|
-
export const Select = ForwardedSelect;
|
|
170
|
+
export const Select = React.memo(ForwardedSelect);
|
|
148
171
|
Select.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;
|
|
149
172
|
Select.Option = Option;
|
|
150
173
|
Select.OptGroup = OptGroup;
|