@basic-ui/core 0.0.54 → 0.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/build/cjs/index.js +364 -591
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/Accordion.d.ts +9 -9
- package/build/esm/Accordion/Accordion.js +20 -29
- package/build/esm/Accordion/Accordion.js.map +1 -1
- package/build/esm/Accordion/AccordionBody.d.ts +6 -6
- package/build/esm/Accordion/AccordionBody.js +18 -32
- package/build/esm/Accordion/AccordionBody.js.map +1 -1
- package/build/esm/Accordion/AccordionHeader.d.ts +7 -7
- package/build/esm/Accordion/AccordionHeader.js +37 -74
- package/build/esm/Accordion/AccordionHeader.js.map +1 -1
- package/build/esm/Accordion/AccordionItem.d.ts +9 -9
- package/build/esm/Accordion/AccordionItem.js +19 -22
- package/build/esm/Accordion/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/context.d.ts +19 -19
- package/build/esm/Accordion/context.js +16 -13
- package/build/esm/Accordion/context.js.map +1 -1
- package/build/esm/Accordion/index.d.ts +4 -4
- package/build/esm/Accordion/index.js.map +1 -1
- package/build/esm/Accordion/scopeQuery.d.ts +2 -2
- package/build/esm/Accordion/scopeQuery.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.d.ts +7 -7
- package/build/esm/CheckBox/CheckBox.js +15 -25
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/CheckBox/index.d.ts +1 -1
- package/build/esm/CheckBox/index.js.map +1 -1
- package/build/esm/ComboBox/Combobox.d.ts +18 -18
- package/build/esm/ComboBox/Combobox.js +52 -59
- package/build/esm/ComboBox/Combobox.js.map +1 -1
- package/build/esm/ComboBox/ComboboxButton.d.ts +9 -9
- package/build/esm/ComboBox/ComboboxButton.js +23 -28
- package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
- package/build/esm/ComboBox/ComboboxInput.d.ts +17 -17
- package/build/esm/ComboBox/ComboboxInput.js +67 -70
- package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
- package/build/esm/ComboBox/ComboboxLabel.d.ts +7 -7
- package/build/esm/ComboBox/ComboboxLabel.js +15 -17
- package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
- package/build/esm/ComboBox/ComboboxList.d.ts +8 -8
- package/build/esm/ComboBox/ComboboxList.js +19 -20
- package/build/esm/ComboBox/ComboboxList.js.map +1 -1
- package/build/esm/ComboBox/ComboboxOption.d.ts +11 -11
- package/build/esm/ComboBox/ComboboxOption.js +41 -45
- package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
- package/build/esm/ComboBox/ComboboxPopover.d.ts +9 -9
- package/build/esm/ComboBox/ComboboxPopover.js +22 -21
- package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
- package/build/esm/ComboBox/cities.d.ts +5 -5
- package/build/esm/ComboBox/cities.js.map +1 -1
- package/build/esm/ComboBox/context.d.ts +30 -30
- package/build/esm/ComboBox/context.js +5 -6
- package/build/esm/ComboBox/context.js.map +1 -1
- package/build/esm/ComboBox/hooks.d.ts +37 -37
- package/build/esm/ComboBox/hooks.js +175 -148
- package/build/esm/ComboBox/hooks.js.map +1 -1
- package/build/esm/ComboBox/index.d.ts +8 -8
- package/build/esm/ComboBox/index.js.map +1 -1
- package/build/esm/ComboBox/makeHash.d.ts +1 -1
- package/build/esm/ComboBox/makeHash.js +3 -6
- package/build/esm/ComboBox/makeHash.js.map +1 -1
- package/build/esm/ComboBox/scopeQuery.d.ts +1 -1
- package/build/esm/ComboBox/scopeQuery.js.map +1 -1
- package/build/esm/FocusLock/FocusLock.d.ts +9 -9
- package/build/esm/FocusLock/FocusLock.js +26 -32
- package/build/esm/FocusLock/FocusLock.js.map +1 -1
- package/build/esm/FocusLock/index.d.ts +1 -1
- package/build/esm/FocusLock/index.js.map +1 -1
- package/build/esm/FocusLock/tabUtils.d.ts +3 -3
- package/build/esm/FocusLock/tabUtils.js +5 -7
- package/build/esm/FocusLock/tabUtils.js.map +1 -1
- package/build/esm/FocusLock/useFocusLock.d.ts +7 -7
- package/build/esm/FocusLock/useFocusLock.js +14 -19
- package/build/esm/FocusLock/useFocusLock.js.map +1 -1
- package/build/esm/List/List.d.ts +7 -7
- package/build/esm/List/List.js +9 -11
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/ListItem.d.ts +7 -7
- package/build/esm/List/ListItem.js +9 -11
- package/build/esm/List/ListItem.js.map +1 -1
- package/build/esm/List/context.d.ts +4 -4
- package/build/esm/List/context.js +6 -6
- package/build/esm/List/context.js.map +1 -1
- package/build/esm/List/index.d.ts +2 -2
- package/build/esm/List/index.js.map +1 -1
- package/build/esm/Menu/ContextMenuTrigger.d.ts +11 -11
- package/build/esm/Menu/ContextMenuTrigger.js +32 -37
- package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
- package/build/esm/Menu/Menu.d.ts +10 -10
- package/build/esm/Menu/Menu.js +33 -49
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/MenuButton.d.ts +11 -11
- package/build/esm/Menu/MenuButton.js +28 -44
- package/build/esm/Menu/MenuButton.js.map +1 -1
- package/build/esm/Menu/MenuItem.d.ts +8 -8
- package/build/esm/Menu/MenuItem.js +29 -38
- package/build/esm/Menu/MenuItem.js.map +1 -1
- package/build/esm/Menu/MenuList.d.ts +7 -7
- package/build/esm/Menu/MenuList.js +61 -116
- package/build/esm/Menu/MenuList.js.map +1 -1
- package/build/esm/Menu/MenuPopover.d.ts +8 -8
- package/build/esm/Menu/MenuPopover.js +16 -19
- package/build/esm/Menu/MenuPopover.js.map +1 -1
- package/build/esm/Menu/context.d.ts +25 -25
- package/build/esm/Menu/context.js +14 -12
- package/build/esm/Menu/context.js.map +1 -1
- package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
- package/build/esm/Menu/fixtures/countryList.js +1 -1
- package/build/esm/Menu/fixtures/countryList.js.map +1 -1
- package/build/esm/Menu/index.d.ts +6 -6
- package/build/esm/Menu/index.js.map +1 -1
- package/build/esm/Menu/scope.d.ts +1 -1
- package/build/esm/Menu/scope.js.map +1 -1
- package/build/esm/Modal/Modal.d.ts +9 -9
- package/build/esm/Modal/Modal.js +13 -18
- package/build/esm/Modal/Modal.js.map +1 -1
- package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
- package/build/esm/Modal/ModalBackdrop.js +24 -33
- package/build/esm/Modal/ModalBackdrop.js.map +1 -1
- package/build/esm/Modal/index.d.ts +2 -2
- package/build/esm/Modal/index.js.map +1 -1
- package/build/esm/Popper/Popper.d.ts +35 -35
- package/build/esm/Popper/Popper.js +44 -60
- package/build/esm/Popper/Popper.js.map +1 -1
- package/build/esm/Popper/PopperArrow.d.ts +6 -6
- package/build/esm/Popper/PopperArrow.js +11 -16
- package/build/esm/Popper/PopperArrow.js.map +1 -1
- package/build/esm/Popper/context.d.ts +6 -6
- package/build/esm/Popper/context.js +3 -5
- package/build/esm/Popper/context.js.map +1 -1
- package/build/esm/Popper/index.d.ts +3 -3
- package/build/esm/Popper/index.js.map +1 -1
- package/build/esm/Portal/Portal.d.ts +7 -7
- package/build/esm/Portal/Portal.js +9 -11
- package/build/esm/Portal/Portal.js.map +1 -1
- package/build/esm/Portal/PortalSelectorProvider.d.ts +8 -8
- package/build/esm/Portal/PortalSelectorProvider.js +6 -4
- package/build/esm/Portal/PortalSelectorProvider.js.map +1 -1
- package/build/esm/Portal/index.d.ts +2 -2
- package/build/esm/Portal/index.js.map +1 -1
- package/build/esm/RadioButton/RadioButton.d.ts +10 -10
- package/build/esm/RadioButton/RadioButton.js +17 -23
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
- package/build/esm/RadioButton/RadioGroup.js +19 -28
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/context.d.ts +9 -9
- package/build/esm/RadioButton/context.js +8 -6
- package/build/esm/RadioButton/context.js.map +1 -1
- package/build/esm/RadioButton/index.d.ts +2 -2
- package/build/esm/RadioButton/index.js.map +1 -1
- package/build/esm/SkipNav/SkipNav.d.ts +7 -7
- package/build/esm/SkipNav/SkipNav.js +9 -11
- package/build/esm/SkipNav/SkipNav.js.map +1 -1
- package/build/esm/SkipNav/index.d.ts +1 -1
- package/build/esm/SkipNav/index.js.map +1 -1
- package/build/esm/Slider/Slider.d.ts +197 -197
- package/build/esm/Slider/Slider.js +422 -489
- package/build/esm/Slider/Slider.js.map +1 -1
- package/build/esm/Slider/index.d.ts +1 -1
- package/build/esm/Slider/index.js.map +1 -1
- package/build/esm/Spinner/Spinner.d.ts +12 -12
- package/build/esm/Spinner/Spinner.js +31 -59
- package/build/esm/Spinner/Spinner.js.map +1 -1
- package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
- package/build/esm/Spinner/SpinnerButton.js +14 -19
- package/build/esm/Spinner/SpinnerButton.js.map +1 -1
- package/build/esm/Spinner/context.d.ts +12 -12
- package/build/esm/Spinner/context.js +8 -7
- package/build/esm/Spinner/context.js.map +1 -1
- package/build/esm/Spinner/index.d.ts +2 -2
- package/build/esm/Spinner/index.js.map +1 -1
- package/build/esm/Tabs/Tab.d.ts +7 -7
- package/build/esm/Tabs/Tab.js +32 -50
- package/build/esm/Tabs/Tab.js.map +1 -1
- package/build/esm/Tabs/TabList.d.ts +9 -9
- package/build/esm/Tabs/TabList.js +24 -34
- package/build/esm/Tabs/TabList.js.map +1 -1
- package/build/esm/Tabs/TabPanel.d.ts +8 -8
- package/build/esm/Tabs/TabPanel.js +16 -23
- package/build/esm/Tabs/TabPanel.js.map +1 -1
- package/build/esm/Tabs/TabPanels.d.ts +8 -8
- package/build/esm/Tabs/TabPanels.js +15 -20
- package/build/esm/Tabs/TabPanels.js.map +1 -1
- package/build/esm/Tabs/Tabs.d.ts +10 -10
- package/build/esm/Tabs/Tabs.js +17 -33
- package/build/esm/Tabs/Tabs.js.map +1 -1
- package/build/esm/Tabs/context.d.ts +17 -17
- package/build/esm/Tabs/context.js +16 -13
- package/build/esm/Tabs/context.js.map +1 -1
- package/build/esm/Tabs/index.d.ts +5 -5
- package/build/esm/Tabs/index.js.map +1 -1
- package/build/esm/Tabs/scopeQuery.d.ts +1 -1
- package/build/esm/Tabs/scopeQuery.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +10 -10
- package/build/esm/Tooltip/Tooltip.js +20 -30
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/index.d.ts +1 -1
- package/build/esm/Tooltip/index.js.map +1 -1
- package/build/esm/Tooltip/stateMachine.d.ts +28 -28
- package/build/esm/Tooltip/stateMachine.js +95 -81
- package/build/esm/Tooltip/stateMachine.js.map +1 -1
- package/build/esm/Tooltip/useTooltip.d.ts +10 -10
- package/build/esm/Tooltip/useTooltip.js +38 -50
- package/build/esm/Tooltip/useTooltip.js.map +1 -1
- package/build/esm/hooks/index.d.ts +13 -13
- package/build/esm/hooks/index.js.map +1 -1
- package/build/esm/hooks/useAutoFocus.d.ts +2 -2
- package/build/esm/hooks/useAutoFocus.js +3 -3
- package/build/esm/hooks/useAutoFocus.js.map +1 -1
- package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
- package/build/esm/hooks/useChildrenCounter.js +6 -8
- package/build/esm/hooks/useChildrenCounter.js.map +1 -1
- package/build/esm/hooks/useControlledState.d.ts +3 -3
- package/build/esm/hooks/useControlledState.js +6 -16
- package/build/esm/hooks/useControlledState.js.map +1 -1
- package/build/esm/hooks/useFocusReturn.d.ts +2 -2
- package/build/esm/hooks/useFocusReturn.js +8 -12
- package/build/esm/hooks/useFocusReturn.js.map +1 -1
- package/build/esm/hooks/useFocusState.d.ts +11 -11
- package/build/esm/hooks/useFocusState.js +9 -15
- package/build/esm/hooks/useFocusState.js.map +1 -1
- package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
- package/build/esm/hooks/useGestureHandlers.js +80 -100
- package/build/esm/hooks/useGestureHandlers.js.map +1 -1
- package/build/esm/hooks/useMeasure.d.ts +7 -7
- package/build/esm/hooks/useMeasure.js +7 -15
- package/build/esm/hooks/useMeasure.js.map +1 -1
- package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
- package/build/esm/hooks/useOnClickOutside.js +4 -6
- package/build/esm/hooks/useOnClickOutside.js.map +1 -1
- package/build/esm/hooks/useOnKeyDown.d.ts +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 +24 -24
- package/build/esm/hooks/useReducerMachine.js +15 -26
- package/build/esm/hooks/useReducerMachine.js.map +1 -1
- package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
- package/build/esm/hooks/useRemoveBodyScroll.js +9 -14
- package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
- package/build/esm/hooks/useScope.d.ts +11 -11
- package/build/esm/hooks/useScope.js +12 -14
- package/build/esm/hooks/useScope.js.map +1 -1
- package/build/esm/hooks/useThrottle.d.ts +1 -1
- package/build/esm/hooks/useThrottle.js +5 -10
- package/build/esm/hooks/useThrottle.js.map +1 -1
- package/build/esm/index.d.ts +15 -15
- 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.d.ts +3 -3
- 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.d.ts +1 -1
- package/build/esm/utils/can-use-dom.js.map +1 -1
- package/build/esm/utils/clamp.d.ts +1 -1
- package/build/esm/utils/clamp.js.map +1 -1
- package/build/esm/utils/context.d.ts +7 -7
- package/build/esm/utils/context.js +13 -20
- package/build/esm/utils/context.js.map +1 -1
- package/build/esm/utils/create-subscription.d.ts +4 -4
- package/build/esm/utils/create-subscription.js +5 -10
- package/build/esm/utils/create-subscription.js.map +1 -1
- package/build/esm/utils/get-circular-index.d.ts +1 -1
- package/build/esm/utils/get-circular-index.js +0 -1
- package/build/esm/utils/get-circular-index.js.map +1 -1
- package/build/esm/utils/index.d.ts +10 -10
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/is-right-click.d.ts +6 -6
- package/build/esm/utils/is-right-click.js +4 -4
- package/build/esm/utils/is-right-click.js.map +1 -1
- package/build/esm/utils/owner-document.d.ts +7 -7
- package/build/esm/utils/owner-document.js +6 -6
- package/build/esm/utils/owner-document.js.map +1 -1
- package/build/esm/utils/polymorphic.d.ts +39 -39
- package/build/esm/utils/polymorphic.js.map +1 -1
- package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
- package/build/esm/utils/rubber-band-clamp.js +2 -5
- package/build/esm/utils/rubber-band-clamp.js.map +1 -1
- package/build/esm/utils/use-stable-callback.d.ts +16 -16
- package/build/esm/utils/use-stable-callback.js +24 -26
- package/build/esm/utils/use-stable-callback.js.map +1 -1
- package/build/esm/utils/wrap-event.d.ts +3 -3
- package/build/esm/utils/wrap-event.js +2 -5
- package/build/esm/utils/wrap-event.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +7 -11
- package/src/Accordion/Accordion.story.tsx +74 -74
- package/src/Accordion/Accordion.tsx +59 -59
- package/src/Accordion/AccordionBody.tsx +52 -52
- package/src/Accordion/AccordionHeader.tsx +166 -167
- package/src/Accordion/AccordionItem.tsx +50 -50
- package/src/Accordion/context.ts +37 -37
- package/src/Accordion/index.ts +4 -4
- package/src/Accordion/scopeQuery.ts +7 -7
- package/src/Accordion/styles.css +21 -21
- package/src/CheckBox/CheckBox.tsx +41 -41
- package/src/CheckBox/index.ts +1 -1
- package/src/ComboBox/ComboBox.story.tsx +120 -120
- package/src/ComboBox/Combobox.tsx +148 -148
- package/src/ComboBox/ComboboxButton.tsx +61 -61
- package/src/ComboBox/ComboboxInput.tsx +187 -187
- package/src/ComboBox/ComboboxLabel.tsx +33 -33
- package/src/ComboBox/ComboboxList.tsx +47 -47
- package/src/ComboBox/ComboboxOption.tsx +110 -111
- package/src/ComboBox/ComboboxPopover.tsx +64 -64
- package/src/ComboBox/cities.ts +23194 -23194
- package/src/ComboBox/context.ts +35 -35
- package/src/ComboBox/hooks.tsx +448 -451
- package/src/ComboBox/index.ts +8 -8
- package/src/ComboBox/makeHash.ts +19 -19
- package/src/ComboBox/scopeQuery.ts +6 -6
- package/src/ComboBox/styles.css +32 -32
- package/src/FocusLock/FocusLock.tsx +66 -66
- package/src/FocusLock/index.ts +1 -1
- package/src/FocusLock/tabUtils.ts +40 -40
- package/src/FocusLock/useFocusLock.ts +55 -56
- package/src/List/List.story.tsx +18 -18
- package/src/List/List.tsx +17 -17
- package/src/List/ListItem.tsx +23 -23
- package/src/List/context.ts +19 -19
- package/src/List/index.ts +2 -2
- package/src/Menu/ContextMenu.story.tsx +73 -73
- package/src/Menu/ContextMenuTrigger.tsx +76 -76
- package/src/Menu/Menu.story.tsx +160 -160
- package/src/Menu/Menu.tsx +82 -83
- package/src/Menu/MenuButton.tsx +83 -83
- package/src/Menu/MenuComplex.story.tsx +58 -58
- package/src/Menu/MenuItem.tsx +87 -88
- package/src/Menu/MenuList.tsx +254 -254
- package/src/Menu/MenuPopover.tsx +35 -35
- package/src/Menu/context.ts +44 -44
- package/src/Menu/fixtures/countryList.ts +198 -198
- package/src/Menu/index.ts +6 -6
- package/src/Menu/scope.ts +7 -7
- package/src/Menu/styles.css +42 -42
- package/src/Modal/Modal.story.tsx +262 -258
- package/src/Modal/Modal.tsx +48 -48
- package/src/Modal/ModalBackdrop.tsx +78 -78
- package/src/Modal/NavDrawer.story.tsx +161 -158
- package/src/Modal/index.ts +2 -2
- package/src/Modal/styles.css +46 -46
- package/src/Popper/Popper.story.tsx +279 -263
- package/src/Popper/Popper.tsx +1 -1
- package/src/Popper/PopperArrow.tsx +35 -35
- package/src/Popper/context.ts +10 -10
- package/src/Popper/index.ts +3 -3
- package/src/Popper/styles.css +60 -60
- package/src/RadioButton/RadioButton.story.tsx +78 -77
- package/src/RadioButton/RadioButton.tsx +55 -55
- package/src/RadioButton/RadioGroup.tsx +60 -60
- package/src/RadioButton/context.ts +17 -17
- package/src/RadioButton/index.ts +2 -2
- package/src/SkipNav/SkipNav.tsx +16 -16
- package/src/SkipNav/index.tsx +1 -1
- package/src/Slider/Slider.story.tsx +45 -45
- package/src/Slider/Slider.tsx +1115 -1120
- package/src/Slider/index.ts +1 -1
- package/src/Slider/styles.css +131 -131
- package/src/Spinner/Spinner.story.tsx +31 -31
- package/src/Spinner/Spinner.tsx +117 -117
- package/src/Spinner/SpinnerButton.tsx +54 -54
- package/src/Spinner/context.ts +20 -20
- package/src/Spinner/index.ts +2 -2
- package/src/Spinner/styles.css +23 -23
- package/src/Tabs/Tab.story.tsx +80 -80
- package/src/Tabs/Tab.tsx +136 -136
- package/src/Tabs/TabList.tsx +71 -71
- package/src/Tabs/TabPanel.tsx +53 -53
- package/src/Tabs/TabPanels.tsx +30 -30
- package/src/Tabs/Tabs.tsx +46 -46
- package/src/Tabs/context.ts +30 -30
- package/src/Tabs/index.tsx +5 -5
- package/src/Tabs/scopeQuery.ts +6 -6
- package/src/Tooltip/Tooltip.story.tsx +61 -61
- package/src/Tooltip/Tooltip.tsx +53 -50
- package/src/Tooltip/index.ts +1 -1
- package/src/Tooltip/stateMachine.ts +192 -192
- package/src/Tooltip/styles.css +17 -17
- package/src/Tooltip/useTooltip.ts +136 -136
- package/src/hooks/index.ts +13 -13
- package/src/hooks/useAutoFocus.ts +22 -22
- package/src/hooks/useChildrenCounter.ts +51 -51
- package/src/hooks/useControlledState.ts +1 -6
- package/src/hooks/useFocusReturn.ts +43 -43
- package/src/hooks/useFocusState.ts +30 -30
- package/src/hooks/useGestureHandlers.ts +282 -286
- package/src/hooks/useMeasure.ts +33 -33
- package/src/hooks/useOnClickOutside.ts +32 -32
- package/src/hooks/useOnKeyDown.ts +19 -19
- package/src/hooks/useReducerMachine.ts +60 -60
- package/src/hooks/useRemoveBodyScroll.ts +38 -39
- package/src/hooks/useScope.ts +52 -52
- package/src/hooks/useThrottle.ts +19 -19
- package/src/index.ts +20 -20
- package/src/styles.d.ts +1 -0
- package/src/utils/assign-ref.ts +27 -27
- package/src/utils/can-use-dom.ts +7 -7
- package/src/utils/clamp.ts +3 -3
- package/src/utils/context.tsx +48 -48
- package/src/utils/create-subscription.ts +16 -16
- package/src/utils/get-circular-index.ts +7 -7
- package/src/utils/index.ts +10 -10
- package/src/utils/is-right-click.ts +14 -14
- package/src/utils/owner-document.ts +13 -13
- package/src/utils/polymorphic.ts +82 -78
- package/src/utils/rubber-band-clamp.ts +25 -25
- package/src/utils/use-stable-callback.ts +57 -58
- package/src/utils/wrap-event.ts +22 -22
package/build/esm/Tabs/Tabs.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { ElementType, KeyboardEvent, MouseEvent, ReactNode } from 'react';
|
|
2
|
-
export interface TabsProps {
|
|
3
|
-
as?: ElementType<any>;
|
|
4
|
-
innerAs?: ElementType<any>;
|
|
5
|
-
children?: ReactNode;
|
|
6
|
-
onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>, value: number) => void;
|
|
7
|
-
index?: number;
|
|
8
|
-
defaultIndex?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
1
|
+
import type { ElementType, KeyboardEvent, MouseEvent, ReactNode } from 'react';
|
|
2
|
+
export interface TabsProps {
|
|
3
|
+
as?: ElementType<any>;
|
|
4
|
+
innerAs?: ElementType<any>;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>, value: number) => void;
|
|
7
|
+
index?: number;
|
|
8
|
+
defaultIndex?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>>;
|
package/build/esm/Tabs/Tabs.js
CHANGED
|
@@ -1,44 +1,28 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["as", "index", "onChange", "defaultIndex"];
|
|
5
1
|
import { forwardRef, Fragment, useState } from 'react';
|
|
6
2
|
import { TabsProvider } from './context';
|
|
7
3
|
import { useControlledState } from '../hooks';
|
|
8
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return function (e, idx) {
|
|
20
|
-
return setState(idx);
|
|
21
|
-
};
|
|
22
|
-
}),
|
|
23
|
-
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
24
|
-
index = _useControlledState2[0],
|
|
25
|
-
onChange = _useControlledState2[1];
|
|
26
|
-
|
|
27
|
-
var _useState = useState(null),
|
|
28
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
29
|
-
tabListId = _useState2[0],
|
|
30
|
-
setTabListId = _useState2[1];
|
|
31
|
-
|
|
5
|
+
export const Tabs = /*#__PURE__*/forwardRef(function Tabs(props, forwardedRef) {
|
|
6
|
+
const {
|
|
7
|
+
as: Comp = Fragment,
|
|
8
|
+
index: indexProp,
|
|
9
|
+
onChange: onChangeProp,
|
|
10
|
+
defaultIndex = 0,
|
|
11
|
+
...otherProps
|
|
12
|
+
} = props;
|
|
13
|
+
const [index, onChange] = useControlledState(indexProp, onChangeProp, defaultIndex, setState => (e, idx) => setState(idx));
|
|
14
|
+
const [tabListId, setTabListId] = useState(null);
|
|
32
15
|
return /*#__PURE__*/_jsx(TabsProvider, {
|
|
33
16
|
value: {
|
|
34
17
|
currentIndex: index || 0,
|
|
35
|
-
onChange
|
|
36
|
-
tabListId
|
|
37
|
-
setTabListId
|
|
18
|
+
onChange,
|
|
19
|
+
tabListId,
|
|
20
|
+
setTabListId
|
|
38
21
|
},
|
|
39
|
-
children: /*#__PURE__*/_jsx(Comp,
|
|
40
|
-
ref: forwardedRef
|
|
41
|
-
|
|
22
|
+
children: /*#__PURE__*/_jsx(Comp, {
|
|
23
|
+
ref: forwardedRef,
|
|
24
|
+
...otherProps
|
|
25
|
+
})
|
|
42
26
|
});
|
|
43
27
|
});
|
|
44
28
|
//# sourceMappingURL=Tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","names":["forwardRef","Fragment","useState","TabsProvider","useControlledState","Tabs","props","forwardedRef","as","Comp","
|
|
1
|
+
{"version":3,"file":"Tabs.js","names":["forwardRef","Fragment","useState","TabsProvider","useControlledState","jsx","_jsx","Tabs","props","forwardedRef","as","Comp","index","indexProp","onChange","onChangeProp","defaultIndex","otherProps","setState","e","idx","tabListId","setTabListId","value","currentIndex","children","ref"],"sources":["../../../src/Tabs/Tabs.tsx"],"sourcesContent":["import type { ElementType, KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport { forwardRef, Fragment, useState } from 'react';\n\nimport { TabsProvider } from './context';\nimport { useControlledState } from '../hooks';\n\nexport interface TabsProps {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,\n value: number\n ) => void;\n index?: number;\n defaultIndex?: number;\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n props,\n forwardedRef\n) {\n const {\n as: Comp = Fragment,\n index: indexProp,\n onChange: onChangeProp,\n defaultIndex = 0,\n ...otherProps\n } = props;\n const [index, onChange] = useControlledState(\n indexProp,\n onChangeProp,\n defaultIndex,\n (setState) => (e, idx) => setState(idx)\n );\n\n const [tabListId, setTabListId] = useState<string | null>(null);\n\n return (\n <TabsProvider\n value={{ currentIndex: index || 0, onChange, tabListId, setTabListId }}\n >\n <Comp ref={forwardedRef} {...otherProps} />\n </TabsProvider>\n );\n});\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,OAAO;AAEtD,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,kBAAkB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAc9C,OAAO,MAAMC,IAAI,gBAAGP,UAAU,CAA4B,SAASO,IAAIA,CACrEC,KAAK,EACLC,YAAY,EACZ;EACA,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAGV,QAAQ;IACnBW,KAAK,EAAEC,SAAS;IAChBC,QAAQ,EAAEC,YAAY;IACtBC,YAAY,GAAG,CAAC;IAChB,GAAGC;EACL,CAAC,GAAGT,KAAK;EACT,MAAM,CAACI,KAAK,EAAEE,QAAQ,CAAC,GAAGV,kBAAkB,CAC1CS,SAAS,EACTE,YAAY,EACZC,YAAY,EACXE,QAAQ,IAAK,CAACC,CAAC,EAAEC,GAAG,KAAKF,QAAQ,CAACE,GAAG,CACxC,CAAC;EAED,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGpB,QAAQ,CAAgB,IAAI,CAAC;EAE/D,oBACEI,IAAA,CAACH,YAAY;IACXoB,KAAK,EAAE;MAAEC,YAAY,EAAEZ,KAAK,IAAI,CAAC;MAAEE,QAAQ;MAAEO,SAAS;MAAEC;IAAa,CAAE;IAAAG,QAAA,eAEvEnB,IAAA,CAACK,IAAI;MAACe,GAAG,EAAEjB,YAAa;MAAA,GAAKQ;IAAU,CAAG;EAAC,CAC/B,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import type { KeyboardEvent, MouseEvent } from 'react';
|
|
2
|
-
import type { Scope } from '../hooks/useScope';
|
|
3
|
-
export interface TabsContextProps {
|
|
4
|
-
currentIndex: number;
|
|
5
|
-
onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>, value: number) => void;
|
|
6
|
-
tabListId: string | null;
|
|
7
|
-
setTabListId: (v: string | null) => void;
|
|
8
|
-
}
|
|
9
|
-
export declare const TabsProvider: import("react").Provider<TabsContextProps | null>;
|
|
10
|
-
export declare const useTabsContext: () => TabsContextProps | null;
|
|
11
|
-
export interface TabListContextProps {
|
|
12
|
-
tabsScope: Scope<HTMLElement>;
|
|
13
|
-
manualActivation: boolean;
|
|
14
|
-
vertical: boolean;
|
|
15
|
-
}
|
|
16
|
-
export declare const TabListProvider: import("react").Provider<TabListContextProps | null>;
|
|
17
|
-
export declare const useTabListContext: () => TabListContextProps | null;
|
|
1
|
+
import type { KeyboardEvent, MouseEvent } from 'react';
|
|
2
|
+
import type { Scope } from '../hooks/useScope';
|
|
3
|
+
export interface TabsContextProps {
|
|
4
|
+
currentIndex: number;
|
|
5
|
+
onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>, value: number) => void;
|
|
6
|
+
tabListId: string | null;
|
|
7
|
+
setTabListId: (v: string | null) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const TabsProvider: import("react").Provider<TabsContextProps | null>;
|
|
10
|
+
export declare const useTabsContext: () => TabsContextProps | null;
|
|
11
|
+
export interface TabListContextProps {
|
|
12
|
+
tabsScope: Scope<HTMLElement>;
|
|
13
|
+
manualActivation: boolean;
|
|
14
|
+
vertical: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const TabListProvider: import("react").Provider<TabListContextProps | null>;
|
|
17
|
+
export declare const useTabListContext: () => TabListContextProps | null;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { createContext, useContext } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
|
|
3
|
+
// Tabs Component
|
|
4
|
+
|
|
5
|
+
const tabsContext = /*#__PURE__*/createContext(null);
|
|
6
|
+
export const {
|
|
7
|
+
Provider: TabsProvider
|
|
8
|
+
} = tabsContext;
|
|
9
|
+
export const useTabsContext = () => useContext(tabsContext);
|
|
10
|
+
|
|
11
|
+
// TabList Component
|
|
12
|
+
|
|
13
|
+
const tablistContext = /*#__PURE__*/createContext(null);
|
|
14
|
+
export const {
|
|
15
|
+
Provider: TabListProvider
|
|
16
|
+
} = tablistContext;
|
|
17
|
+
export const useTabListContext = () => useContext(tablistContext);
|
|
15
18
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":["createContext","useContext","tabsContext","
|
|
1
|
+
{"version":3,"file":"context.js","names":["createContext","useContext","tabsContext","Provider","TabsProvider","useTabsContext","tablistContext","TabListProvider","useTabListContext"],"sources":["../../../src/Tabs/context.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\nimport { createContext, useContext } from 'react';\n\nimport type { Scope } from '../hooks/useScope';\n\n// Tabs Component\nexport interface TabsContextProps {\n currentIndex: number;\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,\n value: number\n ) => void;\n tabListId: string | null;\n setTabListId: (v: string | null) => void;\n}\n\nconst tabsContext = createContext<TabsContextProps | null>(null);\nexport const { Provider: TabsProvider } = tabsContext;\nexport const useTabsContext = () => useContext(tabsContext);\n\n// TabList Component\nexport interface TabListContextProps {\n tabsScope: Scope<HTMLElement>;\n manualActivation: boolean;\n vertical: boolean;\n}\n\nconst tablistContext = createContext<TabListContextProps | null>(null);\nexport const { Provider: TabListProvider } = tablistContext;\nexport const useTabListContext = () => useContext(tablistContext);\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAIjD;;AAWA,MAAMC,WAAW,gBAAGF,aAAa,CAA0B,IAAI,CAAC;AAChE,OAAO,MAAM;EAAEG,QAAQ,EAAEC;AAAa,CAAC,GAAGF,WAAW;AACrD,OAAO,MAAMG,cAAc,GAAGA,CAAA,KAAMJ,UAAU,CAACC,WAAW,CAAC;;AAE3D;;AAOA,MAAMI,cAAc,gBAAGN,aAAa,CAA6B,IAAI,CAAC;AACtE,OAAO,MAAM;EAAEG,QAAQ,EAAEI;AAAgB,CAAC,GAAGD,cAAc;AAC3D,OAAO,MAAME,iBAAiB,GAAGA,CAAA,KAAMP,UAAU,CAACK,cAAc,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './Tabs';
|
|
2
|
-
export * from './Tab';
|
|
3
|
-
export * from './TabList';
|
|
4
|
-
export * from './TabPanels';
|
|
5
|
-
export * from './TabPanel';
|
|
1
|
+
export * from './Tabs';
|
|
2
|
+
export * from './Tab';
|
|
3
|
+
export * from './TabList';
|
|
4
|
+
export * from './TabPanels';
|
|
5
|
+
export * from './TabPanel';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Tabs/index.tsx"],"sourcesContent":["export * from './Tabs';\
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Tabs/index.tsx"],"sourcesContent":["export * from './Tabs';\nexport * from './Tab';\nexport * from './TabList';\nexport * from './TabPanels';\nexport * from './TabPanel';\n"],"mappings":"AAAA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,YAAY","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function scopeQuery(nodeType: string, props: Record<string, unknown>): boolean;
|
|
1
|
+
export declare function scopeQuery(nodeType: string, props: Record<string, unknown>): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopeQuery.js","names":["scopeQuery","nodeType","props"],"sources":["../../../src/Tabs/scopeQuery.ts"],"sourcesContent":["export function scopeQuery(\
|
|
1
|
+
{"version":3,"file":"scopeQuery.js","names":["scopeQuery","nodeType","props"],"sources":["../../../src/Tabs/scopeQuery.ts"],"sourcesContent":["export function scopeQuery(\n nodeType: string,\n props: Record<string, unknown>\n): boolean {\n return props['data-tab'] === '';\n}\n"],"mappings":"AAAA,OAAO,SAASA,UAAUA,CACxBC,QAAgB,EAChBC,KAA8B,EACrB;EACT,OAAOA,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;AACjC","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { ElementType, HTMLAttributes, ReactNode
|
|
2
|
-
export type { InjectedTooltipProps } from './useTooltip';
|
|
3
|
-
export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
-
as?: ElementType<any>;
|
|
5
|
-
innerAs?: ElementType<any>;
|
|
6
|
-
children?: ReactNode;
|
|
7
|
-
label: ReactNode;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & RefAttributes<HTMLDivElement>>;
|
|
1
|
+
import type { ElementType, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type { InjectedTooltipProps } from './useTooltip';
|
|
3
|
+
export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
as?: ElementType<any>;
|
|
5
|
+
innerAs?: ElementType<any>;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,42 +1,32 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["as", "innerAs", "children", "disabled"],
|
|
5
|
-
_excluded2 = ["visible"];
|
|
6
1
|
import { forwardRef, cloneElement, Children } from 'react';
|
|
7
2
|
import { useTooltip } from './useTooltip';
|
|
8
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
childProps = _useTooltip2[0],
|
|
25
|
-
_useTooltip2$ = _useTooltip2[1],
|
|
26
|
-
visible = _useTooltip2$.visible,
|
|
27
|
-
tooltipProps = _objectWithoutProperties(_useTooltip2$, _excluded2);
|
|
28
|
-
|
|
3
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
export const Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, forwardedRef) {
|
|
5
|
+
const {
|
|
6
|
+
as: Comp = 'div',
|
|
7
|
+
innerAs,
|
|
8
|
+
children,
|
|
9
|
+
disabled = false,
|
|
10
|
+
...otherProps
|
|
11
|
+
} = props;
|
|
12
|
+
const child = Children.only(children);
|
|
13
|
+
// React 19: ref lives in props. React <=18: ref lives on element directly.
|
|
14
|
+
const childRef = child.props.ref ?? child.ref;
|
|
15
|
+
const [childProps, {
|
|
16
|
+
visible,
|
|
17
|
+
...tooltipProps
|
|
18
|
+
}] = useTooltip(child.props, childRef, otherProps);
|
|
29
19
|
if (disabled) {
|
|
30
20
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
31
21
|
children: child
|
|
32
22
|
});
|
|
33
23
|
}
|
|
34
|
-
|
|
35
24
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
36
|
-
children: [/*#__PURE__*/cloneElement(child, childProps), visible && /*#__PURE__*/_jsx(Comp,
|
|
25
|
+
children: [/*#__PURE__*/cloneElement(child, childProps), visible && /*#__PURE__*/_jsx(Comp, {
|
|
37
26
|
as: innerAs,
|
|
38
|
-
ref: forwardedRef
|
|
39
|
-
|
|
27
|
+
ref: forwardedRef,
|
|
28
|
+
...tooltipProps
|
|
29
|
+
})]
|
|
40
30
|
});
|
|
41
31
|
});
|
|
42
32
|
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["forwardRef","cloneElement","Children","useTooltip","Tooltip","props","forwardedRef","as","Comp","innerAs","children","disabled","otherProps","child","only","ref","childProps","visible","tooltipProps"],"sources":["../../../src/Tooltip/Tooltip.tsx"],"sourcesContent":["import type {\
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["forwardRef","cloneElement","Children","useTooltip","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","Tooltip","props","forwardedRef","as","Comp","innerAs","children","disabled","otherProps","child","only","childRef","ref","childProps","visible","tooltipProps"],"sources":["../../../src/Tooltip/Tooltip.tsx"],"sourcesContent":["import type {\n ElementType,\n HTMLAttributes,\n ReactElement,\n ReactNode,\n Ref,\n} from 'react';\nimport { forwardRef, cloneElement, Children } from 'react';\n\nimport { useTooltip } from './useTooltip';\nexport type { InjectedTooltipProps } from './useTooltip';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n label: ReactNode;\n disabled?: boolean;\n}\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n function Tooltip(props, forwardedRef) {\n const {\n as: Comp = 'div',\n innerAs,\n children,\n disabled = false,\n ...otherProps\n } = props;\n const child = Children.only(children) as ReactElement<\n HTMLAttributes<HTMLElement>\n >;\n // React 19: ref lives in props. React <=18: ref lives on element directly.\n const childRef =\n (child.props as { ref?: Ref<HTMLElement> }).ref ?? (child as any).ref;\n const [childProps, { visible, ...tooltipProps }] = useTooltip(\n child.props,\n childRef,\n otherProps\n );\n\n if (disabled) {\n return <>{child}</>;\n }\n\n return (\n <>\n {cloneElement(child, childProps)}\n {visible && <Comp as={innerAs} ref={forwardedRef} {...tooltipProps} />}\n </>\n );\n }\n);\n"],"mappings":"AAOA,SAASA,UAAU,EAAEC,YAAY,EAAEC,QAAQ,QAAQ,OAAO;AAE1D,SAASC,UAAU,QAAQ,cAAc;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAW1C,OAAO,MAAMC,OAAO,gBAAGV,UAAU,CAC/B,SAASU,OAAOA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACpC,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAChBC,OAAO;IACPC,QAAQ;IACRC,QAAQ,GAAG,KAAK;IAChB,GAAGC;EACL,CAAC,GAAGP,KAAK;EACT,MAAMQ,KAAK,GAAGjB,QAAQ,CAACkB,IAAI,CAACJ,QAAQ,CAEnC;EACD;EACA,MAAMK,QAAQ,GACXF,KAAK,CAACR,KAAK,CAAgCW,GAAG,IAAKH,KAAK,CAASG,GAAG;EACvE,MAAM,CAACC,UAAU,EAAE;IAAEC,OAAO;IAAE,GAAGC;EAAa,CAAC,CAAC,GAAGtB,UAAU,CAC3DgB,KAAK,CAACR,KAAK,EACXU,QAAQ,EACRH,UACF,CAAC;EAED,IAAID,QAAQ,EAAE;IACZ,oBAAOV,IAAA,CAAAF,SAAA;MAAAW,QAAA,EAAGG;IAAK,CAAG,CAAC;EACrB;EAEA,oBACEV,KAAA,CAAAJ,SAAA;IAAAW,QAAA,gBACGf,YAAY,CAACkB,KAAK,EAAEI,UAAU,CAAC,EAC/BC,OAAO,iBAAIjB,IAAA,CAACO,IAAI;MAACD,EAAE,EAAEE,OAAQ;MAACO,GAAG,EAAEV,YAAa;MAAA,GAAKa;IAAY,CAAG,CAAC;EAAA,CACtE,CAAC;AAEP,CACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './Tooltip';
|
|
1
|
+
export * from './Tooltip';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Tooltip/index.ts"],"sourcesContent":["export * from './Tooltip';\
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Tooltip/index.ts"],"sourcesContent":["export * from './Tooltip';\n"],"mappings":"AAAA,cAAc,WAAW","ignoreList":[]}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
export
|
|
2
|
-
export declare const Idle: "IDLE";
|
|
3
|
-
export declare const Focused: "FOCUSED";
|
|
4
|
-
export declare const Visible: "VISIBLE";
|
|
5
|
-
export declare const LeavingVisible: "LEAVING_VISIBLE";
|
|
6
|
-
export declare const Dismissed: "DISMISSED";
|
|
7
|
-
export
|
|
8
|
-
export declare const Blur: "BLUR";
|
|
9
|
-
export declare const Focus: "FOCUS";
|
|
10
|
-
export declare const GlobalMouseMove: "GLOBAL_MOUSE_MOVE";
|
|
11
|
-
export declare const MouseDown: "MOUSE_DOWN";
|
|
12
|
-
export declare const MouseEnter: "MOUSE_ENTER";
|
|
13
|
-
export declare const MouseLeave: "MOUSE_LEAVE";
|
|
14
|
-
export declare const MouseMove: "MOUSE_MOVE";
|
|
15
|
-
export declare const Rest: "REST";
|
|
16
|
-
export declare const SelectWithKeyboard: "SELECT_WITH_KEYBOARD";
|
|
17
|
-
export declare const TimeComplete: "TIME_COMPLETE";
|
|
18
|
-
export declare const subscription: {
|
|
19
|
-
subscribe: (fn: () => void) => () => void;
|
|
20
|
-
notify: () => void;
|
|
21
|
-
};
|
|
22
|
-
export declare const state: {
|
|
23
|
-
current: {
|
|
24
|
-
state: TooltipStates;
|
|
25
|
-
id: string;
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
export declare function send<T extends TooltipEventTypes>(event: T, payload?: Omit<typeof state['current'], 'state'>): void;
|
|
1
|
+
export type TooltipStates = 'IDLE' | 'FOCUSED' | 'VISIBLE' | 'LEAVING_VISIBLE' | 'DISMISSED';
|
|
2
|
+
export declare const Idle: "IDLE";
|
|
3
|
+
export declare const Focused: "FOCUSED";
|
|
4
|
+
export declare const Visible: "VISIBLE";
|
|
5
|
+
export declare const LeavingVisible: "LEAVING_VISIBLE";
|
|
6
|
+
export declare const Dismissed: "DISMISSED";
|
|
7
|
+
export type TooltipEventTypes = 'BLUR' | 'FOCUS' | 'GLOBAL_MOUSE_MOVE' | 'MOUSE_DOWN' | 'MOUSE_ENTER' | 'MOUSE_LEAVE' | 'MOUSE_MOVE' | 'REST' | 'SELECT_WITH_KEYBOARD' | 'TIME_COMPLETE';
|
|
8
|
+
export declare const Blur: "BLUR";
|
|
9
|
+
export declare const Focus: "FOCUS";
|
|
10
|
+
export declare const GlobalMouseMove: "GLOBAL_MOUSE_MOVE";
|
|
11
|
+
export declare const MouseDown: "MOUSE_DOWN";
|
|
12
|
+
export declare const MouseEnter: "MOUSE_ENTER";
|
|
13
|
+
export declare const MouseLeave: "MOUSE_LEAVE";
|
|
14
|
+
export declare const MouseMove: "MOUSE_MOVE";
|
|
15
|
+
export declare const Rest: "REST";
|
|
16
|
+
export declare const SelectWithKeyboard: "SELECT_WITH_KEYBOARD";
|
|
17
|
+
export declare const TimeComplete: "TIME_COMPLETE";
|
|
18
|
+
export declare const subscription: {
|
|
19
|
+
subscribe: (fn: () => void) => () => void;
|
|
20
|
+
notify: () => void;
|
|
21
|
+
};
|
|
22
|
+
export declare const state: {
|
|
23
|
+
current: {
|
|
24
|
+
state: TooltipStates;
|
|
25
|
+
id: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export declare function send<T extends TooltipEventTypes>(event: T, payload?: Omit<typeof state['current'], 'state'>): void;
|
|
@@ -1,111 +1,129 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
|
|
4
|
-
var _on, _on2, _on3, _on4, _on5, _states;
|
|
5
|
-
|
|
6
1
|
import { createSubscription } from '../utils/create-subscription';
|
|
7
2
|
////////////////////////////////////////////////////////////////////////////////
|
|
8
3
|
// Timeouts:
|
|
4
|
+
|
|
9
5
|
// Manages when the user "rests" on an element. Keeps the interface from being
|
|
10
6
|
// flashing tooltips all the time as the user moves the mouse around the screen.
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
let restTimeout;
|
|
13
8
|
function startRestTimer() {
|
|
14
9
|
clearTimeout(restTimeout);
|
|
15
|
-
restTimeout = setTimeout(
|
|
10
|
+
restTimeout = setTimeout(() => {
|
|
16
11
|
send(Rest, undefined);
|
|
17
12
|
}, 200);
|
|
18
13
|
}
|
|
19
|
-
|
|
20
14
|
function clearRestTimer() {
|
|
21
15
|
clearTimeout(restTimeout);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var leavingVisibleTimer;
|
|
16
|
+
}
|
|
26
17
|
|
|
18
|
+
// Manages the delay to hide the tooltip after rest leaves.
|
|
19
|
+
let leavingVisibleTimer;
|
|
27
20
|
function startLeavingVisibleTimer() {
|
|
28
21
|
clearTimeout(leavingVisibleTimer);
|
|
29
|
-
leavingVisibleTimer = setTimeout(
|
|
30
|
-
return send(TimeComplete, undefined);
|
|
31
|
-
}, 100);
|
|
22
|
+
leavingVisibleTimer = setTimeout(() => send(TimeComplete, undefined), 100);
|
|
32
23
|
}
|
|
33
|
-
|
|
34
24
|
function clearLeavingVisibleTimer() {
|
|
35
25
|
clearTimeout(leavingVisibleTimer);
|
|
36
|
-
}
|
|
37
|
-
// State machine
|
|
26
|
+
}
|
|
38
27
|
|
|
28
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
29
|
+
// State machine
|
|
39
30
|
|
|
40
31
|
// Nothing goin' on
|
|
41
|
-
export
|
|
42
|
-
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
export
|
|
46
|
-
|
|
47
|
-
export
|
|
32
|
+
export const Idle = 'IDLE';
|
|
33
|
+
// We're considering showing the tooltip, but we're gonna wait a sec
|
|
34
|
+
export const Focused = 'FOCUSED';
|
|
35
|
+
// It's on!
|
|
36
|
+
export const Visible = 'VISIBLE';
|
|
37
|
+
// Focus has left, but we want to keep it visible for a sec
|
|
38
|
+
export const LeavingVisible = 'LEAVING_VISIBLE';
|
|
39
|
+
// The user clicked the tool, so we want to hide the thing, we can't just use
|
|
48
40
|
// IDLE because we need to ignore mousemove, etc.
|
|
49
|
-
|
|
50
|
-
export
|
|
51
|
-
export
|
|
52
|
-
export
|
|
53
|
-
export
|
|
54
|
-
export
|
|
55
|
-
export
|
|
56
|
-
export
|
|
57
|
-
export
|
|
58
|
-
export
|
|
59
|
-
export
|
|
60
|
-
export
|
|
61
|
-
export
|
|
62
|
-
export var state = {
|
|
41
|
+
export const Dismissed = 'DISMISSED';
|
|
42
|
+
export const Blur = 'BLUR';
|
|
43
|
+
export const Focus = 'FOCUS';
|
|
44
|
+
export const GlobalMouseMove = 'GLOBAL_MOUSE_MOVE';
|
|
45
|
+
export const MouseDown = 'MOUSE_DOWN';
|
|
46
|
+
export const MouseEnter = 'MOUSE_ENTER';
|
|
47
|
+
export const MouseLeave = 'MOUSE_LEAVE';
|
|
48
|
+
export const MouseMove = 'MOUSE_MOVE';
|
|
49
|
+
export const Rest = 'REST';
|
|
50
|
+
export const SelectWithKeyboard = 'SELECT_WITH_KEYBOARD';
|
|
51
|
+
export const TimeComplete = 'TIME_COMPLETE';
|
|
52
|
+
export const subscription = createSubscription();
|
|
53
|
+
export const state = {
|
|
63
54
|
current: {
|
|
64
55
|
state: Idle,
|
|
65
56
|
id: ''
|
|
66
57
|
}
|
|
67
58
|
};
|
|
68
|
-
|
|
69
59
|
function clearContextId() {
|
|
70
60
|
state.current.id = '';
|
|
71
61
|
}
|
|
72
|
-
|
|
73
|
-
var chart = {
|
|
62
|
+
const chart = {
|
|
74
63
|
initial: Idle,
|
|
75
|
-
states:
|
|
76
|
-
|
|
77
|
-
|
|
64
|
+
states: {
|
|
65
|
+
[Idle]: {
|
|
66
|
+
enter: () => {
|
|
67
|
+
clearContextId();
|
|
68
|
+
},
|
|
69
|
+
on: {
|
|
70
|
+
[MouseEnter]: Focused,
|
|
71
|
+
[Focus]: Visible
|
|
72
|
+
}
|
|
78
73
|
},
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
74
|
+
[Focused]: {
|
|
75
|
+
enter: startRestTimer,
|
|
76
|
+
leave: clearRestTimer,
|
|
77
|
+
on: {
|
|
78
|
+
[MouseMove]: Focused,
|
|
79
|
+
[MouseLeave]: Idle,
|
|
80
|
+
[MouseDown]: Dismissed,
|
|
81
|
+
[Blur]: Idle,
|
|
82
|
+
[Rest]: Visible
|
|
83
|
+
}
|
|
89
84
|
},
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
85
|
+
[Visible]: {
|
|
86
|
+
on: {
|
|
87
|
+
[Focus]: Focused,
|
|
88
|
+
[MouseEnter]: Focused,
|
|
89
|
+
[MouseLeave]: LeavingVisible,
|
|
90
|
+
[Blur]: LeavingVisible,
|
|
91
|
+
[MouseDown]: Dismissed,
|
|
92
|
+
[SelectWithKeyboard]: Dismissed,
|
|
93
|
+
[GlobalMouseMove]: LeavingVisible
|
|
94
|
+
}
|
|
93
95
|
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
[LeavingVisible]: {
|
|
97
|
+
enter: () => {
|
|
98
|
+
startLeavingVisibleTimer();
|
|
99
|
+
},
|
|
100
|
+
leave: () => {
|
|
101
|
+
clearLeavingVisibleTimer();
|
|
102
|
+
clearContextId();
|
|
103
|
+
},
|
|
104
|
+
on: {
|
|
105
|
+
[MouseEnter]: Visible,
|
|
106
|
+
[Focus]: Visible,
|
|
107
|
+
[TimeComplete]: Idle
|
|
108
|
+
}
|
|
98
109
|
},
|
|
99
|
-
|
|
100
|
-
|
|
110
|
+
[Dismissed]: {
|
|
111
|
+
leave: () => {
|
|
112
|
+
clearContextId();
|
|
113
|
+
},
|
|
114
|
+
on: {
|
|
115
|
+
[MouseLeave]: Idle,
|
|
116
|
+
[Blur]: Idle
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
101
120
|
};
|
|
102
|
-
|
|
103
121
|
function transition(currentState, event, payload) {
|
|
104
|
-
|
|
122
|
+
const currentStateValue = currentState.state;
|
|
123
|
+
const stateDef = chart.states[currentState.state];
|
|
124
|
+
const nextState = stateDef?.on?.[event];
|
|
105
125
|
|
|
106
|
-
|
|
107
|
-
var stateDef = chart.states[currentState.state];
|
|
108
|
-
var nextState = stateDef === null || stateDef === void 0 ? void 0 : (_stateDef$on = stateDef.on) === null || _stateDef$on === void 0 ? void 0 : _stateDef$on[event]; // Really useful for debugging
|
|
126
|
+
// Really useful for debugging
|
|
109
127
|
// console.log({
|
|
110
128
|
// event,
|
|
111
129
|
// state: state.current.state,
|
|
@@ -116,26 +134,22 @@ function transition(currentState, event, payload) {
|
|
|
116
134
|
if (!nextState) {
|
|
117
135
|
return currentState;
|
|
118
136
|
}
|
|
119
|
-
|
|
120
137
|
if (stateDef && stateDef.leave) {
|
|
121
138
|
stateDef.leave(currentStateValue, payload);
|
|
122
139
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
var nextDef = chart.states[nextStateValue];
|
|
126
|
-
|
|
140
|
+
const nextStateValue = nextState;
|
|
141
|
+
const nextDef = chart.states[nextStateValue];
|
|
127
142
|
if (nextDef && nextDef.enter) {
|
|
128
143
|
nextDef.enter(nextStateValue, payload);
|
|
129
144
|
}
|
|
130
|
-
|
|
131
|
-
|
|
145
|
+
return {
|
|
146
|
+
...currentState,
|
|
147
|
+
...payload,
|
|
132
148
|
state: nextStateValue
|
|
133
|
-
}
|
|
149
|
+
};
|
|
134
150
|
}
|
|
135
|
-
|
|
136
151
|
export function send(event, payload) {
|
|
137
|
-
|
|
138
|
-
|
|
152
|
+
const nextState = transition(state.current, event, payload);
|
|
139
153
|
if (state.current !== nextState) {
|
|
140
154
|
state.current = nextState;
|
|
141
155
|
subscription.notify();
|