@broxus/react-uikit 0.22.0 → 0.23.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/dist/assets/accordion.css +135 -0
- package/dist/assets/alert.css +120 -0
- package/dist/assets/align.css +105 -0
- package/dist/assets/animation.css +387 -0
- package/dist/assets/article.css +51 -0
- package/dist/assets/background.css +209 -0
- package/dist/assets/badge.css +46 -0
- package/dist/assets/base.css +571 -0
- package/dist/assets/breadcrumb.css +69 -0
- package/dist/assets/button.css +491 -0
- package/dist/assets/card.css +255 -0
- package/dist/assets/checkbox.css +240 -0
- package/dist/assets/close.css +24 -0
- package/dist/assets/column.css +145 -0
- package/dist/assets/comment.css +87 -0
- package/dist/assets/container.css +171 -0
- package/dist/assets/control.css +262 -0
- package/dist/assets/cover.css +55 -0
- package/dist/assets/datepicker.css +662 -0
- package/dist/assets/description-list.css +39 -0
- package/dist/assets/divider.css +98 -0
- package/dist/assets/dotnav.css +100 -0
- package/dist/assets/drawer.css +562 -0
- package/dist/assets/drop.css +47 -0
- package/dist/assets/dropdown.css +118 -0
- package/dist/assets/flex.css +392 -0
- package/dist/assets/form.css +486 -0
- package/dist/assets/grid.css +545 -0
- package/dist/assets/heading.css +175 -0
- package/dist/assets/height.css +63 -0
- package/dist/assets/icon.css +188 -0
- package/dist/assets/iconnav.css +83 -0
- package/dist/assets/input-number.css +89 -0
- package/dist/assets/input-password.css +24 -0
- package/dist/assets/inverse.css +746 -0
- package/dist/assets/label.css +70 -0
- package/dist/assets/leader.css +44 -0
- package/dist/assets/link.css +79 -0
- package/dist/assets/list.css +211 -0
- package/dist/assets/margin.css +362 -0
- package/dist/assets/marker.css +28 -0
- package/dist/assets/mixin.css +1 -0
- package/dist/assets/mixins.css +1 -0
- package/dist/assets/modal.css +227 -0
- package/dist/assets/motion.css +492 -0
- package/dist/assets/nav.css +406 -0
- package/dist/assets/navbar.css +468 -0
- package/dist/assets/overlay.css +38 -0
- package/dist/assets/padding.css +70 -0
- package/dist/assets/pagination.css +78 -0
- package/dist/assets/placeholder.css +27 -0
- package/dist/assets/position.css +216 -0
- package/dist/assets/print.css +43 -0
- package/dist/assets/progress.css +79 -0
- package/dist/assets/radio.css +196 -0
- package/dist/assets/search.css +258 -0
- package/dist/assets/section.css +138 -0
- package/dist/assets/segmented.css +193 -0
- package/dist/assets/select.css +515 -0
- package/dist/assets/slider.css +392 -0
- package/dist/assets/spinner.css +51 -0
- package/dist/assets/sticky.css +31 -0
- package/dist/assets/subnav.css +171 -0
- package/dist/assets/svg.css +23 -0
- package/dist/assets/switch.css +167 -0
- package/dist/assets/table.css +224 -0
- package/dist/assets/tabs.css +631 -0
- package/dist/assets/text.css +385 -0
- package/dist/assets/textarea.css +54 -0
- package/dist/assets/thumbnav.css +67 -0
- package/dist/assets/tile.css +138 -0
- package/dist/assets/tooltip.css +47 -0
- package/dist/assets/totop.css +32 -0
- package/dist/assets/transition.css +154 -0
- package/dist/assets/uikit.min.css +1 -0
- package/dist/assets/utility.css +494 -0
- package/dist/assets/variables.css +1 -0
- package/dist/assets/vars.css +89 -0
- package/dist/assets/visibility.css +140 -0
- package/dist/assets/width.css +538 -0
- package/dist/cjs/components/Accordion/Accordion.d.ts +3 -2
- package/dist/cjs/components/Accordion/Item.d.ts +1 -5
- package/dist/cjs/components/Accordion/Item.js +0 -4
- package/dist/cjs/components/Accordion/index.d.ts +1 -1
- package/dist/cjs/components/Alert/index.js +1 -3
- package/dist/cjs/components/Align/Align.d.ts +1 -1
- package/dist/cjs/components/Align/Center.d.ts +1 -1
- package/dist/cjs/components/Align/Left.d.ts +1 -1
- package/dist/cjs/components/Align/Right.d.ts +1 -1
- package/dist/cjs/components/Article/Article.d.ts +1 -1
- package/dist/cjs/components/Article/Meta.d.ts +1 -1
- package/dist/cjs/components/Article/Title.d.ts +1 -1
- package/dist/cjs/components/Badge/index.d.ts +1 -1
- package/dist/cjs/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/cjs/components/Breadcrumb/Item.d.ts +1 -1
- package/dist/cjs/components/Button/Group.d.ts +1 -1
- package/dist/cjs/components/Card/Badge.d.ts +1 -1
- package/dist/cjs/components/Card/Body.d.ts +1 -1
- package/dist/cjs/components/Card/Card.d.ts +1 -1
- package/dist/cjs/components/Card/Footer.d.ts +1 -1
- package/dist/cjs/components/Card/Header.d.ts +1 -1
- package/dist/cjs/components/Card/Media.d.ts +1 -1
- package/dist/cjs/components/Card/Title.d.ts +1 -1
- package/dist/cjs/components/Close/index.d.ts +1 -1
- package/dist/cjs/components/Component/index.d.ts +1 -1
- package/dist/cjs/components/ConfigProvider/index.d.ts +55 -40
- package/dist/cjs/components/Container/index.d.ts +1 -1
- package/dist/cjs/components/Control/Checkbox/Checkbox.d.ts +2 -2
- package/dist/cjs/components/Control/Checkbox/Group.d.ts +2 -2
- package/dist/cjs/components/Control/Checkbox/index.d.ts +1 -1
- package/dist/cjs/components/Control/Input/Input.js +2 -2
- package/dist/cjs/components/Control/Input/Number/index.js +4 -4
- package/dist/cjs/components/Control/Input/useInput.js +2 -1
- package/dist/cjs/components/Control/Radio/Group.js +2 -4
- package/dist/cjs/components/Control/Radio/index.d.ts +1 -1
- package/dist/cjs/components/Control/Select/Select.d.ts +18 -0
- package/dist/cjs/components/Control/Select/Select.js +248 -0
- package/dist/cjs/components/Control/Select/index.d.ts +4 -21
- package/dist/cjs/components/Control/Select/index.js +2 -246
- package/dist/cjs/components/Control/Select/placements.d.ts +1 -1
- package/dist/cjs/components/Control/TextArea/index.d.ts +3 -3
- package/dist/cjs/components/Control/TextArea/index.js +6 -5
- package/dist/cjs/components/Cover/index.d.ts +1 -1
- package/dist/cjs/components/DatePicker/PickerButton.d.ts +1 -1
- package/dist/cjs/components/DatePicker/generatePurePicker.js +1 -3
- package/dist/cjs/components/DescriptionList/Description.d.ts +1 -1
- package/dist/cjs/components/DescriptionList/DescriptionList.d.ts +1 -1
- package/dist/cjs/components/DescriptionList/Term.d.ts +1 -1
- package/dist/cjs/components/Divider/index.d.ts +1 -1
- package/dist/cjs/components/Dotnav/Dotnav.d.ts +1 -1
- package/dist/cjs/components/Dotnav/Item.d.ts +1 -1
- package/dist/cjs/components/Drawer/index.d.ts +1 -1
- package/dist/cjs/components/Drop/index.d.ts +1 -2
- package/dist/cjs/components/Drop/index.js +2 -1
- package/dist/cjs/components/Flex/Flex.d.ts +1 -1
- package/dist/cjs/components/Flex/Item.d.ts +1 -1
- package/dist/cjs/components/Flex/index.d.ts +1 -1
- package/dist/cjs/components/Form/Controls.d.ts +1 -1
- package/dist/cjs/components/Form/ControlsText.d.ts +1 -1
- package/dist/cjs/components/Form/Fieldset.d.ts +1 -1
- package/dist/cjs/components/Form/Form.d.ts +1 -1
- package/dist/cjs/components/Form/Label.d.ts +1 -1
- package/dist/cjs/components/Form/Legend.d.ts +1 -1
- package/dist/cjs/components/Grid/index.d.ts +1 -1
- package/dist/cjs/components/Heading/index.d.ts +1 -1
- package/dist/cjs/components/Icon/Button.d.ts +1 -1
- package/dist/cjs/components/Icon/Icon.d.ts +1 -1
- package/dist/cjs/components/Icon/Link.d.ts +1 -1
- package/dist/cjs/components/Icon/index.d.ts +1 -1
- package/dist/cjs/components/Iconnav/Iconnav.d.ts +1 -1
- package/dist/cjs/components/Iconnav/Item.d.ts +1 -1
- package/dist/cjs/components/Inverse/index.d.ts +2 -2
- package/dist/cjs/components/Label/index.d.ts +1 -1
- package/dist/cjs/components/List/Item.d.ts +1 -1
- package/dist/cjs/components/List/List.d.ts +1 -1
- package/dist/cjs/components/Modal/index.d.ts +1 -1
- package/dist/cjs/components/Nav/Divider.d.ts +1 -1
- package/dist/cjs/components/Nav/Divider.js +4 -8
- package/dist/cjs/components/Nav/Group/InternalNavGroup.d.ts +10 -0
- package/dist/cjs/components/Nav/Group/{InternalNavItemGroup.js → InternalNavGroup.js} +9 -9
- package/dist/cjs/components/Nav/Group/index.d.ts +4 -5
- package/dist/cjs/components/Nav/Group/index.js +12 -15
- package/dist/cjs/components/Nav/Header.d.ts +1 -3
- package/dist/cjs/components/Nav/Header.js +4 -4
- package/dist/cjs/components/Nav/Icon/index.d.ts +7 -0
- package/dist/cjs/components/Nav/{context/PrivateContext.js → Icon/index.js} +13 -5
- package/dist/cjs/components/Nav/Item/InternalNavItem.d.ts +1 -5
- package/dist/cjs/components/Nav/Item/InternalNavItem.js +26 -47
- package/dist/cjs/components/Nav/Item/LegacyNavItem.js +12 -6
- package/dist/cjs/components/Nav/Item/index.d.ts +1 -4
- package/dist/cjs/components/Nav/Item/index.js +9 -12
- package/dist/cjs/components/Nav/Nav.d.ts +8 -21
- package/dist/cjs/components/Nav/Nav.js +84 -89
- package/dist/cjs/components/Nav/Sub/InlineSubNavList.d.ts +1 -1
- package/dist/cjs/components/Nav/Sub/InlineSubNavList.js +6 -6
- package/dist/cjs/components/Nav/Sub/InternalSubNav.d.ts +15 -0
- package/dist/cjs/components/Nav/Sub/InternalSubNav.js +196 -0
- package/dist/cjs/components/Nav/Sub/PopupTrigger.d.ts +2 -1
- package/dist/cjs/components/Nav/Sub/PopupTrigger.js +10 -11
- package/dist/cjs/components/Nav/Sub/SubNavList.d.ts +1 -2
- package/dist/cjs/components/Nav/Sub/SubNavList.js +5 -5
- package/dist/cjs/components/Nav/Sub/index.d.ts +4 -15
- package/dist/cjs/components/Nav/Sub/index.js +11 -174
- package/dist/cjs/components/Nav/context/NavContext.d.ts +7 -3
- package/dist/cjs/components/Nav/context/NavContext.js +6 -6
- package/dist/cjs/components/Nav/context/index.d.ts +3 -0
- package/dist/cjs/components/Nav/context/index.js +19 -0
- package/dist/cjs/components/Nav/hooks/index.d.ts +5 -0
- package/dist/cjs/components/Nav/hooks/index.js +21 -0
- package/dist/cjs/components/Nav/hooks/useAccessibility.d.ts +11 -0
- package/dist/cjs/components/Nav/hooks/useAccessibility.js +97 -99
- package/dist/cjs/components/Nav/hooks/useActive.js +5 -13
- package/dist/cjs/components/Nav/hooks/useDirectionStyle.js +2 -2
- package/dist/cjs/components/Nav/hooks/useKeyRecords.d.ts +3 -3
- package/dist/cjs/components/Nav/hooks/useKeyRecords.js +5 -8
- package/dist/cjs/components/Nav/types.d.ts +14 -1
- package/dist/cjs/components/Nav/utils/alignUtil.d.ts +1 -1
- package/dist/cjs/components/Nav/utils/alignUtil.js +1 -4
- package/dist/cjs/components/Nav/utils/index.d.ts +5 -0
- package/dist/cjs/components/Nav/utils/index.js +21 -0
- package/dist/cjs/components/Nav/utils/nodeUtil.d.ts +2 -2
- package/dist/cjs/components/Nav/utils/nodeUtil.js +38 -34
- package/dist/cjs/components/Nav/utils/warnUtil.js +2 -5
- package/dist/cjs/components/Navbar/Center.d.ts +1 -1
- package/dist/cjs/components/Navbar/Container.d.ts +1 -1
- package/dist/cjs/components/Navbar/Item.d.ts +1 -1
- package/dist/cjs/components/Navbar/Left.d.ts +1 -1
- package/dist/cjs/components/Navbar/Navbar.d.ts +1 -1
- package/dist/cjs/components/Navbar/Right.d.ts +1 -1
- package/dist/cjs/components/Navbar/Toggle.d.ts +1 -1
- package/dist/cjs/components/Overlay/index.d.ts +1 -1
- package/dist/cjs/components/Progress/index.d.ts +1 -1
- package/dist/cjs/components/Section/index.d.ts +1 -1
- package/dist/cjs/components/Segmented/index.d.ts +1 -1
- package/dist/cjs/components/Slider/index.d.ts +1 -2
- package/dist/cjs/components/Spinner/index.d.ts +1 -1
- package/dist/cjs/components/Subnav/Item.d.ts +1 -1
- package/dist/cjs/components/Subnav/Subnav.d.ts +1 -1
- package/dist/cjs/components/Tabs/index.d.ts +6 -4
- package/dist/cjs/components/Tabs/index.js +8 -7
- package/dist/cjs/components/Text/index.d.ts +1 -1
- package/dist/cjs/components/Tile/index.d.ts +1 -1
- package/dist/cjs/components/Width/Width.d.ts +1 -1
- package/dist/cjs/constants.d.ts +12 -0
- package/dist/cjs/constants.js +16 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/utils/motion.d.ts +1 -1
- package/dist/esm/components/Accordion/Accordion.d.ts +3 -2
- package/dist/esm/components/Accordion/Item.d.ts +1 -5
- package/dist/esm/components/Accordion/Item.js +0 -4
- package/dist/esm/components/Accordion/index.d.ts +1 -1
- package/dist/esm/components/Alert/index.js +1 -3
- package/dist/esm/components/Align/Align.d.ts +1 -1
- package/dist/esm/components/Align/Center.d.ts +1 -1
- package/dist/esm/components/Align/Left.d.ts +1 -1
- package/dist/esm/components/Align/Right.d.ts +1 -1
- package/dist/esm/components/Article/Article.d.ts +1 -1
- package/dist/esm/components/Article/Meta.d.ts +1 -1
- package/dist/esm/components/Article/Title.d.ts +1 -1
- package/dist/esm/components/Badge/index.d.ts +1 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/esm/components/Breadcrumb/Item.d.ts +1 -1
- package/dist/esm/components/Button/Group.d.ts +1 -1
- package/dist/esm/components/Card/Badge.d.ts +1 -1
- package/dist/esm/components/Card/Body.d.ts +1 -1
- package/dist/esm/components/Card/Card.d.ts +1 -1
- package/dist/esm/components/Card/Footer.d.ts +1 -1
- package/dist/esm/components/Card/Header.d.ts +1 -1
- package/dist/esm/components/Card/Media.d.ts +1 -1
- package/dist/esm/components/Card/Title.d.ts +1 -1
- package/dist/esm/components/Close/index.d.ts +1 -1
- package/dist/esm/components/Component/index.d.ts +1 -1
- package/dist/esm/components/ConfigProvider/index.d.ts +55 -40
- package/dist/esm/components/Container/index.d.ts +1 -1
- package/dist/esm/components/Control/Checkbox/Checkbox.d.ts +2 -2
- package/dist/esm/components/Control/Checkbox/Group.d.ts +2 -2
- package/dist/esm/components/Control/Checkbox/index.d.ts +1 -1
- package/dist/esm/components/Control/Input/Input.js +1 -1
- package/dist/esm/components/Control/Input/Number/index.js +3 -3
- package/dist/esm/components/Control/Input/useInput.js +2 -1
- package/dist/esm/components/Control/Radio/Group.js +2 -4
- package/dist/esm/components/Control/Radio/index.d.ts +1 -1
- package/dist/esm/components/Control/Select/Select.d.ts +18 -0
- package/dist/esm/components/Control/Select/Select.js +209 -0
- package/dist/esm/components/Control/Select/index.d.ts +4 -21
- package/dist/esm/components/Control/Select/index.js +1 -210
- package/dist/esm/components/Control/Select/placements.d.ts +1 -1
- package/dist/esm/components/Control/TextArea/index.d.ts +3 -3
- package/dist/esm/components/Control/TextArea/index.js +5 -4
- package/dist/esm/components/Cover/index.d.ts +1 -1
- package/dist/esm/components/DatePicker/PickerButton.d.ts +1 -1
- package/dist/esm/components/DatePicker/generatePurePicker.js +1 -3
- package/dist/esm/components/DescriptionList/Description.d.ts +1 -1
- package/dist/esm/components/DescriptionList/DescriptionList.d.ts +1 -1
- package/dist/esm/components/DescriptionList/Term.d.ts +1 -1
- package/dist/esm/components/Divider/index.d.ts +1 -1
- package/dist/esm/components/Dotnav/Dotnav.d.ts +1 -1
- package/dist/esm/components/Dotnav/Item.d.ts +1 -1
- package/dist/esm/components/Drawer/index.d.ts +1 -1
- package/dist/esm/components/Drop/index.d.ts +1 -2
- package/dist/esm/components/Drop/index.js +2 -1
- package/dist/esm/components/Flex/Flex.d.ts +1 -1
- package/dist/esm/components/Flex/Item.d.ts +1 -1
- package/dist/esm/components/Flex/index.d.ts +1 -1
- package/dist/esm/components/Form/Controls.d.ts +1 -1
- package/dist/esm/components/Form/ControlsText.d.ts +1 -1
- package/dist/esm/components/Form/Fieldset.d.ts +1 -1
- package/dist/esm/components/Form/Form.d.ts +1 -1
- package/dist/esm/components/Form/Label.d.ts +1 -1
- package/dist/esm/components/Form/Legend.d.ts +1 -1
- package/dist/esm/components/Grid/index.d.ts +1 -1
- package/dist/esm/components/Heading/index.d.ts +1 -1
- package/dist/esm/components/Icon/Button.d.ts +1 -1
- package/dist/esm/components/Icon/Icon.d.ts +1 -1
- package/dist/esm/components/Icon/Link.d.ts +1 -1
- package/dist/esm/components/Icon/index.d.ts +1 -1
- package/dist/esm/components/Iconnav/Iconnav.d.ts +1 -1
- package/dist/esm/components/Iconnav/Item.d.ts +1 -1
- package/dist/esm/components/Inverse/index.d.ts +2 -2
- package/dist/esm/components/Label/index.d.ts +1 -1
- package/dist/esm/components/List/Item.d.ts +1 -1
- package/dist/esm/components/List/List.d.ts +1 -1
- package/dist/esm/components/Modal/index.d.ts +1 -1
- package/dist/esm/components/Nav/Divider.d.ts +1 -1
- package/dist/esm/components/Nav/Divider.js +2 -6
- package/dist/esm/components/Nav/Group/InternalNavGroup.d.ts +10 -0
- package/dist/esm/components/Nav/Group/InternalNavGroup.js +16 -0
- package/dist/esm/components/Nav/Group/index.d.ts +4 -5
- package/dist/esm/components/Nav/Group/index.js +7 -7
- package/dist/esm/components/Nav/Header.d.ts +1 -3
- package/dist/esm/components/Nav/Header.js +3 -3
- package/dist/esm/components/Nav/Icon/index.d.ts +7 -0
- package/dist/esm/components/Nav/Icon/index.js +14 -0
- package/dist/esm/components/Nav/Item/InternalNavItem.d.ts +1 -5
- package/dist/esm/components/Nav/Item/InternalNavItem.js +16 -37
- package/dist/esm/components/Nav/Item/LegacyNavItem.js +11 -5
- package/dist/esm/components/Nav/Item/index.d.ts +1 -4
- package/dist/esm/components/Nav/Item/index.js +5 -8
- package/dist/esm/components/Nav/Nav.d.ts +8 -21
- package/dist/esm/components/Nav/Nav.js +70 -75
- package/dist/esm/components/Nav/Sub/InlineSubNavList.d.ts +1 -1
- package/dist/esm/components/Nav/Sub/InlineSubNavList.js +3 -3
- package/dist/esm/components/Nav/Sub/InternalSubNav.d.ts +15 -0
- package/dist/esm/components/Nav/Sub/InternalSubNav.js +157 -0
- package/dist/esm/components/Nav/Sub/PopupTrigger.d.ts +2 -1
- package/dist/esm/components/Nav/Sub/PopupTrigger.js +9 -10
- package/dist/esm/components/Nav/Sub/SubNavList.d.ts +1 -2
- package/dist/esm/components/Nav/Sub/SubNavList.js +4 -4
- package/dist/esm/components/Nav/Sub/index.d.ts +4 -15
- package/dist/esm/components/Nav/Sub/index.js +7 -167
- package/dist/esm/components/Nav/context/NavContext.d.ts +7 -3
- package/dist/esm/components/Nav/context/NavContext.js +6 -6
- package/dist/esm/components/Nav/context/index.d.ts +3 -0
- package/dist/esm/components/Nav/context/index.js +3 -0
- package/dist/esm/components/Nav/hooks/index.d.ts +5 -0
- package/dist/esm/components/Nav/hooks/index.js +5 -0
- package/dist/esm/components/Nav/hooks/useAccessibility.d.ts +11 -0
- package/dist/esm/components/Nav/hooks/useAccessibility.js +96 -100
- package/dist/esm/components/Nav/hooks/useActive.js +5 -13
- package/dist/esm/components/Nav/hooks/useDirectionStyle.js +1 -1
- package/dist/esm/components/Nav/hooks/useKeyRecords.d.ts +3 -3
- package/dist/esm/components/Nav/hooks/useKeyRecords.js +3 -3
- package/dist/esm/components/Nav/types.d.ts +14 -1
- package/dist/esm/components/Nav/utils/alignUtil.d.ts +1 -1
- package/dist/esm/components/Nav/utils/alignUtil.js +1 -4
- package/dist/esm/components/Nav/utils/index.d.ts +5 -0
- package/dist/esm/components/Nav/utils/index.js +5 -0
- package/dist/esm/components/Nav/utils/nodeUtil.d.ts +2 -2
- package/dist/esm/components/Nav/utils/nodeUtil.js +38 -31
- package/dist/esm/components/Nav/utils/warnUtil.js +1 -1
- package/dist/esm/components/Navbar/Center.d.ts +1 -1
- package/dist/esm/components/Navbar/Container.d.ts +1 -1
- package/dist/esm/components/Navbar/Item.d.ts +1 -1
- package/dist/esm/components/Navbar/Left.d.ts +1 -1
- package/dist/esm/components/Navbar/Navbar.d.ts +1 -1
- package/dist/esm/components/Navbar/Right.d.ts +1 -1
- package/dist/esm/components/Navbar/Toggle.d.ts +1 -1
- package/dist/esm/components/Overlay/index.d.ts +1 -1
- package/dist/esm/components/Progress/index.d.ts +1 -1
- package/dist/esm/components/Section/index.d.ts +1 -1
- package/dist/esm/components/Segmented/index.d.ts +1 -1
- package/dist/esm/components/Slider/index.d.ts +1 -2
- package/dist/esm/components/Spinner/index.d.ts +1 -1
- package/dist/esm/components/Subnav/Item.d.ts +1 -1
- package/dist/esm/components/Subnav/Subnav.d.ts +1 -1
- package/dist/esm/components/Tabs/index.d.ts +6 -4
- package/dist/esm/components/Tabs/index.js +8 -7
- package/dist/esm/components/Text/index.d.ts +1 -1
- package/dist/esm/components/Tile/index.d.ts +1 -1
- package/dist/esm/components/Width/Width.d.ts +1 -1
- package/dist/esm/constants.d.ts +12 -0
- package/dist/esm/constants.js +13 -0
- package/dist/esm/utils/motion.d.ts +1 -1
- package/package.json +23 -20
- package/styles/accordion.scss +56 -30
- package/styles/alert.scss +6 -5
- package/styles/animation.scss +64 -213
- package/styles/background.scss +34 -131
- package/styles/base.scss +37 -65
- package/styles/breadcrumb.scss +6 -9
- package/styles/button.scss +22 -62
- package/styles/control.scss +1 -0
- package/styles/datepicker.scss +3 -2
- package/styles/input-number.scss +11 -21
- package/styles/leader.scss +2 -2
- package/styles/mixins.scss +10 -19
- package/styles/nav.scss +7 -28
- package/styles/navbar.scss +185 -160
- package/styles/search.scss +16 -46
- package/styles/select.scss +9 -4
- package/styles/subnav.scss +1 -1
- package/styles/switch.scss +12 -0
- package/styles/tabs.scss +65 -37
- package/styles/text.scss +65 -65
- package/styles/thumbnav.scss +4 -4
- package/styles/variables.scss +36 -19
- package/dist/cjs/components/Nav/Group/InternalNavItemGroup.d.ts +0 -14
- package/dist/cjs/components/Nav/context/PrivateContext.d.ts +0 -7
- package/dist/cjs/components/Nav/hooks/useUUID.d.ts +0 -1
- package/dist/cjs/components/Nav/hooks/useUUID.js +0 -56
- package/dist/esm/components/Nav/Group/InternalNavItemGroup.d.ts +0 -14
- package/dist/esm/components/Nav/Group/InternalNavItemGroup.js +0 -16
- package/dist/esm/components/Nav/context/PrivateContext.d.ts +0 -7
- package/dist/esm/components/Nav/context/PrivateContext.js +0 -6
- package/dist/esm/components/Nav/hooks/useUUID.d.ts +0 -1
- package/dist/esm/components/Nav/hooks/useUUID.js +0 -17
|
@@ -1,39 +1,47 @@
|
|
|
1
|
-
import { getFocusNodeList } from '@rc-component/util/
|
|
2
|
-
import
|
|
3
|
-
import raf from '@rc-component/util/lib/raf';
|
|
1
|
+
import { getFocusNodeList } from '@rc-component/util/es/Dom/focus';
|
|
2
|
+
import raf from '@rc-component/util/es/raf';
|
|
4
3
|
import * as React from 'react';
|
|
5
|
-
import { getNavId } from '../../../components/Nav/context
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
import { getNavId } from '../../../components/Nav/context';
|
|
5
|
+
import { KeyCode } from '../../../constants';
|
|
6
|
+
const ArrowKeys = [
|
|
7
|
+
KeyCode.ArrowDown,
|
|
8
|
+
KeyCode.ArrowLeft,
|
|
9
|
+
KeyCode.ArrowRight,
|
|
10
|
+
KeyCode.ArrowUp,
|
|
11
|
+
];
|
|
12
|
+
const EdgeKeys = [KeyCode.Home, KeyCode.End];
|
|
13
|
+
const EnteringKeys = [KeyCode.Enter, KeyCode.Space];
|
|
14
|
+
function getOffset(mode, isRootLevel, isRtl, isShiftKey, keyCode) {
|
|
10
15
|
const prev = 'prev';
|
|
11
16
|
const next = 'next';
|
|
12
17
|
const children = 'children';
|
|
13
18
|
const parent = 'parent';
|
|
14
19
|
// Inline enter is special that we use unique operation
|
|
15
|
-
if (mode === 'inline' &&
|
|
16
|
-
return {
|
|
17
|
-
inlineTrigger: true,
|
|
18
|
-
};
|
|
20
|
+
if (mode === 'inline' && [KeyCode.Enter.toString(), KeyCode.Space.toString()].includes(keyCode)) {
|
|
21
|
+
return { inlineTrigger: true };
|
|
19
22
|
}
|
|
20
23
|
const inline = {
|
|
21
|
-
[
|
|
22
|
-
[
|
|
24
|
+
[KeyCode.ArrowDown]: next,
|
|
25
|
+
[KeyCode.ArrowUp]: prev,
|
|
26
|
+
[KeyCode.Tab]: isShiftKey ? prev : next,
|
|
23
27
|
};
|
|
24
28
|
const horizontal = {
|
|
25
|
-
[
|
|
26
|
-
[
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
+
[KeyCode.ArrowDown]: children,
|
|
30
|
+
[KeyCode.ArrowLeft]: isRtl ? next : prev,
|
|
31
|
+
[KeyCode.ArrowRight]: isRtl ? prev : next,
|
|
32
|
+
[KeyCode.Enter]: children,
|
|
33
|
+
[KeyCode.Space]: children,
|
|
34
|
+
[KeyCode.Tab]: isShiftKey ? prev : next,
|
|
29
35
|
};
|
|
30
36
|
const vertical = {
|
|
31
|
-
[
|
|
32
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
35
|
-
[
|
|
36
|
-
[
|
|
37
|
+
[KeyCode.ArrowDown]: next,
|
|
38
|
+
[KeyCode.ArrowLeft]: isRtl ? children : parent,
|
|
39
|
+
[KeyCode.ArrowRight]: isRtl ? parent : children,
|
|
40
|
+
[KeyCode.ArrowUp]: prev,
|
|
41
|
+
[KeyCode.Enter]: children,
|
|
42
|
+
[KeyCode.Escape]: parent,
|
|
43
|
+
[KeyCode.Space]: children,
|
|
44
|
+
[KeyCode.Tab]: isShiftKey ? prev : next,
|
|
37
45
|
};
|
|
38
46
|
const offsets = {
|
|
39
47
|
horizontal,
|
|
@@ -43,42 +51,30 @@ function getOffset(mode, isRootLevel, isRtl, which) {
|
|
|
43
51
|
vertical,
|
|
44
52
|
verticalSub: vertical,
|
|
45
53
|
};
|
|
46
|
-
|
|
54
|
+
// @ts-ignore .....
|
|
55
|
+
const type = offsets[`${mode}${isRootLevel ? '' : 'Sub'}`]?.[keyCode];
|
|
47
56
|
switch (type) {
|
|
48
57
|
case prev:
|
|
49
|
-
return {
|
|
50
|
-
offset: -1,
|
|
51
|
-
sibling: true,
|
|
52
|
-
};
|
|
58
|
+
return { offset: -1, sibling: true };
|
|
53
59
|
case next:
|
|
54
|
-
return {
|
|
55
|
-
offset: 1,
|
|
56
|
-
sibling: true,
|
|
57
|
-
};
|
|
60
|
+
return { offset: 1, sibling: true };
|
|
58
61
|
case parent:
|
|
59
|
-
return {
|
|
60
|
-
offset: -1,
|
|
61
|
-
sibling: false,
|
|
62
|
-
};
|
|
62
|
+
return { offset: -1, sibling: false };
|
|
63
63
|
case children:
|
|
64
|
-
return {
|
|
65
|
-
offset: 1,
|
|
66
|
-
sibling: false,
|
|
67
|
-
};
|
|
64
|
+
return { offset: 1, sibling: false };
|
|
68
65
|
default:
|
|
69
|
-
return
|
|
66
|
+
return undefined;
|
|
70
67
|
}
|
|
71
68
|
}
|
|
72
69
|
function findContainerUL(element) {
|
|
73
70
|
let current = element;
|
|
74
71
|
while (current) {
|
|
75
|
-
if (current.
|
|
72
|
+
if (current.hasAttribute('data-nav-list')) {
|
|
76
73
|
return current;
|
|
77
74
|
}
|
|
78
75
|
current = current.parentElement;
|
|
79
76
|
}
|
|
80
77
|
// Normally should not reach this line
|
|
81
|
-
/* istanbul ignore next */
|
|
82
78
|
return null;
|
|
83
79
|
}
|
|
84
80
|
/**
|
|
@@ -92,25 +88,25 @@ function getFocusElement(activeElement, elements) {
|
|
|
92
88
|
}
|
|
93
89
|
current = current.parentElement;
|
|
94
90
|
}
|
|
95
|
-
return
|
|
91
|
+
return undefined;
|
|
96
92
|
}
|
|
97
93
|
/**
|
|
98
94
|
* Get focusable elements from the element set under provided container
|
|
99
95
|
*/
|
|
100
|
-
function getFocusableElements(container, elements) {
|
|
96
|
+
export function getFocusableElements(container, elements) {
|
|
101
97
|
const list = getFocusNodeList(container, true);
|
|
102
98
|
return list.filter(ele => elements.has(ele));
|
|
103
99
|
}
|
|
104
|
-
function getNextFocusElement(parentQueryContainer, elements,
|
|
100
|
+
function getNextFocusElement(parentQueryContainer, elements, focusNavElement, offset = 1) {
|
|
105
101
|
// Key on the menu item will not get validate parent container
|
|
106
102
|
if (!parentQueryContainer) {
|
|
107
103
|
return undefined;
|
|
108
104
|
}
|
|
109
105
|
// List current level menu item elements
|
|
110
|
-
const
|
|
106
|
+
const sameLevelFocusableNavElementList = getFocusableElements(parentQueryContainer, elements);
|
|
111
107
|
// Find next focus index
|
|
112
|
-
const count =
|
|
113
|
-
let focusIndex =
|
|
108
|
+
const count = sameLevelFocusableNavElementList.length;
|
|
109
|
+
let focusIndex = sameLevelFocusableNavElementList.findIndex(ele => focusNavElement === ele);
|
|
114
110
|
if (offset < 0) {
|
|
115
111
|
if (focusIndex === -1) {
|
|
116
112
|
focusIndex = count - 1;
|
|
@@ -124,7 +120,21 @@ function getNextFocusElement(parentQueryContainer, elements, focusMenuElement, o
|
|
|
124
120
|
}
|
|
125
121
|
focusIndex = (focusIndex + count) % count;
|
|
126
122
|
// Focus menu item
|
|
127
|
-
return
|
|
123
|
+
return sameLevelFocusableNavElementList[focusIndex];
|
|
124
|
+
}
|
|
125
|
+
export function refreshElements(keys, id) {
|
|
126
|
+
const elements = new Set();
|
|
127
|
+
const key2element = new Map();
|
|
128
|
+
const element2key = new Map();
|
|
129
|
+
keys.forEach(key => {
|
|
130
|
+
const element = document.querySelector(`[data-nav-id='${getNavId(id, key)}']`);
|
|
131
|
+
if (element) {
|
|
132
|
+
elements.add(element);
|
|
133
|
+
element2key.set(element, key);
|
|
134
|
+
key2element.set(key, element);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
return { element2key, elements, key2element };
|
|
128
138
|
}
|
|
129
139
|
export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {
|
|
130
140
|
const rafRef = React.useRef(undefined);
|
|
@@ -137,50 +147,33 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
|
|
|
137
147
|
cleanRaf();
|
|
138
148
|
}, []);
|
|
139
149
|
return event => {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
// >>> Wrap as function since we use raf for some case
|
|
145
|
-
const refreshElements = () => {
|
|
146
|
-
elements = new Set();
|
|
147
|
-
key2element = new Map();
|
|
148
|
-
element2key = new Map();
|
|
149
|
-
const keys = getKeys();
|
|
150
|
-
keys.forEach(key => {
|
|
151
|
-
const element = document.querySelector(`[data-nav-id='${getNavId(id, key)}']`);
|
|
152
|
-
if (element) {
|
|
153
|
-
elements.add(element);
|
|
154
|
-
element2key.set(element, key);
|
|
155
|
-
key2element.set(key, element);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
return elements;
|
|
159
|
-
};
|
|
160
|
-
refreshElements();
|
|
150
|
+
if ([...ArrowKeys, ...EdgeKeys, ...EnteringKeys, KeyCode.Escape, KeyCode.Tab].includes(event.code)) {
|
|
151
|
+
const keys = getKeys();
|
|
152
|
+
let refreshedElements = refreshElements(keys, id);
|
|
153
|
+
const { element2key, elements, key2element } = refreshedElements;
|
|
161
154
|
// First we should find current focused MenuItem/SubMenu element
|
|
162
155
|
const activeElement = key2element.get(activeKey);
|
|
163
156
|
const focusMenuElement = getFocusElement(activeElement, elements);
|
|
164
|
-
const focusMenuKey = focusMenuElement ? element2key.get(focusMenuElement) :
|
|
165
|
-
const offsetObj = getOffset(mode, focusMenuKey
|
|
157
|
+
const focusMenuKey = focusMenuElement ? element2key.get(focusMenuElement) : null;
|
|
158
|
+
const offsetObj = getOffset(mode, focusMenuKey != null ? getKeyPath(focusMenuKey, true).length === 1 : true, isRtl, event.shiftKey, event.code);
|
|
166
159
|
// Some mode do not have fully arrow operation like inline
|
|
167
|
-
if (!offsetObj) {
|
|
160
|
+
if (!offsetObj && event.code !== KeyCode.Home && event.code !== KeyCode.End) {
|
|
168
161
|
return;
|
|
169
162
|
}
|
|
170
163
|
// Arrow prevent default to avoid page scroll
|
|
171
|
-
if (ArrowKeys.includes(
|
|
164
|
+
if ([...ArrowKeys, ...EdgeKeys, KeyCode.Enter, KeyCode.Tab].includes(event.code)) {
|
|
172
165
|
event.preventDefault();
|
|
173
166
|
}
|
|
174
|
-
const tryFocus = (
|
|
175
|
-
if (
|
|
176
|
-
let focusTargetElement =
|
|
167
|
+
const tryFocus = (navElement) => {
|
|
168
|
+
if (navElement) {
|
|
169
|
+
let focusTargetElement = navElement;
|
|
177
170
|
// Focus to link instead of menu item if possible
|
|
178
|
-
const link =
|
|
171
|
+
const link = navElement.querySelector('a');
|
|
179
172
|
if (link?.getAttribute('href')) {
|
|
180
173
|
focusTargetElement = link;
|
|
181
174
|
}
|
|
182
|
-
const targetKey = element2key.get(
|
|
183
|
-
if (targetKey
|
|
175
|
+
const targetKey = element2key.get(navElement);
|
|
176
|
+
if (targetKey != null) {
|
|
184
177
|
triggerActiveKey(targetKey);
|
|
185
178
|
}
|
|
186
179
|
/**
|
|
@@ -196,25 +189,28 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
|
|
|
196
189
|
});
|
|
197
190
|
}
|
|
198
191
|
};
|
|
199
|
-
|
|
192
|
+
// @ts-ignore .....
|
|
193
|
+
if (EdgeKeys.includes(event.code) || offsetObj?.sibling || !focusMenuElement) {
|
|
200
194
|
// ========================== Sibling ==========================
|
|
201
195
|
// Find walkable focus menu element container
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
parentQueryContainer = findContainerUL(focusMenuElement);
|
|
208
|
-
}
|
|
196
|
+
const parentQueryContainer = (!focusMenuElement || mode === 'inline')
|
|
197
|
+
? containerRef.current
|
|
198
|
+
: findContainerUL(focusMenuElement);
|
|
209
199
|
if (parentQueryContainer == null) {
|
|
210
200
|
return;
|
|
211
201
|
}
|
|
212
202
|
// Get next focus element
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
203
|
+
let targetElement;
|
|
204
|
+
const focusableElements = getFocusableElements(parentQueryContainer, elements);
|
|
205
|
+
if (event.code === KeyCode.Home) {
|
|
206
|
+
[targetElement] = focusableElements;
|
|
207
|
+
}
|
|
208
|
+
else if (event.code === KeyCode.End) {
|
|
209
|
+
targetElement = focusableElements[focusableElements.length - 1];
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj?.offset);
|
|
213
|
+
}
|
|
218
214
|
if (targetElement == null) {
|
|
219
215
|
return;
|
|
220
216
|
}
|
|
@@ -222,17 +218,17 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
|
|
|
222
218
|
tryFocus(targetElement);
|
|
223
219
|
}
|
|
224
220
|
// ======================= InlineTrigger =======================
|
|
225
|
-
else if (offsetObj
|
|
221
|
+
else if (offsetObj?.inlineTrigger && focusMenuKey) {
|
|
226
222
|
// Inline trigger no need switch to sub menu item
|
|
227
223
|
triggerAccessibilityOpen(focusMenuKey);
|
|
228
224
|
}
|
|
229
225
|
// =========================== Level ===========================
|
|
230
|
-
else if (offsetObj
|
|
226
|
+
else if ((offsetObj?.offset ?? 0) > 0 && focusMenuKey) {
|
|
231
227
|
triggerAccessibilityOpen(focusMenuKey, true);
|
|
232
228
|
cleanRaf();
|
|
233
229
|
rafRef.current = raf(() => {
|
|
234
230
|
// Async should re-sync elements
|
|
235
|
-
refreshElements();
|
|
231
|
+
refreshedElements = refreshElements(keys, id);
|
|
236
232
|
const controlId = focusMenuElement.getAttribute('aria-controls');
|
|
237
233
|
if (controlId == null) {
|
|
238
234
|
return;
|
|
@@ -250,12 +246,12 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
|
|
|
250
246
|
tryFocus(targetElement);
|
|
251
247
|
}, 5);
|
|
252
248
|
}
|
|
253
|
-
else if ((
|
|
249
|
+
else if ((offsetObj?.offset ?? 0) < 0 && focusMenuKey) {
|
|
254
250
|
const keyPath = getKeyPath(focusMenuKey, true);
|
|
255
251
|
const parentKey = keyPath[keyPath.length - 2];
|
|
256
|
-
const parentMenuElement = key2element.get(parentKey);
|
|
257
252
|
// Focus menu item
|
|
258
253
|
triggerAccessibilityOpen(parentKey, false);
|
|
254
|
+
const parentMenuElement = key2element.get(parentKey);
|
|
259
255
|
if (parentMenuElement == null) {
|
|
260
256
|
return;
|
|
261
257
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { NavContext } from '../../../components/Nav/context
|
|
2
|
+
import { NavContext } from '../../../components/Nav/context';
|
|
3
3
|
export function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
|
|
4
|
-
const {
|
|
5
|
-
|
|
6
|
-
activeKey, onActive, onInactive, } = React.useContext(NavContext);
|
|
7
|
-
if (eventKey === undefined) {
|
|
4
|
+
const { activeKey, onActive, onInactive } = React.useContext(NavContext);
|
|
5
|
+
if (eventKey == null) {
|
|
8
6
|
return { active: false };
|
|
9
7
|
}
|
|
10
8
|
const ret = {
|
|
@@ -13,17 +11,11 @@ export function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
|
|
|
13
11
|
// Skip when disabled
|
|
14
12
|
if (!disabled) {
|
|
15
13
|
ret.onMouseEnter = domEvent => {
|
|
16
|
-
onMouseEnter?.({
|
|
17
|
-
domEvent,
|
|
18
|
-
key: eventKey,
|
|
19
|
-
});
|
|
14
|
+
onMouseEnter?.({ domEvent, key: eventKey });
|
|
20
15
|
onActive(eventKey);
|
|
21
16
|
};
|
|
22
17
|
ret.onMouseLeave = domEvent => {
|
|
23
|
-
onMouseLeave?.({
|
|
24
|
-
domEvent,
|
|
25
|
-
key: eventKey,
|
|
26
|
-
});
|
|
18
|
+
onMouseLeave?.({ domEvent, key: eventKey });
|
|
27
19
|
onInactive(eventKey);
|
|
28
20
|
};
|
|
29
21
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { NavContext } from '../../../components/Nav/context
|
|
2
|
+
import { NavContext } from '../../../components/Nav/context';
|
|
3
3
|
export function useDirectionStyle(level) {
|
|
4
4
|
const { inlineIndent, mode, rtl } = React.useContext(NavContext);
|
|
5
5
|
if (mode !== 'inline') {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const OVERFLOW_KEY = "
|
|
2
|
-
|
|
1
|
+
export declare const OVERFLOW_KEY = "uk-nav-more";
|
|
2
|
+
interface KeyRecords {
|
|
3
3
|
getKeyPath: (eventKey: string, includeOverflow?: boolean | undefined) => string[];
|
|
4
4
|
getKeys: () => string[];
|
|
5
5
|
getSubPathKeys: (key: string) => Set<string>;
|
|
@@ -7,6 +7,6 @@ type KeyRecords = {
|
|
|
7
7
|
refreshOverflowKeys: (keys: string[]) => void;
|
|
8
8
|
registerPath: (key: string, keyPath: string[]) => void;
|
|
9
9
|
unregisterPath: (key: string, keyPath: string[]) => void;
|
|
10
|
-
}
|
|
10
|
+
}
|
|
11
11
|
export declare function useKeyRecords(): KeyRecords;
|
|
12
12
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import warning from '@rc-component/util
|
|
1
|
+
import { warning } from '@rc-component/util';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { nextSlice } from '../../../components/Nav/utils
|
|
3
|
+
import { nextSlice } from '../../../components/Nav/utils';
|
|
4
4
|
import { useForceUpdate } from '../../../hooks';
|
|
5
5
|
const PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';
|
|
6
6
|
function getPathStr(keyPath) {
|
|
@@ -9,7 +9,7 @@ function getPathStr(keyPath) {
|
|
|
9
9
|
function getPathKeys(keyPathStr) {
|
|
10
10
|
return keyPathStr.split(PATH_SPLIT);
|
|
11
11
|
}
|
|
12
|
-
export const OVERFLOW_KEY = '
|
|
12
|
+
export const OVERFLOW_KEY = 'uk-nav-more';
|
|
13
13
|
export function useKeyRecords() {
|
|
14
14
|
const forceUpdate = useForceUpdate();
|
|
15
15
|
const key2pathRef = React.useRef(new Map());
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { type ActionType } from '@rc-component/trigger';
|
|
2
2
|
import type * as React from 'react';
|
|
3
|
+
import { type SubNavProps } from '../../components/Nav/Sub/InternalSubNav';
|
|
3
4
|
export interface NavRef {
|
|
5
|
+
findItem: (params: {
|
|
6
|
+
key: string;
|
|
7
|
+
}) => HTMLElement | null;
|
|
4
8
|
/**
|
|
5
9
|
* Focus active child if any, or the first child which is not disabled will be focused.
|
|
6
10
|
* @param {FocusOptions} [options]
|
|
7
11
|
*/
|
|
8
12
|
focus: (options?: FocusOptions) => void;
|
|
9
|
-
list
|
|
13
|
+
list?: HTMLUListElement | null;
|
|
10
14
|
}
|
|
11
15
|
interface ItemSharedProps {
|
|
12
16
|
className?: string;
|
|
@@ -21,6 +25,7 @@ export interface SubNavType extends ItemSharedProps {
|
|
|
21
25
|
label?: React.ReactNode;
|
|
22
26
|
popupClassName?: string;
|
|
23
27
|
popupOffset?: number[];
|
|
28
|
+
popupStyle?: React.CSSProperties;
|
|
24
29
|
rootClassName?: string;
|
|
25
30
|
onClick?: NavClickEventHandler;
|
|
26
31
|
onMouseEnter?: NavHoverEventHandler;
|
|
@@ -31,9 +36,11 @@ export interface SubNavType extends ItemSharedProps {
|
|
|
31
36
|
}
|
|
32
37
|
export interface NavItemType extends ItemSharedProps {
|
|
33
38
|
disabled?: boolean;
|
|
39
|
+
extra?: React.ReactNode;
|
|
34
40
|
itemIcon?: RenderIconType;
|
|
35
41
|
key: React.Key;
|
|
36
42
|
label?: React.ReactNode;
|
|
43
|
+
type?: 'item';
|
|
37
44
|
onClick?: NavClickEventHandler;
|
|
38
45
|
onMouseEnter?: NavHoverEventHandler;
|
|
39
46
|
onMouseLeave?: NavHoverEventHandler;
|
|
@@ -78,4 +85,10 @@ export interface SelectInfo extends NavInfo {
|
|
|
78
85
|
}
|
|
79
86
|
export type SelectEventHandler = (info: SelectInfo) => void;
|
|
80
87
|
export type NavClickEventHandler = (info: NavInfo) => void;
|
|
88
|
+
export type NavComponentType = 'subnav' | 'item' | 'group' | 'divider';
|
|
89
|
+
export type NavComponents = Partial<Record<NavComponentType, React.ComponentType<any>>>;
|
|
90
|
+
export type NavPopupRender = (node: React.ReactElement, info: {
|
|
91
|
+
item: SubNavProps;
|
|
92
|
+
keys: string[];
|
|
93
|
+
}) => React.ReactNode;
|
|
81
94
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type AlignType, type BuildInPlacements } from '@rc-component/trigger/
|
|
1
|
+
import { type AlignType, type BuildInPlacements } from '@rc-component/trigger/es/interface';
|
|
2
2
|
export declare function getAlignFromPlacement(builtinPlacements: BuildInPlacements, placementStr: string, align: AlignType): AlignType;
|
|
3
3
|
export declare function getAlignPopupClassName(builtinPlacements: BuildInPlacements, prefixCls: string, align: AlignType, isAlignPoint: boolean): string;
|
|
@@ -6,10 +6,7 @@ function isPointsEq(a1, a2, isAlignPoint) {
|
|
|
6
6
|
}
|
|
7
7
|
export function getAlignFromPlacement(builtinPlacements, placementStr, align) {
|
|
8
8
|
const baseAlign = builtinPlacements[placementStr] || {};
|
|
9
|
-
return {
|
|
10
|
-
...baseAlign,
|
|
11
|
-
...align,
|
|
12
|
-
};
|
|
9
|
+
return { ...baseAlign, ...align };
|
|
13
10
|
}
|
|
14
11
|
export function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {
|
|
15
12
|
const { points } = align;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from '../../../components/Nav/utils/alignUtil';
|
|
2
|
+
export * from '../../../components/Nav/utils/motionUtil';
|
|
3
|
+
export * from '../../../components/Nav/utils/nodeUtil';
|
|
4
|
+
export * from '../../../components/Nav/utils/timeUtil';
|
|
5
|
+
export * from '../../../components/Nav/utils/warnUtil';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from '../../../components/Nav/utils/alignUtil';
|
|
2
|
+
export * from '../../../components/Nav/utils/motionUtil';
|
|
3
|
+
export * from '../../../components/Nav/utils/nodeUtil';
|
|
4
|
+
export * from '../../../components/Nav/utils/timeUtil';
|
|
5
|
+
export * from '../../../components/Nav/utils/warnUtil';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { type ItemType } from '../../../components/Nav/types';
|
|
2
|
+
import { type ItemType, type NavComponents } from '../../../components/Nav/types';
|
|
3
3
|
export declare function parseChildren(children: React.ReactNode | undefined, keyPath: string[]): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
|
|
4
|
-
export declare function parseItems(children: React.ReactNode | undefined, items: ItemType[] | undefined, keyPath: string[]): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
|
|
4
|
+
export declare function parseItems(children: React.ReactNode | undefined, items: ItemType[] | undefined, keyPath: string[], components: NavComponents, prefixCls?: string): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
|
|
@@ -1,59 +1,66 @@
|
|
|
1
|
-
import toArray from '@rc-component/util
|
|
1
|
+
import { toArray } from '@rc-component/util';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Divider } from '../../../components/Nav/Divider';
|
|
4
4
|
import { Group } from '../../../components/Nav/Group';
|
|
5
5
|
import { Item } from '../../../components/Nav/Item';
|
|
6
6
|
import { Sub } from '../../../components/Nav/Sub';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (React.isValidElement(child)) {
|
|
10
|
-
const { key } = child;
|
|
11
|
-
let eventKey = child.props?.eventKey ?? key;
|
|
12
|
-
const emptyKey = eventKey === null || eventKey === undefined;
|
|
13
|
-
if (emptyKey) {
|
|
14
|
-
eventKey = `tmp_key-${[...keyPath, index].join('-')}`;
|
|
15
|
-
}
|
|
16
|
-
const cloneProps = {
|
|
17
|
-
eventKey,
|
|
18
|
-
key: eventKey,
|
|
19
|
-
};
|
|
20
|
-
if (process.env.NODE_ENV !== 'production' && emptyKey) {
|
|
21
|
-
cloneProps.warnKey = true;
|
|
22
|
-
}
|
|
23
|
-
return React.cloneElement(child, cloneProps);
|
|
24
|
-
}
|
|
25
|
-
return child;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function convertItemsToNodes(list) {
|
|
7
|
+
function convertItemsToNodes(list, components, prefixCls) {
|
|
8
|
+
const { divider: MergedDivider, group: MergedNavGroup, item: MergedNavItem, subnav: MergedSubNav, } = components;
|
|
29
9
|
return (list || [])
|
|
30
10
|
.map((opt, index) => {
|
|
31
11
|
if (opt && typeof opt === 'object') {
|
|
32
|
-
const { children, key, label, type, ...restProps } = opt;
|
|
12
|
+
const { children, extra, key, label, type, ...restProps } = opt;
|
|
33
13
|
const mergedKey = key ?? `tmp-${index}`;
|
|
34
|
-
//
|
|
14
|
+
// NavItemGroup & SubNavItem
|
|
35
15
|
if (children || type === 'group') {
|
|
36
16
|
if (type === 'group') {
|
|
37
17
|
// Group
|
|
38
|
-
return (React.createElement(
|
|
18
|
+
return (React.createElement(MergedNavGroup, { key: mergedKey, ...restProps, title: label }, convertItemsToNodes(children, components, prefixCls)));
|
|
39
19
|
}
|
|
40
20
|
// Sub Menu
|
|
41
|
-
return (React.createElement(
|
|
21
|
+
return (React.createElement(MergedSubNav, { key: mergedKey, ...restProps, title: label }, convertItemsToNodes(children, components, prefixCls)));
|
|
42
22
|
}
|
|
43
23
|
// MenuItem & Divider
|
|
44
24
|
if (type === 'divider') {
|
|
45
|
-
return React.createElement(
|
|
25
|
+
return React.createElement(MergedDivider, { key: mergedKey, ...restProps });
|
|
46
26
|
}
|
|
47
|
-
return (React.createElement(
|
|
27
|
+
return (React.createElement(MergedNavItem, { key: mergedKey, ...restProps, extra: extra },
|
|
28
|
+
label,
|
|
29
|
+
(!!extra || extra === 0) && (React.createElement("span", { className: `${prefixCls}-item-extra` }, extra))));
|
|
48
30
|
}
|
|
49
31
|
return null;
|
|
50
32
|
})
|
|
51
33
|
.filter(opt => opt);
|
|
52
34
|
}
|
|
53
|
-
export function
|
|
35
|
+
export function parseChildren(children, keyPath) {
|
|
36
|
+
return toArray(children).map((child, index) => {
|
|
37
|
+
if (React.isValidElement(child)) {
|
|
38
|
+
const { key } = child;
|
|
39
|
+
let eventKey = child.props?.eventKey ?? key;
|
|
40
|
+
const emptyKey = eventKey === null || eventKey === undefined;
|
|
41
|
+
if (emptyKey) {
|
|
42
|
+
eventKey = `tmp_key-${[...keyPath, index].join('-')}`;
|
|
43
|
+
}
|
|
44
|
+
const cloneProps = { eventKey, key: eventKey };
|
|
45
|
+
if (process.env.NODE_ENV !== 'production' && emptyKey) {
|
|
46
|
+
cloneProps.warnKey = true;
|
|
47
|
+
}
|
|
48
|
+
return React.cloneElement(child, cloneProps);
|
|
49
|
+
}
|
|
50
|
+
return child;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function parseItems(children, items, keyPath, components, prefixCls) {
|
|
54
54
|
let childNodes = children;
|
|
55
|
+
const mergedComponents = {
|
|
56
|
+
divider: Divider,
|
|
57
|
+
group: Group,
|
|
58
|
+
item: Item,
|
|
59
|
+
subnav: Sub,
|
|
60
|
+
...components,
|
|
61
|
+
};
|
|
55
62
|
if (items) {
|
|
56
|
-
childNodes = convertItemsToNodes(items);
|
|
63
|
+
childNodes = convertItemsToNodes(items, mergedComponents, prefixCls);
|
|
57
64
|
}
|
|
58
65
|
return parseChildren(childNodes, keyPath);
|
|
59
66
|
}
|
|
@@ -5,7 +5,7 @@ export interface NavbarCenterOwnProps extends React.HTMLAttributes<HTMLElement>
|
|
|
5
5
|
}
|
|
6
6
|
export type NavbarCenterProps<E extends React.ElementType = React.ElementType> = NavbarCenterOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarCenterOwnProps>;
|
|
7
7
|
declare const defaultElement = "div";
|
|
8
|
-
export declare function Center<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarCenterProps<E>>): React.
|
|
8
|
+
export declare function Center<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarCenterProps<E>>): React.ReactElement;
|
|
9
9
|
export declare namespace Center {
|
|
10
10
|
var displayName: string;
|
|
11
11
|
}
|
|
@@ -6,7 +6,7 @@ export interface NavbarContainerOwnProps extends React.HTMLAttributes<HTMLElemen
|
|
|
6
6
|
}
|
|
7
7
|
export type NavbarContainerProps<E extends React.ElementType = React.ElementType> = NavbarContainerOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarContainerOwnProps>;
|
|
8
8
|
declare const defaultElement = "div";
|
|
9
|
-
export declare function Container<E extends React.ElementType = typeof defaultElement>({ className, component, transparent, ...props }: React.PropsWithChildren<NavbarContainerProps<E>>): React.
|
|
9
|
+
export declare function Container<E extends React.ElementType = typeof defaultElement>({ className, component, transparent, ...props }: React.PropsWithChildren<NavbarContainerProps<E>>): React.ReactElement;
|
|
10
10
|
export declare namespace Container {
|
|
11
11
|
var displayName: string;
|
|
12
12
|
}
|
|
@@ -6,7 +6,7 @@ export interface NavbarItemOwnProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
6
6
|
}
|
|
7
7
|
export type NavbarItemProps<E extends React.ElementType = React.ElementType> = NavbarItemOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarItemOwnProps>;
|
|
8
8
|
declare const defaultElement = "div";
|
|
9
|
-
export declare function Item<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarItemProps<E>>): React.
|
|
9
|
+
export declare function Item<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarItemProps<E>>): React.ReactElement;
|
|
10
10
|
export declare namespace Item {
|
|
11
11
|
var displayName: string;
|
|
12
12
|
}
|
|
@@ -5,7 +5,7 @@ export interface NavbarLeftOwnProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
5
5
|
}
|
|
6
6
|
export type NavbarLeftProps<E extends React.ElementType = React.ElementType> = NavbarLeftOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarLeftOwnProps>;
|
|
7
7
|
declare const defaultElement = "div";
|
|
8
|
-
export declare function Left<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarLeftProps<E>>): React.
|
|
8
|
+
export declare function Left<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarLeftProps<E>>): React.ReactElement;
|
|
9
9
|
export declare namespace Left {
|
|
10
10
|
var displayName: string;
|
|
11
11
|
}
|
|
@@ -4,4 +4,4 @@ export interface NavbarProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
4
4
|
prefixCls?: string;
|
|
5
5
|
transparent?: boolean;
|
|
6
6
|
}
|
|
7
|
-
export declare function Navbar({ asContainer, className, transparent, ...props }: NavbarProps): React.
|
|
7
|
+
export declare function Navbar({ asContainer, className, transparent, ...props }: NavbarProps): React.ReactElement;
|