@basic-ui/core 0.0.41 → 0.0.44
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 +1312 -464
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/Accordion.d.ts +0 -0
- package/build/esm/Accordion/Accordion.js +4 -3
- package/build/esm/Accordion/Accordion.js.map +1 -1
- package/build/esm/Accordion/AccordionBody.d.ts +0 -0
- package/build/esm/Accordion/AccordionBody.js +4 -3
- package/build/esm/Accordion/AccordionBody.js.map +1 -1
- package/build/esm/Accordion/AccordionHeader.d.ts +0 -0
- package/build/esm/Accordion/AccordionHeader.js +4 -3
- package/build/esm/Accordion/AccordionHeader.js.map +1 -1
- package/build/esm/Accordion/AccordionItem.d.ts +0 -0
- package/build/esm/Accordion/AccordionItem.js +2 -1
- package/build/esm/Accordion/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/context.d.ts +0 -0
- package/build/esm/Accordion/context.js +0 -0
- package/build/esm/Accordion/context.js.map +1 -1
- package/build/esm/Accordion/index.d.ts +0 -0
- package/build/esm/Accordion/index.js +0 -0
- package/build/esm/Accordion/index.js.map +1 -1
- package/build/esm/Accordion/scopeQuery.d.ts +0 -0
- package/build/esm/Accordion/scopeQuery.js +0 -0
- package/build/esm/Accordion/scopeQuery.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.d.ts +0 -0
- package/build/esm/CheckBox/CheckBox.js +2 -1
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/CheckBox/index.d.ts +0 -0
- package/build/esm/CheckBox/index.js +0 -0
- package/build/esm/CheckBox/index.js.map +1 -1
- package/build/esm/ComboBox/Combobox.d.ts +0 -0
- package/build/esm/ComboBox/Combobox.js +3 -2
- package/build/esm/ComboBox/Combobox.js.map +1 -1
- package/build/esm/ComboBox/ComboboxButton.d.ts +0 -0
- package/build/esm/ComboBox/ComboboxButton.js +4 -3
- package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
- package/build/esm/ComboBox/ComboboxInput.d.ts +0 -0
- package/build/esm/ComboBox/ComboboxInput.js +3 -2
- package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
- package/build/esm/ComboBox/ComboboxLabel.d.ts +0 -0
- package/build/esm/ComboBox/ComboboxLabel.js +2 -1
- package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
- package/build/esm/ComboBox/ComboboxList.d.ts +0 -0
- package/build/esm/ComboBox/ComboboxList.js +3 -2
- package/build/esm/ComboBox/ComboboxList.js.map +1 -1
- package/build/esm/ComboBox/ComboboxOption.d.ts +0 -0
- package/build/esm/ComboBox/ComboboxOption.js +4 -3
- package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
- package/build/esm/ComboBox/ComboboxPopover.d.ts +0 -0
- package/build/esm/ComboBox/ComboboxPopover.js +5 -4
- package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
- package/build/esm/ComboBox/cities.d.ts +0 -0
- package/build/esm/ComboBox/cities.js +0 -0
- package/build/esm/ComboBox/cities.js.map +1 -1
- package/build/esm/ComboBox/context.d.ts +0 -0
- package/build/esm/ComboBox/context.js +0 -0
- package/build/esm/ComboBox/context.js.map +1 -1
- package/build/esm/ComboBox/hooks.d.ts +0 -0
- package/build/esm/ComboBox/hooks.js +11 -11
- package/build/esm/ComboBox/hooks.js.map +1 -1
- package/build/esm/ComboBox/index.d.ts +0 -0
- package/build/esm/ComboBox/index.js +0 -0
- package/build/esm/ComboBox/index.js.map +1 -1
- package/build/esm/ComboBox/makeHash.d.ts +0 -0
- package/build/esm/ComboBox/makeHash.js +0 -0
- package/build/esm/ComboBox/makeHash.js.map +1 -1
- package/build/esm/ComboBox/scopeQuery.d.ts +0 -0
- package/build/esm/ComboBox/scopeQuery.js +0 -0
- package/build/esm/ComboBox/scopeQuery.js.map +1 -1
- package/build/esm/FocusLock/FocusLock.d.ts +0 -0
- package/build/esm/FocusLock/FocusLock.js +2 -1
- package/build/esm/FocusLock/FocusLock.js.map +1 -1
- package/build/esm/FocusLock/index.d.ts +0 -0
- package/build/esm/FocusLock/index.js +0 -0
- package/build/esm/FocusLock/index.js.map +1 -1
- package/build/esm/FocusLock/tabUtils.d.ts +0 -0
- package/build/esm/FocusLock/tabUtils.js +0 -0
- package/build/esm/FocusLock/tabUtils.js.map +1 -1
- package/build/esm/FocusLock/useFocusLock.d.ts +0 -0
- package/build/esm/FocusLock/useFocusLock.js +0 -0
- package/build/esm/FocusLock/useFocusLock.js.map +1 -1
- package/build/esm/List/List.d.ts +0 -0
- package/build/esm/List/List.js +2 -1
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/ListItem.d.ts +0 -0
- package/build/esm/List/ListItem.js +2 -1
- package/build/esm/List/ListItem.js.map +1 -1
- package/build/esm/List/context.d.ts +0 -0
- package/build/esm/List/context.js +0 -0
- package/build/esm/List/context.js.map +1 -1
- package/build/esm/List/index.d.ts +0 -0
- package/build/esm/List/index.js +0 -0
- package/build/esm/List/index.js.map +1 -1
- package/build/esm/Menu/Menu.d.ts +0 -0
- package/build/esm/Menu/Menu.js +2 -1
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/MenuButton.d.ts +0 -0
- package/build/esm/Menu/MenuButton.js +3 -2
- package/build/esm/Menu/MenuButton.js.map +1 -1
- package/build/esm/Menu/MenuItem.d.ts +0 -0
- package/build/esm/Menu/MenuItem.js +4 -3
- package/build/esm/Menu/MenuItem.js.map +1 -1
- package/build/esm/Menu/MenuList.d.ts +0 -0
- package/build/esm/Menu/MenuList.js +6 -5
- package/build/esm/Menu/MenuList.js.map +1 -1
- package/build/esm/Menu/MenuPopover.d.ts +0 -0
- package/build/esm/Menu/MenuPopover.js +2 -1
- package/build/esm/Menu/MenuPopover.js.map +1 -1
- package/build/esm/Menu/context.d.ts +0 -0
- package/build/esm/Menu/context.js +0 -0
- package/build/esm/Menu/context.js.map +1 -1
- package/build/esm/Menu/index.d.ts +0 -0
- package/build/esm/Menu/index.js +0 -0
- package/build/esm/Menu/index.js.map +1 -1
- package/build/esm/Menu/scope.d.ts +0 -0
- package/build/esm/Menu/scope.js +0 -0
- package/build/esm/Menu/scope.js.map +1 -1
- package/build/esm/Modal/Modal.d.ts +0 -0
- package/build/esm/Modal/Modal.js +5 -4
- package/build/esm/Modal/Modal.js.map +1 -1
- package/build/esm/Modal/ModalBackdrop.d.ts +0 -0
- package/build/esm/Modal/ModalBackdrop.js +6 -5
- package/build/esm/Modal/ModalBackdrop.js.map +1 -1
- package/build/esm/Modal/index.d.ts +0 -0
- package/build/esm/Modal/index.js +0 -0
- package/build/esm/Modal/index.js.map +1 -1
- package/build/esm/Popper/Popper.d.ts +0 -0
- package/build/esm/Popper/Popper.js +6 -5
- package/build/esm/Popper/Popper.js.map +1 -1
- package/build/esm/Popper/PopperArrow.d.ts +0 -0
- package/build/esm/Popper/PopperArrow.js +5 -5
- package/build/esm/Popper/PopperArrow.js.map +1 -1
- package/build/esm/Popper/context.d.ts +0 -0
- package/build/esm/Popper/context.js +0 -0
- package/build/esm/Popper/context.js.map +1 -1
- package/build/esm/Popper/index.d.ts +0 -0
- package/build/esm/Popper/index.js +0 -0
- package/build/esm/Popper/index.js.map +1 -1
- package/build/esm/Portal/Portal.d.ts +0 -0
- package/build/esm/Portal/Portal.js +0 -0
- package/build/esm/Portal/Portal.js.map +1 -1
- package/build/esm/Portal/index.d.ts +0 -0
- package/build/esm/Portal/index.js +0 -0
- package/build/esm/Portal/index.js.map +1 -1
- package/build/esm/RadioButton/RadioButton.d.ts +0 -0
- package/build/esm/RadioButton/RadioButton.js +5 -2
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.d.ts +0 -0
- package/build/esm/RadioButton/RadioGroup.js +2 -1
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/context.d.ts +0 -0
- package/build/esm/RadioButton/context.js +0 -0
- package/build/esm/RadioButton/context.js.map +1 -1
- package/build/esm/RadioButton/index.d.ts +0 -0
- package/build/esm/RadioButton/index.js +0 -0
- package/build/esm/RadioButton/index.js.map +1 -1
- package/build/esm/SkipNav/SkipNav.d.ts +0 -0
- package/build/esm/SkipNav/SkipNav.js +2 -1
- package/build/esm/SkipNav/SkipNav.js.map +1 -1
- package/build/esm/SkipNav/index.d.ts +0 -0
- package/build/esm/SkipNav/index.js +0 -0
- package/build/esm/SkipNav/index.js.map +1 -1
- package/build/esm/Slider/Slider.d.ts +218 -0
- package/build/esm/Slider/Slider.js +842 -0
- package/build/esm/Slider/Slider.js.map +1 -0
- package/build/esm/Slider/index.d.ts +1 -0
- package/build/esm/Slider/index.js +2 -0
- package/build/esm/Slider/index.js.map +1 -0
- package/build/esm/Spinner/Spinner.d.ts +0 -0
- package/build/esm/Spinner/Spinner.js +2 -1
- package/build/esm/Spinner/Spinner.js.map +1 -1
- package/build/esm/Spinner/SpinnerButton.d.ts +0 -0
- package/build/esm/Spinner/SpinnerButton.js +3 -2
- package/build/esm/Spinner/SpinnerButton.js.map +1 -1
- package/build/esm/Spinner/context.d.ts +0 -0
- package/build/esm/Spinner/context.js +0 -0
- package/build/esm/Spinner/context.js.map +1 -1
- package/build/esm/Spinner/index.d.ts +0 -0
- package/build/esm/Spinner/index.js +0 -0
- package/build/esm/Spinner/index.js.map +1 -1
- package/build/esm/Tabs/Tab.d.ts +0 -0
- package/build/esm/Tabs/Tab.js +3 -2
- package/build/esm/Tabs/Tab.js.map +1 -1
- package/build/esm/Tabs/TabList.d.ts +0 -0
- package/build/esm/Tabs/TabList.js +4 -3
- package/build/esm/Tabs/TabList.js.map +1 -1
- package/build/esm/Tabs/TabPanel.d.ts +0 -0
- package/build/esm/Tabs/TabPanel.js +4 -3
- package/build/esm/Tabs/TabPanel.js.map +1 -1
- package/build/esm/Tabs/TabPanels.d.ts +0 -0
- package/build/esm/Tabs/TabPanels.js +4 -3
- package/build/esm/Tabs/TabPanels.js.map +1 -1
- package/build/esm/Tabs/Tabs.d.ts +0 -0
- package/build/esm/Tabs/Tabs.js +2 -1
- package/build/esm/Tabs/Tabs.js.map +1 -1
- package/build/esm/Tabs/context.d.ts +0 -0
- package/build/esm/Tabs/context.js +0 -0
- package/build/esm/Tabs/context.js.map +1 -1
- package/build/esm/Tabs/index.d.ts +0 -0
- package/build/esm/Tabs/index.js +0 -0
- package/build/esm/Tabs/index.js.map +1 -1
- package/build/esm/Tabs/scopeQuery.d.ts +0 -0
- package/build/esm/Tabs/scopeQuery.js +0 -0
- package/build/esm/Tabs/scopeQuery.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +0 -0
- package/build/esm/Tooltip/Tooltip.js +4 -2
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/index.d.ts +0 -0
- package/build/esm/Tooltip/index.js +0 -0
- package/build/esm/Tooltip/index.js.map +1 -1
- package/build/esm/Tooltip/stateMachine.d.ts +0 -0
- package/build/esm/Tooltip/stateMachine.js +9 -9
- package/build/esm/Tooltip/stateMachine.js.map +1 -1
- package/build/esm/Tooltip/useTooltip.d.ts +0 -0
- package/build/esm/Tooltip/useTooltip.js +6 -5
- package/build/esm/Tooltip/useTooltip.js.map +1 -1
- package/build/esm/hooks/index.d.ts +0 -0
- package/build/esm/hooks/index.js +0 -0
- package/build/esm/hooks/index.js.map +1 -1
- package/build/esm/hooks/useAutoFocus.d.ts +0 -0
- package/build/esm/hooks/useAutoFocus.js +0 -0
- package/build/esm/hooks/useAutoFocus.js.map +1 -1
- package/build/esm/hooks/useChildrenCounter.d.ts +0 -0
- package/build/esm/hooks/useChildrenCounter.js +0 -0
- package/build/esm/hooks/useChildrenCounter.js.map +1 -1
- package/build/esm/hooks/useControlledState.d.ts +1 -1
- package/build/esm/hooks/useControlledState.js +8 -7
- package/build/esm/hooks/useControlledState.js.map +1 -1
- package/build/esm/hooks/useFocusReturn.d.ts +0 -0
- package/build/esm/hooks/useFocusReturn.js +2 -2
- package/build/esm/hooks/useFocusReturn.js.map +1 -1
- package/build/esm/hooks/useFocusState.d.ts +2 -2
- package/build/esm/hooks/useFocusState.js +1 -1
- package/build/esm/hooks/useFocusState.js.map +1 -1
- package/build/esm/hooks/useGestureHandlers.d.ts +0 -0
- package/build/esm/hooks/useGestureHandlers.js +23 -15
- package/build/esm/hooks/useGestureHandlers.js.map +1 -1
- package/build/esm/hooks/useMeasure.d.ts +0 -0
- package/build/esm/hooks/useMeasure.js +0 -1
- package/build/esm/hooks/useMeasure.js.map +1 -1
- package/build/esm/hooks/useOnClickOutside.d.ts +0 -0
- package/build/esm/hooks/useOnClickOutside.js +0 -0
- package/build/esm/hooks/useOnClickOutside.js.map +1 -1
- package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
- package/build/esm/hooks/useOnKeyDown.js +5 -5
- package/build/esm/hooks/useOnKeyDown.js.map +1 -1
- package/build/esm/hooks/useReducerMachine.d.ts +0 -0
- package/build/esm/hooks/useReducerMachine.js +2 -1
- package/build/esm/hooks/useReducerMachine.js.map +1 -1
- package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -1
- package/build/esm/hooks/useRemoveBodyScroll.js +12 -8
- package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
- package/build/esm/hooks/useScope.d.ts +0 -0
- package/build/esm/hooks/useScope.js +0 -0
- package/build/esm/hooks/useScope.js.map +1 -1
- package/build/esm/hooks/useThrottle.d.ts +0 -0
- package/build/esm/hooks/useThrottle.js +0 -0
- package/build/esm/hooks/useThrottle.js.map +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/utils/assign-ref.d.ts +3 -0
- package/build/esm/utils/{assignRef.js → assign-ref.js} +1 -1
- package/build/esm/utils/assign-ref.js.map +1 -0
- package/build/esm/utils/can-use-dom.d.ts +1 -0
- package/build/esm/utils/can-use-dom.js +4 -0
- package/build/esm/utils/can-use-dom.js.map +1 -0
- package/build/esm/utils/clamp.d.ts +0 -0
- package/build/esm/utils/clamp.js +0 -0
- package/build/esm/utils/clamp.js.map +1 -1
- package/build/esm/utils/context.d.ts +7 -0
- package/build/esm/utils/context.js +41 -0
- package/build/esm/utils/context.js.map +1 -0
- package/build/esm/utils/{createSubscription.d.ts → create-subscription.d.ts} +0 -0
- package/build/esm/utils/{createSubscription.js → create-subscription.js} +1 -1
- package/build/esm/utils/create-subscription.js.map +1 -0
- package/build/esm/utils/{getCircularIndex.d.ts → get-circular-index.d.ts} +0 -0
- package/build/esm/utils/{getCircularIndex.js → get-circular-index.js} +1 -1
- package/build/esm/utils/get-circular-index.js.map +1 -0
- package/build/esm/utils/index.d.ts +10 -4
- package/build/esm/utils/index.js +10 -4
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/is-right-click.d.ts +6 -0
- package/build/esm/utils/is-right-click.js +9 -0
- package/build/esm/utils/is-right-click.js.map +1 -0
- package/build/esm/utils/owner-document.d.ts +7 -0
- package/build/esm/utils/owner-document.js +12 -0
- package/build/esm/utils/owner-document.js.map +1 -0
- package/build/esm/utils/polymorphic.d.ts +32 -0
- package/build/esm/utils/polymorphic.js +2 -0
- package/build/esm/utils/polymorphic.js.map +1 -0
- package/build/esm/utils/{rubberBandClamp.d.ts → rubber-band-clamp.d.ts} +0 -0
- package/build/esm/utils/{rubberBandClamp.js → rubber-band-clamp.js} +1 -1
- package/build/esm/utils/rubber-band-clamp.js.map +1 -0
- package/build/esm/utils/use-stable-callback.d.ts +16 -0
- package/build/esm/utils/use-stable-callback.js +43 -0
- package/build/esm/utils/use-stable-callback.js.map +1 -0
- package/build/esm/utils/wrap-event.d.ts +3 -0
- package/build/esm/utils/{wrapEvent.js → wrap-event.js} +1 -1
- package/build/esm/utils/wrap-event.js.map +1 -0
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/src/ComboBox/ComboboxButton.tsx +2 -2
- package/src/ComboBox/ComboboxOption.tsx +1 -1
- package/src/ComboBox/ComboboxPopover.tsx +2 -2
- package/src/ComboBox/hooks.tsx +1 -1
- package/src/Menu/MenuButton.tsx +1 -1
- package/src/Menu/MenuItem.tsx +1 -1
- package/src/Menu/MenuList.tsx +1 -1
- package/src/Modal/Modal.tsx +1 -1
- package/src/Modal/ModalBackdrop.tsx +2 -2
- package/src/Popper/Popper.tsx +1 -1
- package/src/Popper/PopperArrow.tsx +2 -4
- package/src/Slider/Slider.story.tsx +45 -0
- package/src/Slider/Slider.tsx +1106 -0
- package/src/Slider/index.ts +1 -0
- package/src/Slider/styles.css +131 -0
- package/src/Tooltip/Tooltip.story.tsx +2 -2
- package/src/Tooltip/stateMachine.ts +9 -13
- package/src/Tooltip/useTooltip.ts +2 -2
- package/src/hooks/useControlledState.ts +12 -9
- package/src/hooks/useFocusState.ts +1 -1
- package/src/hooks/useGestureHandlers.ts +22 -12
- package/src/hooks/useMeasure.ts +0 -1
- package/src/hooks/useOnKeyDown.ts +4 -3
- package/src/hooks/useRemoveBodyScroll.ts +18 -8
- package/src/index.ts +1 -0
- package/src/utils/{assignRef.ts → assign-ref.ts} +4 -4
- package/src/utils/can-use-dom.ts +7 -0
- package/src/utils/context.tsx +48 -0
- package/src/utils/{createSubscription.ts → create-subscription.ts} +0 -0
- package/src/utils/{getCircularIndex.ts → get-circular-index.ts} +0 -0
- package/src/utils/index.ts +10 -4
- package/src/utils/is-right-click.ts +14 -0
- package/src/utils/owner-document.ts +13 -0
- package/src/utils/polymorphic.ts +72 -0
- package/src/utils/{rubberBandClamp.ts → rubber-band-clamp.ts} +0 -0
- package/src/utils/use-stable-callback.ts +58 -0
- package/src/utils/wrap-event.ts +22 -0
- package/build/esm/hooks/useId.d.ts +0 -3
- package/build/esm/hooks/useId.js +0 -16
- package/build/esm/hooks/useId.js.map +0 -1
- package/build/esm/utils/assignRef.d.ts +0 -3
- package/build/esm/utils/assignRef.js.map +0 -1
- package/build/esm/utils/createSubscription.js.map +0 -1
- package/build/esm/utils/getCircularIndex.js.map +0 -1
- package/build/esm/utils/rubberBandClamp.js.map +0 -1
- package/build/esm/utils/wrapEvent.d.ts +0 -3
- package/build/esm/utils/wrapEvent.js.map +0 -1
- package/build/tsconfig.tsbuildinfo +0 -1
- package/src/utils/wrapEvent.ts +0 -19
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useMeasure.js","names":["useRef","useState","useEffect","useMeasure","ref","ro","left","top","width","height","bounds","setBounds","current","ResizeObserver","entries","entry","contentRect","observe","disconnect"],"sources":["../../../src/hooks/useMeasure.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useRef, useState, useEffect } from 'react';\n\nexport function useMeasure(ref: MutableRefObject<HTMLElement | null>) {\n const ro = useRef<ResizeObserver | null>(null);\n const [bounds, setBounds] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n });\n\n useEffect(() => {\n if (ro.current === null) {\n ro.current = new ResizeObserver((entries: any) => {\n const entry = entries[0];\n setBounds(entry.contentRect);\n });\n }\n\n if (ref.current) {\n ro.current.observe(ref.current);\n }\n\n return () => {\n if (ro.current) {\n ro.current.disconnect();\n }\n };\n }, [ref]);\n\n return bounds;\n}\n"],"mappings":";AACA,SAASA,MAAT,EAAiBC,QAAjB,EAA2BC,SAA3B,QAA4C,OAA5C;AAEA,OAAO,SAASC,UAAT,CAAoBC,GAApB,EAA+D;EACpE,IAAMC,EAAE,GAAGL,MAAM,CAAwB,IAAxB,CAAjB;;EACA,gBAA4BC,QAAQ,CAAC;IACnCK,IAAI,EAAE,CAD6B;IAEnCC,GAAG,EAAE,CAF8B;IAGnCC,KAAK,EAAE,CAH4B;IAInCC,MAAM,EAAE;EAJ2B,CAAD,CAApC;EAAA;EAAA,IAAOC,MAAP;EAAA,IAAeC,SAAf;;EAOAT,SAAS,CAAC,YAAM;IACd,IAAIG,EAAE,CAACO,OAAH,KAAe,IAAnB,EAAyB;MACvBP,EAAE,CAACO,OAAH,GAAa,IAAIC,cAAJ,CAAmB,UAACC,OAAD,EAAkB;QAChD,IAAMC,KAAK,GAAGD,OAAO,CAAC,CAAD,CAArB;QACAH,SAAS,CAACI,KAAK,CAACC,WAAP,CAAT;MACD,CAHY,CAAb;IAID;;IAED,IAAIZ,GAAG,CAACQ,OAAR,EAAiB;MACfP,EAAE,CAACO,OAAH,CAAWK,OAAX,CAAmBb,GAAG,CAACQ,OAAvB;IACD;;IAED,OAAO,YAAM;MACX,IAAIP,EAAE,CAACO,OAAP,EAAgB;QACdP,EAAE,CAACO,OAAH,CAAWM,UAAX;MACD;IACF,CAJD;EAKD,CAjBQ,EAiBN,CAACd,GAAD,CAjBM,CAAT;EAmBA,OAAOM,MAAP;AACD"}
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useOnClickOutside.js","names":["useEffect","useCallback","useOnClickOutside","ref","handler","active","listener","event","current","contains","target","document","addEventListener","removeEventListener"],"sources":["../../../src/hooks/useOnClickOutside.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect, useCallback } from 'react';\n\nexport function useOnClickOutside(\n ref: RefObject<any>,\n handler: (e: PointerEvent) => void,\n active = true\n) {\n const listener = useCallback(\n (event: PointerEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n handler && handler(event);\n },\n [ref, handler]\n );\n\n useEffect(() => {\n if (active) {\n document.addEventListener('pointerup', listener);\n\n return () => {\n document.removeEventListener('pointerup', listener);\n };\n }\n\n return;\n }, [listener, active]);\n}\n"],"mappings":"AACA,SAASA,SAAT,EAAoBC,WAApB,QAAuC,OAAvC;AAEA,OAAO,SAASC,iBAAT,CACLC,GADK,EAELC,OAFK,EAIL;EAAA,IADAC,MACA,uEADS,IACT;EACA,IAAMC,QAAQ,GAAGL,WAAW,CAC1B,UAACM,KAAD,EAAyB;IACvB;IACA,IAAI,CAACJ,GAAG,CAACK,OAAL,IAAgBL,GAAG,CAACK,OAAJ,CAAYC,QAAZ,CAAqBF,KAAK,CAACG,MAA3B,CAApB,EAAwD;MACtD;IACD;;IAEDN,OAAO,IAAIA,OAAO,CAACG,KAAD,CAAlB;EACD,CARyB,EAS1B,CAACJ,GAAD,EAAMC,OAAN,CAT0B,CAA5B;EAYAJ,SAAS,CAAC,YAAM;IACd,IAAIK,MAAJ,EAAY;MACVM,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCN,QAAvC;MAEA,OAAO,YAAM;QACXK,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0CP,QAA1C;MACD,CAFD;IAGD;;IAED;EACD,CAVQ,EAUN,CAACA,QAAD,EAAWD,MAAX,CAVM,CAAT;AAWD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function useOnKeyDown(handler: (e: KeyboardEvent) => void, active?: boolean): void;
|
|
1
|
+
export declare function useOnKeyDown(ownerWindow: Window, handler: (e: KeyboardEvent) => void, active?: boolean): void;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
|
-
export function useOnKeyDown(handler) {
|
|
3
|
-
var active = arguments.length >
|
|
2
|
+
export function useOnKeyDown(ownerWindow, handler) {
|
|
3
|
+
var active = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
4
4
|
useEffect(function () {
|
|
5
5
|
if (active) {
|
|
6
|
-
|
|
6
|
+
ownerWindow.addEventListener('keydown', handler);
|
|
7
7
|
return function () {
|
|
8
|
-
|
|
8
|
+
ownerWindow.removeEventListener('keydown', handler);
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
return;
|
|
13
|
-
}, [active, handler]);
|
|
13
|
+
}, [ownerWindow, active, handler]);
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=useOnKeyDown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useOnKeyDown.js","names":["useEffect","useOnKeyDown","ownerWindow","handler","active","addEventListener","removeEventListener"],"sources":["../../../src/hooks/useOnKeyDown.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function useOnKeyDown(\n ownerWindow: Window,\n handler: (e: KeyboardEvent) => void,\n active = true\n) {\n useEffect(() => {\n if (active) {\n ownerWindow.addEventListener('keydown', handler);\n\n return () => {\n ownerWindow.removeEventListener('keydown', handler);\n };\n }\n\n return;\n }, [ownerWindow, active, handler]);\n}\n"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AAEA,OAAO,SAASC,YAAT,CACLC,WADK,EAELC,OAFK,EAIL;EAAA,IADAC,MACA,uEADS,IACT;EACAJ,SAAS,CAAC,YAAM;IACd,IAAII,MAAJ,EAAY;MACVF,WAAW,CAACG,gBAAZ,CAA6B,SAA7B,EAAwCF,OAAxC;MAEA,OAAO,YAAM;QACXD,WAAW,CAACI,mBAAZ,CAAgC,SAAhC,EAA2CH,OAA3C;MACD,CAFD;IAGD;;IAED;EACD,CAVQ,EAUN,CAACD,WAAD,EAAcE,MAAd,EAAsBD,OAAtB,CAVM,CAAT;AAWD"}
|
|
File without changes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
|
+
var _excluded = ["state"];
|
|
4
5
|
import { useReducer } from 'react';
|
|
5
6
|
// This manages transitions between states with a built in reducer to manage
|
|
6
7
|
// the data that goes with those transitions.
|
|
@@ -11,7 +12,7 @@ export function useReducerMachine(chart, reducer, initialData) {
|
|
|
11
12
|
dispatch = _useReducer2[1];
|
|
12
13
|
|
|
13
14
|
var state = reducerState.state,
|
|
14
|
-
data = _objectWithoutProperties(reducerState,
|
|
15
|
+
data = _objectWithoutProperties(reducerState, _excluded);
|
|
15
16
|
|
|
16
17
|
var transition = function transition(action) {
|
|
17
18
|
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useReducerMachine.js","names":["useReducer","useReducerMachine","chart","reducer","initialData","reducerState","dispatch","state","data","transition","action","payload","currentState","states","Error","nextState","on","type"],"sources":["../../../src/hooks/useReducerMachine.ts"],"sourcesContent":["import type { Reducer } from 'react';\nimport { useReducer } from 'react';\n\nexport interface StateChart<STypes extends string, ATypes extends string> {\n initial: STypes;\n states: {\n [state in STypes]?: {\n enter?: (prevState: STypes, payload: any) => void;\n leave?: (nextState: STypes, payload: any) => void;\n on: { [action in ATypes]?: STypes };\n };\n };\n}\n\nexport interface StateMachineState<STypes, ATypes> {\n state: STypes;\n lastActionType: ATypes;\n}\n\nexport interface StateMachineAction<STypes, ATypes> {\n type: ATypes;\n nextState: STypes;\n}\n\ntype TransitionType<ATypes extends string> = (\n action: ATypes,\n payload: any\n) => void;\n\n// This manages transitions between states with a built in reducer to manage\n// the data that goes with those transitions.\nexport function useReducerMachine<\n S extends StateMachineState<STypes, ATypes>,\n A extends StateMachineAction<STypes, ATypes>,\n STypes extends string,\n ATypes extends string\n>(\n chart: StateChart<STypes, ATypes>,\n reducer: Reducer<S, A>,\n initialData: S\n): [STypes, Omit<S, 'state'>, TransitionType<ATypes>] {\n const [reducerState, dispatch] = useReducer(reducer, initialData);\n const { state, ...data } = reducerState;\n\n const transition: TransitionType<ATypes> = (action, payload = {}) => {\n const currentState = chart.states[state];\n if (!currentState) {\n throw new Error(`Unknown currentState \"${state}\"`);\n }\n\n const nextState: STypes | undefined = currentState.on[action];\n if (!nextState) {\n throw new Error(`Unknown action \"${action}\" for state \"${state}\"`);\n }\n\n dispatch({ type: action, nextState, ...payload } as any);\n };\n\n return [state, data, transition];\n}\n"],"mappings":";;;;AACA,SAASA,UAAT,QAA2B,OAA3B;AA4BA;AACA;AACA,OAAO,SAASC,iBAAT,CAMLC,KANK,EAOLC,OAPK,EAQLC,WARK,EAS+C;EACpD,kBAAiCJ,UAAU,CAACG,OAAD,EAAUC,WAAV,CAA3C;EAAA;EAAA,IAAOC,YAAP;EAAA,IAAqBC,QAArB;;EACA,IAAQC,KAAR,GAA2BF,YAA3B,CAAQE,KAAR;EAAA,IAAkBC,IAAlB,4BAA2BH,YAA3B;;EAEA,IAAMI,UAAkC,GAAG,SAArCA,UAAqC,CAACC,MAAD,EAA0B;IAAA,IAAjBC,OAAiB,uEAAP,EAAO;IACnE,IAAMC,YAAY,GAAGV,KAAK,CAACW,MAAN,CAAaN,KAAb,CAArB;;IACA,IAAI,CAACK,YAAL,EAAmB;MACjB,MAAM,IAAIE,KAAJ,kCAAmCP,KAAnC,QAAN;IACD;;IAED,IAAMQ,SAA6B,GAAGH,YAAY,CAACI,EAAb,CAAgBN,MAAhB,CAAtC;;IACA,IAAI,CAACK,SAAL,EAAgB;MACd,MAAM,IAAID,KAAJ,4BAA6BJ,MAA7B,4BAAmDH,KAAnD,QAAN;IACD;;IAEDD,QAAQ;MAAGW,IAAI,EAAEP,MAAT;MAAiBK,SAAS,EAATA;IAAjB,GAA+BJ,OAA/B,EAAR;EACD,CAZD;;EAcA,OAAO,CAACJ,KAAD,EAAQC,IAAR,EAAcC,UAAd,CAAP;AACD"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
export declare function useRemoveBodyScroll(open: boolean, elementRef: RefObject<HTMLElement | null>): void;
|
|
@@ -1,31 +1,35 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
|
+
import { getOwnerDocument } from '../utils';
|
|
2
3
|
var scrollBodyCount = 0;
|
|
3
|
-
export function useRemoveBodyScroll(open) {
|
|
4
|
+
export function useRemoveBodyScroll(open, elementRef) {
|
|
4
5
|
useEffect(function () {
|
|
5
|
-
if (open) {
|
|
6
|
+
if (open && elementRef.current) {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
8
|
+
var ownerDocument = getOwnerDocument(elementRef.current);
|
|
9
|
+
var ownerWindow = ownerDocument.defaultView || window;
|
|
6
10
|
scrollBodyCount += 1; // calculate scrollbar width if mounting the first scroll lock
|
|
7
11
|
|
|
8
12
|
var scrollBarWidth = 0;
|
|
9
13
|
|
|
10
14
|
if (scrollBodyCount === 1) {
|
|
11
|
-
scrollBarWidth =
|
|
15
|
+
scrollBarWidth = ownerWindow.innerWidth - ownerDocument.body.clientWidth;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
ownerDocument.body.style.overflow = 'hidden';
|
|
15
19
|
|
|
16
20
|
if (scrollBarWidth > 0) {
|
|
17
|
-
|
|
21
|
+
ownerDocument.body.style.marginRight = "".concat(scrollBarWidth, "px");
|
|
18
22
|
}
|
|
19
23
|
|
|
20
24
|
return function () {
|
|
21
25
|
scrollBodyCount -= 1;
|
|
22
26
|
|
|
23
27
|
if (scrollBodyCount === 0) {
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
ownerDocument.body.style.overflow = '';
|
|
29
|
+
ownerDocument.body.style.marginRight = '';
|
|
26
30
|
}
|
|
27
31
|
};
|
|
28
32
|
}
|
|
29
|
-
}, [open]);
|
|
33
|
+
}, [elementRef, open]);
|
|
30
34
|
}
|
|
31
35
|
//# sourceMappingURL=useRemoveBodyScroll.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useRemoveBodyScroll.js","names":["useEffect","getOwnerDocument","scrollBodyCount","useRemoveBodyScroll","open","elementRef","current","ownerDocument","ownerWindow","defaultView","window","scrollBarWidth","innerWidth","body","clientWidth","style","overflow","marginRight"],"sources":["../../../src/hooks/useRemoveBodyScroll.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { getOwnerDocument } from '../utils';\n\nlet scrollBodyCount = 0;\nexport function useRemoveBodyScroll(\n open: boolean,\n elementRef: RefObject<HTMLElement | null>\n) {\n useEffect(() => {\n if (open && elementRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const ownerDocument = getOwnerDocument(elementRef.current)!;\n const ownerWindow = ownerDocument.defaultView || window;\n scrollBodyCount += 1;\n\n // calculate scrollbar width if mounting the first scroll lock\n let scrollBarWidth = 0;\n if (scrollBodyCount === 1) {\n scrollBarWidth =\n ownerWindow.innerWidth - ownerDocument.body.clientWidth;\n }\n\n ownerDocument.body.style.overflow = 'hidden';\n if (scrollBarWidth > 0) {\n ownerDocument.body.style.marginRight = `${scrollBarWidth}px`;\n }\n\n return () => {\n scrollBodyCount -= 1;\n if (scrollBodyCount === 0) {\n ownerDocument.body.style.overflow = '';\n ownerDocument.body.style.marginRight = '';\n }\n };\n }\n }, [elementRef, open]);\n}\n"],"mappings":"AACA,SAASA,SAAT,QAA0B,OAA1B;AAEA,SAASC,gBAAT,QAAiC,UAAjC;AAEA,IAAIC,eAAe,GAAG,CAAtB;AACA,OAAO,SAASC,mBAAT,CACLC,IADK,EAELC,UAFK,EAGL;EACAL,SAAS,CAAC,YAAM;IACd,IAAII,IAAI,IAAIC,UAAU,CAACC,OAAvB,EAAgC;MAC9B;MACA,IAAMC,aAAa,GAAGN,gBAAgB,CAACI,UAAU,CAACC,OAAZ,CAAtC;MACA,IAAME,WAAW,GAAGD,aAAa,CAACE,WAAd,IAA6BC,MAAjD;MACAR,eAAe,IAAI,CAAnB,CAJ8B,CAM9B;;MACA,IAAIS,cAAc,GAAG,CAArB;;MACA,IAAIT,eAAe,KAAK,CAAxB,EAA2B;QACzBS,cAAc,GACZH,WAAW,CAACI,UAAZ,GAAyBL,aAAa,CAACM,IAAd,CAAmBC,WAD9C;MAED;;MAEDP,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBC,QAAzB,GAAoC,QAApC;;MACA,IAAIL,cAAc,GAAG,CAArB,EAAwB;QACtBJ,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBE,WAAzB,aAA0CN,cAA1C;MACD;;MAED,OAAO,YAAM;QACXT,eAAe,IAAI,CAAnB;;QACA,IAAIA,eAAe,KAAK,CAAxB,EAA2B;UACzBK,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBC,QAAzB,GAAoC,EAApC;UACAT,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBE,WAAzB,GAAuC,EAAvC;QACD;MACF,CAND;IAOD;EACF,CA3BQ,EA2BN,CAACZ,UAAD,EAAaD,IAAb,CA3BM,CAAT;AA4BD"}
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useScope.js","names":["useRef","getScope","rootRef","queryAllNodes","matcherFn","current","allNodes","querySelectorAll","filtered","forEach","node","props","attributes","i","length","attr","name","value","tagName","toLowerCase","push","useScope","scope"],"sources":["../../../src/hooks/useScope.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useRef } from 'react';\n\nexport type ScopeMatcherFn = (\n nodeType: string,\n props: {\n [key: string]: string;\n },\n instance: Element\n) => boolean;\n\nexport type Scope<T extends HTMLElement> = MutableRefObject<{\n queryAllNodes: (matcherFn: ScopeMatcherFn) => T[];\n}>;\n\nexport function getScope<T extends HTMLElement, R extends HTMLElement>(\n rootRef: MutableRefObject<R | undefined | null>\n) {\n const queryAllNodes = (matcherFn: ScopeMatcherFn) => {\n if (!rootRef.current) {\n return [];\n }\n\n const allNodes = rootRef.current.querySelectorAll('*');\n\n const filtered: T[] = [];\n allNodes.forEach((node) => {\n const props = {};\n const { attributes } = node;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n props[attr.name] = attr.value;\n }\n\n if (matcherFn(node.tagName.toLowerCase(), props, node)) {\n filtered.push(node as T);\n }\n });\n\n return filtered;\n };\n\n return { queryAllNodes };\n}\n\nexport function useScope<T extends HTMLElement, R extends HTMLElement>(\n rootRef: MutableRefObject<R | undefined | null>\n): Scope<T> {\n const scope: Scope<T> = useRef(getScope(rootRef));\n\n return scope;\n}\n"],"mappings":"AACA,SAASA,MAAT,QAAuB,OAAvB;AAcA,OAAO,SAASC,QAAT,CACLC,OADK,EAEL;EACA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,SAAD,EAA+B;IACnD,IAAI,CAACF,OAAO,CAACG,OAAb,EAAsB;MACpB,OAAO,EAAP;IACD;;IAED,IAAMC,QAAQ,GAAGJ,OAAO,CAACG,OAAR,CAAgBE,gBAAhB,CAAiC,GAAjC,CAAjB;IAEA,IAAMC,QAAa,GAAG,EAAtB;IACAF,QAAQ,CAACG,OAAT,CAAiB,UAACC,IAAD,EAAU;MACzB,IAAMC,KAAK,GAAG,EAAd;MACA,IAAQC,UAAR,GAAuBF,IAAvB,CAAQE,UAAR;;MACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,UAAU,CAACE,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;QAC1C,IAAME,IAAI,GAAGH,UAAU,CAACC,CAAD,CAAvB;QACAF,KAAK,CAACI,IAAI,CAACC,IAAN,CAAL,GAAmBD,IAAI,CAACE,KAAxB;MACD;;MAED,IAAIb,SAAS,CAACM,IAAI,CAACQ,OAAL,CAAaC,WAAb,EAAD,EAA6BR,KAA7B,EAAoCD,IAApC,CAAb,EAAwD;QACtDF,QAAQ,CAACY,IAAT,CAAcV,IAAd;MACD;IACF,CAXD;IAaA,OAAOF,QAAP;EACD,CAtBD;;EAwBA,OAAO;IAAEL,aAAa,EAAbA;EAAF,CAAP;AACD;AAED,OAAO,SAASkB,QAAT,CACLnB,OADK,EAEK;EACV,IAAMoB,KAAe,GAAGtB,MAAM,CAACC,QAAQ,CAACC,OAAD,CAAT,CAA9B;EAEA,OAAOoB,KAAP;AACD"}
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useThrottle.js","names":["useState","useEffect","useRef","useThrottle","value","limit","throttledValue","setThrottledValue","lastRan","Date","now","handler","setTimeout","current","clearTimeout"],"sources":["../../../src/hooks/useThrottle.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\nexport function useThrottle<T>(value: T, limit: number) {\n const [throttledValue, setThrottledValue] = useState(value);\n const lastRan = useRef(Date.now());\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setThrottledValue(value);\n lastRan.current = Date.now();\n }, limit - (Date.now() - lastRan.current));\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, limit]);\n\n return throttledValue;\n}\n"],"mappings":";AAAA,SAASA,QAAT,EAAmBC,SAAnB,EAA8BC,MAA9B,QAA4C,OAA5C;AAEA,OAAO,SAASC,WAAT,CAAwBC,KAAxB,EAAkCC,KAAlC,EAAiD;EACtD,gBAA4CL,QAAQ,CAACI,KAAD,CAApD;EAAA;EAAA,IAAOE,cAAP;EAAA,IAAuBC,iBAAvB;;EACA,IAAMC,OAAO,GAAGN,MAAM,CAACO,IAAI,CAACC,GAAL,EAAD,CAAtB;EAEAT,SAAS,CAAC,YAAM;IACd,IAAMU,OAAO,GAAGC,UAAU,CAAC,YAAM;MAC/BL,iBAAiB,CAACH,KAAD,CAAjB;MACAI,OAAO,CAACK,OAAR,GAAkBJ,IAAI,CAACC,GAAL,EAAlB;IACD,CAHyB,EAGvBL,KAAK,IAAII,IAAI,CAACC,GAAL,KAAaF,OAAO,CAACK,OAAzB,CAHkB,CAA1B;IAKA,OAAO,YAAM;MACXC,YAAY,CAACH,OAAD,CAAZ;IACD,CAFD;EAGD,CATQ,EASN,CAACP,KAAD,EAAQC,KAAR,CATM,CAAT;EAWA,OAAOC,cAAP;AACD"}
|
package/build/esm/index.d.ts
CHANGED
package/build/esm/index.js
CHANGED
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// Components\nexport * from './Accordion';\nexport * from './CheckBox';\nexport * from './ComboBox';\nexport * from './FocusLock';\nexport * from './Menu';\nexport * from './Modal';\nexport * from './Popper';\nexport * from './Portal';\nexport * from './RadioButton';\nexport * from './Slider';\nexport * from './Spinner';\nexport * from './Tabs';\nexport * from './Tooltip';\n\n// General React utilities\nexport * from './utils';\n\n// Hooks\nexport * from './hooks';\n"],"mappings":"AAAA;AACA,cAAc,aAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,aAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,UAAd;AACA,cAAc,eAAd;AACA,cAAc,UAAd;AACA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,WAAd,C,CAEA;;AACA,cAAc,SAAd,C,CAEA;;AACA,cAAc,SAAd"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { MutableRefObject, RefCallback } from 'react';
|
|
2
|
+
export declare function assignRef<T>(ref: MutableRefObject<T> | RefCallback<T> | null | undefined, value: T): void;
|
|
3
|
+
export declare function assignMultipleRefs<T>(...refs: (MutableRefObject<T> | RefCallback<T> | null | undefined)[]): RefCallback<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assign-ref.js","names":["assignRef","ref","value","current","error","Error","assignMultipleRefs","refs","node","forEach"],"sources":["../../../src/utils/assign-ref.ts"],"sourcesContent":["import type { MutableRefObject, RefCallback } from 'react';\n\nexport function assignRef<T>(\n ref: MutableRefObject<T> | RefCallback<T> | null | undefined,\n value: T\n) {\n if (ref == null) return;\n if (typeof ref === 'function') {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(`Cannot assign value \"${value}\" to ref \"${ref}\"`);\n }\n }\n}\n\nexport function assignMultipleRefs<T>(\n ...refs: (MutableRefObject<T> | RefCallback<T> | null | undefined)[]\n): RefCallback<T> {\n return (node: T | null) => {\n refs.forEach((ref) => {\n assignRef(ref, node);\n });\n };\n}\n"],"mappings":"AAEA,OAAO,SAASA,SAAT,CACLC,GADK,EAELC,KAFK,EAGL;EACA,IAAID,GAAG,IAAI,IAAX,EAAiB;;EACjB,IAAI,OAAOA,GAAP,KAAe,UAAnB,EAA+B;IAC7BA,GAAG,CAACC,KAAD,CAAH;EACD,CAFD,MAEO;IACL,IAAI;MACFD,GAAG,CAACE,OAAJ,GAAcD,KAAd;IACD,CAFD,CAEE,OAAOE,KAAP,EAAc;MACd,MAAM,IAAIC,KAAJ,iCAAkCH,KAAlC,yBAAoDD,GAApD,QAAN;IACD;EACF;AACF;AAED,OAAO,SAASK,kBAAT,GAEW;EAAA,kCADbC,IACa;IADbA,IACa;EAAA;;EAChB,OAAO,UAACC,IAAD,EAAoB;IACzBD,IAAI,CAACE,OAAL,CAAa,UAACR,GAAD,EAAS;MACpBD,SAAS,CAACC,GAAD,EAAMO,IAAN,CAAT;IACD,CAFD;EAGD,CAJD;AAKD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function canUseDOM(): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-use-dom.js","names":["canUseDOM","window","document","createElement"],"sources":["../../../src/utils/can-use-dom.ts"],"sourcesContent":["export function canUseDOM() {\n return !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n );\n}\n"],"mappings":"AAAA,OAAO,SAASA,SAAT,GAAqB;EAC1B,OAAO,CAAC,EACN,OAAOC,MAAP,KAAkB,WAAlB,IACAA,MAAM,CAACC,QADP,IAEAD,MAAM,CAACC,QAAP,CAAgBC,aAHV,CAAR;AAKD"}
|
|
File without changes
|
package/build/esm/utils/clamp.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"clamp.js","names":["clamp","value","min","max","Math"],"sources":["../../../src/utils/clamp.ts"],"sourcesContent":["export function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n"],"mappings":"AAAA,OAAO,SAASA,KAAT,CAAeC,KAAf,EAA8BC,GAA9B,EAA2CC,GAA3C,EAAwD;EAC7D,OAAOC,IAAI,CAACF,GAAL,CAASE,IAAI,CAACD,GAAL,CAASF,KAAT,EAAgBC,GAAhB,CAAT,EAA+BC,GAA/B,CAAP;AACD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FC, PropsWithChildren } from 'react';
|
|
2
|
+
declare type ContextProvider<T> = FC<PropsWithChildren<T>>;
|
|
3
|
+
export declare function createContext<ContextValueType extends object | null>(rootName: string, defaultContext?: ContextValueType): [
|
|
4
|
+
ContextProvider<ContextValueType>,
|
|
5
|
+
(childName: string) => ContextValueType
|
|
6
|
+
];
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
+
var _excluded = ["children"];
|
|
3
|
+
import { useMemo, createContext as ReactCreateContext, useContext as useReactContext } from 'react'; ////////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export function createContext(rootName, defaultContext) {
|
|
7
|
+
var Ctx = /*#__PURE__*/ReactCreateContext(defaultContext);
|
|
8
|
+
|
|
9
|
+
function Provider(props) {
|
|
10
|
+
var children = props.children,
|
|
11
|
+
context = _objectWithoutProperties(props, _excluded);
|
|
12
|
+
|
|
13
|
+
var value = useMemo(function () {
|
|
14
|
+
return context;
|
|
15
|
+
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
16
|
+
Object.values(context));
|
|
17
|
+
return /*#__PURE__*/_jsx(Ctx.Provider, {
|
|
18
|
+
value: value,
|
|
19
|
+
children: children
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function useContext(childName) {
|
|
24
|
+
var context = useReactContext(Ctx);
|
|
25
|
+
|
|
26
|
+
if (context) {
|
|
27
|
+
return context;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (defaultContext) {
|
|
31
|
+
return defaultContext;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
throw Error("".concat(childName, " must be rendered inside of a ").concat(rootName, " component."));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
Ctx.displayName = "".concat(rootName, "Context");
|
|
38
|
+
Provider.displayName = "".concat(rootName, "Provider");
|
|
39
|
+
return [Provider, useContext];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","names":["useMemo","createContext","ReactCreateContext","useContext","useReactContext","rootName","defaultContext","Ctx","Provider","props","children","context","value","Object","values","childName","Error","displayName"],"sources":["../../../src/utils/context.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport {\n useMemo,\n createContext as ReactCreateContext,\n useContext as useReactContext,\n} from 'react';\n\n////////////////////////////////////////////////////////////////////////////////\n\ntype ContextProvider<T> = FC<PropsWithChildren<T>>;\n\nexport function createContext<ContextValueType extends object | null>(\n rootName: string,\n defaultContext?: ContextValueType\n): [\n ContextProvider<ContextValueType>,\n (childName: string) => ContextValueType\n] {\n const Ctx = ReactCreateContext<ContextValueType | undefined>(defaultContext);\n\n function Provider(props: PropsWithChildren<ContextValueType>) {\n const { children, ...context } = props;\n const value = useMemo(\n () => context,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(context)\n ) as ContextValueType;\n return <Ctx.Provider value={value}>{children}</Ctx.Provider>;\n }\n\n function useContext(childName: string) {\n const context = useReactContext(Ctx);\n if (context) {\n return context;\n }\n if (defaultContext) {\n return defaultContext;\n }\n throw Error(\n `${childName} must be rendered inside of a ${rootName} component.`\n );\n }\n\n Ctx.displayName = `${rootName}Context`;\n Provider.displayName = `${rootName}Provider`;\n\n return [Provider, useContext];\n}\n"],"mappings":";;AACA,SACEA,OADF,EAEEC,aAAa,IAAIC,kBAFnB,EAGEC,UAAU,IAAIC,eAHhB,QAIO,OAJP,C,CAMA;;;AAIA,OAAO,SAASH,aAAT,CACLI,QADK,EAELC,cAFK,EAML;EACA,IAAMC,GAAG,gBAAGL,kBAAkB,CAA+BI,cAA/B,CAA9B;;EAEA,SAASE,QAAT,CAAkBC,KAAlB,EAA8D;IAC5D,IAAQC,QAAR,GAAiCD,KAAjC,CAAQC,QAAR;IAAA,IAAqBC,OAArB,4BAAiCF,KAAjC;;IACA,IAAMG,KAAK,GAAGZ,OAAO,CACnB;MAAA,OAAMW,OAAN;IAAA,CADmB,EAEnB;IACAE,MAAM,CAACC,MAAP,CAAcH,OAAd,CAHmB,CAArB;IAKA,oBAAO,KAAC,GAAD,CAAK,QAAL;MAAc,KAAK,EAAEC,KAArB;MAAA,UAA6BF;IAA7B,EAAP;EACD;;EAED,SAASP,UAAT,CAAoBY,SAApB,EAAuC;IACrC,IAAMJ,OAAO,GAAGP,eAAe,CAACG,GAAD,CAA/B;;IACA,IAAII,OAAJ,EAAa;MACX,OAAOA,OAAP;IACD;;IACD,IAAIL,cAAJ,EAAoB;MAClB,OAAOA,cAAP;IACD;;IACD,MAAMU,KAAK,WACND,SADM,2CACoCV,QADpC,iBAAX;EAGD;;EAEDE,GAAG,CAACU,WAAJ,aAAqBZ,QAArB;EACAG,QAAQ,CAACS,WAAT,aAA0BZ,QAA1B;EAEA,OAAO,CAACG,QAAD,EAAWL,UAAX,CAAP;AACD"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-subscription.js","names":["createSubscription","subscriptions","subscribe","fn","push","splice","indexOf","notify","forEach"],"sources":["../../../src/utils/create-subscription.ts"],"sourcesContent":["export function createSubscription() {\n const subscriptions: (() => void)[] = [];\n\n function subscribe(fn: () => void) {\n subscriptions.push(fn);\n return () => {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n }\n\n function notify() {\n subscriptions.forEach((fn) => fn());\n }\n\n return { subscribe, notify };\n}\n"],"mappings":"AAAA,OAAO,SAASA,kBAAT,GAA8B;EACnC,IAAMC,aAA6B,GAAG,EAAtC;;EAEA,SAASC,SAAT,CAAmBC,EAAnB,EAAmC;IACjCF,aAAa,CAACG,IAAd,CAAmBD,EAAnB;IACA,OAAO,YAAM;MACXF,aAAa,CAACI,MAAd,CAAqBJ,aAAa,CAACK,OAAd,CAAsBH,EAAtB,CAArB,EAAgD,CAAhD;IACD,CAFD;EAGD;;EAED,SAASI,MAAT,GAAkB;IAChBN,aAAa,CAACO,OAAd,CAAsB,UAACL,EAAD;MAAA,OAAQA,EAAE,EAAV;IAAA,CAAtB;EACD;;EAED,OAAO;IAAED,SAAS,EAATA,SAAF;IAAaK,MAAM,EAANA;EAAb,CAAP;AACD"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-circular-index.js","names":["getCircularIndex","index","maxLength"],"sources":["../../../src/utils/get-circular-index.ts"],"sourcesContent":["export function getCircularIndex(index: number, maxLength: number) {\n if (maxLength < 0) {\n return null;\n }\n\n return ((index % maxLength) + maxLength) % maxLength;\n}\n"],"mappings":"AAAA,OAAO,SAASA,gBAAT,CAA0BC,KAA1B,EAAyCC,SAAzC,EAA4D;EACjE,IAAIA,SAAS,GAAG,CAAhB,EAAmB;IACjB,OAAO,IAAP;EACD;;EAED,OAAO,CAAED,KAAK,GAAGC,SAAT,GAAsBA,SAAvB,IAAoCA,SAA3C;AACD"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
1
|
+
export * from './assign-ref';
|
|
2
|
+
export * from './can-use-dom';
|
|
3
|
+
export * from './context';
|
|
4
|
+
export * from './get-circular-index';
|
|
5
|
+
export * from './is-right-click';
|
|
6
|
+
export * from './owner-document';
|
|
7
|
+
export * from './polymorphic';
|
|
8
|
+
export * from './rubber-band-clamp';
|
|
9
|
+
export * from './use-stable-callback';
|
|
10
|
+
export * from './wrap-event';
|
package/build/esm/utils/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
1
|
+
export * from './assign-ref';
|
|
2
|
+
export * from './can-use-dom';
|
|
3
|
+
export * from './context';
|
|
4
|
+
export * from './get-circular-index';
|
|
5
|
+
export * from './is-right-click';
|
|
6
|
+
export * from './owner-document';
|
|
7
|
+
export * from './polymorphic';
|
|
8
|
+
export * from './rubber-band-clamp';
|
|
9
|
+
export * from './use-stable-callback';
|
|
10
|
+
export * from './wrap-event';
|
|
5
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from './assign-ref';\nexport * from './can-use-dom';\nexport * from './context';\nexport * from './get-circular-index';\nexport * from './is-right-click';\nexport * from './owner-document';\nexport * from './polymorphic';\nexport * from './rubber-band-clamp';\nexport * from './use-stable-callback';\nexport * from './wrap-event';\n"],"mappings":"AAAA,cAAc,cAAd;AACA,cAAc,eAAd;AACA,cAAc,WAAd;AACA,cAAc,sBAAd;AACA,cAAc,kBAAd;AACA,cAAc,kBAAd;AACA,cAAc,eAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,cAAd"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects right clicks
|
|
3
|
+
*
|
|
4
|
+
* @param nativeEvent
|
|
5
|
+
*/
|
|
6
|
+
export function isRightClick(nativeEvent) {
|
|
7
|
+
return 'which' in nativeEvent ? nativeEvent.which === 3 : 'button' in nativeEvent ? nativeEvent.button === 2 : false;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=is-right-click.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-right-click.js","names":["isRightClick","nativeEvent","which","button"],"sources":["../../../src/utils/is-right-click.ts"],"sourcesContent":["/**\n * Detects right clicks\n *\n * @param nativeEvent\n */\nexport function isRightClick(\n nativeEvent: MouseEvent | PointerEvent | TouchEvent\n) {\n return 'which' in nativeEvent\n ? nativeEvent.which === 3\n : 'button' in nativeEvent\n ? (nativeEvent as any).button === 2\n : false;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,YAAT,CACLC,WADK,EAEL;EACA,OAAO,WAAWA,WAAX,GACHA,WAAW,CAACC,KAAZ,KAAsB,CADnB,GAEH,YAAYD,WAAZ,GACCA,WAAD,CAAqBE,MAArB,KAAgC,CADhC,GAEA,KAJJ;AAKD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { canUseDOM } from './can-use-dom';
|
|
2
|
+
/**
|
|
3
|
+
* Get an element's owner document. Useful when components are used in iframes
|
|
4
|
+
* or other environments like dev tools.
|
|
5
|
+
*
|
|
6
|
+
* @param element
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export function getOwnerDocument(element) {
|
|
10
|
+
return canUseDOM() ? element ? element.ownerDocument : document : null;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=owner-document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-document.js","names":["canUseDOM","getOwnerDocument","element","ownerDocument","document"],"sources":["../../../src/utils/owner-document.ts"],"sourcesContent":["import { canUseDOM } from './can-use-dom';\n\n/**\n * Get an element's owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\nexport function getOwnerDocument<T extends Element>(\n element: T | null | undefined\n) {\n return canUseDOM() ? (element ? element.ownerDocument : document) : null;\n}\n"],"mappings":"AAAA,SAASA,SAAT,QAA0B,eAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,gBAAT,CACLC,OADK,EAEL;EACA,OAAOF,SAAS,KAAME,OAAO,GAAGA,OAAO,CAACC,aAAX,GAA2BC,QAAxC,GAAoD,IAApE;AACD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
export declare type Merge<P1 = {}, P2 = {}> = Omit<P1, keyof P2> & P2;
|
|
3
|
+
/**
|
|
4
|
+
* Infers the OwnProps if E is a ForwardRefExoticComponentWithAs
|
|
5
|
+
*/
|
|
6
|
+
export declare type OwnProps<E> = E extends ForwardRefComponent<any, infer P> ? P : {};
|
|
7
|
+
/**
|
|
8
|
+
* Infers the JSX.IntrinsicElement if E is a ForwardRefExoticComponentWithAs
|
|
9
|
+
*/
|
|
10
|
+
export declare type IntrinsicElement<E> = E extends ForwardRefComponent<infer I, any> ? I : never;
|
|
11
|
+
declare type ForwardRefExoticComponent<E, OwnProps> = React.ForwardRefExoticComponent<Merge<E extends React.ElementType ? React.ComponentPropsWithRef<E> : never, OwnProps & {
|
|
12
|
+
as?: E;
|
|
13
|
+
}>>;
|
|
14
|
+
export interface ForwardRefComponent<IntrinsicElementString, OwnProps = {}> extends ForwardRefExoticComponent<IntrinsicElementString, OwnProps> {
|
|
15
|
+
<As = IntrinsicElementString>(props: As extends '' ? {
|
|
16
|
+
as: keyof JSX.IntrinsicElements;
|
|
17
|
+
} : As extends React.ComponentType<infer P> ? Merge<P, OwnProps & {
|
|
18
|
+
as: As;
|
|
19
|
+
}> : As extends keyof JSX.IntrinsicElements ? Merge<JSX.IntrinsicElements[As], OwnProps & {
|
|
20
|
+
as: As;
|
|
21
|
+
}> : never): React.ReactElement | null;
|
|
22
|
+
}
|
|
23
|
+
export interface MemoComponent<IntrinsicElementString, OwnProps = {}> extends React.MemoExoticComponent<ForwardRefComponent<IntrinsicElementString, OwnProps>> {
|
|
24
|
+
<As = IntrinsicElementString>(props: As extends '' ? {
|
|
25
|
+
as: keyof JSX.IntrinsicElements;
|
|
26
|
+
} : As extends React.ComponentType<infer P> ? Merge<P, OwnProps & {
|
|
27
|
+
as: As;
|
|
28
|
+
}> : As extends keyof JSX.IntrinsicElements ? Merge<JSX.IntrinsicElements[As], OwnProps & {
|
|
29
|
+
as: As;
|
|
30
|
+
}> : never): React.ReactElement | null;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polymorphic.js","names":[],"sources":["../../../src/utils/polymorphic.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n// adapted from https://github.com/radix-ui/primitives/blob/2f139a832ba0cdfd445c937ebf63c2e79e0ef7ed/packages/react/polymorphic/src/polymorphic.ts\n// Would have liked to use it directly instead of copying but they are\n// (rightfully) treating it as an internal utility, so copy/paste it is to\n// prevent any needless churn if they make breaking changes. Big thanks to Jenna\n// for the heavy lifting! https://github.com/jjenzz\n\nimport type * as React from 'react';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type Merge<P1 = {}, P2 = {}> = Omit<P1, keyof P2> & P2;\n\n/**\n * Infers the OwnProps if E is a ForwardRefExoticComponentWithAs\n */\nexport type OwnProps<E> = E extends ForwardRefComponent<any, infer P> ? P : {};\n\n/**\n * Infers the JSX.IntrinsicElement if E is a ForwardRefExoticComponentWithAs\n */\nexport type IntrinsicElement<E> = E extends ForwardRefComponent<infer I, any>\n ? I\n : never;\n\ntype ForwardRefExoticComponent<E, OwnProps> = React.ForwardRefExoticComponent<\n Merge<\n E extends React.ElementType ? React.ComponentPropsWithRef<E> : never,\n OwnProps & { as?: E }\n >\n>;\n\nexport interface ForwardRefComponent<\n IntrinsicElementString,\n OwnProps = {}\n /*\n * Extends original type to ensure built in React types play nice with\n * polymorphic components still e.g. `React.ElementRef` etc.\n */\n> extends ForwardRefExoticComponent<IntrinsicElementString, OwnProps> {\n /*\n * When `as` prop is passed, use this overload. Merges original own props\n * (without DOM props) and the inferred props from `as` element with the own\n * props taking precendence.\n *\n * We explicitly avoid `React.ElementType` and manually narrow the prop types\n * so that events are typed when using JSX.IntrinsicElements.\n */\n <As = IntrinsicElementString>(\n props: As extends ''\n ? { as: keyof JSX.IntrinsicElements }\n : As extends React.ComponentType<infer P>\n ? Merge<P, OwnProps & { as: As }>\n : As extends keyof JSX.IntrinsicElements\n ? Merge<JSX.IntrinsicElements[As], OwnProps & { as: As }>\n : never\n ): React.ReactElement | null;\n}\n\nexport interface MemoComponent<IntrinsicElementString, OwnProps = {}>\n extends React.MemoExoticComponent<\n ForwardRefComponent<IntrinsicElementString, OwnProps>\n > {\n <As = IntrinsicElementString>(\n props: As extends ''\n ? { as: keyof JSX.IntrinsicElements }\n : As extends React.ComponentType<infer P>\n ? Merge<P, OwnProps & { as: As }>\n : As extends keyof JSX.IntrinsicElements\n ? Merge<JSX.IntrinsicElements[As], OwnProps & { as: As }>\n : never\n ): React.ReactElement | null;\n}\n"],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rubber-band-clamp.js","names":["rubberBand","distance","dimension","constant","rubberBandClamp","min","max","delta"],"sources":["../../../src/utils/rubber-band-clamp.ts"],"sourcesContent":["// https://twitter.com/chpwn/status/285540192096497664\n// iOS constant = 0.55\nexport function rubberBand(\n distance: number,\n dimension: number,\n constant = 0.15\n) {\n return (distance * dimension * constant) / (dimension + constant * distance);\n}\n\nexport function rubberBandClamp(\n min: number,\n max: number,\n delta: number,\n constant = 0.15\n) {\n if (delta < min) {\n return -rubberBand(min - delta, max - min, constant) + min;\n }\n if (delta > max) {\n return rubberBand(delta - max, max - min, constant) + max;\n }\n\n return delta;\n}\n"],"mappings":"AAAA;AACA;AACA,OAAO,SAASA,UAAT,CACLC,QADK,EAELC,SAFK,EAIL;EAAA,IADAC,QACA,uEADW,IACX;EACA,OAAQF,QAAQ,GAAGC,SAAX,GAAuBC,QAAxB,IAAqCD,SAAS,GAAGC,QAAQ,GAAGF,QAA5D,CAAP;AACD;AAED,OAAO,SAASG,eAAT,CACLC,GADK,EAELC,GAFK,EAGLC,KAHK,EAKL;EAAA,IADAJ,QACA,uEADW,IACX;;EACA,IAAII,KAAK,GAAGF,GAAZ,EAAiB;IACf,OAAO,CAACL,UAAU,CAACK,GAAG,GAAGE,KAAP,EAAcD,GAAG,GAAGD,GAApB,EAAyBF,QAAzB,CAAX,GAAgDE,GAAvD;EACD;;EACD,IAAIE,KAAK,GAAGD,GAAZ,EAAiB;IACf,OAAON,UAAU,CAACO,KAAK,GAAGD,GAAT,EAAcA,GAAG,GAAGD,GAApB,EAAyBF,QAAzB,CAAV,GAA+CG,GAAtD;EACD;;EAED,OAAOC,KAAP;AACD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a callback to a ref to avoid triggering re-renders when passed as a
|
|
3
|
+
* prop and exposed as a stable function to avoid executing effects when passed
|
|
4
|
+
* as a dependency.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useStableCallback<T extends (...args: any[]) => any>(callback: T | null | undefined): T;
|
|
7
|
+
/**
|
|
8
|
+
* Converts a callback to a ref to avoid triggering re-renders when passed as a
|
|
9
|
+
* prop and exposed as a stable function to avoid executing effects when passed
|
|
10
|
+
* as a dependency.
|
|
11
|
+
*
|
|
12
|
+
* Use this over `useStableCallback` when you want the callback to be cached in
|
|
13
|
+
* `useLayoutEffect` instead of `useEffect` to deal with timing issues only when
|
|
14
|
+
* needed.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useStableLayoutCallback<T extends (...args: any[]) => any>(callback: T | null | undefined): T;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* eslint-disable react-hooks/rules-of-hooks */
|
|
2
|
+
import { useRef, useEffect, useCallback, useLayoutEffect } from 'react';
|
|
3
|
+
var useEnhancedEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
|
4
|
+
/**
|
|
5
|
+
* Converts a callback to a ref to avoid triggering re-renders when passed as a
|
|
6
|
+
* prop and exposed as a stable function to avoid executing effects when
|
|
7
|
+
* passed as a dependency.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
function createStableCallbackHook(useEffectHook, callback) {
|
|
11
|
+
var callbackRef = useRef(callback);
|
|
12
|
+
useEffectHook(function () {
|
|
13
|
+
callbackRef.current = callback;
|
|
14
|
+
}); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
|
+
|
|
16
|
+
return useCallback(function () {
|
|
17
|
+
callbackRef.current && callbackRef.current.apply(callbackRef, arguments);
|
|
18
|
+
}, []);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Converts a callback to a ref to avoid triggering re-renders when passed as a
|
|
22
|
+
* prop and exposed as a stable function to avoid executing effects when passed
|
|
23
|
+
* as a dependency.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
export function useStableCallback(callback) {
|
|
28
|
+
return createStableCallbackHook(useEffect, callback);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Converts a callback to a ref to avoid triggering re-renders when passed as a
|
|
32
|
+
* prop and exposed as a stable function to avoid executing effects when passed
|
|
33
|
+
* as a dependency.
|
|
34
|
+
*
|
|
35
|
+
* Use this over `useStableCallback` when you want the callback to be cached in
|
|
36
|
+
* `useLayoutEffect` instead of `useEffect` to deal with timing issues only when
|
|
37
|
+
* needed.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
export function useStableLayoutCallback(callback) {
|
|
41
|
+
return createStableCallbackHook(useEnhancedEffect, callback);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=use-stable-callback.js.map
|