@basic-ui/core 0.0.53 → 0.0.56
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/build/cjs/index.js +278 -505
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/Accordion.js +20 -29
- package/build/esm/Accordion/Accordion.js.map +1 -1
- package/build/esm/Accordion/AccordionBody.js +18 -32
- package/build/esm/Accordion/AccordionBody.js.map +1 -1
- package/build/esm/Accordion/AccordionHeader.js +37 -74
- package/build/esm/Accordion/AccordionHeader.js.map +1 -1
- package/build/esm/Accordion/AccordionItem.js +19 -22
- package/build/esm/Accordion/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/context.js +16 -13
- package/build/esm/Accordion/context.js.map +1 -1
- package/build/esm/Accordion/index.js.map +1 -1
- package/build/esm/Accordion/scopeQuery.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.js +15 -25
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/CheckBox/index.js.map +1 -1
- package/build/esm/ComboBox/Combobox.d.ts +7 -7
- package/build/esm/ComboBox/Combobox.js +52 -59
- package/build/esm/ComboBox/Combobox.js.map +1 -1
- package/build/esm/ComboBox/ComboboxButton.js +23 -28
- package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
- package/build/esm/ComboBox/ComboboxInput.js +67 -70
- package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
- package/build/esm/ComboBox/ComboboxLabel.js +15 -17
- package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
- package/build/esm/ComboBox/ComboboxList.js +19 -20
- package/build/esm/ComboBox/ComboboxList.js.map +1 -1
- package/build/esm/ComboBox/ComboboxOption.js +41 -45
- package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
- package/build/esm/ComboBox/ComboboxPopover.js +22 -21
- package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
- package/build/esm/ComboBox/cities.js.map +1 -1
- package/build/esm/ComboBox/context.js +5 -6
- package/build/esm/ComboBox/context.js.map +1 -1
- package/build/esm/ComboBox/hooks.d.ts +2 -2
- package/build/esm/ComboBox/hooks.js +175 -148
- package/build/esm/ComboBox/hooks.js.map +1 -1
- package/build/esm/ComboBox/index.js.map +1 -1
- package/build/esm/ComboBox/makeHash.js +3 -6
- package/build/esm/ComboBox/makeHash.js.map +1 -1
- package/build/esm/ComboBox/scopeQuery.js.map +1 -1
- package/build/esm/FocusLock/FocusLock.js +26 -32
- package/build/esm/FocusLock/FocusLock.js.map +1 -1
- package/build/esm/FocusLock/index.js.map +1 -1
- package/build/esm/FocusLock/tabUtils.js +5 -7
- package/build/esm/FocusLock/tabUtils.js.map +1 -1
- package/build/esm/FocusLock/useFocusLock.js +14 -19
- package/build/esm/FocusLock/useFocusLock.js.map +1 -1
- package/build/esm/List/List.js +9 -11
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/ListItem.js +9 -11
- package/build/esm/List/ListItem.js.map +1 -1
- package/build/esm/List/context.js +6 -6
- package/build/esm/List/context.js.map +1 -1
- package/build/esm/List/index.js.map +1 -1
- package/build/esm/Menu/ContextMenuTrigger.d.ts +4 -4
- package/build/esm/Menu/ContextMenuTrigger.js +32 -37
- package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
- package/build/esm/Menu/Menu.js +33 -49
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/MenuButton.d.ts +4 -4
- package/build/esm/Menu/MenuButton.js +28 -44
- package/build/esm/Menu/MenuButton.js.map +1 -1
- package/build/esm/Menu/MenuItem.js +29 -38
- package/build/esm/Menu/MenuItem.js.map +1 -1
- package/build/esm/Menu/MenuList.js +61 -116
- package/build/esm/Menu/MenuList.js.map +1 -1
- package/build/esm/Menu/MenuPopover.js +16 -19
- package/build/esm/Menu/MenuPopover.js.map +1 -1
- package/build/esm/Menu/context.d.ts +1 -1
- package/build/esm/Menu/context.js +14 -12
- package/build/esm/Menu/context.js.map +1 -1
- package/build/esm/Menu/fixtures/countryList.js +1 -1
- package/build/esm/Menu/fixtures/countryList.js.map +1 -1
- package/build/esm/Menu/index.js.map +1 -1
- package/build/esm/Menu/scope.js.map +1 -1
- package/build/esm/Modal/Modal.js +13 -18
- package/build/esm/Modal/Modal.js.map +1 -1
- package/build/esm/Modal/ModalBackdrop.js +24 -33
- package/build/esm/Modal/ModalBackdrop.js.map +1 -1
- package/build/esm/Modal/index.js.map +1 -1
- package/build/esm/Popper/Popper.d.ts +3 -3
- package/build/esm/Popper/Popper.js +44 -61
- package/build/esm/Popper/Popper.js.map +1 -1
- package/build/esm/Popper/PopperArrow.js +11 -16
- package/build/esm/Popper/PopperArrow.js.map +1 -1
- package/build/esm/Popper/context.js +3 -5
- package/build/esm/Popper/context.js.map +1 -1
- package/build/esm/Popper/index.js.map +1 -1
- package/build/esm/Portal/Portal.js +9 -11
- package/build/esm/Portal/Portal.js.map +1 -1
- package/build/esm/Portal/PortalSelectorProvider.d.ts +3 -3
- package/build/esm/Portal/PortalSelectorProvider.js +6 -4
- package/build/esm/Portal/PortalSelectorProvider.js.map +1 -1
- package/build/esm/Portal/index.js.map +1 -1
- package/build/esm/RadioButton/RadioButton.js +17 -23
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.js +19 -28
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/context.d.ts +1 -1
- package/build/esm/RadioButton/context.js +8 -6
- package/build/esm/RadioButton/context.js.map +1 -1
- package/build/esm/RadioButton/index.js.map +1 -1
- package/build/esm/SkipNav/SkipNav.js +9 -11
- package/build/esm/SkipNav/SkipNav.js.map +1 -1
- package/build/esm/SkipNav/index.js.map +1 -1
- package/build/esm/Slider/Slider.d.ts +7 -7
- package/build/esm/Slider/Slider.js +340 -407
- package/build/esm/Slider/Slider.js.map +1 -1
- package/build/esm/Slider/index.js.map +1 -1
- package/build/esm/Spinner/Spinner.js +31 -59
- package/build/esm/Spinner/Spinner.js.map +1 -1
- package/build/esm/Spinner/SpinnerButton.js +14 -19
- package/build/esm/Spinner/SpinnerButton.js.map +1 -1
- package/build/esm/Spinner/context.js +8 -7
- package/build/esm/Spinner/context.js.map +1 -1
- package/build/esm/Spinner/index.js.map +1 -1
- package/build/esm/Tabs/Tab.js +32 -50
- package/build/esm/Tabs/Tab.js.map +1 -1
- package/build/esm/Tabs/TabList.js +24 -34
- package/build/esm/Tabs/TabList.js.map +1 -1
- package/build/esm/Tabs/TabPanel.js +16 -23
- package/build/esm/Tabs/TabPanel.js.map +1 -1
- package/build/esm/Tabs/TabPanels.js +15 -20
- package/build/esm/Tabs/TabPanels.js.map +1 -1
- package/build/esm/Tabs/Tabs.js +17 -33
- package/build/esm/Tabs/Tabs.js.map +1 -1
- package/build/esm/Tabs/context.js +16 -13
- package/build/esm/Tabs/context.js.map +1 -1
- package/build/esm/Tabs/index.js.map +1 -1
- package/build/esm/Tabs/scopeQuery.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +2 -2
- package/build/esm/Tooltip/Tooltip.js +20 -30
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/index.js.map +1 -1
- package/build/esm/Tooltip/stateMachine.d.ts +2 -2
- package/build/esm/Tooltip/stateMachine.js +95 -81
- package/build/esm/Tooltip/stateMachine.js.map +1 -1
- package/build/esm/Tooltip/useTooltip.d.ts +2 -2
- package/build/esm/Tooltip/useTooltip.js +38 -50
- package/build/esm/Tooltip/useTooltip.js.map +1 -1
- package/build/esm/hooks/index.js.map +1 -1
- package/build/esm/hooks/useAutoFocus.js +3 -3
- package/build/esm/hooks/useAutoFocus.js.map +1 -1
- package/build/esm/hooks/useChildrenCounter.js +6 -8
- package/build/esm/hooks/useChildrenCounter.js.map +1 -1
- package/build/esm/hooks/useControlledState.js +6 -16
- package/build/esm/hooks/useControlledState.js.map +1 -1
- package/build/esm/hooks/useFocusReturn.js +8 -12
- package/build/esm/hooks/useFocusReturn.js.map +1 -1
- package/build/esm/hooks/useFocusState.d.ts +2 -2
- package/build/esm/hooks/useFocusState.js +9 -15
- package/build/esm/hooks/useFocusState.js.map +1 -1
- package/build/esm/hooks/useGestureHandlers.d.ts +1 -1
- package/build/esm/hooks/useGestureHandlers.js +80 -100
- package/build/esm/hooks/useGestureHandlers.js.map +1 -1
- package/build/esm/hooks/useMeasure.js +7 -15
- package/build/esm/hooks/useMeasure.js.map +1 -1
- package/build/esm/hooks/useOnClickOutside.js +4 -6
- package/build/esm/hooks/useOnClickOutside.js.map +1 -1
- package/build/esm/hooks/useOnKeyDown.js +3 -4
- package/build/esm/hooks/useOnKeyDown.js.map +1 -1
- package/build/esm/hooks/useReducerMachine.d.ts +1 -1
- package/build/esm/hooks/useReducerMachine.js +15 -26
- package/build/esm/hooks/useReducerMachine.js.map +1 -1
- package/build/esm/hooks/useRemoveBodyScroll.js +9 -14
- package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
- package/build/esm/hooks/useScope.d.ts +2 -2
- package/build/esm/hooks/useScope.js +12 -14
- package/build/esm/hooks/useScope.js.map +1 -1
- package/build/esm/hooks/useThrottle.js +5 -10
- package/build/esm/hooks/useThrottle.js.map +1 -1
- package/build/esm/index.js +4 -2
- package/build/esm/index.js.map +1 -1
- package/build/esm/styles.d.js +2 -0
- package/build/esm/styles.d.js.map +1 -0
- package/build/esm/utils/assign-ref.js +3 -5
- package/build/esm/utils/assign-ref.js.map +1 -1
- package/build/esm/utils/can-use-dom.js.map +1 -1
- package/build/esm/utils/clamp.js.map +1 -1
- package/build/esm/utils/context.d.ts +1 -1
- package/build/esm/utils/context.js +13 -20
- package/build/esm/utils/context.js.map +1 -1
- package/build/esm/utils/create-subscription.js +5 -10
- package/build/esm/utils/create-subscription.js.map +1 -1
- package/build/esm/utils/get-circular-index.js +0 -1
- package/build/esm/utils/get-circular-index.js.map +1 -1
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/is-right-click.js.map +1 -1
- package/build/esm/utils/owner-document.js +1 -1
- package/build/esm/utils/owner-document.js.map +1 -1
- package/build/esm/utils/polymorphic.d.ts +10 -10
- package/build/esm/utils/polymorphic.js.map +1 -1
- package/build/esm/utils/rubber-band-clamp.js +2 -5
- package/build/esm/utils/rubber-band-clamp.js.map +1 -1
- package/build/esm/utils/use-stable-callback.js +8 -10
- package/build/esm/utils/use-stable-callback.js.map +1 -1
- package/build/esm/utils/wrap-event.d.ts +1 -1
- package/build/esm/utils/wrap-event.js +2 -5
- package/build/esm/utils/wrap-event.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/Accordion/Accordion.tsx +1 -1
- package/src/Accordion/AccordionBody.tsx +1 -1
- package/src/Accordion/AccordionHeader.tsx +1 -2
- package/src/ComboBox/Combobox.tsx +2 -2
- package/src/ComboBox/ComboboxList.tsx +1 -1
- package/src/ComboBox/ComboboxOption.tsx +0 -1
- package/src/ComboBox/hooks.tsx +0 -3
- package/src/FocusLock/useFocusLock.ts +0 -1
- package/src/Menu/Menu.tsx +2 -3
- package/src/Menu/MenuItem.tsx +1 -2
- package/src/Menu/MenuList.tsx +4 -4
- package/src/Modal/Modal.story.tsx +11 -7
- package/src/Modal/ModalBackdrop.tsx +1 -1
- package/src/Modal/NavDrawer.story.tsx +9 -6
- package/src/Popper/Popper.story.tsx +23 -7
- package/src/Popper/Popper.tsx +2 -2
- package/src/RadioButton/RadioButton.story.tsx +2 -1
- package/src/Slider/Slider.tsx +6 -11
- package/src/Spinner/Spinner.tsx +1 -1
- package/src/Tabs/TabList.tsx +1 -1
- package/src/Tooltip/Tooltip.tsx +8 -5
- package/src/Tooltip/useTooltip.ts +1 -1
- package/src/hooks/useControlledState.ts +1 -6
- package/src/hooks/useGestureHandlers.ts +0 -4
- package/src/hooks/useRemoveBodyScroll.ts +0 -1
- package/src/hooks/useScope.ts +1 -1
- package/src/styles.d.ts +1 -0
- package/src/utils/polymorphic.ts +14 -10
- package/src/utils/use-stable-callback.ts +0 -1
- 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
package/build/esm/Modal/Modal.js
CHANGED
|
@@ -1,38 +1,33 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["as", "children", "trapFocus", "style"];
|
|
4
1
|
import { forwardRef, useRef } from 'react';
|
|
5
2
|
import { useAutoFocus, useFocusReturn, useRemoveBodyScroll } from '../hooks';
|
|
6
3
|
import { FocusLock } from '../FocusLock';
|
|
7
4
|
import { assignMultipleRefs } from '../utils';
|
|
8
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var modalRef = useRef(null);
|
|
6
|
+
export const Modal = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
7
|
+
let {
|
|
8
|
+
as: Comp = 'div',
|
|
9
|
+
children,
|
|
10
|
+
trapFocus = true,
|
|
11
|
+
style = {},
|
|
12
|
+
...otherProps
|
|
13
|
+
} = _ref;
|
|
14
|
+
const modalRef = useRef(null);
|
|
20
15
|
useFocusReturn(trapFocus, modalRef);
|
|
21
16
|
useRemoveBodyScroll(trapFocus, modalRef);
|
|
22
17
|
useAutoFocus(trapFocus, modalRef);
|
|
23
18
|
return /*#__PURE__*/_jsx(FocusLock, {
|
|
24
19
|
childRef: modalRef,
|
|
25
20
|
enabled: trapFocus,
|
|
26
|
-
children: /*#__PURE__*/_jsx(Comp,
|
|
21
|
+
children: /*#__PURE__*/_jsx(Comp, {
|
|
27
22
|
ref: assignMultipleRefs(ref, modalRef),
|
|
28
23
|
"data-modal-container": "",
|
|
29
24
|
role: "dialog",
|
|
30
25
|
"aria-modal": "true",
|
|
31
26
|
style: style,
|
|
32
|
-
tabIndex: -1
|
|
33
|
-
|
|
27
|
+
tabIndex: -1,
|
|
28
|
+
...otherProps,
|
|
34
29
|
children: children
|
|
35
|
-
})
|
|
30
|
+
})
|
|
36
31
|
});
|
|
37
32
|
});
|
|
38
33
|
//# sourceMappingURL=Modal.js.map
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["forwardRef","useRef","useAutoFocus","useFocusReturn","useRemoveBodyScroll","FocusLock","assignMultipleRefs","jsx","_jsx","Modal","_ref","ref","as","Comp","children","trapFocus","style","otherProps","modalRef","childRef","enabled","role","tabIndex"],"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,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAE1C,SAASC,YAAY,EAAEC,cAAc,EAAEC,mBAAmB,QAAQ,UAAU;AAC5E,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,kBAAkB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAU9C,OAAO,MAAMC,KAAK,gBAAGT,UAAU,CAC7B,CAAAU,IAAA,EAEEC,GAAG,KACA;EAAA,IAFH;IAAEC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAAEC,QAAQ;IAAEC,SAAS,GAAG,IAAI;IAAEC,KAAK,GAAG,CAAC,CAAC;IAAE,GAAGC;EAAW,CAAC,GAAAP,IAAA;EAG3E,MAAMQ,QAAQ,GAAGjB,MAAM,CAAiB,IAAI,CAAC;EAE7CE,cAAc,CAACY,SAAS,EAAEG,QAAQ,CAAC;EACnCd,mBAAmB,CAACW,SAAS,EAAEG,QAAQ,CAAC;EACxChB,YAAY,CAACa,SAAS,EAAEG,QAAQ,CAAC;EAEjC,oBACEV,IAAA,CAACH,SAAS;IAACc,QAAQ,EAAED,QAAS;IAACE,OAAO,EAAEL,SAAU;IAAAD,QAAA,eAChDN,IAAA,CAACK,IAAI;MACHF,GAAG,EAAEL,kBAAkB,CAACK,GAAG,EAAEO,QAAQ,CAAE;MACvC,wBAAqB,EAAE;MACvBG,IAAI,EAAC,QAAQ;MACb,cAAW,MAAM;MACjBL,KAAK,EAAEA,KAAM;MACbM,QAAQ,EAAE,CAAC,CAAE;MAAA,GACTL,UAAU;MAAAH,QAAA,EAEbA;IAAQ,CACL;EAAC,CACE,CAAC;AAEhB,CACF,CAAC","ignoreList":[]}
|
|
@@ -1,60 +1,51 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["as", "onClose", "onClick", "onMouseDown", "onKeyDown", "disableCloseOnClick", "disableEscapeKeyDown"];
|
|
4
1
|
import { useRef, forwardRef } from 'react';
|
|
5
2
|
import { assignMultipleRefs } from '../utils/assign-ref';
|
|
6
3
|
import { wrapEvent } from '../utils/wrap-event';
|
|
7
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var mouseDownTargetRef = useRef(null);
|
|
23
|
-
|
|
24
|
-
var handleClick = function handleClick(e) {
|
|
5
|
+
export const ModalBackdrop = /*#__PURE__*/forwardRef((_ref, forwardedRef) => {
|
|
6
|
+
let {
|
|
7
|
+
as: Comp = 'div',
|
|
8
|
+
onClose,
|
|
9
|
+
onClick,
|
|
10
|
+
onMouseDown,
|
|
11
|
+
onKeyDown,
|
|
12
|
+
disableCloseOnClick = false,
|
|
13
|
+
disableEscapeKeyDown = false,
|
|
14
|
+
...otherProps
|
|
15
|
+
} = _ref;
|
|
16
|
+
const ref = useRef(null);
|
|
17
|
+
const mouseDownTargetRef = useRef(null);
|
|
18
|
+
const handleClick = e => {
|
|
25
19
|
// Ignore the events not coming from the "backdrop"
|
|
26
20
|
// We don't want to close the dialog when clicking the dialog content.
|
|
27
21
|
if (e.target !== e.currentTarget) {
|
|
28
22
|
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
23
|
+
}
|
|
31
24
|
|
|
25
|
+
// Make sure the event starts and ends on the same DOM element.
|
|
32
26
|
if (e.target !== mouseDownTargetRef.current) {
|
|
33
27
|
return;
|
|
34
28
|
}
|
|
35
|
-
|
|
36
29
|
mouseDownTargetRef.current = null;
|
|
37
|
-
!disableCloseOnClick &&
|
|
30
|
+
!disableCloseOnClick && onClose?.();
|
|
38
31
|
e.stopPropagation();
|
|
39
32
|
};
|
|
40
|
-
|
|
41
|
-
var handleMouseDown = function handleMouseDown(e) {
|
|
33
|
+
const handleMouseDown = e => {
|
|
42
34
|
mouseDownTargetRef.current = e.target;
|
|
43
35
|
};
|
|
44
|
-
|
|
45
|
-
var handleKeyDown = function handleKeyDown(e) {
|
|
36
|
+
const handleKeyDown = e => {
|
|
46
37
|
if (e.key === 'Escape') {
|
|
47
|
-
!disableEscapeKeyDown &&
|
|
38
|
+
!disableEscapeKeyDown && onClose?.();
|
|
48
39
|
e.stopPropagation();
|
|
49
40
|
}
|
|
50
41
|
};
|
|
51
|
-
|
|
52
|
-
return /*#__PURE__*/_jsx(Comp, _extends({
|
|
42
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
53
43
|
ref: assignMultipleRefs(ref, forwardedRef),
|
|
54
44
|
"data-modal-root": "",
|
|
55
45
|
onClick: wrapEvent(onClick, handleClick),
|
|
56
46
|
onMouseDown: wrapEvent(onMouseDown, handleMouseDown),
|
|
57
|
-
onKeyDown: wrapEvent(onKeyDown, handleKeyDown)
|
|
58
|
-
|
|
47
|
+
onKeyDown: wrapEvent(onKeyDown, handleKeyDown),
|
|
48
|
+
...otherProps
|
|
49
|
+
});
|
|
59
50
|
});
|
|
60
51
|
//# sourceMappingURL=ModalBackdrop.js.map
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"ModalBackdrop.js","names":["useRef","forwardRef","assignMultipleRefs","wrapEvent","jsx","_jsx","ModalBackdrop","_ref","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(null);\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,MAAM,EAAEC,UAAU,QAAQ,OAAO;AAE1C,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAWhD,OAAO,MAAMC,aAAa,gBAAGL,UAAU,CACrC,CAAAM,IAAA,EAWEC,YAAY,KACT;EAAA,IAXH;IACEC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAChBC,OAAO;IACPC,OAAO;IACPC,WAAW;IACXC,SAAS;IACTC,mBAAmB,GAAG,KAAK;IAC3BC,oBAAoB,GAAG,KAAK;IAC5B,GAAGC;EACL,CAAC,GAAAV,IAAA;EAGD,MAAMW,GAAG,GAAGlB,MAAM,CAAC,IAAI,CAAC;EACxB,MAAMmB,kBAAkB,GAAGnB,MAAM,CAAqB,IAAI,CAAC;EAE3D,MAAMoB,WAAW,GAAIC,CAA6B,IAAK;IACrD;IACA;IACA,IAAIA,CAAC,CAACC,MAAM,KAAKD,CAAC,CAACE,aAAa,EAAE;MAChC;IACF;;IAEA;IACA,IAAIF,CAAC,CAACC,MAAM,KAAKH,kBAAkB,CAACK,OAAO,EAAE;MAC3C;IACF;IAEAL,kBAAkB,CAACK,OAAO,GAAG,IAAI;IACjC,CAACT,mBAAmB,IAAIJ,OAAO,GAAG,CAAC;IACnCU,CAAC,CAACI,eAAe,CAAC,CAAC;EACrB,CAAC;EAED,MAAMC,eAAe,GAAIL,CAA6B,IAAK;IACzDF,kBAAkB,CAACK,OAAO,GAAGH,CAAC,CAACC,MAAM;EACvC,CAAC;EAED,MAAMK,aAAa,GAAIN,CAAgC,IAAK;IAC1D,IAAIA,CAAC,CAACO,GAAG,KAAK,QAAQ,EAAE;MACtB,CAACZ,oBAAoB,IAAIL,OAAO,GAAG,CAAC;MACpCU,CAAC,CAACI,eAAe,CAAC,CAAC;IACrB;EACF,CAAC;EAED,oBACEpB,IAAA,CAACK,IAAI;IACHQ,GAAG,EAAEhB,kBAAkB,CAACgB,GAAG,EAAEV,YAAY,CAAE;IAC3C,mBAAgB,EAAE;IAClBI,OAAO,EAAET,SAAS,CAACS,OAAO,EAAEQ,WAAW,CAAE;IACzCP,WAAW,EAAEV,SAAS,CAACU,WAAW,EAAEa,eAAe,CAAE;IACrDZ,SAAS,EAAEX,SAAS,CAACW,SAAS,EAAEa,aAAa,CAAE;IAAA,GAC3CV;EAAU,CACf,CAAC;AAEN,CACF,CAAC","ignoreList":[]}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Modal/index.ts"],"sourcesContent":["export * from './Modal';\nexport * from './ModalBackdrop';\n"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,iBAAiB","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HTMLAttributes, ElementType, RefObject, ReactNode } from 'react';
|
|
2
2
|
import type { Placement, Modifier, PositioningStrategy, Rect } from '@popperjs/core';
|
|
3
|
-
export
|
|
3
|
+
export type OffsetsFunction = (arg0: {
|
|
4
4
|
popper: Rect;
|
|
5
5
|
reference: Rect;
|
|
6
6
|
placement: Placement;
|
|
@@ -8,7 +8,7 @@ export declare type OffsetsFunction = (arg0: {
|
|
|
8
8
|
export interface PopperProps extends HTMLAttributes<HTMLDivElement> {
|
|
9
9
|
as?: ElementType<any>;
|
|
10
10
|
innerAs?: ElementType<any>;
|
|
11
|
-
anchorEl: RefObject<HTMLElement>;
|
|
11
|
+
anchorEl: RefObject<HTMLElement | null>;
|
|
12
12
|
children?: ReactNode;
|
|
13
13
|
placement?: Placement;
|
|
14
14
|
strategy?: PositioningStrategy;
|
|
@@ -32,4 +32,4 @@ export interface PopperProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
32
32
|
*/
|
|
33
33
|
arrowPadding?: number;
|
|
34
34
|
}
|
|
35
|
-
export declare const Popper: import("react").
|
|
35
|
+
export declare const Popper: import("react").NamedExoticComponent<PopperProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,105 +1,88 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["placement", "strategy", "as", "innerAs", "anchorEl", "children", "modifiers", "usePortal", "style", "portalSelector", "distance", "skidding", "arrowPadding", "offsetFn"];
|
|
5
1
|
import { forwardRef, useRef, useEffect, useLayoutEffect, useMemo, memo } from 'react';
|
|
6
2
|
import { createPopper } from '@popperjs/core';
|
|
7
3
|
import { assignMultipleRefs } from '../utils/assign-ref';
|
|
8
4
|
import { PopperProvider } from './context';
|
|
9
5
|
import { Portal } from '../Portal';
|
|
10
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
arrowPadding = _ref$arrowPadding === void 0 ? 5 : _ref$arrowPadding,
|
|
37
|
-
offsetFn = _ref.offsetFn,
|
|
38
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
39
|
-
|
|
40
|
-
var arrowRef = useRef(null);
|
|
41
|
-
var popperRef = useRef(null);
|
|
42
|
-
var popperEngineInstance = useRef(null);
|
|
43
|
-
var defaultModifiers = useMemo(function () {
|
|
44
|
-
var arrowModifier = {
|
|
7
|
+
const useEnhancedEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
|
8
|
+
const emptyModifiers = [];
|
|
9
|
+
export const Popper = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Popper(_ref, forwardedRef) {
|
|
10
|
+
let {
|
|
11
|
+
placement = 'bottom',
|
|
12
|
+
strategy = 'absolute',
|
|
13
|
+
as: Comp = 'div',
|
|
14
|
+
innerAs,
|
|
15
|
+
anchorEl,
|
|
16
|
+
children,
|
|
17
|
+
modifiers = emptyModifiers,
|
|
18
|
+
usePortal = false,
|
|
19
|
+
style = {},
|
|
20
|
+
portalSelector,
|
|
21
|
+
distance = 0,
|
|
22
|
+
skidding = 0,
|
|
23
|
+
arrowPadding = 5,
|
|
24
|
+
offsetFn,
|
|
25
|
+
...props
|
|
26
|
+
} = _ref;
|
|
27
|
+
const arrowRef = useRef(null);
|
|
28
|
+
const popperRef = useRef(null);
|
|
29
|
+
const popperEngineInstance = useRef(null);
|
|
30
|
+
const defaultModifiers = useMemo(() => {
|
|
31
|
+
const arrowModifier = {
|
|
45
32
|
name: 'arrow',
|
|
46
33
|
options: {
|
|
47
34
|
element: '[data-popper-arrow]',
|
|
48
35
|
padding: arrowPadding
|
|
49
36
|
}
|
|
50
37
|
};
|
|
51
|
-
|
|
38
|
+
const offsetModifier = {
|
|
52
39
|
name: 'offset',
|
|
53
40
|
options: {
|
|
54
|
-
offset: offsetFn
|
|
41
|
+
offset: offsetFn ?? [skidding, distance]
|
|
55
42
|
}
|
|
56
43
|
};
|
|
57
44
|
return [arrowModifier, offsetModifier];
|
|
58
45
|
}, [arrowPadding, distance, skidding, offsetFn]);
|
|
59
|
-
useEnhancedEffect(
|
|
46
|
+
useEnhancedEffect(() => {
|
|
60
47
|
if (anchorEl && anchorEl.current && popperRef.current) {
|
|
61
48
|
popperEngineInstance.current = createPopper(anchorEl.current, popperRef.current, {
|
|
62
|
-
placement
|
|
63
|
-
strategy
|
|
64
|
-
modifiers: [
|
|
49
|
+
placement,
|
|
50
|
+
strategy,
|
|
51
|
+
modifiers: [...defaultModifiers, ...modifiers]
|
|
65
52
|
});
|
|
66
53
|
}
|
|
67
|
-
|
|
68
|
-
return function () {
|
|
54
|
+
return () => {
|
|
69
55
|
popperEngineInstance.current && popperEngineInstance.current.destroy();
|
|
70
56
|
popperEngineInstance.current = null;
|
|
71
57
|
};
|
|
72
58
|
}, [anchorEl, modifiers, placement, strategy, defaultModifiers]);
|
|
73
|
-
useEnhancedEffect(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
(_popperEngineInstance = popperEngineInstance.current) === null || _popperEngineInstance === void 0 ? void 0 : _popperEngineInstance.forceUpdate();
|
|
59
|
+
useEnhancedEffect(() => {
|
|
60
|
+
popperEngineInstance.current?.forceUpdate();
|
|
77
61
|
}, [props.hidden || props['aria-hidden']]);
|
|
78
|
-
|
|
79
|
-
arrowRef
|
|
62
|
+
const contextValue = {
|
|
63
|
+
arrowRef
|
|
80
64
|
};
|
|
81
|
-
|
|
82
|
-
var ret = /*#__PURE__*/_jsx(PopperProvider, {
|
|
65
|
+
const ret = /*#__PURE__*/_jsx(PopperProvider, {
|
|
83
66
|
value: contextValue,
|
|
84
|
-
children: /*#__PURE__*/_jsx(Comp,
|
|
67
|
+
children: /*#__PURE__*/_jsx(Comp, {
|
|
68
|
+
...props,
|
|
85
69
|
as: innerAs,
|
|
86
70
|
ref: assignMultipleRefs(popperRef, forwardedRef),
|
|
87
|
-
style:
|
|
71
|
+
style: {
|
|
88
72
|
position: 'fixed',
|
|
89
73
|
left: -5000,
|
|
90
|
-
top: -5000
|
|
91
|
-
|
|
74
|
+
top: -5000,
|
|
75
|
+
...style
|
|
76
|
+
},
|
|
92
77
|
children: children
|
|
93
|
-
})
|
|
78
|
+
})
|
|
94
79
|
});
|
|
95
|
-
|
|
96
80
|
if (usePortal) {
|
|
97
81
|
return /*#__PURE__*/_jsx(Portal, {
|
|
98
82
|
selector: portalSelector,
|
|
99
83
|
children: ret
|
|
100
84
|
});
|
|
101
85
|
}
|
|
102
|
-
|
|
103
86
|
return ret;
|
|
104
87
|
}));
|
|
105
88
|
//# sourceMappingURL=Popper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popper.js","names":["forwardRef","useRef","useEffect","useLayoutEffect","useMemo","memo","createPopper","assignMultipleRefs","PopperProvider","Portal","useEnhancedEffect","window","emptyModifiers","Popper","forwardedRef","placement","strategy","as","Comp","innerAs","anchorEl","children","modifiers","usePortal","style","portalSelector","distance","skidding","arrowPadding","offsetFn","props","arrowRef","popperRef","popperEngineInstance","defaultModifiers","arrowModifier","name","options","element","padding","offsetModifier","offset","current","destroy","forceUpdate","hidden","contextValue","ret","position","left","top"],"sources":["../../../src/Popper/Popper.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType, RefObject, ReactNode } from 'react';\nimport {\n forwardRef,\n useRef,\n useEffect,\n useLayoutEffect,\n useMemo,\n memo,\n} from 'react';\nimport type {\n Placement,\n Modifier,\n PositioningStrategy,\n Instance,\n Rect,\n} from '@popperjs/core';\nimport { createPopper } from '@popperjs/core';\nimport type { OffsetModifier } from '@popperjs/core/lib/modifiers/offset';\nimport type { ArrowModifier } from '@popperjs/core/lib/modifiers/arrow';\n\nimport { assignMultipleRefs } from '../utils/assign-ref';\nimport type { PopperContextProps } from './context';\nimport { PopperProvider } from './context';\nimport { Portal } from '../Portal';\n\nconst useEnhancedEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport type OffsetsFunction = (arg0: {\n popper: Rect;\n reference: Rect;\n placement: Placement;\n}) => [number | null | undefined, number | null | undefined];\n\nexport interface PopperProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n anchorEl: RefObject<HTMLElement>;\n children?: ReactNode;\n placement?: Placement;\n strategy?: PositioningStrategy;\n modifiers?: Array<Partial<Modifier<any, any>>>;\n usePortal?: boolean;\n portalSelector?: string;\n /**\n * Displaces the popper along the reference element.\n */\n skidding?: number;\n /**\n * 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.\n */\n distance?: number;\n /**\n * An optional function that must return a pair of [skidding, padding]. Useful for doing things like, displace the popper by 100%.\n */\n offsetFn?: OffsetsFunction;\n /**\n * 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.\n */\n arrowPadding?: number;\n}\n\nconst emptyModifiers: Array<Partial<Modifier<any, any>>> = [];\nexport const Popper = memo(\n forwardRef<HTMLDivElement, PopperProps>(function Popper(\n {\n placement = 'bottom',\n strategy = 'absolute',\n as: Comp = 'div',\n innerAs,\n anchorEl,\n children,\n modifiers = emptyModifiers,\n usePortal = false,\n style = {},\n portalSelector
|
|
1
|
+
{"version":3,"file":"Popper.js","names":["forwardRef","useRef","useEffect","useLayoutEffect","useMemo","memo","createPopper","assignMultipleRefs","PopperProvider","Portal","jsx","_jsx","useEnhancedEffect","window","emptyModifiers","Popper","_ref","forwardedRef","placement","strategy","as","Comp","innerAs","anchorEl","children","modifiers","usePortal","style","portalSelector","distance","skidding","arrowPadding","offsetFn","props","arrowRef","popperRef","popperEngineInstance","defaultModifiers","arrowModifier","name","options","element","padding","offsetModifier","offset","current","destroy","forceUpdate","hidden","contextValue","ret","value","ref","position","left","top","selector"],"sources":["../../../src/Popper/Popper.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType, RefObject, ReactNode } from 'react';\nimport {\n forwardRef,\n useRef,\n useEffect,\n useLayoutEffect,\n useMemo,\n memo,\n} from 'react';\nimport type {\n Placement,\n Modifier,\n PositioningStrategy,\n Instance,\n Rect,\n} from '@popperjs/core';\nimport { createPopper } from '@popperjs/core';\nimport type { OffsetModifier } from '@popperjs/core/lib/modifiers/offset';\nimport type { ArrowModifier } from '@popperjs/core/lib/modifiers/arrow';\n\nimport { assignMultipleRefs } from '../utils/assign-ref';\nimport type { PopperContextProps } from './context';\nimport { PopperProvider } from './context';\nimport { Portal } from '../Portal';\n\nconst useEnhancedEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport type OffsetsFunction = (arg0: {\n popper: Rect;\n reference: Rect;\n placement: Placement;\n}) => [number | null | undefined, number | null | undefined];\n\nexport interface PopperProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n anchorEl: RefObject<HTMLElement | null>;\n children?: ReactNode;\n placement?: Placement;\n strategy?: PositioningStrategy;\n modifiers?: Array<Partial<Modifier<any, any>>>;\n usePortal?: boolean;\n portalSelector?: string;\n /**\n * Displaces the popper along the reference element.\n */\n skidding?: number;\n /**\n * 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.\n */\n distance?: number;\n /**\n * An optional function that must return a pair of [skidding, padding]. Useful for doing things like, displace the popper by 100%.\n */\n offsetFn?: OffsetsFunction;\n /**\n * 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.\n */\n arrowPadding?: number;\n}\n\nconst emptyModifiers: Array<Partial<Modifier<any, any>>> = [];\nexport const Popper = memo(\n forwardRef<HTMLDivElement, PopperProps>(function Popper(\n {\n placement = 'bottom',\n strategy = 'absolute',\n as: Comp = 'div',\n innerAs,\n anchorEl,\n children,\n modifiers = emptyModifiers,\n usePortal = false,\n style = {},\n portalSelector,\n distance = 0,\n skidding = 0,\n arrowPadding = 5,\n offsetFn,\n ...props\n },\n forwardedRef\n ) {\n const arrowRef = useRef<HTMLSpanElement>(null);\n\n const popperRef = useRef<HTMLDivElement | null>(null);\n const popperEngineInstance = useRef<null | Instance>(null);\n\n const defaultModifiers: Array<Partial<Modifier<any, any>>> = useMemo(() => {\n const arrowModifier: Omit<ArrowModifier, 'enabled' | 'fn' | 'phase'> = {\n name: 'arrow',\n options: {\n element: '[data-popper-arrow]',\n padding: arrowPadding,\n },\n };\n const offsetModifier: Omit<OffsetModifier, 'enabled' | 'fn' | 'phase'> = {\n name: 'offset',\n options: {\n offset: offsetFn ?? [skidding, distance],\n },\n };\n\n return [arrowModifier, offsetModifier];\n }, [arrowPadding, distance, skidding, offsetFn]);\n\n useEnhancedEffect(() => {\n if (anchorEl && anchorEl.current && popperRef.current) {\n popperEngineInstance.current = createPopper(\n anchorEl.current,\n popperRef.current,\n {\n placement,\n strategy,\n modifiers: [...defaultModifiers, ...modifiers],\n }\n );\n }\n\n return () => {\n popperEngineInstance.current && popperEngineInstance.current.destroy();\n popperEngineInstance.current = null;\n };\n }, [anchorEl, modifiers, placement, strategy, defaultModifiers]);\n\n useEnhancedEffect(() => {\n popperEngineInstance.current?.forceUpdate();\n }, [props.hidden || props['aria-hidden']]);\n\n const contextValue: PopperContextProps = {\n arrowRef,\n };\n\n const ret = (\n <PopperProvider value={contextValue}>\n <Comp\n {...props}\n as={innerAs}\n ref={assignMultipleRefs(popperRef, forwardedRef)}\n style={{ position: 'fixed', left: -5000, top: -5000, ...style }}\n >\n {children}\n </Comp>\n </PopperProvider>\n );\n\n if (usePortal) {\n return <Portal selector={portalSelector}>{ret}</Portal>;\n }\n\n return ret;\n })\n);\n"],"mappings":"AACA,SACEA,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,eAAe,EACfC,OAAO,EACPC,IAAI,QACC,OAAO;AAQd,SAASC,YAAY,QAAQ,gBAAgB;AAI7C,SAASC,kBAAkB,QAAQ,qBAAqB;AAExD,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,MAAM,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnC,MAAMC,iBAAiB,GACrB,OAAOC,MAAM,KAAK,WAAW,GAAGV,eAAe,GAAGD,SAAS;AAoC7D,MAAMY,cAAkD,GAAG,EAAE;AAC7D,OAAO,MAAMC,MAAM,gBAAGV,IAAI,cACxBL,UAAU,CAA8B,SAASe,MAAMA,CAAAC,IAAA,EAkBrDC,YAAY,EACZ;EAAA,IAlBA;IACEC,SAAS,GAAG,QAAQ;IACpBC,QAAQ,GAAG,UAAU;IACrBC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAChBC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRC,SAAS,GAAGX,cAAc;IAC1BY,SAAS,GAAG,KAAK;IACjBC,KAAK,GAAG,CAAC,CAAC;IACVC,cAAc;IACdC,QAAQ,GAAG,CAAC;IACZC,QAAQ,GAAG,CAAC;IACZC,YAAY,GAAG,CAAC;IAChBC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAAjB,IAAA;EAGD,MAAMkB,QAAQ,GAAGjC,MAAM,CAAkB,IAAI,CAAC;EAE9C,MAAMkC,SAAS,GAAGlC,MAAM,CAAwB,IAAI,CAAC;EACrD,MAAMmC,oBAAoB,GAAGnC,MAAM,CAAkB,IAAI,CAAC;EAE1D,MAAMoC,gBAAoD,GAAGjC,OAAO,CAAC,MAAM;IACzE,MAAMkC,aAA8D,GAAG;MACrEC,IAAI,EAAE,OAAO;MACbC,OAAO,EAAE;QACPC,OAAO,EAAE,qBAAqB;QAC9BC,OAAO,EAAEX;MACX;IACF,CAAC;IACD,MAAMY,cAAgE,GAAG;MACvEJ,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;QACPI,MAAM,EAAEZ,QAAQ,IAAI,CAACF,QAAQ,EAAED,QAAQ;MACzC;IACF,CAAC;IAED,OAAO,CAACS,aAAa,EAAEK,cAAc,CAAC;EACxC,CAAC,EAAE,CAACZ,YAAY,EAAEF,QAAQ,EAAEC,QAAQ,EAAEE,QAAQ,CAAC,CAAC;EAEhDpB,iBAAiB,CAAC,MAAM;IACtB,IAAIW,QAAQ,IAAIA,QAAQ,CAACsB,OAAO,IAAIV,SAAS,CAACU,OAAO,EAAE;MACrDT,oBAAoB,CAACS,OAAO,GAAGvC,YAAY,CACzCiB,QAAQ,CAACsB,OAAO,EAChBV,SAAS,CAACU,OAAO,EACjB;QACE3B,SAAS;QACTC,QAAQ;QACRM,SAAS,EAAE,CAAC,GAAGY,gBAAgB,EAAE,GAAGZ,SAAS;MAC/C,CACF,CAAC;IACH;IAEA,OAAO,MAAM;MACXW,oBAAoB,CAACS,OAAO,IAAIT,oBAAoB,CAACS,OAAO,CAACC,OAAO,CAAC,CAAC;MACtEV,oBAAoB,CAACS,OAAO,GAAG,IAAI;IACrC,CAAC;EACH,CAAC,EAAE,CAACtB,QAAQ,EAAEE,SAAS,EAAEP,SAAS,EAAEC,QAAQ,EAAEkB,gBAAgB,CAAC,CAAC;EAEhEzB,iBAAiB,CAAC,MAAM;IACtBwB,oBAAoB,CAACS,OAAO,EAAEE,WAAW,CAAC,CAAC;EAC7C,CAAC,EAAE,CAACd,KAAK,CAACe,MAAM,IAAIf,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;EAE1C,MAAMgB,YAAgC,GAAG;IACvCf;EACF,CAAC;EAED,MAAMgB,GAAG,gBACPvC,IAAA,CAACH,cAAc;IAAC2C,KAAK,EAAEF,YAAa;IAAAzB,QAAA,eAClCb,IAAA,CAACU,IAAI;MAAA,GACCY,KAAK;MACTb,EAAE,EAAEE,OAAQ;MACZ8B,GAAG,EAAE7C,kBAAkB,CAAC4B,SAAS,EAAElB,YAAY,CAAE;MACjDU,KAAK,EAAE;QAAE0B,QAAQ,EAAE,OAAO;QAAEC,IAAI,EAAE,CAAC,IAAI;QAAEC,GAAG,EAAE,CAAC,IAAI;QAAE,GAAG5B;MAAM,CAAE;MAAAH,QAAA,EAE/DA;IAAQ,CACL;EAAC,CACO,CACjB;EAED,IAAIE,SAAS,EAAE;IACb,oBAAOf,IAAA,CAACF,MAAM;MAAC+C,QAAQ,EAAE5B,cAAe;MAAAJ,QAAA,EAAE0B;IAAG,CAAS,CAAC;EACzD;EAEA,OAAOA,GAAG;AACZ,CAAC,CACH,CAAC","ignoreList":[]}
|
|
@@ -1,30 +1,25 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["as"];
|
|
4
1
|
import { forwardRef } from 'react';
|
|
5
2
|
import { usePopperContext } from './context';
|
|
6
3
|
import { assignMultipleRefs } from '../utils/assign-ref';
|
|
7
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
export const PopperArrow = /*#__PURE__*/forwardRef(function PopperArrow(_ref, ref) {
|
|
6
|
+
let {
|
|
7
|
+
as: Comp = 'div',
|
|
8
|
+
...props
|
|
9
|
+
} = _ref;
|
|
10
|
+
const ctx = usePopperContext();
|
|
15
11
|
if (ctx === null) {
|
|
16
12
|
return null;
|
|
17
13
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
ref:
|
|
14
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
15
|
+
...props,
|
|
16
|
+
ref: node => {
|
|
21
17
|
if (node && ctx.arrowRef.current && ctx.arrowRef.current !== node) {
|
|
22
18
|
throw new Error('You can only render one <PopperArrow /> per <Popper> component');
|
|
23
19
|
}
|
|
24
|
-
|
|
25
|
-
assignMultipleRefs(_ref2, ctx.arrowRef)(node);
|
|
20
|
+
assignMultipleRefs(ref, ctx.arrowRef)(node);
|
|
26
21
|
},
|
|
27
22
|
"data-popper-arrow": ""
|
|
28
|
-
})
|
|
23
|
+
});
|
|
29
24
|
});
|
|
30
25
|
//# sourceMappingURL=PopperArrow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperArrow.js","names":["forwardRef","usePopperContext","assignMultipleRefs","PopperArrow","ref","as","Comp","props","ctx","node","arrowRef","current","Error"],"sources":["../../../src/Popper/PopperArrow.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { usePopperContext } from './context';\nimport { assignMultipleRefs } from '../utils/assign-ref';\n\nexport interface PopperArrowProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n}\n\nexport const PopperArrow = forwardRef<HTMLDivElement, PopperArrowProps>(\n function PopperArrow({ as: Comp = 'div', ...props }, ref) {\n const ctx = usePopperContext();\n\n if (ctx === null) {\n return null;\n }\n\n return (\n <Comp\n {...props}\n ref={(node: HTMLDivElement | null) => {\n if (node && ctx.arrowRef.current && ctx.arrowRef.current !== node) {\n throw new Error(\n 'You can only render one <PopperArrow /> per <Popper> component'\n );\n }\n assignMultipleRefs(ref, ctx.arrowRef)(node);\n }}\n data-popper-arrow=\"\"\n />\n );\n }\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PopperArrow.js","names":["forwardRef","usePopperContext","assignMultipleRefs","jsx","_jsx","PopperArrow","_ref","ref","as","Comp","props","ctx","node","arrowRef","current","Error"],"sources":["../../../src/Popper/PopperArrow.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { usePopperContext } from './context';\nimport { assignMultipleRefs } from '../utils/assign-ref';\n\nexport interface PopperArrowProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n}\n\nexport const PopperArrow = forwardRef<HTMLDivElement, PopperArrowProps>(\n function PopperArrow({ as: Comp = 'div', ...props }, ref) {\n const ctx = usePopperContext();\n\n if (ctx === null) {\n return null;\n }\n\n return (\n <Comp\n {...props}\n ref={(node: HTMLDivElement | null) => {\n if (node && ctx.arrowRef.current && ctx.arrowRef.current !== node) {\n throw new Error(\n 'You can only render one <PopperArrow /> per <Popper> component'\n );\n }\n assignMultipleRefs(ref, ctx.arrowRef)(node);\n }}\n data-popper-arrow=\"\"\n />\n );\n }\n);\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,gBAAgB,QAAQ,WAAW;AAC5C,SAASC,kBAAkB,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOzD,OAAO,MAAMC,WAAW,gBAAGL,UAAU,CACnC,SAASK,WAAWA,CAAAC,IAAA,EAAiCC,GAAG,EAAE;EAAA,IAArC;IAAEC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAAE,GAAGC;EAAM,CAAC,GAAAJ,IAAA;EACjD,MAAMK,GAAG,GAAGV,gBAAgB,CAAC,CAAC;EAE9B,IAAIU,GAAG,KAAK,IAAI,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,oBACEP,IAAA,CAACK,IAAI;IAAA,GACCC,KAAK;IACTH,GAAG,EAAGK,IAA2B,IAAK;MACpC,IAAIA,IAAI,IAAID,GAAG,CAACE,QAAQ,CAACC,OAAO,IAAIH,GAAG,CAACE,QAAQ,CAACC,OAAO,KAAKF,IAAI,EAAE;QACjE,MAAM,IAAIG,KAAK,CACb,gEACF,CAAC;MACH;MACAb,kBAAkB,CAACK,GAAG,EAAEI,GAAG,CAACE,QAAQ,CAAC,CAACD,IAAI,CAAC;IAC7C,CAAE;IACF,qBAAkB;EAAE,CACrB,CAAC;AAEN,CACF,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { createContext, useContext } from 'react';
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
return useContext(context);
|
|
6
|
-
};
|
|
2
|
+
const context = /*#__PURE__*/createContext(null);
|
|
3
|
+
export const PopperProvider = context.Provider;
|
|
4
|
+
export const usePopperContext = () => useContext(context);
|
|
7
5
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":["createContext","useContext","context","PopperProvider","Provider","usePopperContext"],"sources":["../../../src/Popper/context.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { createContext, useContext } from 'react';\n\nexport interface PopperContextProps {\n arrowRef: MutableRefObject<HTMLSpanElement | null>;\n}\n\nconst context = createContext<PopperContextProps | null>(null);\nexport const PopperProvider = context.Provider;\nexport const usePopperContext = () => useContext(context);\n"],"mappings":"AACA,SAASA,
|
|
1
|
+
{"version":3,"file":"context.js","names":["createContext","useContext","context","PopperProvider","Provider","usePopperContext"],"sources":["../../../src/Popper/context.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { createContext, useContext } from 'react';\n\nexport interface PopperContextProps {\n arrowRef: MutableRefObject<HTMLSpanElement | null>;\n}\n\nconst context = createContext<PopperContextProps | null>(null);\nexport const PopperProvider = context.Provider;\nexport const usePopperContext = () => useContext(context);\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAMjD,MAAMC,OAAO,gBAAGF,aAAa,CAA4B,IAAI,CAAC;AAC9D,OAAO,MAAMG,cAAc,GAAGD,OAAO,CAACE,QAAQ;AAC9C,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAMJ,UAAU,CAACC,OAAO,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Popper/index.ts"],"sourcesContent":["export * from './Popper';\nexport * from './PopperArrow';\nexport * from './context';\n"],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Popper/index.ts"],"sourcesContent":["export * from './Popper';\nexport * from './PopperArrow';\nexport * from './context';\n"],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,WAAW","ignoreList":[]}
|
|
@@ -2,25 +2,23 @@ import { useContext } from 'react';
|
|
|
2
2
|
import { createPortal } from 'react-dom';
|
|
3
3
|
import { PortalSelectorContext } from './PortalSelectorProvider';
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export const Portal = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
children,
|
|
8
|
+
selector: selectorProp
|
|
9
|
+
} = _ref;
|
|
10
|
+
const selectorCtx = useContext(PortalSelectorContext);
|
|
10
11
|
if (typeof window === 'undefined') {
|
|
11
12
|
return null;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var dom = typeof selector === 'string' ? document.querySelector(selector) : selector();
|
|
16
|
-
|
|
14
|
+
const selector = selectorProp || selectorCtx || 'body';
|
|
15
|
+
const dom = typeof selector === 'string' ? document.querySelector(selector) : selector();
|
|
17
16
|
if (dom) {
|
|
18
|
-
return /*#__PURE__*/createPortal(
|
|
17
|
+
return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx("div", {
|
|
19
18
|
"data-portal": "",
|
|
20
19
|
children: children
|
|
21
20
|
}), dom);
|
|
22
21
|
}
|
|
23
|
-
|
|
24
22
|
return null;
|
|
25
23
|
};
|
|
26
24
|
//# sourceMappingURL=Portal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Portal.js","names":["useContext","createPortal","PortalSelectorContext","Portal","
|
|
1
|
+
{"version":3,"file":"Portal.js","names":["useContext","createPortal","PortalSelectorContext","jsx","_jsx","Portal","_ref","children","selector","selectorProp","selectorCtx","window","dom","document","querySelector"],"sources":["../../../src/Portal/Portal.tsx"],"sourcesContent":["import { useContext, type FC, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport type { PortalSelectorFn } from './PortalSelectorProvider';\nimport { PortalSelectorContext } from './PortalSelectorProvider';\n\nexport interface PortalProps {\n children?: ReactNode;\n selector?: PortalSelectorFn;\n}\n\nexport const Portal: FC<PortalProps> = ({\n children,\n selector: selectorProp,\n}) => {\n const selectorCtx = useContext(PortalSelectorContext);\n if (typeof window === 'undefined') {\n return null;\n }\n\n const selector = selectorProp || selectorCtx || 'body';\n const dom =\n typeof selector === 'string'\n ? document.querySelector(selector)\n : selector();\n if (dom) {\n return createPortal(<div data-portal=\"\">{children}</div>, dom);\n }\n\n return null;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAiC,OAAO;AAC3D,SAASC,YAAY,QAAQ,WAAW;AAGxC,SAASC,qBAAqB,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOjE,OAAO,MAAMC,MAAuB,GAAGC,IAAA,IAGjC;EAAA,IAHkC;IACtCC,QAAQ;IACRC,QAAQ,EAAEC;EACZ,CAAC,GAAAH,IAAA;EACC,MAAMI,WAAW,GAAGV,UAAU,CAACE,qBAAqB,CAAC;EACrD,IAAI,OAAOS,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO,IAAI;EACb;EAEA,MAAMH,QAAQ,GAAGC,YAAY,IAAIC,WAAW,IAAI,MAAM;EACtD,MAAME,GAAG,GACP,OAAOJ,QAAQ,KAAK,QAAQ,GACxBK,QAAQ,CAACC,aAAa,CAACN,QAAQ,CAAC,GAChCA,QAAQ,CAAC,CAAC;EAChB,IAAII,GAAG,EAAE;IACP,oBAAOX,YAAY,cAACG,IAAA;MAAK,eAAY,EAAE;MAAAG,QAAA,EAAEA;IAAQ,CAAM,CAAC,EAAEK,GAAG,CAAC;EAChE;EAEA,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
export
|
|
2
|
+
export type PortalSelectorFn = string | (() => Element | null);
|
|
3
3
|
export declare const PortalSelectorContext: import("react").Context<PortalSelectorFn | null>;
|
|
4
|
-
export
|
|
4
|
+
export type PortalSelectorProviderProps = {
|
|
5
5
|
selector: PortalSelectorFn;
|
|
6
6
|
children?: ReactNode | ReactNode[];
|
|
7
7
|
};
|
|
8
|
-
export declare const PortalSelectorProvider: ({ selector, children, }: PortalSelectorProviderProps) => JSX.Element;
|
|
8
|
+
export declare const PortalSelectorProvider: ({ selector, children, }: PortalSelectorProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { createContext } from 'react';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
export
|
|
3
|
+
export const PortalSelectorContext = /*#__PURE__*/createContext(null);
|
|
4
4
|
PortalSelectorContext.displayName = 'PortalSelectorContext';
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export const PortalSelectorProvider = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
selector,
|
|
8
|
+
children
|
|
9
|
+
} = _ref;
|
|
8
10
|
return /*#__PURE__*/_jsx(PortalSelectorContext.Provider, {
|
|
9
11
|
value: selector,
|
|
10
12
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalSelectorProvider.js","names":["createContext","PortalSelectorContext","displayName","PortalSelectorProvider","selector","children"],"sources":["../../../src/Portal/PortalSelectorProvider.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport type { ReactNode } from 'react';\n\nexport type PortalSelectorFn = string | (() => Element | null);\nexport const PortalSelectorContext = createContext<PortalSelectorFn | null>(\n null\n);\nPortalSelectorContext.displayName = 'PortalSelectorContext';\n\nexport type PortalSelectorProviderProps = {\n selector: PortalSelectorFn;\n children?: ReactNode | ReactNode[];\n};\n\nexport const PortalSelectorProvider = ({\n selector,\n children,\n}: PortalSelectorProviderProps) => {\n return (\n <PortalSelectorContext.Provider value={selector}>\n {children}\n </PortalSelectorContext.Provider>\n );\n};\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"file":"PortalSelectorProvider.js","names":["createContext","jsx","_jsx","PortalSelectorContext","displayName","PortalSelectorProvider","_ref","selector","children","Provider","value"],"sources":["../../../src/Portal/PortalSelectorProvider.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport type { ReactNode } from 'react';\n\nexport type PortalSelectorFn = string | (() => Element | null);\nexport const PortalSelectorContext = createContext<PortalSelectorFn | null>(\n null\n);\nPortalSelectorContext.displayName = 'PortalSelectorContext';\n\nexport type PortalSelectorProviderProps = {\n selector: PortalSelectorFn;\n children?: ReactNode | ReactNode[];\n};\n\nexport const PortalSelectorProvider = ({\n selector,\n children,\n}: PortalSelectorProviderProps) => {\n return (\n <PortalSelectorContext.Provider value={selector}>\n {children}\n </PortalSelectorContext.Provider>\n );\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAItC,OAAO,MAAMC,qBAAqB,gBAAGH,aAAa,CAChD,IACF,CAAC;AACDG,qBAAqB,CAACC,WAAW,GAAG,uBAAuB;AAO3D,OAAO,MAAMC,sBAAsB,GAAGC,IAAA,IAGH;EAAA,IAHI;IACrCC,QAAQ;IACRC;EAC2B,CAAC,GAAAF,IAAA;EAC5B,oBACEJ,IAAA,CAACC,qBAAqB,CAACM,QAAQ;IAACC,KAAK,EAAEH,QAAS;IAAAC,QAAA,EAC7CA;EAAQ,CACqB,CAAC;AAErC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["PortalSelectorProvider"],"sources":["../../../src/Portal/index.ts"],"sourcesContent":["export * from './Portal';\nexport {\n PortalSelectorProvider,\n type PortalSelectorProviderProps,\n type PortalSelectorFn,\n} from './PortalSelectorProvider';\n"],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","names":["PortalSelectorProvider"],"sources":["../../../src/Portal/index.ts"],"sourcesContent":["export * from './Portal';\nexport {\n PortalSelectorProvider,\n type PortalSelectorProviderProps,\n type PortalSelectorFn,\n} from './PortalSelectorProvider';\n"],"mappings":"AAAA,cAAc,UAAU;AACxB,SACEA,sBAAsB,QAGjB,0BAA0B","ignoreList":[]}
|