@basic-ui/core 0.0.53 → 0.0.54
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/README.md +3 -3
- package/build/cjs/index.js +88 -88
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/Accordion.d.ts +9 -9
- package/build/esm/Accordion/Accordion.js.map +1 -1
- package/build/esm/Accordion/AccordionBody.d.ts +6 -6
- package/build/esm/Accordion/AccordionBody.js.map +1 -1
- package/build/esm/Accordion/AccordionHeader.d.ts +7 -7
- package/build/esm/Accordion/AccordionHeader.js.map +1 -1
- package/build/esm/Accordion/AccordionItem.d.ts +9 -9
- package/build/esm/Accordion/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/context.d.ts +19 -19
- package/build/esm/Accordion/context.js.map +1 -1
- package/build/esm/Accordion/index.d.ts +4 -4
- package/build/esm/Accordion/index.js.map +1 -1
- package/build/esm/Accordion/scopeQuery.d.ts +2 -2
- package/build/esm/Accordion/scopeQuery.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.d.ts +7 -7
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/CheckBox/index.d.ts +1 -1
- package/build/esm/CheckBox/index.js.map +1 -1
- package/build/esm/ComboBox/Combobox.d.ts +18 -18
- package/build/esm/ComboBox/Combobox.js.map +1 -1
- package/build/esm/ComboBox/ComboboxButton.d.ts +9 -9
- package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
- package/build/esm/ComboBox/ComboboxInput.d.ts +17 -17
- package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
- package/build/esm/ComboBox/ComboboxLabel.d.ts +7 -7
- package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
- package/build/esm/ComboBox/ComboboxList.d.ts +8 -8
- package/build/esm/ComboBox/ComboboxList.js.map +1 -1
- package/build/esm/ComboBox/ComboboxOption.d.ts +11 -11
- package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
- package/build/esm/ComboBox/ComboboxPopover.d.ts +9 -9
- package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
- package/build/esm/ComboBox/cities.d.ts +5 -5
- package/build/esm/ComboBox/cities.js.map +1 -1
- package/build/esm/ComboBox/context.d.ts +30 -30
- package/build/esm/ComboBox/context.js.map +1 -1
- package/build/esm/ComboBox/hooks.d.ts +37 -37
- package/build/esm/ComboBox/hooks.js.map +1 -1
- package/build/esm/ComboBox/index.d.ts +8 -8
- package/build/esm/ComboBox/index.js.map +1 -1
- package/build/esm/ComboBox/makeHash.d.ts +1 -1
- package/build/esm/ComboBox/makeHash.js.map +1 -1
- package/build/esm/ComboBox/scopeQuery.d.ts +1 -1
- package/build/esm/ComboBox/scopeQuery.js.map +1 -1
- package/build/esm/FocusLock/FocusLock.d.ts +9 -9
- package/build/esm/FocusLock/FocusLock.js.map +1 -1
- package/build/esm/FocusLock/index.d.ts +1 -1
- package/build/esm/FocusLock/index.js.map +1 -1
- package/build/esm/FocusLock/tabUtils.d.ts +3 -3
- package/build/esm/FocusLock/tabUtils.js.map +1 -1
- package/build/esm/FocusLock/useFocusLock.d.ts +7 -7
- package/build/esm/FocusLock/useFocusLock.js.map +1 -1
- package/build/esm/List/List.d.ts +7 -7
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/ListItem.d.ts +7 -7
- package/build/esm/List/ListItem.js.map +1 -1
- package/build/esm/List/context.d.ts +4 -4
- package/build/esm/List/context.js.map +1 -1
- package/build/esm/List/index.d.ts +2 -2
- package/build/esm/List/index.js.map +1 -1
- package/build/esm/Menu/ContextMenuTrigger.d.ts +11 -11
- package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
- package/build/esm/Menu/Menu.d.ts +10 -10
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/MenuButton.d.ts +11 -11
- package/build/esm/Menu/MenuButton.js.map +1 -1
- package/build/esm/Menu/MenuItem.d.ts +8 -8
- package/build/esm/Menu/MenuItem.js.map +1 -1
- package/build/esm/Menu/MenuList.d.ts +7 -7
- package/build/esm/Menu/MenuList.js.map +1 -1
- package/build/esm/Menu/MenuPopover.d.ts +8 -8
- package/build/esm/Menu/MenuPopover.js.map +1 -1
- package/build/esm/Menu/context.d.ts +25 -25
- package/build/esm/Menu/context.js.map +1 -1
- package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
- package/build/esm/Menu/fixtures/countryList.js.map +1 -1
- package/build/esm/Menu/index.d.ts +6 -6
- package/build/esm/Menu/index.js.map +1 -1
- package/build/esm/Menu/scope.d.ts +1 -1
- package/build/esm/Menu/scope.js.map +1 -1
- package/build/esm/Modal/Modal.d.ts +9 -9
- package/build/esm/Modal/Modal.js.map +1 -1
- package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
- package/build/esm/Modal/ModalBackdrop.js.map +1 -1
- package/build/esm/Modal/index.d.ts +2 -2
- package/build/esm/Modal/index.js.map +1 -1
- package/build/esm/Popper/Popper.d.ts +35 -35
- package/build/esm/Popper/Popper.js +1 -2
- package/build/esm/Popper/Popper.js.map +1 -1
- package/build/esm/Popper/PopperArrow.d.ts +6 -6
- package/build/esm/Popper/PopperArrow.js.map +1 -1
- package/build/esm/Popper/context.d.ts +6 -6
- package/build/esm/Popper/context.js.map +1 -1
- package/build/esm/Popper/index.d.ts +3 -3
- package/build/esm/Popper/index.js.map +1 -1
- package/build/esm/Portal/Portal.d.ts +7 -7
- package/build/esm/Portal/PortalSelectorProvider.d.ts +8 -8
- package/build/esm/Portal/index.d.ts +2 -2
- package/build/esm/RadioButton/RadioButton.d.ts +10 -10
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/context.d.ts +9 -9
- package/build/esm/RadioButton/context.js.map +1 -1
- package/build/esm/RadioButton/index.d.ts +2 -2
- package/build/esm/RadioButton/index.js.map +1 -1
- package/build/esm/SkipNav/SkipNav.d.ts +7 -7
- package/build/esm/SkipNav/SkipNav.js.map +1 -1
- package/build/esm/SkipNav/index.d.ts +1 -1
- package/build/esm/SkipNav/index.js.map +1 -1
- package/build/esm/Slider/Slider.d.ts +197 -197
- package/build/esm/Slider/Slider.js +82 -82
- package/build/esm/Slider/Slider.js.map +1 -1
- package/build/esm/Slider/index.d.ts +1 -1
- package/build/esm/Slider/index.js.map +1 -1
- package/build/esm/Spinner/Spinner.d.ts +12 -12
- package/build/esm/Spinner/Spinner.js.map +1 -1
- package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
- package/build/esm/Spinner/SpinnerButton.js.map +1 -1
- package/build/esm/Spinner/context.d.ts +12 -12
- package/build/esm/Spinner/context.js.map +1 -1
- package/build/esm/Spinner/index.d.ts +2 -2
- package/build/esm/Spinner/index.js.map +1 -1
- package/build/esm/Tabs/Tab.d.ts +7 -7
- package/build/esm/Tabs/Tab.js.map +1 -1
- package/build/esm/Tabs/TabList.d.ts +9 -9
- package/build/esm/Tabs/TabList.js.map +1 -1
- package/build/esm/Tabs/TabPanel.d.ts +8 -8
- package/build/esm/Tabs/TabPanel.js.map +1 -1
- package/build/esm/Tabs/TabPanels.d.ts +8 -8
- package/build/esm/Tabs/TabPanels.js.map +1 -1
- package/build/esm/Tabs/Tabs.d.ts +10 -10
- package/build/esm/Tabs/Tabs.js.map +1 -1
- package/build/esm/Tabs/context.d.ts +17 -17
- package/build/esm/Tabs/context.js.map +1 -1
- package/build/esm/Tabs/index.d.ts +5 -5
- package/build/esm/Tabs/index.js.map +1 -1
- package/build/esm/Tabs/scopeQuery.d.ts +1 -1
- package/build/esm/Tabs/scopeQuery.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +10 -10
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/index.d.ts +1 -1
- package/build/esm/Tooltip/index.js.map +1 -1
- package/build/esm/Tooltip/stateMachine.d.ts +28 -28
- package/build/esm/Tooltip/stateMachine.js.map +1 -1
- package/build/esm/Tooltip/useTooltip.d.ts +10 -10
- package/build/esm/Tooltip/useTooltip.js.map +1 -1
- package/build/esm/hooks/index.d.ts +13 -13
- package/build/esm/hooks/index.js.map +1 -1
- package/build/esm/hooks/useAutoFocus.d.ts +2 -2
- package/build/esm/hooks/useAutoFocus.js.map +1 -1
- package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
- package/build/esm/hooks/useChildrenCounter.js.map +1 -1
- package/build/esm/hooks/useControlledState.d.ts +3 -3
- package/build/esm/hooks/useFocusReturn.d.ts +2 -2
- package/build/esm/hooks/useFocusReturn.js.map +1 -1
- package/build/esm/hooks/useFocusState.d.ts +11 -11
- package/build/esm/hooks/useFocusState.js.map +1 -1
- package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
- package/build/esm/hooks/useGestureHandlers.js.map +1 -1
- package/build/esm/hooks/useMeasure.d.ts +7 -7
- package/build/esm/hooks/useMeasure.js.map +1 -1
- package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
- package/build/esm/hooks/useOnClickOutside.js.map +1 -1
- package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
- package/build/esm/hooks/useOnKeyDown.js.map +1 -1
- package/build/esm/hooks/useReducerMachine.d.ts +24 -24
- package/build/esm/hooks/useReducerMachine.js.map +1 -1
- package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
- package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
- package/build/esm/hooks/useScope.d.ts +11 -11
- package/build/esm/hooks/useScope.js.map +1 -1
- package/build/esm/hooks/useThrottle.d.ts +1 -1
- package/build/esm/hooks/useThrottle.js.map +1 -1
- package/build/esm/index.d.ts +15 -15
- package/build/esm/index.js.map +1 -1
- package/build/esm/utils/assign-ref.d.ts +3 -3
- package/build/esm/utils/assign-ref.js.map +1 -1
- package/build/esm/utils/can-use-dom.d.ts +1 -1
- package/build/esm/utils/can-use-dom.js.map +1 -1
- package/build/esm/utils/clamp.d.ts +1 -1
- package/build/esm/utils/clamp.js.map +1 -1
- package/build/esm/utils/context.d.ts +7 -7
- package/build/esm/utils/context.js.map +1 -1
- package/build/esm/utils/create-subscription.d.ts +4 -4
- package/build/esm/utils/create-subscription.js.map +1 -1
- package/build/esm/utils/get-circular-index.d.ts +1 -1
- package/build/esm/utils/get-circular-index.js.map +1 -1
- package/build/esm/utils/index.d.ts +10 -10
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/is-right-click.d.ts +6 -6
- package/build/esm/utils/is-right-click.js +4 -4
- package/build/esm/utils/is-right-click.js.map +1 -1
- package/build/esm/utils/owner-document.d.ts +7 -7
- package/build/esm/utils/owner-document.js +5 -5
- package/build/esm/utils/owner-document.js.map +1 -1
- package/build/esm/utils/polymorphic.d.ts +39 -39
- package/build/esm/utils/polymorphic.js.map +1 -1
- package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
- package/build/esm/utils/rubber-band-clamp.js.map +1 -1
- package/build/esm/utils/use-stable-callback.d.ts +16 -16
- package/build/esm/utils/use-stable-callback.js +16 -16
- package/build/esm/utils/use-stable-callback.js.map +1 -1
- package/build/esm/utils/wrap-event.d.ts +3 -3
- package/build/esm/utils/wrap-event.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/Accordion/Accordion.story.tsx +74 -74
- package/src/Accordion/Accordion.tsx +59 -59
- package/src/Accordion/AccordionBody.tsx +52 -52
- package/src/Accordion/AccordionHeader.tsx +167 -167
- package/src/Accordion/AccordionItem.tsx +50 -50
- package/src/Accordion/context.ts +37 -37
- package/src/Accordion/index.ts +4 -4
- package/src/Accordion/scopeQuery.ts +7 -7
- package/src/Accordion/styles.css +21 -21
- package/src/CheckBox/CheckBox.tsx +41 -41
- package/src/CheckBox/index.ts +1 -1
- package/src/ComboBox/ComboBox.story.tsx +120 -120
- package/src/ComboBox/Combobox.tsx +148 -148
- package/src/ComboBox/ComboboxButton.tsx +61 -61
- package/src/ComboBox/ComboboxInput.tsx +187 -187
- package/src/ComboBox/ComboboxLabel.tsx +33 -33
- package/src/ComboBox/ComboboxList.tsx +47 -47
- package/src/ComboBox/ComboboxOption.tsx +111 -111
- package/src/ComboBox/ComboboxPopover.tsx +64 -64
- package/src/ComboBox/cities.ts +23194 -23194
- package/src/ComboBox/context.ts +35 -35
- package/src/ComboBox/hooks.tsx +451 -451
- package/src/ComboBox/index.ts +8 -8
- package/src/ComboBox/makeHash.ts +19 -19
- package/src/ComboBox/scopeQuery.ts +6 -6
- package/src/ComboBox/styles.css +32 -32
- package/src/FocusLock/FocusLock.tsx +66 -66
- package/src/FocusLock/index.ts +1 -1
- package/src/FocusLock/tabUtils.ts +40 -40
- package/src/FocusLock/useFocusLock.ts +56 -56
- package/src/List/List.story.tsx +18 -18
- package/src/List/List.tsx +17 -17
- package/src/List/ListItem.tsx +23 -23
- package/src/List/context.ts +19 -19
- package/src/List/index.ts +2 -2
- package/src/Menu/ContextMenu.story.tsx +73 -73
- package/src/Menu/ContextMenuTrigger.tsx +76 -76
- package/src/Menu/Menu.story.tsx +160 -160
- package/src/Menu/Menu.tsx +83 -83
- package/src/Menu/MenuButton.tsx +83 -83
- package/src/Menu/MenuComplex.story.tsx +58 -58
- package/src/Menu/MenuItem.tsx +88 -88
- package/src/Menu/MenuList.tsx +254 -254
- package/src/Menu/MenuPopover.tsx +35 -35
- package/src/Menu/context.ts +44 -44
- package/src/Menu/fixtures/countryList.ts +198 -198
- package/src/Menu/index.ts +6 -6
- package/src/Menu/scope.ts +7 -7
- package/src/Menu/styles.css +42 -42
- package/src/Modal/Modal.story.tsx +258 -258
- package/src/Modal/Modal.tsx +48 -48
- package/src/Modal/ModalBackdrop.tsx +78 -78
- package/src/Modal/NavDrawer.story.tsx +158 -158
- package/src/Modal/index.ts +2 -2
- package/src/Modal/styles.css +46 -46
- package/src/Popper/Popper.story.tsx +263 -263
- package/src/Popper/Popper.tsx +1 -1
- package/src/Popper/PopperArrow.tsx +35 -35
- package/src/Popper/context.ts +10 -10
- package/src/Popper/index.ts +3 -3
- package/src/Popper/styles.css +60 -60
- package/src/RadioButton/RadioButton.story.tsx +77 -77
- package/src/RadioButton/RadioButton.tsx +55 -55
- package/src/RadioButton/RadioGroup.tsx +60 -60
- package/src/RadioButton/context.ts +17 -17
- package/src/RadioButton/index.ts +2 -2
- package/src/SkipNav/SkipNav.tsx +16 -16
- package/src/SkipNav/index.tsx +1 -1
- package/src/Slider/Slider.story.tsx +45 -45
- package/src/Slider/Slider.tsx +1120 -1120
- package/src/Slider/index.ts +1 -1
- package/src/Slider/styles.css +131 -131
- package/src/Spinner/Spinner.story.tsx +31 -31
- package/src/Spinner/Spinner.tsx +117 -117
- package/src/Spinner/SpinnerButton.tsx +54 -54
- package/src/Spinner/context.ts +20 -20
- package/src/Spinner/index.ts +2 -2
- package/src/Spinner/styles.css +23 -23
- package/src/Tabs/Tab.story.tsx +80 -80
- package/src/Tabs/Tab.tsx +136 -136
- package/src/Tabs/TabList.tsx +71 -71
- package/src/Tabs/TabPanel.tsx +53 -53
- package/src/Tabs/TabPanels.tsx +30 -30
- package/src/Tabs/Tabs.tsx +46 -46
- package/src/Tabs/context.ts +30 -30
- package/src/Tabs/index.tsx +5 -5
- package/src/Tabs/scopeQuery.ts +6 -6
- package/src/Tooltip/Tooltip.story.tsx +61 -61
- package/src/Tooltip/Tooltip.tsx +50 -50
- package/src/Tooltip/index.ts +1 -1
- package/src/Tooltip/stateMachine.ts +192 -192
- package/src/Tooltip/styles.css +17 -17
- package/src/Tooltip/useTooltip.ts +136 -136
- package/src/hooks/index.ts +13 -13
- package/src/hooks/useAutoFocus.ts +22 -22
- package/src/hooks/useChildrenCounter.ts +51 -51
- package/src/hooks/useFocusReturn.ts +43 -43
- package/src/hooks/useFocusState.ts +30 -30
- package/src/hooks/useGestureHandlers.ts +286 -286
- package/src/hooks/useMeasure.ts +33 -33
- package/src/hooks/useOnClickOutside.ts +32 -32
- package/src/hooks/useOnKeyDown.ts +19 -19
- package/src/hooks/useReducerMachine.ts +60 -60
- package/src/hooks/useRemoveBodyScroll.ts +39 -39
- package/src/hooks/useScope.ts +52 -52
- package/src/hooks/useThrottle.ts +19 -19
- package/src/index.ts +20 -20
- package/src/utils/assign-ref.ts +27 -27
- package/src/utils/can-use-dom.ts +7 -7
- package/src/utils/clamp.ts +3 -3
- package/src/utils/context.tsx +48 -48
- package/src/utils/create-subscription.ts +16 -16
- package/src/utils/get-circular-index.ts +7 -7
- package/src/utils/index.ts +10 -10
- package/src/utils/is-right-click.ts +14 -14
- package/src/utils/owner-document.ts +13 -13
- package/src/utils/polymorphic.ts +78 -78
- package/src/utils/rubber-band-clamp.ts +25 -25
- package/src/utils/use-stable-callback.ts +58 -58
- package/src/utils/wrap-event.ts +22 -22
- package/build/esm/Carousel/Carousel.d.ts +0 -9
- package/build/esm/Carousel/Carousel.js +0 -38
- package/build/esm/Carousel/Carousel.js.map +0 -1
- package/build/esm/Carousel/Fader.d.ts +0 -14
- package/build/esm/Carousel/Fader.js +0 -76
- package/build/esm/Carousel/Fader.js.map +0 -1
- package/build/esm/Carousel/FaderItem.d.ts +0 -5
- package/build/esm/Carousel/FaderItem.js +0 -16
- package/build/esm/Carousel/FaderItem.js.map +0 -1
- package/build/esm/Carousel/Preloader.d.ts +0 -7
- package/build/esm/Carousel/Preloader.js +0 -70
- package/build/esm/Carousel/Preloader.js.map +0 -1
- package/build/esm/Carousel/Slider.d.ts +0 -14
- package/build/esm/Carousel/Slider.js +0 -212
- package/build/esm/Carousel/Slider.js.map +0 -1
- package/build/esm/Carousel/SliderItem.d.ts +0 -12
- package/build/esm/Carousel/SliderItem.js +0 -41
- package/build/esm/Carousel/SliderItem.js.map +0 -1
- package/build/esm/Carousel/context.d.ts +0 -10
- package/build/esm/Carousel/context.js +0 -8
- package/build/esm/Carousel/context.js.map +0 -1
- package/build/esm/Carousel/getSliderParams.d.ts +0 -9
- package/build/esm/Carousel/getSliderParams.js +0 -85
- package/build/esm/Carousel/getSliderParams.js.map +0 -1
- package/build/esm/Carousel/index.d.ts +0 -7
- package/build/esm/Carousel/index.js +0 -8
- package/build/esm/Carousel/index.js.map +0 -1
- package/build/esm/Carousel/useCarouselGestures.d.ts +0 -30
- package/build/esm/Carousel/useCarouselGestures.js +0 -33
- package/build/esm/Carousel/useCarouselGestures.js.map +0 -1
- package/build/esm/DatePicker/DatePicker.d.ts +0 -24
- package/build/esm/DatePicker/DatePicker.js +0 -101
- package/build/esm/DatePicker/DatePicker.js.map +0 -1
- package/build/esm/DatePicker/DatePickerSelect.d.ts +0 -8
- package/build/esm/DatePicker/DatePickerSelect.js +0 -201
- package/build/esm/DatePicker/DatePickerSelect.js.map +0 -1
- package/build/esm/DatePicker/RangeDatePicker.d.ts +0 -28
- package/build/esm/DatePicker/RangeDatePicker.js +0 -94
- package/build/esm/DatePicker/RangeDatePicker.js.map +0 -1
- package/build/esm/DatePicker/adjustDates.d.ts +0 -4
- package/build/esm/DatePicker/adjustDates.js +0 -18
- package/build/esm/DatePicker/adjustDates.js.map +0 -1
- package/build/esm/DatePicker/contexts.d.ts +0 -31
- package/build/esm/DatePicker/contexts.js +0 -15
- package/build/esm/DatePicker/contexts.js.map +0 -1
- package/build/esm/DatePicker/dateTypes.d.ts +0 -2
- package/build/esm/DatePicker/dateTypes.js +0 -2
- package/build/esm/DatePicker/dateTypes.js.map +0 -1
- package/build/esm/DatePicker/hooks.d.ts +0 -36
- package/build/esm/DatePicker/hooks.js +0 -98
- package/build/esm/DatePicker/hooks.js.map +0 -1
- package/build/esm/DatePicker/index.d.ts +0 -5
- package/build/esm/DatePicker/index.js +0 -6
- package/build/esm/DatePicker/index.js.map +0 -1
- package/build/esm/hooks/useId.d.ts +0 -1
- package/build/esm/hooks/useId.js +0 -25
- package/build/esm/hooks/useId.js.map +0 -1
- package/build/esm/utils/assignRef.d.ts +0 -3
- package/build/esm/utils/assignRef.js +0 -25
- package/build/esm/utils/assignRef.js.map +0 -1
- package/build/esm/utils/getCircularIndex.d.ts +0 -1
- package/build/esm/utils/getCircularIndex.js +0 -8
- package/build/esm/utils/getCircularIndex.js.map +0 -1
- package/build/esm/utils/rubberBandClamp.d.ts +0 -2
- package/build/esm/utils/rubberBandClamp.js +0 -20
- package/build/esm/utils/rubberBandClamp.js.map +0 -1
- package/build/esm/utils/wrapEvent.d.ts +0 -3
- package/build/esm/utils/wrapEvent.js +0 -16
- package/build/esm/utils/wrapEvent.js.map +0 -1
- package/build/tsconfig.tsbuildinfo +0 -7270
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","names":["useState","forwardRef","useRef","Fragment","useId","MenuProvider","useControlledState","Menu","props","forwardedRef","as","Comp","innerAs","openProp","open","defaultOpen","onChangeProp","onChange","otherProps","menuListIdRef","openWithArrowKeyRef","buttonRef","setState","e","isOpen","undefined","offsetFn","setOffsetFn","current","isContextMenu","value"],"sources":["../../../src/Menu/Menu.tsx"],"sourcesContent":["import type {\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactNode,\n ElementType,\n} from 'react';\nimport { useState, forwardRef, useRef, Fragment, useId } from 'react';\n\nimport type { MenuContextProps } from './context';\nimport { MenuProvider } from './context';\nimport { useControlledState } from '../hooks';\nimport type { OffsetsFunction } from '../Popper';\n\nexport interface MenuProps {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n onChange?: (\n e:\n | KeyboardEvent<HTMLElement>\n | MouseEvent<HTMLElement>\n | PointerEvent<HTMLElement>,\n isOpen: boolean\n ) => void;\n open?: boolean;\n defaultOpen?: boolean;\n}\n\nexport const Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu(\n props,\n forwardedRef\n) {\n const {\n as: Comp = Fragment,\n innerAs,\n open: openProp,\n defaultOpen = false,\n onChange: onChangeProp,\n ...otherProps\n } = props;\n const menuListIdRef = useRef<string>();\n const openWithArrowKeyRef = useRef<'ArrowUp' | 'ArrowDown' | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [open, onChange] = useControlledState(\n openProp,\n onChangeProp,\n defaultOpen,\n (setState) => (e, isOpen) => {\n setState(isOpen);\n }\n );\n const [offsetFn, setOffsetFn] = useState<OffsetsFunction | undefined>(\n undefined\n );\n menuListIdRef.current = useId();\n const isContextMenu = useRef(false);\n\n if (!open && offsetFn) {\n setOffsetFn(undefined);\n }\n\n const value: MenuContextProps = {\n menuListIdRef,\n openWithArrowKeyRef,\n open,\n onChange,\n buttonRef,\n offsetFn,\n setOffsetFn,\n isContextMenu,\n };\n\n return (\n <MenuProvider value={value}>\n <Comp\n {...(Comp !== Fragment ? { as: innerAs } : {})}\n ref={forwardedRef}\n {...otherProps}\n />\n </MenuProvider>\n );\n});\n"],"mappings":";;;;AAOA,SAASA,QAAT,EAAmBC,UAAnB,EAA+BC,MAA/B,EAAuCC,QAAvC,EAAiDC,KAAjD,QAA8D,OAA9D;AAGA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAkBA,OAAO,IAAMC,IAAI,gBAAGN,UAAU,CAA4B,SAASM,IAAT,CACxDC,KADwD,EAExDC,YAFwD,EAGxD;EACA,gBAOID,KAPJ,CACEE,EADF;EAAA,IACMC,IADN,0BACaR,QADb;EAAA,IAEES,OAFF,GAOIJ,KAPJ,CAEEI,OAFF;EAAA,IAGQC,QAHR,GAOIL,KAPJ,CAGEM,IAHF;EAAA,yBAOIN,KAPJ,CAIEO,WAJF;EAAA,IAIEA,WAJF,mCAIgB,KAJhB;EAAA,IAKYC,YALZ,GAOIR,KAPJ,CAKES,QALF;EAAA,IAMKC,UANL,4BAOIV,KAPJ;;EAQA,IAAMW,aAAa,GAAGjB,MAAM,EAA5B;EACA,IAAMkB,mBAAmB,GAAGlB,MAAM,CAAiC,IAAjC,CAAlC;EACA,IAAMmB,SAAS,GAAGnB,MAAM,CAAoB,IAApB,CAAxB;;EACA,0BAAyBI,kBAAkB,CACzCO,QADyC,EAEzCG,YAFyC,EAGzCD,WAHyC,EAIzC,UAACO,QAAD;IAAA,OAAc,UAACC,CAAD,EAAIC,MAAJ,EAAe;MAC3BF,QAAQ,CAACE,MAAD,CAAR;IACD,CAFD;EAAA,CAJyC,CAA3C;EAAA;EAAA,IAAOV,IAAP;EAAA,IAAaG,QAAb;;EAQA,gBAAgCjB,QAAQ,CACtCyB,SADsC,CAAxC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EAGAR,aAAa,CAACS,OAAd,GAAwBxB,KAAK,EAA7B;EACA,IAAMyB,aAAa,GAAG3B,MAAM,CAAC,KAAD,CAA5B;;EAEA,IAAI,CAACY,IAAD,IAASY,QAAb,EAAuB;IACrBC,WAAW,CAACF,SAAD,CAAX;EACD;;EAED,IAAMK,KAAuB,GAAG;IAC9BX,aAAa,EAAbA,aAD8B;IAE9BC,mBAAmB,EAAnBA,mBAF8B;IAG9BN,IAAI,EAAJA,IAH8B;IAI9BG,QAAQ,EAARA,QAJ8B;IAK9BI,SAAS,EAATA,SAL8B;IAM9BK,QAAQ,EAARA,QAN8B;IAO9BC,WAAW,EAAXA,WAP8B;IAQ9BE,aAAa,EAAbA;EAR8B,CAAhC;EAWA,oBACE,KAAC,YAAD;IAAc,KAAK,EAAEC,KAArB;IAAA,uBACE,KAAC,IAAD,wBACOnB,IAAI,KAAKR,QAAT,GAAoB;MAAEO,EAAE,EAAEE;IAAN,CAApB,GAAsC,EAD7C;MAEE,GAAG,EAAEH;IAFP,GAGMS,UAHN;EADF,EADF;AASD,CArD6B,CAAvB"}
|
|
1
|
+
{"version":3,"file":"Menu.js","names":["useState","forwardRef","useRef","Fragment","useId","MenuProvider","useControlledState","Menu","props","forwardedRef","as","Comp","innerAs","openProp","open","defaultOpen","onChangeProp","onChange","otherProps","menuListIdRef","openWithArrowKeyRef","buttonRef","setState","e","isOpen","undefined","offsetFn","setOffsetFn","current","isContextMenu","value"],"sources":["../../../src/Menu/Menu.tsx"],"sourcesContent":["import type {\r\n KeyboardEvent,\r\n MouseEvent,\r\n PointerEvent,\r\n ReactNode,\r\n ElementType,\r\n} from 'react';\r\nimport { useState, forwardRef, useRef, Fragment, useId } from 'react';\r\n\r\nimport type { MenuContextProps } from './context';\r\nimport { MenuProvider } from './context';\r\nimport { useControlledState } from '../hooks';\r\nimport type { OffsetsFunction } from '../Popper';\r\n\r\nexport interface MenuProps {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n onChange?: (\r\n e:\r\n | KeyboardEvent<HTMLElement>\r\n | MouseEvent<HTMLElement>\r\n | PointerEvent<HTMLElement>,\r\n isOpen: boolean\r\n ) => void;\r\n open?: boolean;\r\n defaultOpen?: boolean;\r\n}\r\n\r\nexport const Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu(\r\n props,\r\n forwardedRef\r\n) {\r\n const {\r\n as: Comp = Fragment,\r\n innerAs,\r\n open: openProp,\r\n defaultOpen = false,\r\n onChange: onChangeProp,\r\n ...otherProps\r\n } = props;\r\n const menuListIdRef = useRef<string>();\r\n const openWithArrowKeyRef = useRef<'ArrowUp' | 'ArrowDown' | null>(null);\r\n const buttonRef = useRef<HTMLButtonElement>(null);\r\n const [open, onChange] = useControlledState(\r\n openProp,\r\n onChangeProp,\r\n defaultOpen,\r\n (setState) => (e, isOpen) => {\r\n setState(isOpen);\r\n }\r\n );\r\n const [offsetFn, setOffsetFn] = useState<OffsetsFunction | undefined>(\r\n undefined\r\n );\r\n menuListIdRef.current = useId();\r\n const isContextMenu = useRef(false);\r\n\r\n if (!open && offsetFn) {\r\n setOffsetFn(undefined);\r\n }\r\n\r\n const value: MenuContextProps = {\r\n menuListIdRef,\r\n openWithArrowKeyRef,\r\n open,\r\n onChange,\r\n buttonRef,\r\n offsetFn,\r\n setOffsetFn,\r\n isContextMenu,\r\n };\r\n\r\n return (\r\n <MenuProvider value={value}>\r\n <Comp\r\n {...(Comp !== Fragment ? { as: innerAs } : {})}\r\n ref={forwardedRef}\r\n {...otherProps}\r\n />\r\n </MenuProvider>\r\n );\r\n});\r\n"],"mappings":";;;;AAOA,SAASA,QAAT,EAAmBC,UAAnB,EAA+BC,MAA/B,EAAuCC,QAAvC,EAAiDC,KAAjD,QAA8D,OAA9D;AAGA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAkBA,OAAO,IAAMC,IAAI,gBAAGN,UAAU,CAA4B,SAASM,IAAT,CACxDC,KADwD,EAExDC,YAFwD,EAGxD;EACA,gBAOID,KAPJ,CACEE,EADF;EAAA,IACMC,IADN,0BACaR,QADb;EAAA,IAEES,OAFF,GAOIJ,KAPJ,CAEEI,OAFF;EAAA,IAGQC,QAHR,GAOIL,KAPJ,CAGEM,IAHF;EAAA,yBAOIN,KAPJ,CAIEO,WAJF;EAAA,IAIEA,WAJF,mCAIgB,KAJhB;EAAA,IAKYC,YALZ,GAOIR,KAPJ,CAKES,QALF;EAAA,IAMKC,UANL,4BAOIV,KAPJ;;EAQA,IAAMW,aAAa,GAAGjB,MAAM,EAA5B;EACA,IAAMkB,mBAAmB,GAAGlB,MAAM,CAAiC,IAAjC,CAAlC;EACA,IAAMmB,SAAS,GAAGnB,MAAM,CAAoB,IAApB,CAAxB;;EACA,0BAAyBI,kBAAkB,CACzCO,QADyC,EAEzCG,YAFyC,EAGzCD,WAHyC,EAIzC,UAACO,QAAD;IAAA,OAAc,UAACC,CAAD,EAAIC,MAAJ,EAAe;MAC3BF,QAAQ,CAACE,MAAD,CAAR;IACD,CAFD;EAAA,CAJyC,CAA3C;EAAA;EAAA,IAAOV,IAAP;EAAA,IAAaG,QAAb;;EAQA,gBAAgCjB,QAAQ,CACtCyB,SADsC,CAAxC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EAGAR,aAAa,CAACS,OAAd,GAAwBxB,KAAK,EAA7B;EACA,IAAMyB,aAAa,GAAG3B,MAAM,CAAC,KAAD,CAA5B;;EAEA,IAAI,CAACY,IAAD,IAASY,QAAb,EAAuB;IACrBC,WAAW,CAACF,SAAD,CAAX;EACD;;EAED,IAAMK,KAAuB,GAAG;IAC9BX,aAAa,EAAbA,aAD8B;IAE9BC,mBAAmB,EAAnBA,mBAF8B;IAG9BN,IAAI,EAAJA,IAH8B;IAI9BG,QAAQ,EAARA,QAJ8B;IAK9BI,SAAS,EAATA,SAL8B;IAM9BK,QAAQ,EAARA,QAN8B;IAO9BC,WAAW,EAAXA,WAP8B;IAQ9BE,aAAa,EAAbA;EAR8B,CAAhC;EAWA,oBACE,KAAC,YAAD;IAAc,KAAK,EAAEC,KAArB;IAAA,uBACE,KAAC,IAAD,wBACOnB,IAAI,KAAKR,QAAT,GAAoB;MAAEO,EAAE,EAAEE;IAAN,CAApB,GAAsC,EAD7C;MAEE,GAAG,EAAEH;IAFP,GAGMS,UAHN;EADF,EADF;AASD,CArD6B,CAAvB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ButtonHTMLAttributes, ElementType, KeyboardEvent, MouseEvent } from 'react';
|
|
2
|
-
export declare type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
3
|
-
as?: ElementType<any>;
|
|
4
|
-
innerAs?: ElementType<any>;
|
|
5
|
-
onClick?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
|
|
6
|
-
};
|
|
7
|
-
export declare const MenuButton: import("react").ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
8
|
-
as?: ElementType<any> | undefined;
|
|
9
|
-
innerAs?: ElementType<any> | undefined;
|
|
10
|
-
onClick?: ((e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void) | undefined;
|
|
11
|
-
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
1
|
+
import type { ButtonHTMLAttributes, ElementType, KeyboardEvent, MouseEvent } from 'react';
|
|
2
|
+
export declare type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
3
|
+
as?: ElementType<any>;
|
|
4
|
+
innerAs?: ElementType<any>;
|
|
5
|
+
onClick?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const MenuButton: import("react").ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
8
|
+
as?: ElementType<any> | undefined;
|
|
9
|
+
innerAs?: ElementType<any> | undefined;
|
|
10
|
+
onClick?: ((e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void) | undefined;
|
|
11
|
+
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuButton.js","names":["forwardRef","useId","useMenuContext","wrapEvent","MenuButton","props","forwardedRef","as","Comp","innerAs","preferredId","id","onClick","onKeyDown","disabled","otherProps","menuListIdRef","openWithArrowKeyRef","open","buttonRef","onChange","buttonIdGenerated","buttonId","handleKeyDown","e","current","currentTarget","isArrowKey","includes","key","isEnterKey","openedWithArrow","preventDefault","handleClick","undefined"],"sources":["../../../src/Menu/MenuButton.tsx"],"sourcesContent":["import type {\n ButtonHTMLAttributes,\n ElementType,\n KeyboardEvent,\n MouseEvent,\n} from 'react';\nimport { forwardRef, useId } from 'react';\n\nimport { useMenuContext } from './context';\nimport { wrapEvent } from '../utils/wrap-event';\n\nexport type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n onClick?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n};\n\nexport const MenuButton = forwardRef<HTMLButtonElement, MenuButtonProps>(\n function MenuButton(props, forwardedRef) {\n const {\n as: Comp = 'button',\n innerAs,\n id: preferredId,\n onClick,\n onKeyDown,\n disabled,\n ...otherProps\n } = props;\n const { menuListIdRef, openWithArrowKeyRef, open, buttonRef, onChange } =\n useMenuContext();\n\n const buttonIdGenerated = useId();\n const buttonId = preferredId || buttonIdGenerated;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n buttonRef.current = e.currentTarget;\n\n const isArrowKey = () => ['ArrowUp', 'ArrowDown'].includes(e.key);\n const isEnterKey = () => [' ', 'Enter'].includes(e.key);\n\n const openedWithArrow = isArrowKey();\n if (openedWithArrow || isEnterKey()) {\n if (openedWithArrow) {\n // Used to make it open at the end or begining of the list\n openWithArrowKeyRef.current = e.key;\n }\n onChange(e, true);\n e.preventDefault();\n }\n };\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n buttonRef.current = e.currentTarget;\n onChange(e, !open);\n };\n\n return (\n <Comp\n ref={forwardedRef}\n as={innerAs}\n id={buttonId}\n role=\"button\"\n type=\"button\"\n aria-haspopup={true}\n aria-controls={menuListIdRef.current}\n aria-expanded={open ? true : undefined}\n data-menu-button=\"\"\n onClick={wrapEvent(onClick, handleClick)}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n disabled={disabled}\n {...otherProps}\n />\n );\n }\n);\n"],"mappings":";;;AAMA,SAASA,UAAT,EAAqBC,KAArB,QAAkC,OAAlC;AAEA,SAASC,cAAT,QAA+B,WAA/B;AACA,SAASC,SAAT,QAA0B,qBAA1B;;AAUA,OAAO,IAAMC,UAAU,gBAAGJ,UAAU,CAClC,SAASI,UAAT,CAAoBC,KAApB,EAA2BC,YAA3B,EAAyC;EACvC,gBAQID,KARJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,QADb;EAAA,IAEEC,OAFF,GAQIJ,KARJ,CAEEI,OAFF;EAAA,IAGMC,WAHN,GAQIL,KARJ,CAGEM,EAHF;EAAA,IAIEC,OAJF,GAQIP,KARJ,CAIEO,OAJF;EAAA,IAKEC,SALF,GAQIR,KARJ,CAKEQ,SALF;EAAA,IAMEC,QANF,GAQIT,KARJ,CAMES,QANF;EAAA,IAOKC,UAPL,4BAQIV,KARJ;;EASA,sBACEH,cAAc,EADhB;EAAA,IAAQc,aAAR,mBAAQA,aAAR;EAAA,IAAuBC,mBAAvB,mBAAuBA,mBAAvB;EAAA,IAA4CC,IAA5C,mBAA4CA,IAA5C;EAAA,IAAkDC,SAAlD,mBAAkDA,SAAlD;EAAA,IAA6DC,QAA7D,mBAA6DA,QAA7D;;EAGA,IAAMC,iBAAiB,GAAGpB,KAAK,EAA/B;EACA,IAAMqB,QAAQ,GAAGZ,WAAW,IAAIW,iBAAhC;;EAEA,IAAME,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAyC;IAC7D,IAAIV,QAAJ,EAAc;MACZ;IACD;;IACDK,SAAS,CAACM,OAAV,GAAoBD,CAAC,CAACE,aAAtB;;IAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa;MAAA,OAAM,CAAC,SAAD,EAAY,WAAZ,EAAyBC,QAAzB,CAAkCJ,CAAC,CAACK,GAApC,CAAN;IAAA,CAAnB;;IACA,IAAMC,UAAU,GAAG,SAAbA,UAAa;MAAA,OAAM,CAAC,GAAD,EAAM,OAAN,EAAeF,QAAf,CAAwBJ,CAAC,CAACK,GAA1B,CAAN;IAAA,CAAnB;;IAEA,IAAME,eAAe,GAAGJ,UAAU,EAAlC;;IACA,IAAII,eAAe,IAAID,UAAU,EAAjC,EAAqC;MACnC,IAAIC,eAAJ,EAAqB;QACnB;QACAd,mBAAmB,CAACQ,OAApB,GAA8BD,CAAC,CAACK,GAAhC;MACD;;MACDT,QAAQ,CAACI,CAAD,EAAI,IAAJ,CAAR;MACAA,CAAC,CAACQ,cAAF;IACD;EACF,CAlBD;;EAoBA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACT,CAAD,EAAsC;IACxD,IAAIV,QAAJ,EAAc;MACZ;IACD;;IACDK,SAAS,CAACM,OAAV,GAAoBD,CAAC,CAACE,aAAtB;IACAN,QAAQ,CAACI,CAAD,EAAI,CAACN,IAAL,CAAR;EACD,CAND;;EAQA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEZ,YADP;IAEE,EAAE,EAAEG,OAFN;IAGE,EAAE,EAAEa,QAHN;IAIE,IAAI,EAAC,QAJP;IAKE,IAAI,EAAC,QALP;IAME,iBAAe,IANjB;IAOE,iBAAeN,aAAa,CAACS,OAP/B;IAQE,iBAAeP,IAAI,GAAG,IAAH,GAAUgB,SAR/B;IASE,oBAAiB,EATnB;IAUE,OAAO,EAAE/B,SAAS,CAACS,OAAD,EAAUqB,WAAV,CAVpB;IAWE,SAAS,EAAE9B,SAAS,CAACU,SAAD,EAAYU,aAAZ,CAXtB;IAYE,QAAQ,EAAET;EAZZ,GAaMC,UAbN,EADF;AAiBD,CA9DiC,CAA7B"}
|
|
1
|
+
{"version":3,"file":"MenuButton.js","names":["forwardRef","useId","useMenuContext","wrapEvent","MenuButton","props","forwardedRef","as","Comp","innerAs","preferredId","id","onClick","onKeyDown","disabled","otherProps","menuListIdRef","openWithArrowKeyRef","open","buttonRef","onChange","buttonIdGenerated","buttonId","handleKeyDown","e","current","currentTarget","isArrowKey","includes","key","isEnterKey","openedWithArrow","preventDefault","handleClick","undefined"],"sources":["../../../src/Menu/MenuButton.tsx"],"sourcesContent":["import type {\r\n ButtonHTMLAttributes,\r\n ElementType,\r\n KeyboardEvent,\r\n MouseEvent,\r\n} from 'react';\r\nimport { forwardRef, useId } from 'react';\r\n\r\nimport { useMenuContext } from './context';\r\nimport { wrapEvent } from '../utils/wrap-event';\r\n\r\nexport type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n onClick?: (\r\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\r\n ) => void;\r\n};\r\n\r\nexport const MenuButton = forwardRef<HTMLButtonElement, MenuButtonProps>(\r\n function MenuButton(props, forwardedRef) {\r\n const {\r\n as: Comp = 'button',\r\n innerAs,\r\n id: preferredId,\r\n onClick,\r\n onKeyDown,\r\n disabled,\r\n ...otherProps\r\n } = props;\r\n const { menuListIdRef, openWithArrowKeyRef, open, buttonRef, onChange } =\r\n useMenuContext();\r\n\r\n const buttonIdGenerated = useId();\r\n const buttonId = preferredId || buttonIdGenerated;\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\r\n if (disabled) {\r\n return;\r\n }\r\n buttonRef.current = e.currentTarget;\r\n\r\n const isArrowKey = () => ['ArrowUp', 'ArrowDown'].includes(e.key);\r\n const isEnterKey = () => [' ', 'Enter'].includes(e.key);\r\n\r\n const openedWithArrow = isArrowKey();\r\n if (openedWithArrow || isEnterKey()) {\r\n if (openedWithArrow) {\r\n // Used to make it open at the end or begining of the list\r\n openWithArrowKeyRef.current = e.key;\r\n }\r\n onChange(e, true);\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\r\n if (disabled) {\r\n return;\r\n }\r\n buttonRef.current = e.currentTarget;\r\n onChange(e, !open);\r\n };\r\n\r\n return (\r\n <Comp\r\n ref={forwardedRef}\r\n as={innerAs}\r\n id={buttonId}\r\n role=\"button\"\r\n type=\"button\"\r\n aria-haspopup={true}\r\n aria-controls={menuListIdRef.current}\r\n aria-expanded={open ? true : undefined}\r\n data-menu-button=\"\"\r\n onClick={wrapEvent(onClick, handleClick)}\r\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\r\n disabled={disabled}\r\n {...otherProps}\r\n />\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AAMA,SAASA,UAAT,EAAqBC,KAArB,QAAkC,OAAlC;AAEA,SAASC,cAAT,QAA+B,WAA/B;AACA,SAASC,SAAT,QAA0B,qBAA1B;;AAUA,OAAO,IAAMC,UAAU,gBAAGJ,UAAU,CAClC,SAASI,UAAT,CAAoBC,KAApB,EAA2BC,YAA3B,EAAyC;EACvC,gBAQID,KARJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,QADb;EAAA,IAEEC,OAFF,GAQIJ,KARJ,CAEEI,OAFF;EAAA,IAGMC,WAHN,GAQIL,KARJ,CAGEM,EAHF;EAAA,IAIEC,OAJF,GAQIP,KARJ,CAIEO,OAJF;EAAA,IAKEC,SALF,GAQIR,KARJ,CAKEQ,SALF;EAAA,IAMEC,QANF,GAQIT,KARJ,CAMES,QANF;EAAA,IAOKC,UAPL,4BAQIV,KARJ;;EASA,sBACEH,cAAc,EADhB;EAAA,IAAQc,aAAR,mBAAQA,aAAR;EAAA,IAAuBC,mBAAvB,mBAAuBA,mBAAvB;EAAA,IAA4CC,IAA5C,mBAA4CA,IAA5C;EAAA,IAAkDC,SAAlD,mBAAkDA,SAAlD;EAAA,IAA6DC,QAA7D,mBAA6DA,QAA7D;;EAGA,IAAMC,iBAAiB,GAAGpB,KAAK,EAA/B;EACA,IAAMqB,QAAQ,GAAGZ,WAAW,IAAIW,iBAAhC;;EAEA,IAAME,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAyC;IAC7D,IAAIV,QAAJ,EAAc;MACZ;IACD;;IACDK,SAAS,CAACM,OAAV,GAAoBD,CAAC,CAACE,aAAtB;;IAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa;MAAA,OAAM,CAAC,SAAD,EAAY,WAAZ,EAAyBC,QAAzB,CAAkCJ,CAAC,CAACK,GAApC,CAAN;IAAA,CAAnB;;IACA,IAAMC,UAAU,GAAG,SAAbA,UAAa;MAAA,OAAM,CAAC,GAAD,EAAM,OAAN,EAAeF,QAAf,CAAwBJ,CAAC,CAACK,GAA1B,CAAN;IAAA,CAAnB;;IAEA,IAAME,eAAe,GAAGJ,UAAU,EAAlC;;IACA,IAAII,eAAe,IAAID,UAAU,EAAjC,EAAqC;MACnC,IAAIC,eAAJ,EAAqB;QACnB;QACAd,mBAAmB,CAACQ,OAApB,GAA8BD,CAAC,CAACK,GAAhC;MACD;;MACDT,QAAQ,CAACI,CAAD,EAAI,IAAJ,CAAR;MACAA,CAAC,CAACQ,cAAF;IACD;EACF,CAlBD;;EAoBA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACT,CAAD,EAAsC;IACxD,IAAIV,QAAJ,EAAc;MACZ;IACD;;IACDK,SAAS,CAACM,OAAV,GAAoBD,CAAC,CAACE,aAAtB;IACAN,QAAQ,CAACI,CAAD,EAAI,CAACN,IAAL,CAAR;EACD,CAND;;EAQA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEZ,YADP;IAEE,EAAE,EAAEG,OAFN;IAGE,EAAE,EAAEa,QAHN;IAIE,IAAI,EAAC,QAJP;IAKE,IAAI,EAAC,QALP;IAME,iBAAe,IANjB;IAOE,iBAAeN,aAAa,CAACS,OAP/B;IAQE,iBAAeP,IAAI,GAAG,IAAH,GAAUgB,SAR/B;IASE,oBAAiB,EATnB;IAUE,OAAO,EAAE/B,SAAS,CAACS,OAAD,EAAUqB,WAAV,CAVpB;IAWE,SAAS,EAAE9B,SAAS,CAACU,SAAD,EAAYU,aAAZ,CAXtB;IAYE,QAAQ,EAAET;EAZZ,GAaMC,UAbN,EADF;AAiBD,CA9DiC,CAA7B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { LiHTMLAttributes, ElementType, MouseEvent, KeyboardEvent } from 'react';
|
|
2
|
-
export interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {
|
|
3
|
-
as?: ElementType<any>;
|
|
4
|
-
innerAs?: ElementType<any>;
|
|
5
|
-
onSelect?: (e: MouseEvent<HTMLLIElement> | KeyboardEvent<HTMLLIElement>) => void;
|
|
6
|
-
disabled?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare const MenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<any>>;
|
|
1
|
+
import type { LiHTMLAttributes, ElementType, MouseEvent, KeyboardEvent } from 'react';
|
|
2
|
+
export interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {
|
|
3
|
+
as?: ElementType<any>;
|
|
4
|
+
innerAs?: ElementType<any>;
|
|
5
|
+
onSelect?: (e: MouseEvent<HTMLLIElement> | KeyboardEvent<HTMLLIElement>) => void;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const MenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<any>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","names":["forwardRef","useRef","useId","useMenuContext","useMenuListContext","assignMultipleRefs","wrapEvent","MenuItem","props","forwardedRef","as","Comp","innerAs","disabled","onSelect","onClick","onKeyDown","otherProps","onChange","buttonRef","navigationItem","onNavigate","ref","itemId","isActive","current","handleSelect","e","focus","preventDefault","handleClick","handleKeyDown","key","undefined"],"sources":["../../../src/Menu/MenuItem.tsx"],"sourcesContent":["import type {\n LiHTMLAttributes,\n ElementType,\n MouseEvent,\n KeyboardEvent,\n KeyboardEventHandler,\n} from 'react';\nimport { forwardRef, useRef, useId } from 'react';\n\nimport { useMenuContext, useMenuListContext } from './context';\nimport { assignMultipleRefs } from '../utils/assign-ref';\nimport { wrapEvent } from '../utils';\n\nexport interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n onSelect?: (\n e: MouseEvent<HTMLLIElement> | KeyboardEvent<HTMLLIElement>\n ) => void;\n disabled?: boolean;\n}\n\nexport const MenuItem = forwardRef<any, MenuItemProps>(function MenuItem(\n props,\n forwardedRef\n) {\n const {\n as: Comp = 'li',\n innerAs,\n disabled,\n onSelect,\n onClick,\n onKeyDown,\n ...otherProps\n } = props;\n const { onChange, buttonRef } = useMenuContext();\n const { navigationItem, onNavigate } = useMenuListContext();\n const ref = useRef<HTMLLIElement>();\n const itemId = useId();\n\n const isActive = ref.current && ref.current === navigationItem;\n\n const handleSelect = wrapEvent(\n onSelect,\n (e: KeyboardEvent<HTMLLIElement> | MouseEvent<HTMLLIElement>) => {\n onChange(e, false);\n buttonRef.current?.focus();\n e.preventDefault();\n }\n );\n\n const handleClick = (e: MouseEvent<HTMLLIElement>) => {\n if (!disabled) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n onNavigate && onNavigate(ref.current!);\n handleSelect(e);\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLLIElement> = (e) => {\n switch (e.key) {\n case ' ':\n case 'Enter':\n if (!disabled) {\n handleSelect(e);\n }\n break;\n }\n };\n\n return (\n <Comp\n ref={assignMultipleRefs(ref, forwardedRef)}\n as={innerAs}\n id={disabled ? undefined : itemId}\n data-menu-item=\"\"\n data-highlighted={isActive ? '' : undefined}\n role=\"menuitem\"\n onClick={wrapEvent(onClick, handleClick)}\n tabIndex={disabled ? -1 : 0}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n data-disabled={disabled ? '' : undefined}\n aria-disabled={disabled ? '' : undefined}\n disabled={disabled}\n {...otherProps}\n />\n );\n});\n"],"mappings":";;;AAOA,SAASA,UAAT,EAAqBC,MAArB,EAA6BC,KAA7B,QAA0C,OAA1C;AAEA,SAASC,cAAT,EAAyBC,kBAAzB,QAAmD,WAAnD;AACA,SAASC,kBAAT,QAAmC,qBAAnC;AACA,SAASC,SAAT,QAA0B,UAA1B;;AAWA,OAAO,IAAMC,QAAQ,gBAAGP,UAAU,CAAqB,SAASO,QAAT,CACrDC,KADqD,EAErDC,YAFqD,EAGrD;EACA,gBAQID,KARJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,IADb;EAAA,IAEEC,OAFF,GAQIJ,KARJ,CAEEI,OAFF;EAAA,IAGEC,QAHF,GAQIL,KARJ,CAGEK,QAHF;EAAA,IAIEC,QAJF,GAQIN,KARJ,CAIEM,QAJF;EAAA,IAKEC,OALF,GAQIP,KARJ,CAKEO,OALF;EAAA,IAMEC,SANF,GAQIR,KARJ,CAMEQ,SANF;EAAA,IAOKC,UAPL,4BAQIT,KARJ;;EASA,sBAAgCL,cAAc,EAA9C;EAAA,IAAQe,QAAR,mBAAQA,QAAR;EAAA,IAAkBC,SAAlB,mBAAkBA,SAAlB;;EACA,0BAAuCf,kBAAkB,EAAzD;EAAA,IAAQgB,cAAR,uBAAQA,cAAR;EAAA,IAAwBC,UAAxB,uBAAwBA,UAAxB;;EACA,IAAMC,GAAG,GAAGrB,MAAM,EAAlB;EACA,IAAMsB,MAAM,GAAGrB,KAAK,EAApB;EAEA,IAAMsB,QAAQ,GAAGF,GAAG,CAACG,OAAJ,IAAeH,GAAG,CAACG,OAAJ,KAAgBL,cAAhD;EAEA,IAAMM,YAAY,GAAGpB,SAAS,CAC5BQ,QAD4B,EAE5B,UAACa,CAAD,EAAiE;IAAA;;IAC/DT,QAAQ,CAACS,CAAD,EAAI,KAAJ,CAAR;IACA,sBAAAR,SAAS,CAACM,OAAV,0EAAmBG,KAAnB;IACAD,CAAC,CAACE,cAAF;EACD,CAN2B,CAA9B;;EASA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACH,CAAD,EAAkC;IACpD,IAAI,CAACd,QAAL,EAAe;MACb;MACAQ,UAAU,IAAIA,UAAU,CAACC,GAAG,CAACG,OAAL,CAAxB;MACAC,YAAY,CAACC,CAAD,CAAZ;IACD;EACF,CAND;;EAQA,IAAMI,aAAkD,GAAG,SAArDA,aAAqD,CAACJ,CAAD,EAAO;IAChE,QAAQA,CAAC,CAACK,GAAV;MACE,KAAK,GAAL;MACA,KAAK,OAAL;QACE,IAAI,CAACnB,QAAL,EAAe;UACba,YAAY,CAACC,CAAD,CAAZ;QACD;;QACD;IANJ;EAQD,CATD;;EAWA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEtB,kBAAkB,CAACiB,GAAD,EAAMb,YAAN,CADzB;IAEE,EAAE,EAAEG,OAFN;IAGE,EAAE,EAAEC,QAAQ,GAAGoB,SAAH,GAAeV,MAH7B;IAIE,kBAAe,EAJjB;IAKE,oBAAkBC,QAAQ,GAAG,EAAH,GAAQS,SALpC;IAME,IAAI,EAAC,UANP;IAOE,OAAO,EAAE3B,SAAS,CAACS,OAAD,EAAUe,WAAV,CAPpB;IAQE,QAAQ,EAAEjB,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAR5B;IASE,SAAS,EAAEP,SAAS,CAACU,SAAD,EAAYe,aAAZ,CATtB;IAUE,iBAAelB,QAAQ,GAAG,EAAH,GAAQoB,SAVjC;IAWE,iBAAepB,QAAQ,GAAG,EAAH,GAAQoB,SAXjC;IAYE,QAAQ,EAAEpB;EAZZ,GAaMI,UAbN,EADF;AAiBD,CAjEiC,CAA3B"}
|
|
1
|
+
{"version":3,"file":"MenuItem.js","names":["forwardRef","useRef","useId","useMenuContext","useMenuListContext","assignMultipleRefs","wrapEvent","MenuItem","props","forwardedRef","as","Comp","innerAs","disabled","onSelect","onClick","onKeyDown","otherProps","onChange","buttonRef","navigationItem","onNavigate","ref","itemId","isActive","current","handleSelect","e","focus","preventDefault","handleClick","handleKeyDown","key","undefined"],"sources":["../../../src/Menu/MenuItem.tsx"],"sourcesContent":["import type {\r\n LiHTMLAttributes,\r\n ElementType,\r\n MouseEvent,\r\n KeyboardEvent,\r\n KeyboardEventHandler,\r\n} from 'react';\r\nimport { forwardRef, useRef, useId } from 'react';\r\n\r\nimport { useMenuContext, useMenuListContext } from './context';\r\nimport { assignMultipleRefs } from '../utils/assign-ref';\r\nimport { wrapEvent } from '../utils';\r\n\r\nexport interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n onSelect?: (\r\n e: MouseEvent<HTMLLIElement> | KeyboardEvent<HTMLLIElement>\r\n ) => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const MenuItem = forwardRef<any, MenuItemProps>(function MenuItem(\r\n props,\r\n forwardedRef\r\n) {\r\n const {\r\n as: Comp = 'li',\r\n innerAs,\r\n disabled,\r\n onSelect,\r\n onClick,\r\n onKeyDown,\r\n ...otherProps\r\n } = props;\r\n const { onChange, buttonRef } = useMenuContext();\r\n const { navigationItem, onNavigate } = useMenuListContext();\r\n const ref = useRef<HTMLLIElement>();\r\n const itemId = useId();\r\n\r\n const isActive = ref.current && ref.current === navigationItem;\r\n\r\n const handleSelect = wrapEvent(\r\n onSelect,\r\n (e: KeyboardEvent<HTMLLIElement> | MouseEvent<HTMLLIElement>) => {\r\n onChange(e, false);\r\n buttonRef.current?.focus();\r\n e.preventDefault();\r\n }\r\n );\r\n\r\n const handleClick = (e: MouseEvent<HTMLLIElement>) => {\r\n if (!disabled) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n onNavigate && onNavigate(ref.current!);\r\n handleSelect(e);\r\n }\r\n };\r\n\r\n const handleKeyDown: KeyboardEventHandler<HTMLLIElement> = (e) => {\r\n switch (e.key) {\r\n case ' ':\r\n case 'Enter':\r\n if (!disabled) {\r\n handleSelect(e);\r\n }\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <Comp\r\n ref={assignMultipleRefs(ref, forwardedRef)}\r\n as={innerAs}\r\n id={disabled ? undefined : itemId}\r\n data-menu-item=\"\"\r\n data-highlighted={isActive ? '' : undefined}\r\n role=\"menuitem\"\r\n onClick={wrapEvent(onClick, handleClick)}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\r\n data-disabled={disabled ? '' : undefined}\r\n aria-disabled={disabled ? '' : undefined}\r\n disabled={disabled}\r\n {...otherProps}\r\n />\r\n );\r\n});\r\n"],"mappings":";;;AAOA,SAASA,UAAT,EAAqBC,MAArB,EAA6BC,KAA7B,QAA0C,OAA1C;AAEA,SAASC,cAAT,EAAyBC,kBAAzB,QAAmD,WAAnD;AACA,SAASC,kBAAT,QAAmC,qBAAnC;AACA,SAASC,SAAT,QAA0B,UAA1B;;AAWA,OAAO,IAAMC,QAAQ,gBAAGP,UAAU,CAAqB,SAASO,QAAT,CACrDC,KADqD,EAErDC,YAFqD,EAGrD;EACA,gBAQID,KARJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,IADb;EAAA,IAEEC,OAFF,GAQIJ,KARJ,CAEEI,OAFF;EAAA,IAGEC,QAHF,GAQIL,KARJ,CAGEK,QAHF;EAAA,IAIEC,QAJF,GAQIN,KARJ,CAIEM,QAJF;EAAA,IAKEC,OALF,GAQIP,KARJ,CAKEO,OALF;EAAA,IAMEC,SANF,GAQIR,KARJ,CAMEQ,SANF;EAAA,IAOKC,UAPL,4BAQIT,KARJ;;EASA,sBAAgCL,cAAc,EAA9C;EAAA,IAAQe,QAAR,mBAAQA,QAAR;EAAA,IAAkBC,SAAlB,mBAAkBA,SAAlB;;EACA,0BAAuCf,kBAAkB,EAAzD;EAAA,IAAQgB,cAAR,uBAAQA,cAAR;EAAA,IAAwBC,UAAxB,uBAAwBA,UAAxB;;EACA,IAAMC,GAAG,GAAGrB,MAAM,EAAlB;EACA,IAAMsB,MAAM,GAAGrB,KAAK,EAApB;EAEA,IAAMsB,QAAQ,GAAGF,GAAG,CAACG,OAAJ,IAAeH,GAAG,CAACG,OAAJ,KAAgBL,cAAhD;EAEA,IAAMM,YAAY,GAAGpB,SAAS,CAC5BQ,QAD4B,EAE5B,UAACa,CAAD,EAAiE;IAAA;;IAC/DT,QAAQ,CAACS,CAAD,EAAI,KAAJ,CAAR;IACA,sBAAAR,SAAS,CAACM,OAAV,0EAAmBG,KAAnB;IACAD,CAAC,CAACE,cAAF;EACD,CAN2B,CAA9B;;EASA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACH,CAAD,EAAkC;IACpD,IAAI,CAACd,QAAL,EAAe;MACb;MACAQ,UAAU,IAAIA,UAAU,CAACC,GAAG,CAACG,OAAL,CAAxB;MACAC,YAAY,CAACC,CAAD,CAAZ;IACD;EACF,CAND;;EAQA,IAAMI,aAAkD,GAAG,SAArDA,aAAqD,CAACJ,CAAD,EAAO;IAChE,QAAQA,CAAC,CAACK,GAAV;MACE,KAAK,GAAL;MACA,KAAK,OAAL;QACE,IAAI,CAACnB,QAAL,EAAe;UACba,YAAY,CAACC,CAAD,CAAZ;QACD;;QACD;IANJ;EAQD,CATD;;EAWA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEtB,kBAAkB,CAACiB,GAAD,EAAMb,YAAN,CADzB;IAEE,EAAE,EAAEG,OAFN;IAGE,EAAE,EAAEC,QAAQ,GAAGoB,SAAH,GAAeV,MAH7B;IAIE,kBAAe,EAJjB;IAKE,oBAAkBC,QAAQ,GAAG,EAAH,GAAQS,SALpC;IAME,IAAI,EAAC,UANP;IAOE,OAAO,EAAE3B,SAAS,CAACS,OAAD,EAAUe,WAAV,CAPpB;IAQE,QAAQ,EAAEjB,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAR5B;IASE,SAAS,EAAEP,SAAS,CAACU,SAAD,EAAYe,aAAZ,CATtB;IAUE,iBAAelB,QAAQ,GAAG,EAAH,GAAQoB,SAVjC;IAWE,iBAAepB,QAAQ,GAAG,EAAH,GAAQoB,SAXjC;IAYE,QAAQ,EAAEpB;EAZZ,GAaMI,UAbN,EADF;AAiBD,CAjEiC,CAA3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { HTMLAttributes, ElementType } from 'react';
|
|
2
|
-
export interface MenuListProps extends HTMLAttributes<HTMLUListElement> {
|
|
3
|
-
as?: ElementType<any>;
|
|
4
|
-
innerAs?: ElementType<any>;
|
|
5
|
-
defaultActiveItemValue?: string | string[];
|
|
6
|
-
}
|
|
7
|
-
export declare const MenuList: import("react").ForwardRefExoticComponent<MenuListProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
1
|
+
import type { HTMLAttributes, ElementType } from 'react';
|
|
2
|
+
export interface MenuListProps extends HTMLAttributes<HTMLUListElement> {
|
|
3
|
+
as?: ElementType<any>;
|
|
4
|
+
innerAs?: ElementType<any>;
|
|
5
|
+
defaultActiveItemValue?: string | string[];
|
|
6
|
+
}
|
|
7
|
+
export declare const MenuList: import("react").ForwardRefExoticComponent<MenuListProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.js","names":["useCallback","forwardRef","useEffect","useRef","useState","useLayoutEffect","useMenuContext","MenuListProvider","assignMultipleRefs","useOnClickOutside","useScope","queryScope","getCircularIndex","wrapEvent","useEnhancedEffect","window","MenuList","props","forwardedRef","as","Comp","innerAs","onKeyDown","preferredId","id","defaultActiveItemValue","otherProps","interactedOutside","itemSearchStr","itemSearchClearTimeout","menuListIdRef","buttonRef","onChange","openWithArrowKeyRef","open","isContextMenu","navigationItem","setNavigationItem","mounted","setMounted","menuListRef","scope","onNavigate","el","focus","current","allItems","queryAllNodes","index","length","i","dataset","value","Array","isArray","set","Set","val","has","handleClickOutside","e","pointerType","button","target","HTMLElement","contains","preventDefault","handleKeyDown","key","currentIndex","findIndex","nextIndex","ctrlKey","altKey","slice","clearTimeout","setTimeout","searchStr","idx","dom","domText","innerText","toLowerCase","startsWith"],"sources":["../../../src/Menu/MenuList.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType, KeyboardEvent } from 'react';\nimport {\n useCallback,\n forwardRef,\n useEffect,\n useRef,\n useState,\n useLayoutEffect,\n} from 'react';\n\nimport { useMenuContext, MenuListProvider } from './context';\nimport { assignMultipleRefs } from '../utils/assign-ref';\nimport { useOnClickOutside } from '../hooks/useOnClickOutside';\nimport { useScope } from '../hooks';\nimport { queryScope } from './scope';\nimport { getCircularIndex, wrapEvent } from '../utils';\n\nconst useEnhancedEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport interface MenuListProps extends HTMLAttributes<HTMLUListElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n defaultActiveItemValue?: string | string[];\n}\n\nexport const MenuList = forwardRef<HTMLUListElement, MenuListProps>(\n function MenuList(props, forwardedRef) {\n const {\n as: Comp = 'ul',\n innerAs,\n onKeyDown,\n id: preferredId,\n defaultActiveItemValue,\n ...otherProps\n } = props;\n\n const interactedOutside = useRef(false);\n const itemSearchStr = useRef('');\n const itemSearchClearTimeout = useRef<ReturnType<typeof setTimeout>>();\n\n const {\n menuListIdRef,\n buttonRef,\n onChange,\n openWithArrowKeyRef,\n open,\n isContextMenu,\n } = useMenuContext();\n\n const [navigationItem, setNavigationItem] = useState<\n HTMLElement | undefined\n >();\n\n const [mounted, setMounted] = useState(false);\n\n const menuListRef = useRef<HTMLUListElement>();\n\n const scope = useScope<HTMLLIElement, HTMLUListElement>(menuListRef);\n\n const onNavigate = (el: HTMLElement) => {\n el.focus();\n setNavigationItem(el);\n };\n\n menuListIdRef.current = preferredId || menuListIdRef.current;\n\n useEnhancedEffect(() => {\n if (!mounted) {\n const allItems = scope.current.queryAllNodes(queryScope);\n let index = getCircularIndex(\n openWithArrowKeyRef.current === 'ArrowUp' ? -1 : 0,\n allItems.length\n );\n\n if (defaultActiveItemValue) {\n if (typeof defaultActiveItemValue === 'string') {\n for (let i = 0; i < allItems.length; i++) {\n if (allItems[i].dataset.value === defaultActiveItemValue) {\n index = i;\n break;\n }\n }\n } else if (Array.isArray(defaultActiveItemValue)) {\n const set = new Set(defaultActiveItemValue);\n for (let i = 0; i < allItems.length; i++) {\n const val = allItems[i].dataset.value;\n if (val && set.has(val)) {\n index = i;\n break;\n }\n }\n }\n }\n\n if (index !== null) {\n onNavigate && onNavigate(allItems[index]);\n }\n }\n\n openWithArrowKeyRef.current = null;\n setMounted(true);\n }, [\n mounted,\n navigationItem,\n onNavigate,\n openWithArrowKeyRef,\n scope,\n defaultActiveItemValue,\n ]);\n\n const handleClickOutside = useCallback(\n (e: PointerEvent) => {\n if (isContextMenu.current) {\n if (!interactedOutside.current && e.pointerType === 'touch') {\n // First interaction should be ignored, because\n // this is what triggered the context menu to open\n interactedOutside.current = true;\n return;\n }\n\n if (e.button === 0) {\n onChange(e as any, false);\n }\n } else {\n if (\n e.target instanceof HTMLElement &&\n e.target !== buttonRef.current &&\n !buttonRef.current?.contains(e.target)\n ) {\n onChange(e as any, false);\n }\n }\n e.preventDefault();\n },\n [buttonRef, isContextMenu, onChange]\n );\n\n useOnClickOutside(menuListRef, handleClickOutside, open);\n\n function handleKeyDown(e: KeyboardEvent<HTMLUListElement>) {\n switch (e.key) {\n case 'Escape':\n case 'Tab': {\n onChange(e, false);\n e.preventDefault(); // prevents focusing on next element, because we will be handling it\n itemSearchStr.current = '';\n buttonRef.current?.focus();\n break;\n }\n case 'Home':\n case 'End':\n case 'ArrowDown':\n case 'ArrowUp':\n e.preventDefault();\n itemSearchStr.current = '';\n const allItems = scope ? scope.current.queryAllNodes(queryScope) : [];\n const currentIndex = allItems.findIndex((e) => e === navigationItem);\n if (allItems.length === 0) {\n return;\n }\n let nextIndex: number = currentIndex;\n switch (e.key) {\n case 'ArrowUp':\n nextIndex += -1;\n break;\n case 'ArrowDown':\n nextIndex += 1;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = -1;\n break;\n }\n // We already checked if allItems.length = 0 above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n nextIndex = getCircularIndex(nextIndex, allItems.length)!;\n onNavigate && onNavigate(allItems[nextIndex]);\n break;\n default: {\n if (e.key.length === 1 && !e.ctrlKey && !e.altKey) {\n // A-Z\n e.preventDefault();\n\n if (\n itemSearchStr.current.length === 0 ||\n itemSearchStr.current.slice(-1) !== e.key\n ) {\n itemSearchStr.current = itemSearchStr.current + e.key;\n }\n clearTimeout(itemSearchClearTimeout.current as any);\n itemSearchClearTimeout.current = setTimeout(() => {\n itemSearchStr.current = '';\n }, 500);\n\n const allItems = scope\n ? scope.current.queryAllNodes(queryScope)\n : [];\n const currentIndex = allItems.findIndex(\n (e) => e === navigationItem\n );\n const searchStr = itemSearchStr.current;\n let nextIndex = -1;\n for (\n let i = searchStr.length === 1 ? 1 : 0;\n i < allItems.length;\n i++\n ) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const idx = getCircularIndex(currentIndex + i, allItems.length)!;\n const dom = allItems[idx];\n const domText = dom.innerText.toLowerCase();\n if (domText.length > 0 && domText.startsWith(searchStr)) {\n nextIndex = idx;\n break;\n }\n }\n if (nextIndex >= 0 && nextIndex < allItems.length) {\n onNavigate && onNavigate(allItems[nextIndex]);\n }\n }\n }\n }\n }\n\n if (!open) {\n interactedOutside.current = false;\n return null;\n }\n\n return (\n <MenuListProvider\n value={{\n navigationItem,\n onNavigate,\n }}\n >\n <Comp\n ref={assignMultipleRefs(forwardedRef, menuListRef)}\n as={innerAs}\n id={menuListIdRef.current}\n role=\"menu\"\n aria-labelledby={buttonRef.current?.id}\n data-menu-list=\"\"\n tabIndex=\"-1\"\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n {...otherProps}\n />\n </MenuListProvider>\n );\n }\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MenuList.js","names":["useCallback","forwardRef","useEffect","useRef","useState","useLayoutEffect","useMenuContext","MenuListProvider","assignMultipleRefs","useOnClickOutside","useScope","queryScope","getCircularIndex","wrapEvent","useEnhancedEffect","window","MenuList","props","forwardedRef","as","Comp","innerAs","onKeyDown","preferredId","id","defaultActiveItemValue","otherProps","interactedOutside","itemSearchStr","itemSearchClearTimeout","menuListIdRef","buttonRef","onChange","openWithArrowKeyRef","open","isContextMenu","navigationItem","setNavigationItem","mounted","setMounted","menuListRef","scope","onNavigate","el","focus","current","allItems","queryAllNodes","index","length","i","dataset","value","Array","isArray","set","Set","val","has","handleClickOutside","e","pointerType","button","target","HTMLElement","contains","preventDefault","handleKeyDown","key","currentIndex","findIndex","nextIndex","ctrlKey","altKey","slice","clearTimeout","setTimeout","searchStr","idx","dom","domText","innerText","toLowerCase","startsWith"],"sources":["../../../src/Menu/MenuList.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType, KeyboardEvent } from 'react';\r\nimport {\r\n useCallback,\r\n forwardRef,\r\n useEffect,\r\n useRef,\r\n useState,\r\n useLayoutEffect,\r\n} from 'react';\r\n\r\nimport { useMenuContext, MenuListProvider } from './context';\r\nimport { assignMultipleRefs } from '../utils/assign-ref';\r\nimport { useOnClickOutside } from '../hooks/useOnClickOutside';\r\nimport { useScope } from '../hooks';\r\nimport { queryScope } from './scope';\r\nimport { getCircularIndex, wrapEvent } from '../utils';\r\n\r\nconst useEnhancedEffect =\r\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\r\n\r\nexport interface MenuListProps extends HTMLAttributes<HTMLUListElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n defaultActiveItemValue?: string | string[];\r\n}\r\n\r\nexport const MenuList = forwardRef<HTMLUListElement, MenuListProps>(\r\n function MenuList(props, forwardedRef) {\r\n const {\r\n as: Comp = 'ul',\r\n innerAs,\r\n onKeyDown,\r\n id: preferredId,\r\n defaultActiveItemValue,\r\n ...otherProps\r\n } = props;\r\n\r\n const interactedOutside = useRef(false);\r\n const itemSearchStr = useRef('');\r\n const itemSearchClearTimeout = useRef<ReturnType<typeof setTimeout>>();\r\n\r\n const {\r\n menuListIdRef,\r\n buttonRef,\r\n onChange,\r\n openWithArrowKeyRef,\r\n open,\r\n isContextMenu,\r\n } = useMenuContext();\r\n\r\n const [navigationItem, setNavigationItem] = useState<\r\n HTMLElement | undefined\r\n >();\r\n\r\n const [mounted, setMounted] = useState(false);\r\n\r\n const menuListRef = useRef<HTMLUListElement>();\r\n\r\n const scope = useScope<HTMLLIElement, HTMLUListElement>(menuListRef);\r\n\r\n const onNavigate = (el: HTMLElement) => {\r\n el.focus();\r\n setNavigationItem(el);\r\n };\r\n\r\n menuListIdRef.current = preferredId || menuListIdRef.current;\r\n\r\n useEnhancedEffect(() => {\r\n if (!mounted) {\r\n const allItems = scope.current.queryAllNodes(queryScope);\r\n let index = getCircularIndex(\r\n openWithArrowKeyRef.current === 'ArrowUp' ? -1 : 0,\r\n allItems.length\r\n );\r\n\r\n if (defaultActiveItemValue) {\r\n if (typeof defaultActiveItemValue === 'string') {\r\n for (let i = 0; i < allItems.length; i++) {\r\n if (allItems[i].dataset.value === defaultActiveItemValue) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n } else if (Array.isArray(defaultActiveItemValue)) {\r\n const set = new Set(defaultActiveItemValue);\r\n for (let i = 0; i < allItems.length; i++) {\r\n const val = allItems[i].dataset.value;\r\n if (val && set.has(val)) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (index !== null) {\r\n onNavigate && onNavigate(allItems[index]);\r\n }\r\n }\r\n\r\n openWithArrowKeyRef.current = null;\r\n setMounted(true);\r\n }, [\r\n mounted,\r\n navigationItem,\r\n onNavigate,\r\n openWithArrowKeyRef,\r\n scope,\r\n defaultActiveItemValue,\r\n ]);\r\n\r\n const handleClickOutside = useCallback(\r\n (e: PointerEvent) => {\r\n if (isContextMenu.current) {\r\n if (!interactedOutside.current && e.pointerType === 'touch') {\r\n // First interaction should be ignored, because\r\n // this is what triggered the context menu to open\r\n interactedOutside.current = true;\r\n return;\r\n }\r\n\r\n if (e.button === 0) {\r\n onChange(e as any, false);\r\n }\r\n } else {\r\n if (\r\n e.target instanceof HTMLElement &&\r\n e.target !== buttonRef.current &&\r\n !buttonRef.current?.contains(e.target)\r\n ) {\r\n onChange(e as any, false);\r\n }\r\n }\r\n e.preventDefault();\r\n },\r\n [buttonRef, isContextMenu, onChange]\r\n );\r\n\r\n useOnClickOutside(menuListRef, handleClickOutside, open);\r\n\r\n function handleKeyDown(e: KeyboardEvent<HTMLUListElement>) {\r\n switch (e.key) {\r\n case 'Escape':\r\n case 'Tab': {\r\n onChange(e, false);\r\n e.preventDefault(); // prevents focusing on next element, because we will be handling it\r\n itemSearchStr.current = '';\r\n buttonRef.current?.focus();\r\n break;\r\n }\r\n case 'Home':\r\n case 'End':\r\n case 'ArrowDown':\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n itemSearchStr.current = '';\r\n const allItems = scope ? scope.current.queryAllNodes(queryScope) : [];\r\n const currentIndex = allItems.findIndex((e) => e === navigationItem);\r\n if (allItems.length === 0) {\r\n return;\r\n }\r\n let nextIndex: number = currentIndex;\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n nextIndex += -1;\r\n break;\r\n case 'ArrowDown':\r\n nextIndex += 1;\r\n break;\r\n case 'Home':\r\n nextIndex = 0;\r\n break;\r\n case 'End':\r\n nextIndex = -1;\r\n break;\r\n }\r\n // We already checked if allItems.length = 0 above\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n nextIndex = getCircularIndex(nextIndex, allItems.length)!;\r\n onNavigate && onNavigate(allItems[nextIndex]);\r\n break;\r\n default: {\r\n if (e.key.length === 1 && !e.ctrlKey && !e.altKey) {\r\n // A-Z\r\n e.preventDefault();\r\n\r\n if (\r\n itemSearchStr.current.length === 0 ||\r\n itemSearchStr.current.slice(-1) !== e.key\r\n ) {\r\n itemSearchStr.current = itemSearchStr.current + e.key;\r\n }\r\n clearTimeout(itemSearchClearTimeout.current as any);\r\n itemSearchClearTimeout.current = setTimeout(() => {\r\n itemSearchStr.current = '';\r\n }, 500);\r\n\r\n const allItems = scope\r\n ? scope.current.queryAllNodes(queryScope)\r\n : [];\r\n const currentIndex = allItems.findIndex(\r\n (e) => e === navigationItem\r\n );\r\n const searchStr = itemSearchStr.current;\r\n let nextIndex = -1;\r\n for (\r\n let i = searchStr.length === 1 ? 1 : 0;\r\n i < allItems.length;\r\n i++\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const idx = getCircularIndex(currentIndex + i, allItems.length)!;\r\n const dom = allItems[idx];\r\n const domText = dom.innerText.toLowerCase();\r\n if (domText.length > 0 && domText.startsWith(searchStr)) {\r\n nextIndex = idx;\r\n break;\r\n }\r\n }\r\n if (nextIndex >= 0 && nextIndex < allItems.length) {\r\n onNavigate && onNavigate(allItems[nextIndex]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!open) {\r\n interactedOutside.current = false;\r\n return null;\r\n }\r\n\r\n return (\r\n <MenuListProvider\r\n value={{\r\n navigationItem,\r\n onNavigate,\r\n }}\r\n >\r\n <Comp\r\n ref={assignMultipleRefs(forwardedRef, menuListRef)}\r\n as={innerAs}\r\n id={menuListIdRef.current}\r\n role=\"menu\"\r\n aria-labelledby={buttonRef.current?.id}\r\n data-menu-list=\"\"\r\n tabIndex=\"-1\"\r\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\r\n {...otherProps}\r\n />\r\n </MenuListProvider>\r\n );\r\n }\r\n);\r\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ElementType, ReactNode } from 'react';
|
|
2
|
-
import type { PopperProps } from '../Popper';
|
|
3
|
-
export interface MenuPopoverProps extends Omit<PopperProps, 'anchorEl'> {
|
|
4
|
-
as?: ElementType<any>;
|
|
5
|
-
innerAs?: ElementType<any>;
|
|
6
|
-
children?: ReactNode;
|
|
7
|
-
}
|
|
8
|
-
export declare const MenuPopover: import("react").ForwardRefExoticComponent<MenuPopoverProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
1
|
+
import type { ElementType, ReactNode } from 'react';
|
|
2
|
+
import type { PopperProps } from '../Popper';
|
|
3
|
+
export interface MenuPopoverProps extends Omit<PopperProps, 'anchorEl'> {
|
|
4
|
+
as?: ElementType<any>;
|
|
5
|
+
innerAs?: ElementType<any>;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare const MenuPopover: import("react").ForwardRefExoticComponent<MenuPopoverProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuPopover.js","names":["forwardRef","Popper","useMenuContext","MenuPopover","props","forwardedRef","as","innerAs","otherProps","buttonRef","open","offsetFn","isContextMenu","current","undefined"],"sources":["../../../src/Menu/MenuPopover.tsx"],"sourcesContent":["import type { ElementType, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { PopperProps } from '../Popper';\nimport { Popper } from '../Popper';\nimport { useMenuContext } from './context';\n\nexport interface MenuPopoverProps extends Omit<PopperProps, 'anchorEl'> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n}\n\nexport const MenuPopover = forwardRef<HTMLDivElement, MenuPopoverProps>(\n function MenuPopover(props, forwardedRef) {\n const { as = 'div', innerAs, ...otherProps } = props;\n const { buttonRef, open, offsetFn, isContextMenu } = useMenuContext();\n\n if (!open) {\n return null;\n }\n\n return (\n <Popper\n as={as}\n innerAs={innerAs}\n ref={forwardedRef}\n anchorEl={buttonRef}\n offsetFn={offsetFn}\n placement={isContextMenu.current ? 'bottom-start' : undefined}\n {...otherProps}\n />\n );\n }\n);\n"],"mappings":";;;AACA,SAASA,UAAT,QAA2B,OAA3B;AAGA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,cAAT,QAA+B,WAA/B;;AAQA,OAAO,IAAMC,WAAW,gBAAGH,UAAU,CACnC,SAASG,WAAT,CAAqBC,KAArB,EAA4BC,YAA5B,EAA0C;EACxC,gBAA+CD,KAA/C,CAAQE,EAAR;EAAA,IAAQA,EAAR,0BAAa,KAAb;EAAA,IAAoBC,OAApB,GAA+CH,KAA/C,CAAoBG,OAApB;EAAA,IAAgCC,UAAhC,4BAA+CJ,KAA/C;;EACA,sBAAqDF,cAAc,EAAnE;EAAA,IAAQO,SAAR,mBAAQA,SAAR;EAAA,IAAmBC,IAAnB,mBAAmBA,IAAnB;EAAA,IAAyBC,QAAzB,mBAAyBA,QAAzB;EAAA,IAAmCC,aAAnC,mBAAmCA,aAAnC;;EAEA,IAAI,CAACF,IAAL,EAAW;IACT,OAAO,IAAP;EACD;;EAED,oBACE,KAAC,MAAD;IACE,EAAE,EAAEJ,EADN;IAEE,OAAO,EAAEC,OAFX;IAGE,GAAG,EAAEF,YAHP;IAIE,QAAQ,EAAEI,SAJZ;IAKE,QAAQ,EAAEE,QALZ;IAME,SAAS,EAAEC,aAAa,CAACC,OAAd,GAAwB,cAAxB,GAAyCC;EANtD,GAOMN,UAPN,EADF;AAWD,CApBkC,CAA9B"}
|
|
1
|
+
{"version":3,"file":"MenuPopover.js","names":["forwardRef","Popper","useMenuContext","MenuPopover","props","forwardedRef","as","innerAs","otherProps","buttonRef","open","offsetFn","isContextMenu","current","undefined"],"sources":["../../../src/Menu/MenuPopover.tsx"],"sourcesContent":["import type { ElementType, ReactNode } from 'react';\r\nimport { forwardRef } from 'react';\r\n\r\nimport type { PopperProps } from '../Popper';\r\nimport { Popper } from '../Popper';\r\nimport { useMenuContext } from './context';\r\n\r\nexport interface MenuPopoverProps extends Omit<PopperProps, 'anchorEl'> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n}\r\n\r\nexport const MenuPopover = forwardRef<HTMLDivElement, MenuPopoverProps>(\r\n function MenuPopover(props, forwardedRef) {\r\n const { as = 'div', innerAs, ...otherProps } = props;\r\n const { buttonRef, open, offsetFn, isContextMenu } = useMenuContext();\r\n\r\n if (!open) {\r\n return null;\r\n }\r\n\r\n return (\r\n <Popper\r\n as={as}\r\n innerAs={innerAs}\r\n ref={forwardedRef}\r\n anchorEl={buttonRef}\r\n offsetFn={offsetFn}\r\n placement={isContextMenu.current ? 'bottom-start' : undefined}\r\n {...otherProps}\r\n />\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AACA,SAASA,UAAT,QAA2B,OAA3B;AAGA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,cAAT,QAA+B,WAA/B;;AAQA,OAAO,IAAMC,WAAW,gBAAGH,UAAU,CACnC,SAASG,WAAT,CAAqBC,KAArB,EAA4BC,YAA5B,EAA0C;EACxC,gBAA+CD,KAA/C,CAAQE,EAAR;EAAA,IAAQA,EAAR,0BAAa,KAAb;EAAA,IAAoBC,OAApB,GAA+CH,KAA/C,CAAoBG,OAApB;EAAA,IAAgCC,UAAhC,4BAA+CJ,KAA/C;;EACA,sBAAqDF,cAAc,EAAnE;EAAA,IAAQO,SAAR,mBAAQA,SAAR;EAAA,IAAmBC,IAAnB,mBAAmBA,IAAnB;EAAA,IAAyBC,QAAzB,mBAAyBA,QAAzB;EAAA,IAAmCC,aAAnC,mBAAmCA,aAAnC;;EAEA,IAAI,CAACF,IAAL,EAAW;IACT,OAAO,IAAP;EACD;;EAED,oBACE,KAAC,MAAD;IACE,EAAE,EAAEJ,EADN;IAEE,OAAO,EAAEC,OAFX;IAGE,GAAG,EAAEF,YAHP;IAIE,QAAQ,EAAEI,SAJZ;IAKE,QAAQ,EAAEE,QALZ;IAME,SAAS,EAAEC,aAAa,CAACC,OAAd,GAAwB,cAAxB,GAAyCC;EANtD,GAOMN,UAPN,EADF;AAWD,CApBkC,CAA9B"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import type { OffsetsFunction } from '@popperjs/core/lib/modifiers/offset';
|
|
2
|
-
import type { Dispatch, KeyboardEvent, MouseEvent, MutableRefObject, PointerEvent, SetStateAction } from 'react';
|
|
3
|
-
export declare type ItemObject = {
|
|
4
|
-
text: string;
|
|
5
|
-
value: any;
|
|
6
|
-
id: string | undefined;
|
|
7
|
-
};
|
|
8
|
-
export interface MenuContextProps {
|
|
9
|
-
buttonRef: MutableRefObject<HTMLElement | null>;
|
|
10
|
-
menuListIdRef: MutableRefObject<undefined | string>;
|
|
11
|
-
openWithArrowKeyRef: MutableRefObject<string | null>;
|
|
12
|
-
onChange: (e: KeyboardEvent<HTMLElement> | MouseEvent<HTMLElement> | PointerEvent<HTMLElement>, isOpen: boolean) => void;
|
|
13
|
-
open: boolean;
|
|
14
|
-
offsetFn: OffsetsFunction | undefined;
|
|
15
|
-
setOffsetFn: Dispatch<SetStateAction<OffsetsFunction | undefined>>;
|
|
16
|
-
isContextMenu: MutableRefObject<boolean>;
|
|
17
|
-
}
|
|
18
|
-
export declare const MenuProvider: import("react").Provider<MenuContextProps>;
|
|
19
|
-
export declare const useMenuContext: () => MenuContextProps;
|
|
20
|
-
export interface MenuListContextProps {
|
|
21
|
-
navigationItem: HTMLElement | undefined;
|
|
22
|
-
onNavigate: undefined | ((idx: HTMLElement) => void);
|
|
23
|
-
}
|
|
24
|
-
export declare const MenuListProvider: import("react").Provider<MenuListContextProps>;
|
|
25
|
-
export declare const useMenuListContext: () => MenuListContextProps;
|
|
1
|
+
import type { OffsetsFunction } from '@popperjs/core/lib/modifiers/offset';
|
|
2
|
+
import type { Dispatch, KeyboardEvent, MouseEvent, MutableRefObject, PointerEvent, SetStateAction } from 'react';
|
|
3
|
+
export declare type ItemObject = {
|
|
4
|
+
text: string;
|
|
5
|
+
value: any;
|
|
6
|
+
id: string | undefined;
|
|
7
|
+
};
|
|
8
|
+
export interface MenuContextProps {
|
|
9
|
+
buttonRef: MutableRefObject<HTMLElement | null>;
|
|
10
|
+
menuListIdRef: MutableRefObject<undefined | string>;
|
|
11
|
+
openWithArrowKeyRef: MutableRefObject<string | null>;
|
|
12
|
+
onChange: (e: KeyboardEvent<HTMLElement> | MouseEvent<HTMLElement> | PointerEvent<HTMLElement>, isOpen: boolean) => void;
|
|
13
|
+
open: boolean;
|
|
14
|
+
offsetFn: OffsetsFunction | undefined;
|
|
15
|
+
setOffsetFn: Dispatch<SetStateAction<OffsetsFunction | undefined>>;
|
|
16
|
+
isContextMenu: MutableRefObject<boolean>;
|
|
17
|
+
}
|
|
18
|
+
export declare const MenuProvider: import("react").Provider<MenuContextProps>;
|
|
19
|
+
export declare const useMenuContext: () => MenuContextProps;
|
|
20
|
+
export interface MenuListContextProps {
|
|
21
|
+
navigationItem: HTMLElement | undefined;
|
|
22
|
+
onNavigate: undefined | ((idx: HTMLElement) => void);
|
|
23
|
+
}
|
|
24
|
+
export declare const MenuListProvider: import("react").Provider<MenuListContextProps>;
|
|
25
|
+
export declare const useMenuListContext: () => MenuListContextProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":["createContext","useContext","menuContext","MenuProvider","Provider","useMenuContext","menuListContext","MenuListProvider","useMenuListContext"],"sources":["../../../src/Menu/context.ts"],"sourcesContent":["import type { OffsetsFunction } from '@popperjs/core/lib/modifiers/offset';\nimport type {\n Dispatch,\n KeyboardEvent,\n MouseEvent,\n MutableRefObject,\n PointerEvent,\n SetStateAction,\n} from 'react';\nimport { createContext, useContext } from 'react';\n\nexport type ItemObject = { text: string; value: any; id: string | undefined };\n\n// MenuRoot\nexport interface MenuContextProps {\n buttonRef: MutableRefObject<HTMLElement | null>;\n menuListIdRef: MutableRefObject<undefined | string>;\n openWithArrowKeyRef: MutableRefObject<string | null>;\n onChange: (\n e:\n | KeyboardEvent<HTMLElement>\n | MouseEvent<HTMLElement>\n | PointerEvent<HTMLElement>,\n isOpen: boolean\n ) => void;\n open: boolean;\n offsetFn: OffsetsFunction | undefined;\n setOffsetFn: Dispatch<SetStateAction<OffsetsFunction | undefined>>;\n isContextMenu: MutableRefObject<boolean>;\n}\n\nconst menuContext = createContext<MenuContextProps>(null as any);\nexport const { Provider: MenuProvider } = menuContext;\nexport const useMenuContext = () => useContext(menuContext);\n\n// MenuList\nexport interface MenuListContextProps {\n navigationItem: HTMLElement | undefined;\n onNavigate: undefined | ((idx: HTMLElement) => void);\n}\n\nconst menuListContext = createContext<MenuListContextProps>(null as any);\nexport const MenuListProvider = menuListContext.Provider;\nexport const useMenuListContext = () => useContext(menuListContext);\n"],"mappings":"AASA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAsBA,IAAMC,WAAW,gBAAGF,aAAa,CAAmB,IAAnB,CAAjC;AACO,IAAkBG,YAAlB,GAAmCD,WAAnC,CAAQE,QAAR;;AACP,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;EAAA,OAAMJ,UAAU,CAACC,WAAD,CAAhB;AAAA,CAAvB,C,CAEP;;AAMA,IAAMI,eAAe,gBAAGN,aAAa,CAAuB,IAAvB,CAArC;AACA,OAAO,IAAMO,gBAAgB,GAAGD,eAAe,CAACF,QAAzC;AACP,OAAO,IAAMI,kBAAkB,GAAG,SAArBA,kBAAqB;EAAA,OAAMP,UAAU,CAACK,eAAD,CAAhB;AAAA,CAA3B"}
|
|
1
|
+
{"version":3,"file":"context.js","names":["createContext","useContext","menuContext","MenuProvider","Provider","useMenuContext","menuListContext","MenuListProvider","useMenuListContext"],"sources":["../../../src/Menu/context.ts"],"sourcesContent":["import type { OffsetsFunction } from '@popperjs/core/lib/modifiers/offset';\r\nimport type {\r\n Dispatch,\r\n KeyboardEvent,\r\n MouseEvent,\r\n MutableRefObject,\r\n PointerEvent,\r\n SetStateAction,\r\n} from 'react';\r\nimport { createContext, useContext } from 'react';\r\n\r\nexport type ItemObject = { text: string; value: any; id: string | undefined };\r\n\r\n// MenuRoot\r\nexport interface MenuContextProps {\r\n buttonRef: MutableRefObject<HTMLElement | null>;\r\n menuListIdRef: MutableRefObject<undefined | string>;\r\n openWithArrowKeyRef: MutableRefObject<string | null>;\r\n onChange: (\r\n e:\r\n | KeyboardEvent<HTMLElement>\r\n | MouseEvent<HTMLElement>\r\n | PointerEvent<HTMLElement>,\r\n isOpen: boolean\r\n ) => void;\r\n open: boolean;\r\n offsetFn: OffsetsFunction | undefined;\r\n setOffsetFn: Dispatch<SetStateAction<OffsetsFunction | undefined>>;\r\n isContextMenu: MutableRefObject<boolean>;\r\n}\r\n\r\nconst menuContext = createContext<MenuContextProps>(null as any);\r\nexport const { Provider: MenuProvider } = menuContext;\r\nexport const useMenuContext = () => useContext(menuContext);\r\n\r\n// MenuList\r\nexport interface MenuListContextProps {\r\n navigationItem: HTMLElement | undefined;\r\n onNavigate: undefined | ((idx: HTMLElement) => void);\r\n}\r\n\r\nconst menuListContext = createContext<MenuListContextProps>(null as any);\r\nexport const MenuListProvider = menuListContext.Provider;\r\nexport const useMenuListContext = () => useContext(menuListContext);\r\n"],"mappings":"AASA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAsBA,IAAMC,WAAW,gBAAGF,aAAa,CAAmB,IAAnB,CAAjC;AACO,IAAkBG,YAAlB,GAAmCD,WAAnC,CAAQE,QAAR;;AACP,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;EAAA,OAAMJ,UAAU,CAACC,WAAD,CAAhB;AAAA,CAAvB,C,CAEP;;AAMA,IAAMI,eAAe,gBAAGN,aAAa,CAAuB,IAAvB,CAArC;AACA,OAAO,IAAMO,gBAAgB,GAAGD,eAAe,CAACF,QAAzC;AACP,OAAO,IAAMI,kBAAkB,GAAG,SAArBA,kBAAqB;EAAA,OAAMP,UAAU,CAACK,eAAD,CAAhB;AAAA,CAA3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const countryList: string[];
|
|
1
|
+
export declare const countryList: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countryList.js","names":["countryList"],"sources":["../../../../src/Menu/fixtures/countryList.ts"],"sourcesContent":["export const countryList = [\n 'Afghanistan',\n 'Albania',\n 'Algeria',\n 'Andorra',\n 'Angola',\n 'Antigua and Barbuda',\n 'Argentina',\n 'Armenia',\n 'Australia',\n 'Austria',\n 'Azerbaijan',\n 'Bahamas',\n 'Bahrain',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Belgium',\n 'Belize',\n 'Benin',\n 'Bhutan',\n 'Bolivia',\n 'Bosnia and Herzegovina',\n 'Botswana',\n 'Brazil',\n 'Brunei',\n 'Bulgaria',\n 'Burkina Faso',\n 'Burundi',\n \"Côte d'Ivoire\",\n 'Cabo Verde',\n 'Cambodia',\n 'Cameroon',\n 'Canada',\n 'Central African Republic',\n 'Central American Republic',\n 'Chad',\n 'Chile',\n 'China',\n 'Colombia',\n 'Comoros',\n 'Congo (Congo-Brazzaville)',\n 'Costa Rica',\n 'Croatia',\n 'Cuba',\n 'Cyprus',\n 'Czechia (Czech Republic)',\n 'Democratic Republic of the Congo',\n 'Denmark',\n 'Djibouti',\n 'Dominica',\n 'Dominican Republic',\n 'Ecuador',\n 'Egypt',\n 'El Salvador',\n 'Equatorial Guinea',\n 'Eritrea',\n 'Estonia',\n 'Eswatini (fmr. \"Swaziland\")',\n 'Ethiopia',\n 'Fiji',\n 'Finland',\n 'France',\n 'Gabon',\n 'Gambia',\n 'Georgia',\n 'Germany',\n 'Ghana',\n 'Greece',\n 'Grenada',\n 'Guatemala',\n 'Guinea',\n 'Guinea-Bissau',\n 'Guyana',\n 'Haiti',\n 'Holy See',\n 'Honduras',\n 'Hungary',\n 'Iceland',\n 'India',\n 'Indonesia',\n 'Iran',\n 'Iraq',\n 'Ireland',\n 'Israel',\n 'Italy',\n 'Jamaica',\n 'Japan',\n 'Jordan',\n 'Kazakhstan',\n 'Kenya',\n 'Kiribati',\n 'Kuwait',\n 'Kyrgyzstan',\n 'Laos',\n 'Latvia',\n 'Lebanon',\n 'Lesotho',\n 'Liberia',\n 'Libya',\n 'Liechtenstein',\n 'Lithuania',\n 'Luxembourg',\n 'Madagascar',\n 'Malawi',\n 'Malaysia',\n 'Maldives',\n 'Mali',\n 'Malta',\n 'Marshall Islands',\n 'Mauritania',\n 'Mauritius',\n 'Mexico',\n 'Micronesia',\n 'Moldova',\n 'Monaco',\n 'Mongolia',\n 'Montenegro',\n 'Morocco',\n 'Mozambique',\n 'Myanmar (formerly Burma)',\n 'Namibia',\n 'Nauru',\n 'Nepal',\n 'Netherlands',\n 'New Zealand',\n 'Nicaragua',\n 'Niger',\n 'Nigeria',\n 'North Korea',\n 'North Macedonia',\n 'Norway',\n 'Oman',\n 'Pakistan',\n 'Palau',\n 'Palestine State',\n 'Panama',\n 'Papua New Guinea',\n 'Paraguay',\n 'Peru',\n 'Philippines',\n 'Poland',\n 'Portugal',\n 'Qatar',\n 'Romania',\n 'Russia',\n 'Rwanda',\n 'Saint Kitts and Nevis',\n 'Saint Lucia',\n 'Saint Vincent and the Grenadines',\n 'Samoa',\n 'San Marino',\n 'Sao Tome and Principe',\n 'Saudi Arabia',\n 'Senegal',\n 'Serbia',\n 'Seychelles',\n 'Sierra Leone',\n 'Singapore',\n 'Slovakia',\n 'Slovenia',\n 'Solomon Islands',\n 'Somalia',\n 'South Africa',\n 'South Korea',\n 'South Sudan',\n 'Spain',\n 'Sri Lanka',\n 'Sudan',\n 'Suriname',\n 'Sweden',\n 'Switzerland',\n 'Syria',\n 'Tajikistan',\n 'Tanzania',\n 'Thailand',\n 'Timor-Leste',\n 'Togo',\n 'Tonga',\n 'Trinidad and Tobago',\n 'Tunisia',\n 'Turkey',\n 'Turkmenistan',\n 'Tuvalu',\n 'Uganda',\n 'Ukraine',\n 'United Arab Emirates',\n 'United Kingdom',\n 'United States of America',\n 'Uruguay',\n 'Uzbekistan',\n 'Vanuatu',\n 'Venezuela',\n 'Vietnam',\n 'Yemen',\n 'Zambia',\n 'Zimbabwe',\n];\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"countryList.js","names":["countryList"],"sources":["../../../../src/Menu/fixtures/countryList.ts"],"sourcesContent":["export const countryList = [\r\n 'Afghanistan',\r\n 'Albania',\r\n 'Algeria',\r\n 'Andorra',\r\n 'Angola',\r\n 'Antigua and Barbuda',\r\n 'Argentina',\r\n 'Armenia',\r\n 'Australia',\r\n 'Austria',\r\n 'Azerbaijan',\r\n 'Bahamas',\r\n 'Bahrain',\r\n 'Bangladesh',\r\n 'Barbados',\r\n 'Belarus',\r\n 'Belgium',\r\n 'Belize',\r\n 'Benin',\r\n 'Bhutan',\r\n 'Bolivia',\r\n 'Bosnia and Herzegovina',\r\n 'Botswana',\r\n 'Brazil',\r\n 'Brunei',\r\n 'Bulgaria',\r\n 'Burkina Faso',\r\n 'Burundi',\r\n \"Côte d'Ivoire\",\r\n 'Cabo Verde',\r\n 'Cambodia',\r\n 'Cameroon',\r\n 'Canada',\r\n 'Central African Republic',\r\n 'Central American Republic',\r\n 'Chad',\r\n 'Chile',\r\n 'China',\r\n 'Colombia',\r\n 'Comoros',\r\n 'Congo (Congo-Brazzaville)',\r\n 'Costa Rica',\r\n 'Croatia',\r\n 'Cuba',\r\n 'Cyprus',\r\n 'Czechia (Czech Republic)',\r\n 'Democratic Republic of the Congo',\r\n 'Denmark',\r\n 'Djibouti',\r\n 'Dominica',\r\n 'Dominican Republic',\r\n 'Ecuador',\r\n 'Egypt',\r\n 'El Salvador',\r\n 'Equatorial Guinea',\r\n 'Eritrea',\r\n 'Estonia',\r\n 'Eswatini (fmr. \"Swaziland\")',\r\n 'Ethiopia',\r\n 'Fiji',\r\n 'Finland',\r\n 'France',\r\n 'Gabon',\r\n 'Gambia',\r\n 'Georgia',\r\n 'Germany',\r\n 'Ghana',\r\n 'Greece',\r\n 'Grenada',\r\n 'Guatemala',\r\n 'Guinea',\r\n 'Guinea-Bissau',\r\n 'Guyana',\r\n 'Haiti',\r\n 'Holy See',\r\n 'Honduras',\r\n 'Hungary',\r\n 'Iceland',\r\n 'India',\r\n 'Indonesia',\r\n 'Iran',\r\n 'Iraq',\r\n 'Ireland',\r\n 'Israel',\r\n 'Italy',\r\n 'Jamaica',\r\n 'Japan',\r\n 'Jordan',\r\n 'Kazakhstan',\r\n 'Kenya',\r\n 'Kiribati',\r\n 'Kuwait',\r\n 'Kyrgyzstan',\r\n 'Laos',\r\n 'Latvia',\r\n 'Lebanon',\r\n 'Lesotho',\r\n 'Liberia',\r\n 'Libya',\r\n 'Liechtenstein',\r\n 'Lithuania',\r\n 'Luxembourg',\r\n 'Madagascar',\r\n 'Malawi',\r\n 'Malaysia',\r\n 'Maldives',\r\n 'Mali',\r\n 'Malta',\r\n 'Marshall Islands',\r\n 'Mauritania',\r\n 'Mauritius',\r\n 'Mexico',\r\n 'Micronesia',\r\n 'Moldova',\r\n 'Monaco',\r\n 'Mongolia',\r\n 'Montenegro',\r\n 'Morocco',\r\n 'Mozambique',\r\n 'Myanmar (formerly Burma)',\r\n 'Namibia',\r\n 'Nauru',\r\n 'Nepal',\r\n 'Netherlands',\r\n 'New Zealand',\r\n 'Nicaragua',\r\n 'Niger',\r\n 'Nigeria',\r\n 'North Korea',\r\n 'North Macedonia',\r\n 'Norway',\r\n 'Oman',\r\n 'Pakistan',\r\n 'Palau',\r\n 'Palestine State',\r\n 'Panama',\r\n 'Papua New Guinea',\r\n 'Paraguay',\r\n 'Peru',\r\n 'Philippines',\r\n 'Poland',\r\n 'Portugal',\r\n 'Qatar',\r\n 'Romania',\r\n 'Russia',\r\n 'Rwanda',\r\n 'Saint Kitts and Nevis',\r\n 'Saint Lucia',\r\n 'Saint Vincent and the Grenadines',\r\n 'Samoa',\r\n 'San Marino',\r\n 'Sao Tome and Principe',\r\n 'Saudi Arabia',\r\n 'Senegal',\r\n 'Serbia',\r\n 'Seychelles',\r\n 'Sierra Leone',\r\n 'Singapore',\r\n 'Slovakia',\r\n 'Slovenia',\r\n 'Solomon Islands',\r\n 'Somalia',\r\n 'South Africa',\r\n 'South Korea',\r\n 'South Sudan',\r\n 'Spain',\r\n 'Sri Lanka',\r\n 'Sudan',\r\n 'Suriname',\r\n 'Sweden',\r\n 'Switzerland',\r\n 'Syria',\r\n 'Tajikistan',\r\n 'Tanzania',\r\n 'Thailand',\r\n 'Timor-Leste',\r\n 'Togo',\r\n 'Tonga',\r\n 'Trinidad and Tobago',\r\n 'Tunisia',\r\n 'Turkey',\r\n 'Turkmenistan',\r\n 'Tuvalu',\r\n 'Uganda',\r\n 'Ukraine',\r\n 'United Arab Emirates',\r\n 'United Kingdom',\r\n 'United States of America',\r\n 'Uruguay',\r\n 'Uzbekistan',\r\n 'Vanuatu',\r\n 'Venezuela',\r\n 'Vietnam',\r\n 'Yemen',\r\n 'Zambia',\r\n 'Zimbabwe',\r\n];\r\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './Menu';
|
|
2
|
-
export * from './MenuButton';
|
|
3
|
-
export * from './ContextMenuTrigger';
|
|
4
|
-
export * from './MenuItem';
|
|
5
|
-
export * from './MenuList';
|
|
6
|
-
export * from './MenuPopover';
|
|
1
|
+
export * from './Menu';
|
|
2
|
+
export * from './MenuButton';
|
|
3
|
+
export * from './ContextMenuTrigger';
|
|
4
|
+
export * from './MenuItem';
|
|
5
|
+
export * from './MenuList';
|
|
6
|
+
export * from './MenuPopover';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Menu/index.ts"],"sourcesContent":["export * from './Menu';\nexport * from './MenuButton';\nexport * from './ContextMenuTrigger';\nexport * from './MenuItem';\nexport * from './MenuList';\nexport * from './MenuPopover';\n"],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,cAAd;AACA,cAAc,sBAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,eAAd"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Menu/index.ts"],"sourcesContent":["export * from './Menu';\r\nexport * from './MenuButton';\r\nexport * from './ContextMenuTrigger';\r\nexport * from './MenuItem';\r\nexport * from './MenuList';\r\nexport * from './MenuPopover';\r\n"],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,cAAd;AACA,cAAc,sBAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,eAAd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function queryScope(type: string, props: Record<string, unknown>): boolean;
|
|
1
|
+
export declare function queryScope(type: string, props: Record<string, unknown>): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","names":["queryScope","type","props"],"sources":["../../../src/Menu/scope.ts"],"sourcesContent":["export function queryScope(type: string, props: Record<string, unknown>) {\n return (\n props['data-menu-item'] === '' &&\n props['data-disabled'] !== '' &&\n props['data-disabled'] !== true\n );\n}\n"],"mappings":"AAAA,OAAO,SAASA,UAAT,CAAoBC,IAApB,EAAkCC,KAAlC,EAAkE;EACvE,OACEA,KAAK,CAAC,gBAAD,CAAL,KAA4B,EAA5B,IACAA,KAAK,CAAC,eAAD,CAAL,KAA2B,EAD3B,IAEAA,KAAK,CAAC,eAAD,CAAL,KAA2B,IAH7B;AAKD"}
|
|
1
|
+
{"version":3,"file":"scope.js","names":["queryScope","type","props"],"sources":["../../../src/Menu/scope.ts"],"sourcesContent":["export function queryScope(type: string, props: Record<string, unknown>) {\r\n return (\r\n props['data-menu-item'] === '' &&\r\n props['data-disabled'] !== '' &&\r\n props['data-disabled'] !== true\r\n );\r\n}\r\n"],"mappings":"AAAA,OAAO,SAASA,UAAT,CAAoBC,IAApB,EAAkCC,KAAlC,EAAkE;EACvE,OACEA,KAAK,CAAC,gBAAD,CAAL,KAA4B,EAA5B,IACAA,KAAK,CAAC,eAAD,CAAL,KAA2B,EAD3B,IAEAA,KAAK,CAAC,eAAD,CAAL,KAA2B,IAH7B;AAKD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { CSSProperties, ElementType, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
export interface ModalProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
-
as?: ElementType<any>;
|
|
4
|
-
innerAs?: ElementType<any>;
|
|
5
|
-
children?: ReactNode;
|
|
6
|
-
style?: CSSProperties;
|
|
7
|
-
trapFocus?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare const Modal: import("react").ForwardRefExoticComponent<ModalProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
1
|
+
import type { CSSProperties, ElementType, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface ModalProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
as?: ElementType<any>;
|
|
4
|
+
innerAs?: ElementType<any>;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
trapFocus?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const Modal: import("react").ForwardRefExoticComponent<ModalProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["forwardRef","useRef","useAutoFocus","useFocusReturn","useRemoveBodyScroll","FocusLock","assignMultipleRefs","Modal","ref","as","Comp","children","trapFocus","style","otherProps","modalRef"],"sources":["../../../src/Modal/Modal.tsx"],"sourcesContent":["import type {\n CSSProperties,\n ElementType,\n HTMLAttributes,\n ReactNode,\n} from 'react';\nimport { forwardRef, useRef } from 'react';\n\nimport { useAutoFocus, useFocusReturn, useRemoveBodyScroll } from '../hooks';\nimport { FocusLock } from '../FocusLock';\nimport { assignMultipleRefs } from '../utils';\n\nexport interface ModalProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n style?: CSSProperties;\n trapFocus?: boolean;\n}\n\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(\n (\n { as: Comp = 'div', children, trapFocus = true, style = {}, ...otherProps },\n ref\n ) => {\n const modalRef = useRef<HTMLDivElement>(null);\n\n useFocusReturn(trapFocus, modalRef);\n useRemoveBodyScroll(trapFocus, modalRef);\n useAutoFocus(trapFocus, modalRef);\n\n return (\n <FocusLock childRef={modalRef} enabled={trapFocus}>\n <Comp\n ref={assignMultipleRefs(ref, modalRef)}\n data-modal-container=\"\"\n role=\"dialog\"\n aria-modal=\"true\"\n style={style}\n tabIndex={-1}\n {...otherProps}\n >\n {children}\n </Comp>\n </FocusLock>\n );\n }\n);\n"],"mappings":";;;AAMA,SAASA,UAAT,EAAqBC,MAArB,QAAmC,OAAnC;AAEA,SAASC,YAAT,EAAuBC,cAAvB,EAAuCC,mBAAvC,QAAkE,UAAlE;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAUA,OAAO,IAAMC,KAAK,gBAAGP,UAAU,CAC7B,gBAEEQ,GAFF,EAGK;EAAA,mBAFDC,EAEC;EAAA,IAFGC,IAEH,wBAFU,KAEV;EAAA,IAFiBC,QAEjB,QAFiBA,QAEjB;EAAA,0BAF2BC,SAE3B;EAAA,IAF2BA,SAE3B,+BAFuC,IAEvC;EAAA,sBAF6CC,KAE7C;EAAA,IAF6CA,KAE7C,2BAFqD,EAErD;EAAA,IAF4DC,UAE5D;;EACH,IAAMC,QAAQ,GAAGd,MAAM,CAAiB,IAAjB,CAAvB;EAEAE,cAAc,CAACS,SAAD,EAAYG,QAAZ,CAAd;EACAX,mBAAmB,CAACQ,SAAD,EAAYG,QAAZ,CAAnB;EACAb,YAAY,CAACU,SAAD,EAAYG,QAAZ,CAAZ;EAEA,oBACE,KAAC,SAAD;IAAW,QAAQ,EAAEA,QAArB;IAA+B,OAAO,EAAEH,SAAxC;IAAA,uBACE,KAAC,IAAD;MACE,GAAG,EAAEN,kBAAkB,CAACE,GAAD,EAAMO,QAAN,CADzB;MAEE,wBAAqB,EAFvB;MAGE,IAAI,EAAC,QAHP;MAIE,cAAW,MAJb;MAKE,KAAK,EAAEF,KALT;MAME,QAAQ,EAAE,CAAC;IANb,GAOMC,UAPN;MAAA,UASGH;IATH;EADF,EADF;AAeD,CA1B4B,CAAxB"}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["forwardRef","useRef","useAutoFocus","useFocusReturn","useRemoveBodyScroll","FocusLock","assignMultipleRefs","Modal","ref","as","Comp","children","trapFocus","style","otherProps","modalRef"],"sources":["../../../src/Modal/Modal.tsx"],"sourcesContent":["import type {\r\n CSSProperties,\r\n ElementType,\r\n HTMLAttributes,\r\n ReactNode,\r\n} from 'react';\r\nimport { forwardRef, useRef } from 'react';\r\n\r\nimport { useAutoFocus, useFocusReturn, useRemoveBodyScroll } from '../hooks';\r\nimport { FocusLock } from '../FocusLock';\r\nimport { assignMultipleRefs } from '../utils';\r\n\r\nexport interface ModalProps extends HTMLAttributes<HTMLDivElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n style?: CSSProperties;\r\n trapFocus?: boolean;\r\n}\r\n\r\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(\r\n (\r\n { as: Comp = 'div', children, trapFocus = true, style = {}, ...otherProps },\r\n ref\r\n ) => {\r\n const modalRef = useRef<HTMLDivElement>(null);\r\n\r\n useFocusReturn(trapFocus, modalRef);\r\n useRemoveBodyScroll(trapFocus, modalRef);\r\n useAutoFocus(trapFocus, modalRef);\r\n\r\n return (\r\n <FocusLock childRef={modalRef} enabled={trapFocus}>\r\n <Comp\r\n ref={assignMultipleRefs(ref, modalRef)}\r\n data-modal-container=\"\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n style={style}\r\n tabIndex={-1}\r\n {...otherProps}\r\n >\r\n {children}\r\n </Comp>\r\n </FocusLock>\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AAMA,SAASA,UAAT,EAAqBC,MAArB,QAAmC,OAAnC;AAEA,SAASC,YAAT,EAAuBC,cAAvB,EAAuCC,mBAAvC,QAAkE,UAAlE;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAUA,OAAO,IAAMC,KAAK,gBAAGP,UAAU,CAC7B,gBAEEQ,GAFF,EAGK;EAAA,mBAFDC,EAEC;EAAA,IAFGC,IAEH,wBAFU,KAEV;EAAA,IAFiBC,QAEjB,QAFiBA,QAEjB;EAAA,0BAF2BC,SAE3B;EAAA,IAF2BA,SAE3B,+BAFuC,IAEvC;EAAA,sBAF6CC,KAE7C;EAAA,IAF6CA,KAE7C,2BAFqD,EAErD;EAAA,IAF4DC,UAE5D;;EACH,IAAMC,QAAQ,GAAGd,MAAM,CAAiB,IAAjB,CAAvB;EAEAE,cAAc,CAACS,SAAD,EAAYG,QAAZ,CAAd;EACAX,mBAAmB,CAACQ,SAAD,EAAYG,QAAZ,CAAnB;EACAb,YAAY,CAACU,SAAD,EAAYG,QAAZ,CAAZ;EAEA,oBACE,KAAC,SAAD;IAAW,QAAQ,EAAEA,QAArB;IAA+B,OAAO,EAAEH,SAAxC;IAAA,uBACE,KAAC,IAAD;MACE,GAAG,EAAEN,kBAAkB,CAACE,GAAD,EAAMO,QAAN,CADzB;MAEE,wBAAqB,EAFvB;MAGE,IAAI,EAAC,QAHP;MAIE,cAAW,MAJb;MAKE,KAAK,EAAEF,KALT;MAME,QAAQ,EAAE,CAAC;IANb,GAOMC,UAPN;MAAA,UASGH;IATH;EADF,EADF;AAeD,CA1B4B,CAAxB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { HTMLAttributes, ElementType, CSSProperties } from 'react';
|
|
2
|
-
export interface ModalBackdropProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
-
as?: ElementType<any>;
|
|
4
|
-
innerAs?: ElementType<any>;
|
|
5
|
-
onClose?: () => void;
|
|
6
|
-
style?: CSSProperties;
|
|
7
|
-
disableCloseOnClick?: boolean;
|
|
8
|
-
disableEscapeKeyDown?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare const ModalBackdrop: import("react").ForwardRefExoticComponent<ModalBackdropProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
1
|
+
import type { HTMLAttributes, ElementType, CSSProperties } from 'react';
|
|
2
|
+
export interface ModalBackdropProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
as?: ElementType<any>;
|
|
4
|
+
innerAs?: ElementType<any>;
|
|
5
|
+
onClose?: () => void;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
disableCloseOnClick?: boolean;
|
|
8
|
+
disableEscapeKeyDown?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const ModalBackdrop: import("react").ForwardRefExoticComponent<ModalBackdropProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalBackdrop.js","names":["useRef","forwardRef","assignMultipleRefs","wrapEvent","ModalBackdrop","forwardedRef","as","Comp","onClose","onClick","onMouseDown","onKeyDown","disableCloseOnClick","disableEscapeKeyDown","otherProps","ref","mouseDownTargetRef","handleClick","e","target","currentTarget","current","stopPropagation","handleMouseDown","handleKeyDown","key"],"sources":["../../../src/Modal/ModalBackdrop.tsx"],"sourcesContent":["import type {\n HTMLAttributes,\n ElementType,\n CSSProperties,\n MouseEvent,\n KeyboardEvent,\n} from 'react';\nimport { useRef, forwardRef } from 'react';\n\nimport { assignMultipleRefs } from '../utils/assign-ref';\nimport { wrapEvent } from '../utils/wrap-event';\n\nexport interface ModalBackdropProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n onClose?: () => void;\n style?: CSSProperties;\n disableCloseOnClick?: boolean;\n disableEscapeKeyDown?: boolean;\n}\n\nexport const ModalBackdrop = forwardRef<HTMLDivElement, ModalBackdropProps>(\n (\n {\n as: Comp = 'div',\n onClose,\n onClick,\n onMouseDown,\n onKeyDown,\n disableCloseOnClick = false,\n disableEscapeKeyDown = false,\n ...otherProps\n },\n forwardedRef\n ) => {\n const ref = useRef();\n const mouseDownTargetRef = useRef<EventTarget | null>(null);\n\n const handleClick = (e: MouseEvent<HTMLDivElement>) => {\n // Ignore the events not coming from the \"backdrop\"\n // We don't want to close the dialog when clicking the dialog content.\n if (e.target !== e.currentTarget) {\n return;\n }\n\n // Make sure the event starts and ends on the same DOM element.\n if (e.target !== mouseDownTargetRef.current) {\n return;\n }\n\n mouseDownTargetRef.current = null;\n !disableCloseOnClick && onClose?.();\n e.stopPropagation();\n };\n\n const handleMouseDown = (e: MouseEvent<HTMLDivElement>) => {\n mouseDownTargetRef.current = e.target;\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n !disableEscapeKeyDown && onClose?.();\n e.stopPropagation();\n }\n };\n\n return (\n <Comp\n ref={assignMultipleRefs(ref, forwardedRef)}\n data-modal-root=\"\"\n onClick={wrapEvent(onClick, handleClick)}\n onMouseDown={wrapEvent(onMouseDown, handleMouseDown)}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n {...otherProps}\n />\n );\n }\n);\n"],"mappings":";;;AAOA,SAASA,MAAT,EAAiBC,UAAjB,QAAmC,OAAnC;AAEA,SAASC,kBAAT,QAAmC,qBAAnC;AACA,SAASC,SAAT,QAA0B,qBAA1B;;AAWA,OAAO,IAAMC,aAAa,gBAAGH,UAAU,CACrC,gBAWEI,YAXF,EAYK;EAAA,mBAVDC,EAUC;EAAA,IAVGC,IAUH,wBAVU,KAUV;EAAA,IATDC,OASC,QATDA,OASC;EAAA,IARDC,OAQC,QARDA,OAQC;EAAA,IAPDC,WAOC,QAPDA,WAOC;EAAA,IANDC,SAMC,QANDA,SAMC;EAAA,iCALDC,mBAKC;EAAA,IALDA,mBAKC,sCALqB,KAKrB;EAAA,iCAJDC,oBAIC;EAAA,IAJDA,oBAIC,sCAJsB,KAItB;EAAA,IAHEC,UAGF;;EACH,IAAMC,GAAG,GAAGf,MAAM,EAAlB;EACA,IAAMgB,kBAAkB,GAAGhB,MAAM,CAAqB,IAArB,CAAjC;;EAEA,IAAMiB,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAmC;IACrD;IACA;IACA,IAAIA,CAAC,CAACC,MAAF,KAAaD,CAAC,CAACE,aAAnB,EAAkC;MAChC;IACD,CALoD,CAOrD;;;IACA,IAAIF,CAAC,CAACC,MAAF,KAAaH,kBAAkB,CAACK,OAApC,EAA6C;MAC3C;IACD;;IAEDL,kBAAkB,CAACK,OAAnB,GAA6B,IAA7B;IACA,CAACT,mBAAD,KAAwBJ,OAAxB,aAAwBA,OAAxB,uBAAwBA,OAAO,EAA/B;IACAU,CAAC,CAACI,eAAF;EACD,CAfD;;EAiBA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACL,CAAD,EAAmC;IACzDF,kBAAkB,CAACK,OAAnB,GAA6BH,CAAC,CAACC,MAA/B;EACD,CAFD;;EAIA,IAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAACN,CAAD,EAAsC;IAC1D,IAAIA,CAAC,CAACO,GAAF,KAAU,QAAd,EAAwB;MACtB,CAACZ,oBAAD,KAAyBL,OAAzB,aAAyBA,OAAzB,uBAAyBA,OAAO,EAAhC;MACAU,CAAC,CAACI,eAAF;IACD;EACF,CALD;;EAOA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEpB,kBAAkB,CAACa,GAAD,EAAMV,YAAN,CADzB;IAEE,mBAAgB,EAFlB;IAGE,OAAO,EAAEF,SAAS,CAACM,OAAD,EAAUQ,WAAV,CAHpB;IAIE,WAAW,EAAEd,SAAS,CAACO,WAAD,EAAca,eAAd,CAJxB;IAKE,SAAS,EAAEpB,SAAS,CAACQ,SAAD,EAAYa,aAAZ;EALtB,GAMMV,UANN,EADF;AAUD,CAvDoC,CAAhC"}
|
|
1
|
+
{"version":3,"file":"ModalBackdrop.js","names":["useRef","forwardRef","assignMultipleRefs","wrapEvent","ModalBackdrop","forwardedRef","as","Comp","onClose","onClick","onMouseDown","onKeyDown","disableCloseOnClick","disableEscapeKeyDown","otherProps","ref","mouseDownTargetRef","handleClick","e","target","currentTarget","current","stopPropagation","handleMouseDown","handleKeyDown","key"],"sources":["../../../src/Modal/ModalBackdrop.tsx"],"sourcesContent":["import type {\r\n HTMLAttributes,\r\n ElementType,\r\n CSSProperties,\r\n MouseEvent,\r\n KeyboardEvent,\r\n} from 'react';\r\nimport { useRef, forwardRef } from 'react';\r\n\r\nimport { assignMultipleRefs } from '../utils/assign-ref';\r\nimport { wrapEvent } from '../utils/wrap-event';\r\n\r\nexport interface ModalBackdropProps extends HTMLAttributes<HTMLDivElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n onClose?: () => void;\r\n style?: CSSProperties;\r\n disableCloseOnClick?: boolean;\r\n disableEscapeKeyDown?: boolean;\r\n}\r\n\r\nexport const ModalBackdrop = forwardRef<HTMLDivElement, ModalBackdropProps>(\r\n (\r\n {\r\n as: Comp = 'div',\r\n onClose,\r\n onClick,\r\n onMouseDown,\r\n onKeyDown,\r\n disableCloseOnClick = false,\r\n disableEscapeKeyDown = false,\r\n ...otherProps\r\n },\r\n forwardedRef\r\n ) => {\r\n const ref = useRef();\r\n const mouseDownTargetRef = useRef<EventTarget | null>(null);\r\n\r\n const handleClick = (e: MouseEvent<HTMLDivElement>) => {\r\n // Ignore the events not coming from the \"backdrop\"\r\n // We don't want to close the dialog when clicking the dialog content.\r\n if (e.target !== e.currentTarget) {\r\n return;\r\n }\r\n\r\n // Make sure the event starts and ends on the same DOM element.\r\n if (e.target !== mouseDownTargetRef.current) {\r\n return;\r\n }\r\n\r\n mouseDownTargetRef.current = null;\r\n !disableCloseOnClick && onClose?.();\r\n e.stopPropagation();\r\n };\r\n\r\n const handleMouseDown = (e: MouseEvent<HTMLDivElement>) => {\r\n mouseDownTargetRef.current = e.target;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === 'Escape') {\r\n !disableEscapeKeyDown && onClose?.();\r\n e.stopPropagation();\r\n }\r\n };\r\n\r\n return (\r\n <Comp\r\n ref={assignMultipleRefs(ref, forwardedRef)}\r\n data-modal-root=\"\"\r\n onClick={wrapEvent(onClick, handleClick)}\r\n onMouseDown={wrapEvent(onMouseDown, handleMouseDown)}\r\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\r\n {...otherProps}\r\n />\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AAOA,SAASA,MAAT,EAAiBC,UAAjB,QAAmC,OAAnC;AAEA,SAASC,kBAAT,QAAmC,qBAAnC;AACA,SAASC,SAAT,QAA0B,qBAA1B;;AAWA,OAAO,IAAMC,aAAa,gBAAGH,UAAU,CACrC,gBAWEI,YAXF,EAYK;EAAA,mBAVDC,EAUC;EAAA,IAVGC,IAUH,wBAVU,KAUV;EAAA,IATDC,OASC,QATDA,OASC;EAAA,IARDC,OAQC,QARDA,OAQC;EAAA,IAPDC,WAOC,QAPDA,WAOC;EAAA,IANDC,SAMC,QANDA,SAMC;EAAA,iCALDC,mBAKC;EAAA,IALDA,mBAKC,sCALqB,KAKrB;EAAA,iCAJDC,oBAIC;EAAA,IAJDA,oBAIC,sCAJsB,KAItB;EAAA,IAHEC,UAGF;;EACH,IAAMC,GAAG,GAAGf,MAAM,EAAlB;EACA,IAAMgB,kBAAkB,GAAGhB,MAAM,CAAqB,IAArB,CAAjC;;EAEA,IAAMiB,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAmC;IACrD;IACA;IACA,IAAIA,CAAC,CAACC,MAAF,KAAaD,CAAC,CAACE,aAAnB,EAAkC;MAChC;IACD,CALoD,CAOrD;;;IACA,IAAIF,CAAC,CAACC,MAAF,KAAaH,kBAAkB,CAACK,OAApC,EAA6C;MAC3C;IACD;;IAEDL,kBAAkB,CAACK,OAAnB,GAA6B,IAA7B;IACA,CAACT,mBAAD,KAAwBJ,OAAxB,aAAwBA,OAAxB,uBAAwBA,OAAO,EAA/B;IACAU,CAAC,CAACI,eAAF;EACD,CAfD;;EAiBA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACL,CAAD,EAAmC;IACzDF,kBAAkB,CAACK,OAAnB,GAA6BH,CAAC,CAACC,MAA/B;EACD,CAFD;;EAIA,IAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAACN,CAAD,EAAsC;IAC1D,IAAIA,CAAC,CAACO,GAAF,KAAU,QAAd,EAAwB;MACtB,CAACZ,oBAAD,KAAyBL,OAAzB,aAAyBA,OAAzB,uBAAyBA,OAAO,EAAhC;MACAU,CAAC,CAACI,eAAF;IACD;EACF,CALD;;EAOA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEpB,kBAAkB,CAACa,GAAD,EAAMV,YAAN,CADzB;IAEE,mBAAgB,EAFlB;IAGE,OAAO,EAAEF,SAAS,CAACM,OAAD,EAAUQ,WAAV,CAHpB;IAIE,WAAW,EAAEd,SAAS,CAACO,WAAD,EAAca,eAAd,CAJxB;IAKE,SAAS,EAAEpB,SAAS,CAACQ,SAAD,EAAYa,aAAZ;EALtB,GAMMV,UANN,EADF;AAUD,CAvDoC,CAAhC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './Modal';
|
|
2
|
-
export * from './ModalBackdrop';
|
|
1
|
+
export * from './Modal';
|
|
2
|
+
export * from './ModalBackdrop';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Modal/index.ts"],"sourcesContent":["export * from './Modal';\nexport * from './ModalBackdrop';\n"],"mappings":"AAAA,cAAc,SAAd;AACA,cAAc,iBAAd"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Modal/index.ts"],"sourcesContent":["export * from './Modal';\r\nexport * from './ModalBackdrop';\r\n"],"mappings":"AAAA,cAAc,SAAd;AACA,cAAc,iBAAd"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import type { HTMLAttributes, ElementType, RefObject, ReactNode } from 'react';
|
|
2
|
-
import type { Placement, Modifier, PositioningStrategy, Rect } from '@popperjs/core';
|
|
3
|
-
export declare type OffsetsFunction = (arg0: {
|
|
4
|
-
popper: Rect;
|
|
5
|
-
reference: Rect;
|
|
6
|
-
placement: Placement;
|
|
7
|
-
}) => [number | null | undefined, number | null | undefined];
|
|
8
|
-
export interface PopperProps extends HTMLAttributes<HTMLDivElement> {
|
|
9
|
-
as?: ElementType<any>;
|
|
10
|
-
innerAs?: ElementType<any>;
|
|
11
|
-
anchorEl: RefObject<HTMLElement>;
|
|
12
|
-
children?: ReactNode;
|
|
13
|
-
placement?: Placement;
|
|
14
|
-
strategy?: PositioningStrategy;
|
|
15
|
-
modifiers?: Array<Partial<Modifier<any, any>>>;
|
|
16
|
-
usePortal?: boolean;
|
|
17
|
-
portalSelector?: string;
|
|
18
|
-
/**
|
|
19
|
-
* Displaces the popper along the reference element.
|
|
20
|
-
*/
|
|
21
|
-
skidding?: number;
|
|
22
|
-
/**
|
|
23
|
-
* Displaces the popper away from, or toward, the reference element in the direction of its placement. A positive number displaces it further away, while a negative number lets it overlap the reference.
|
|
24
|
-
*/
|
|
25
|
-
distance?: number;
|
|
26
|
-
/**
|
|
27
|
-
* An optional function that must return a pair of [skidding, padding]. Useful for doing things like, displace the popper by 100%.
|
|
28
|
-
*/
|
|
29
|
-
offsetFn?: OffsetsFunction;
|
|
30
|
-
/**
|
|
31
|
-
* If you don't want the arrow to reach the very edge of the popper (this is common if your popper has rounded corners using border-radius), you can apply some padding to it.
|
|
32
|
-
*/
|
|
33
|
-
arrowPadding?: number;
|
|
34
|
-
}
|
|
35
|
-
export declare const Popper: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<PopperProps & import("react").RefAttributes<HTMLDivElement>>>;
|
|
1
|
+
import type { HTMLAttributes, ElementType, RefObject, ReactNode } from 'react';
|
|
2
|
+
import type { Placement, Modifier, PositioningStrategy, Rect } from '@popperjs/core';
|
|
3
|
+
export declare type OffsetsFunction = (arg0: {
|
|
4
|
+
popper: Rect;
|
|
5
|
+
reference: Rect;
|
|
6
|
+
placement: Placement;
|
|
7
|
+
}) => [number | null | undefined, number | null | undefined];
|
|
8
|
+
export interface PopperProps extends HTMLAttributes<HTMLDivElement> {
|
|
9
|
+
as?: ElementType<any>;
|
|
10
|
+
innerAs?: ElementType<any>;
|
|
11
|
+
anchorEl: RefObject<HTMLElement>;
|
|
12
|
+
children?: ReactNode;
|
|
13
|
+
placement?: Placement;
|
|
14
|
+
strategy?: PositioningStrategy;
|
|
15
|
+
modifiers?: Array<Partial<Modifier<any, any>>>;
|
|
16
|
+
usePortal?: boolean;
|
|
17
|
+
portalSelector?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Displaces the popper along the reference element.
|
|
20
|
+
*/
|
|
21
|
+
skidding?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Displaces the popper away from, or toward, the reference element in the direction of its placement. A positive number displaces it further away, while a negative number lets it overlap the reference.
|
|
24
|
+
*/
|
|
25
|
+
distance?: number;
|
|
26
|
+
/**
|
|
27
|
+
* An optional function that must return a pair of [skidding, padding]. Useful for doing things like, displace the popper by 100%.
|
|
28
|
+
*/
|
|
29
|
+
offsetFn?: OffsetsFunction;
|
|
30
|
+
/**
|
|
31
|
+
* If you don't want the arrow to reach the very edge of the popper (this is common if your popper has rounded corners using border-radius), you can apply some padding to it.
|
|
32
|
+
*/
|
|
33
|
+
arrowPadding?: number;
|
|
34
|
+
}
|
|
35
|
+
export declare const Popper: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<PopperProps & import("react").RefAttributes<HTMLDivElement>>>;
|
|
@@ -26,8 +26,7 @@ export var Popper = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Popper(_
|
|
|
26
26
|
usePortal = _ref$usePortal === void 0 ? false : _ref$usePortal,
|
|
27
27
|
_ref$style = _ref.style,
|
|
28
28
|
style = _ref$style === void 0 ? {} : _ref$style,
|
|
29
|
-
|
|
30
|
-
portalSelector = _ref$portalSelector === void 0 ? 'body' : _ref$portalSelector,
|
|
29
|
+
portalSelector = _ref.portalSelector,
|
|
31
30
|
_ref$distance = _ref.distance,
|
|
32
31
|
distance = _ref$distance === void 0 ? 0 : _ref$distance,
|
|
33
32
|
_ref$skidding = _ref.skidding,
|