@koine/react 2.0.0-beta.14 → 2.0.0-beta.15
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/Alert/Alert.js +10 -0
- package/Alert/index.d.ts +1 -1
- package/Alert/index.js +1 -0
- package/Animations/Reveal.d.ts +1 -2
- package/Animations/Reveal.js +16 -0
- package/Animations/Underline.js +5 -0
- package/Animations/index.d.ts +3 -3
- package/Animations/index.js +3 -0
- package/Animations/useReveal.d.ts +0 -21
- package/Animations/useReveal.js +42 -0
- package/Autocomplete/AutocompleteDownshift.js +1 -0
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +1 -0
- package/Autocomplete/AutocompleteMui.d.ts +2 -27
- package/Autocomplete/AutocompleteMui.js +93 -0
- package/Autocomplete/AutocompleteReach.js +1 -0
- package/Autocomplete/components.d.ts +0 -5
- package/Autocomplete/components.js +26 -0
- package/Autocomplete/helpers.d.ts +1 -1
- package/Autocomplete/helpers.js +17 -0
- package/Autocomplete/index.d.ts +2 -2
- package/Autocomplete/index.js +1 -0
- package/Bg/BgColor.d.ts +1 -20
- package/Bg/BgColor.js +16 -0
- package/Bg/BgPhoto.d.ts +1 -6
- package/Bg/BgPhoto.js +16 -0
- package/Bg/BgSvg.d.ts +0 -3
- package/Bg/BgSvg.js +9 -0
- package/Bg/index.d.ts +3 -3
- package/Bg/index.js +3 -0
- package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/Breadcrumbs/Breadcrumbs.js +27 -0
- package/Breadcrumbs/index.d.ts +1 -1
- package/Breadcrumbs/index.js +1 -0
- package/Buttons/Button.d.ts +0 -4
- package/Buttons/Button.js +10 -0
- package/Buttons/ButtonComposite.d.ts +3 -4
- package/Buttons/ButtonComposite.js +28 -0
- package/Buttons/ButtonFab.d.ts +1 -2
- package/Buttons/ButtonFab.js +6 -0
- package/Buttons/ButtonLink.d.ts +3 -3
- package/Buttons/ButtonLink.js +11 -0
- package/Buttons/IconButton.d.ts +1 -2
- package/Buttons/IconButton.js +7 -0
- package/Buttons/index.d.ts +5 -5
- package/Buttons/index.js +5 -0
- package/Calendar/CalendarDaygridCell.d.ts +3 -4
- package/Calendar/CalendarDaygridCell.js +46 -0
- package/Calendar/CalendarDaygridNav.d.ts +2 -2
- package/Calendar/CalendarDaygridNav.js +23 -0
- package/Calendar/CalendarDaygridTable.d.ts +3 -3
- package/Calendar/CalendarDaygridTable.js +45 -0
- package/Calendar/CalendarLegend.d.ts +2 -3
- package/Calendar/CalendarLegend.js +8 -0
- package/Calendar/calendar-api-google.d.ts +1 -9
- package/Calendar/calendar-api-google.js +126 -0
- package/Calendar/index.d.ts +6 -6
- package/Calendar/index.js +6 -0
- package/Calendar/types.d.ts +0 -19
- package/Calendar/types.js +1 -0
- package/Calendar/useCalendar.d.ts +4 -19
- package/Calendar/useCalendar.js +176 -0
- package/Calendar/utils.d.ts +1 -1
- package/Calendar/utils.js +185 -0
- package/Carousel/Carousel.js +1 -0
- package/Carousel/CarouselCss.d.ts +1 -23
- package/Carousel/CarouselCss.js +19 -0
- package/Carousel/index.d.ts +1 -1
- package/Carousel/index.js +1 -0
- package/Collapsable/Collapsable.js +1 -0
- package/Collapsable/CollapsableReach.d.ts +0 -6
- package/Collapsable/CollapsableReach.js +1 -0
- package/Collapsable/index.d.ts +1 -1
- package/Collapsable/index.js +1 -0
- package/Debug/Debug.js +9 -0
- package/Debug/index.d.ts +1 -1
- package/Debug/index.js +1 -0
- package/Details/Details.d.ts +0 -6
- package/Details/Details.js +52 -0
- package/Details/index.d.ts +1 -1
- package/Details/index.js +1 -0
- package/Dialog/DialogMui.d.ts +1 -3
- package/Dialog/DialogMui.js +39 -0
- package/Dialog/css/bare.d.ts +1 -2
- package/Dialog/css/bare.js +20 -0
- package/Dialog/index.d.ts +2 -2
- package/Dialog/index.js +1 -0
- package/Dialog/m/bare.js +3 -0
- package/Dialog/m/basic.d.ts +1 -1
- package/Dialog/m/basic.js +28 -0
- package/Dialog/m/index.d.ts +1 -2
- package/Dialog/m/index.js +4 -0
- package/Dialog/sc/bare.d.ts +2 -12
- package/Dialog/sc/bare.js +31 -0
- package/Dialog/sc/framer.d.ts +1 -2
- package/Dialog/sc/framer.js +16 -0
- package/Dialog/sc/framerMaterial.js +16 -0
- package/Dialog/sc/material.d.ts +1 -2
- package/Dialog/sc/material.js +21 -0
- package/Dialog/tw/bare.d.ts +2 -17
- package/Dialog/tw/bare.js +28 -0
- package/Dialog/tw/elegant.d.ts +1 -2
- package/Dialog/tw/elegant.js +20 -0
- package/Dialog/tw/framer.d.ts +1 -2
- package/Dialog/tw/framer.js +16 -0
- package/Dialog/tw/framerMaterial.js +16 -0
- package/Dialog/tw/material.d.ts +1 -2
- package/Dialog/tw/material.js +20 -0
- package/Editor/Editor--tiptap.js +26 -0
- package/Editor/components.js +10 -0
- package/Editor/index.d.ts +1 -1
- package/Editor/index.js +1 -0
- package/FaviconTags.d.ts +0 -10
- package/FaviconTags.js +6 -0
- package/Form/Form.d.ts +1 -14
- package/Form/Form.js +60 -0
- package/Form/index.d.ts +1 -1
- package/Form/index.js +1 -0
- package/Form/sc/bare.d.ts +1 -2
- package/Form/sc/bare.js +20 -0
- package/Forms/Checkbox/Checkbox.d.ts +1 -5
- package/Forms/Checkbox/Checkbox.js +15 -0
- package/Forms/Checkbox/index.d.ts +1 -1
- package/Forms/Checkbox/index.js +1 -0
- package/Forms/Feedback/Feedback.js +9 -0
- package/Forms/Feedback/index.d.ts +1 -1
- package/Forms/Feedback/index.js +1 -0
- package/Forms/Field/Field.d.ts +1 -19
- package/Forms/Field/Field.js +25 -0
- package/Forms/Field/FieldControl.d.ts +2 -14
- package/Forms/Field/FieldControl.js +35 -0
- package/Forms/Field/FieldHint.js +4 -0
- package/Forms/Field/index.d.ts +2 -2
- package/Forms/Field/index.js +2 -0
- package/Forms/Input/Input.d.ts +1 -2
- package/Forms/Input/Input.js +16 -0
- package/Forms/Input/index.d.ts +1 -1
- package/Forms/Input/index.js +1 -0
- package/Forms/InputGroup/InputGroup.d.ts +1 -2
- package/Forms/InputGroup/InputGroup.js +15 -0
- package/Forms/InputGroup/index.d.ts +1 -1
- package/Forms/InputGroup/index.js +1 -0
- package/Forms/Label/Label.js +6 -0
- package/Forms/Label/index.d.ts +1 -1
- package/Forms/Label/index.js +1 -0
- package/Forms/Password/Password.d.ts +1 -2
- package/Forms/Password/Password.js +17 -0
- package/Forms/Password/index.d.ts +1 -1
- package/Forms/Password/index.js +1 -0
- package/Forms/Radio/Radio.d.ts +1 -2
- package/Forms/Radio/Radio.js +25 -0
- package/Forms/Radio/index.d.ts +1 -1
- package/Forms/Radio/index.js +1 -0
- package/Forms/Switch/Switch.d.ts +1 -5
- package/Forms/Switch/Switch.js +17 -0
- package/Forms/Switch/index.d.ts +1 -1
- package/Forms/Switch/index.js +1 -0
- package/Forms/Textarea/Textarea.d.ts +1 -2
- package/Forms/Textarea/Textarea.js +12 -0
- package/Forms/Textarea/TextareaRich.d.ts +1 -2
- package/Forms/Textarea/TextareaRich.js +26 -0
- package/Forms/Textarea/index.d.ts +2 -2
- package/Forms/Textarea/index.js +2 -0
- package/Forms/Toggle/Toggle-tailwind.js +1 -0
- package/Forms/Toggle/Toggle.d.ts +0 -1
- package/Forms/Toggle/Toggle.js +25 -0
- package/Forms/Toggle/index.d.ts +1 -1
- package/Forms/Toggle/index.js +1 -0
- package/Forms/Toggle/useToggle-tailwind.js +1 -0
- package/Forms/Toggle/useToggle.d.ts +1 -31
- package/Forms/Toggle/useToggle.js +85 -0
- package/Forms/antispam.d.ts +0 -20
- package/Forms/antispam.js +31 -0
- package/Forms/helpers.d.ts +0 -8
- package/Forms/helpers.js +36 -0
- package/Forms/index.d.ts +15 -15
- package/Forms/index.js +15 -0
- package/Forms/styles.d.ts +0 -6
- package/Forms/styles.js +19 -0
- package/Gauge/Gauge.d.ts +0 -1
- package/Gauge/Gauge.js +1 -0
- package/Grid/Grid.d.ts +1 -10
- package/Grid/Grid.js +52 -0
- package/Grid/index.d.ts +1 -1
- package/Grid/index.js +1 -0
- package/Hamburger/Hamburger.d.ts +0 -1
- package/Hamburger/Hamburger.js +47 -0
- package/Hamburger/index.d.ts +1 -1
- package/Hamburger/index.js +1 -0
- package/Header/index.d.ts +1 -1
- package/Header/index.js +1 -0
- package/Header/useHeader.d.ts +0 -4
- package/Header/useHeader.js +31 -0
- package/Hidden/Hidden.d.ts +1 -1
- package/Hidden/Hidden.js +10 -0
- package/Hidden/index.d.ts +1 -1
- package/Hidden/index.js +1 -0
- package/Img/index.d.ts +1 -1
- package/Img/index.js +1 -0
- package/Img/sc/bare.js +4 -0
- package/Img/types.js +1 -0
- package/Link/Link.js +4 -0
- package/Link/LinkBlank.js +15 -0
- package/Link/index.d.ts +2 -2
- package/Link/index.js +2 -0
- package/Menu/Menu.js +4 -0
- package/Menu/MenuMui.js +1 -0
- package/Menu/index.d.ts +1 -1
- package/Menu/index.js +1 -0
- package/MenuItem/MenuItem.js +4 -0
- package/MenuItem/MenuItemMui.js +1 -0
- package/MenuItem/index.d.ts +1 -1
- package/MenuItem/index.js +1 -0
- package/MenuItem/useMenuItem.js +42 -0
- package/Meta/Meta.d.ts +0 -10
- package/Meta/Meta.js +6 -0
- package/Meta/index.d.ts +2 -2
- package/Meta/index.js +2 -0
- package/NoJs/NoJs.js +7 -0
- package/NoJs/index.d.ts +2 -2
- package/NoJs/index.js +2 -0
- package/Pagination/PaginationNav.d.ts +1 -9
- package/Pagination/PaginationNav.js +48 -0
- package/Pagination/PaginationResults.js +11 -0
- package/Pagination/index.d.ts +2 -2
- package/Pagination/index.js +2 -0
- package/Pill/Pill.js +7 -0
- package/Pill/index.d.ts +1 -1
- package/Pill/index.js +1 -0
- package/Progress/ProgressCircular.d.ts +1 -7
- package/Progress/ProgressCircular.js +12 -0
- package/Progress/ProgressLinear.d.ts +1 -8
- package/Progress/ProgressLinear.js +21 -0
- package/Progress/ProgressOverlay.js +23 -0
- package/Progress/index.d.ts +3 -3
- package/Progress/index.js +3 -0
- package/Rating/Rating.d.ts +0 -8
- package/Rating/Rating.js +43 -0
- package/Rating/index.d.ts +1 -4
- package/Rating/index.js +45 -0
- package/Select/SelectDownshift.d.ts +1 -1
- package/Select/SelectDownshift.js +1 -0
- package/Select/components.js +12 -0
- package/Select/index.d.ts +2 -2
- package/Select/index.js +1 -0
- package/Sidebar/Sidebar.js +23 -0
- package/Sidebar/index.d.ts +1 -1
- package/Sidebar/index.js +1 -0
- package/Spacing/Spacing.d.ts +1 -14
- package/Spacing/Spacing.js +32 -0
- package/Spacing/index.d.ts +1 -1
- package/Spacing/index.js +1 -0
- package/Sticky/Sticky.js +1 -0
- package/Sticky/StickyCss.js +6 -0
- package/Sticky/index.d.ts +1 -1
- package/Sticky/index.js +1 -0
- package/Tabs/TabsMui.d.ts +2 -3
- package/Tabs/TabsMui.js +30 -0
- package/Tabs/index.d.ts +1 -1
- package/Tabs/index.js +1 -0
- package/Tabs/sc/bare.d.ts +0 -5
- package/Tabs/sc/bare.js +1 -0
- package/Tabs/tw/bare.d.ts +1 -2
- package/Tabs/tw/bare.js +16 -0
- package/Tabs/tw/material.d.ts +1 -2
- package/Tabs/tw/material.js +18 -0
- package/Tabs/useTabs.d.ts +0 -22
- package/Tabs/useTabs.js +43 -0
- package/Typography/CopyPasteVisible.js +4 -0
- package/Typography/Native.js +14 -0
- package/Typography/ReadMore.d.ts +0 -2
- package/Typography/ReadMore.js +42 -0
- package/Typography/TextLoop.js +45 -0
- package/Typography/TypeStairs.js +42 -0
- package/Typography/index.d.ts +5 -5
- package/Typography/index.js +5 -0
- package/css/index.d.ts +2 -2
- package/css/index.js +2 -0
- package/helpers/classed.d.ts +0 -19
- package/helpers/classed.js +43 -0
- package/helpers/createUseMediaQueryWidth.d.ts +0 -6
- package/helpers/createUseMediaQueryWidth.js +39 -0
- package/helpers/extend-component.d.ts +0 -11
- package/helpers/extend-component.js +9 -0
- package/helpers/index.d.ts +4 -4
- package/helpers/index.js +4 -0
- package/helpers/{mergeRefs.mjs → mergeRefs.js} +4 -3
- package/hooks/index.d.ts +20 -20
- package/hooks/index.js +20 -0
- package/hooks/types.d.ts +0 -6
- package/hooks/types.js +1 -0
- package/hooks/useAsyncFn.d.ts +1 -4
- package/hooks/useAsyncFn.js +33 -0
- package/hooks/useDateLocale.d.ts +0 -6
- package/hooks/useDateLocale.js +28 -0
- package/hooks/useFirstMountState.d.ts +0 -3
- package/hooks/useFirstMountState.js +10 -0
- package/hooks/useFixedOffset.d.ts +0 -9
- package/hooks/useFixedOffset.js +45 -0
- package/hooks/useFocus.d.ts +0 -3
- package/hooks/useFocus.js +9 -0
- package/hooks/useInterval.d.ts +0 -5
- package/hooks/useInterval.js +22 -0
- package/hooks/useIsomorphicLayoutEffect.d.ts +0 -3
- package/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/hooks/useKeyUp.js +18 -0
- package/hooks/useMeasure.d.ts +0 -5
- package/hooks/useMeasure.js +134 -0
- package/hooks/useMountedState.d.ts +0 -3
- package/hooks/useMountedState.js +13 -0
- package/hooks/useNavigateAway.d.ts +0 -29
- package/hooks/useNavigateAway.js +25 -0
- package/hooks/usePrevious.d.ts +0 -3
- package/hooks/usePrevious.js +9 -0
- package/hooks/{usePreviousRef.mjs → usePreviousRef.js} +2 -2
- package/hooks/useScrollPosition.d.ts +0 -7
- package/hooks/useScrollPosition.js +61 -0
- package/hooks/useScrollThreshold.js +26 -0
- package/hooks/useScrollTo.js +22 -0
- package/hooks/useSmoothScroll.d.ts +0 -6
- package/hooks/useSmoothScroll.js +33 -0
- package/hooks/useSpinDelay.d.ts +0 -12
- package/hooks/useSpinDelay.js +38 -0
- package/hooks/useTraceUpdate.d.ts +0 -3
- package/hooks/useTraceUpdate.js +18 -0
- package/hooks/useUpdateEffect.d.ts +0 -3
- package/hooks/useUpdateEffect.js +11 -0
- package/hooks/useWindowSize.d.ts +0 -9
- package/hooks/useWindowSize.js +20 -0
- package/index.d.ts +1 -1
- package/index.js +1 -0
- package/m/MotionProvider.d.ts +0 -32
- package/m/MotionProvider.js +7 -0
- package/m/index.d.ts +1 -6
- package/m/index.js +1 -0
- package/package.json +624 -22
- package/sc/index.d.ts +30 -30
- package/sc/index.js +30 -0
- package/scm/index.d.ts +29 -29
- package/scm/index.js +29 -0
- package/shared/index.d.ts +8 -8
- package/shared/index.js +8 -0
- package/styles/Body.d.ts +0 -8
- package/styles/Body.js +5 -0
- package/styles/Global.d.ts +0 -13
- package/styles/Global.js +5 -0
- package/styles/index.d.ts +7 -7
- package/styles/index.js +7 -0
- package/styles/media.d.ts +1 -50
- package/styles/media.js +74 -0
- package/styles/spacing.d.ts +1 -2
- package/styles/spacing.js +45 -0
- package/styles/styled.d.ts +0 -4
- package/styles/styled.js +9 -0
- package/styles/theme--vanilla.js +46 -0
- package/styles/theme.d.ts +0 -29
- package/styles/theme.js +30 -0
- package/tw/index.d.ts +2 -2
- package/tw/index.js +2 -0
- package/twm/index.d.ts +2 -2
- package/twm/index.js +2 -0
- package/types.d.ts +1 -2
- package/types.js +1 -0
- package/Alert/Alert.mjs +0 -22
- package/Alert/Alert.stories.mjs +0 -18
- package/Alert/index.mjs +0 -1
- package/Animations/Reveal.mjs +0 -43
- package/Animations/Underline.mjs +0 -15
- package/Animations/index.mjs +0 -3
- package/Animations/useReveal.mjs +0 -73
- package/Autocomplete/AutocompleteDownshift.mjs +0 -157
- package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
- package/Autocomplete/AutocompleteMui.mjs +0 -219
- package/Autocomplete/AutocompleteReach.mjs +0 -111
- package/Autocomplete/components.mjs +0 -87
- package/Autocomplete/helpers.mjs +0 -35
- package/Autocomplete/index.mjs +0 -4
- package/Bg/BgColor.mjs +0 -42
- package/Bg/BgPhoto.mjs +0 -71
- package/Bg/BgSvg.mjs +0 -22
- package/Bg/index.mjs +0 -3
- package/Breadcrumbs/Breadcrumbs.mjs +0 -91
- package/Breadcrumbs/index.mjs +0 -1
- package/Buttons/Button.mjs +0 -78
- package/Buttons/ButtonComposite.mjs +0 -105
- package/Buttons/ButtonFab.mjs +0 -8
- package/Buttons/ButtonLink.mjs +0 -18
- package/Buttons/IconButton.mjs +0 -19
- package/Buttons/index.mjs +0 -5
- package/Calendar/CalendarDaygridCell.mjs +0 -95
- package/Calendar/CalendarDaygridNav.mjs +0 -52
- package/Calendar/CalendarDaygridTable.mjs +0 -115
- package/Calendar/CalendarLegend.mjs +0 -29
- package/Calendar/calendar-api-google.mjs +0 -99
- package/Calendar/index.mjs +0 -6
- package/Calendar/types.mjs +0 -1
- package/Calendar/useCalendar.mjs +0 -225
- package/Calendar/utils.mjs +0 -209
- package/Carousel/Carousel.mjs +0 -377
- package/Carousel/CarouselCss.mjs +0 -44
- package/Carousel/index.mjs +0 -1
- package/Collapsable/Collapsable.mjs +0 -1
- package/Collapsable/CollapsableReach.mjs +0 -250
- package/Collapsable/index.mjs +0 -1
- package/Debug/Debug.mjs +0 -23
- package/Debug/index.mjs +0 -1
- package/Details/Details.mjs +0 -90
- package/Details/Details.stories.mjs +0 -21
- package/Details/index.mjs +0 -1
- package/Dialog/DialogMui.mjs +0 -105
- package/Dialog/DialogMui.stories.mjs +0 -20
- package/Dialog/css/bare.mjs +0 -19
- package/Dialog/css/index.stories.mjs +0 -75
- package/Dialog/index.mjs +0 -1
- package/Dialog/m/bare.mjs +0 -115
- package/Dialog/m/basic.mjs +0 -31
- package/Dialog/m/index.mjs +0 -4
- package/Dialog/sc/bare.mjs +0 -54
- package/Dialog/sc/framer.mjs +0 -16
- package/Dialog/sc/framerMaterial.mjs +0 -16
- package/Dialog/sc/index.stories.mjs +0 -48
- package/Dialog/sc/material.mjs +0 -41
- package/Dialog/tw/bare.mjs +0 -29
- package/Dialog/tw/elegant.mjs +0 -18
- package/Dialog/tw/framer.mjs +0 -16
- package/Dialog/tw/framerMaterial.mjs +0 -16
- package/Dialog/tw/index.stories.mjs +0 -83
- package/Dialog/tw/material.mjs +0 -18
- package/Editor/Editor--tiptap.mjs +0 -53
- package/Editor/components.mjs +0 -28
- package/Editor/index.mjs +0 -1
- package/FaviconTags.mjs +0 -64
- package/Form/Form.mjs +0 -95
- package/Form/index.mjs +0 -1
- package/Form/sc/bare.mjs +0 -29
- package/Forms/Checkbox/Checkbox.mjs +0 -36
- package/Forms/Checkbox/index.mjs +0 -1
- package/Forms/Feedback/Feedback.mjs +0 -14
- package/Forms/Feedback/index.mjs +0 -1
- package/Forms/Field/Field.mjs +0 -50
- package/Forms/Field/FieldControl.mjs +0 -67
- package/Forms/Field/FieldHint.mjs +0 -6
- package/Forms/Field/index.mjs +0 -2
- package/Forms/Input/Input.mjs +0 -36
- package/Forms/Input/index.mjs +0 -1
- package/Forms/InputGroup/InputGroup.mjs +0 -57
- package/Forms/InputGroup/index.mjs +0 -1
- package/Forms/Label/Label.mjs +0 -24
- package/Forms/Label/index.mjs +0 -1
- package/Forms/Password/Password.mjs +0 -53
- package/Forms/Password/index.mjs +0 -1
- package/Forms/Radio/Radio.mjs +0 -57
- package/Forms/Radio/index.mjs +0 -1
- package/Forms/Switch/Switch.mjs +0 -60
- package/Forms/Switch/index.mjs +0 -1
- package/Forms/Textarea/Textarea.mjs +0 -26
- package/Forms/Textarea/TextareaRich.mjs +0 -48
- package/Forms/Textarea/index.mjs +0 -2
- package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
- package/Forms/Toggle/Toggle.mjs +0 -123
- package/Forms/Toggle/index.mjs +0 -1
- package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
- package/Forms/Toggle/useToggle.mjs +0 -163
- package/Forms/antispam.mjs +0 -58
- package/Forms/helpers.mjs +0 -52
- package/Forms/index.mjs +0 -16
- package/Forms/styles.mjs +0 -61
- package/Gauge/Gauge.mjs +0 -101
- package/Grid/Grid.mjs +0 -75
- package/Grid/index.mjs +0 -1
- package/Hamburger/Hamburger.mjs +0 -79
- package/Hamburger/index.mjs +0 -1
- package/Header/index.mjs +0 -1
- package/Header/useHeader.mjs +0 -36
- package/Hidden/Hidden.mjs +0 -10
- package/Hidden/index.mjs +0 -1
- package/Img/index.mjs +0 -1
- package/Img/sc/bare.mjs +0 -36
- package/Img/types.mjs +0 -1
- package/Link/Link.mjs +0 -2
- package/Link/LinkBlank.mjs +0 -32
- package/Link/index.mjs +0 -2
- package/Menu/Menu.mjs +0 -11
- package/Menu/MenuMui.mjs +0 -164
- package/Menu/index.mjs +0 -1
- package/MenuItem/MenuItem.mjs +0 -20
- package/MenuItem/MenuItemMui.mjs +0 -31
- package/MenuItem/index.mjs +0 -1
- package/MenuItem/useMenuItem.mjs +0 -78
- package/Meta/Meta.mjs +0 -8
- package/Meta/index.mjs +0 -2
- package/NoJs/NoJs.mjs +0 -10
- package/NoJs/index.mjs +0 -2
- package/Pagination/PaginationNav.mjs +0 -122
- package/Pagination/PaginationResults.mjs +0 -34
- package/Pagination/index.mjs +0 -2
- package/Pill/Pill.mjs +0 -37
- package/Pill/index.mjs +0 -1
- package/Progress/ProgressCircular.mjs +0 -53
- package/Progress/ProgressLinear.mjs +0 -44
- package/Progress/ProgressOverlay.mjs +0 -64
- package/Progress/index.mjs +0 -3
- package/README.md +0 -1
- package/Rating/Rating.mjs +0 -154
- package/Rating/index.mjs +0 -62
- package/Select/SelectDownshift.mjs +0 -37
- package/Select/components.mjs +0 -25
- package/Select/index.mjs +0 -2
- package/Sidebar/Sidebar.mjs +0 -63
- package/Sidebar/index.mjs +0 -1
- package/Spacing/Spacing.mjs +0 -55
- package/Spacing/index.mjs +0 -1
- package/Sticky/Sticky.mjs +0 -218
- package/Sticky/StickyCss.mjs +0 -10
- package/Sticky/index.mjs +0 -1
- package/Tabs/TabsMui.mjs +0 -61
- package/Tabs/TabsMui.stories.mjs +0 -20
- package/Tabs/index.mjs +0 -1
- package/Tabs/sc/bare.mjs +0 -85
- package/Tabs/sc/index.stories.mjs +0 -0
- package/Tabs/tw/bare.mjs +0 -15
- package/Tabs/tw/index.stories.mjs +0 -25
- package/Tabs/tw/material.mjs +0 -14
- package/Tabs/useTabs.mjs +0 -46
- package/Typography/CopyPasteVisible.mjs +0 -6
- package/Typography/Native.mjs +0 -47
- package/Typography/ReadMore.mjs +0 -114
- package/Typography/TextLoop.mjs +0 -90
- package/Typography/TypeStairs.mjs +0 -61
- package/Typography/index.mjs +0 -5
- package/css/index.mjs +0 -30
- package/helpers/classed.mjs +0 -65
- package/helpers/classed.stories.mjs +0 -121
- package/helpers/createUseMediaQueryWidth.mjs +0 -178
- package/helpers/extend-component.mjs +0 -13
- package/helpers/index.mjs +0 -4
- package/hooks/index.mjs +0 -21
- package/hooks/types.mjs +0 -3
- package/hooks/useAsyncFn.mjs +0 -39
- package/hooks/useDateLocale.mjs +0 -37
- package/hooks/useFirstMountState.mjs +0 -12
- package/hooks/useFixedOffset.mjs +0 -56
- package/hooks/useFocus.mjs +0 -14
- package/hooks/useInterval.mjs +0 -29
- package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
- package/hooks/useKeyUp.mjs +0 -21
- package/hooks/useMeasure.mjs +0 -174
- package/hooks/useMountedState.mjs +0 -15
- package/hooks/useNavigateAway.mjs +0 -69
- package/hooks/usePrevious.mjs +0 -17
- package/hooks/useScrollPosition.mjs +0 -70
- package/hooks/useScrollThreshold.mjs +0 -33
- package/hooks/useScrollTo.mjs +0 -20
- package/hooks/useSmoothScroll.mjs +0 -35
- package/hooks/useSpinDelay.mjs +0 -52
- package/hooks/useTraceUpdate.mjs +0 -23
- package/hooks/useUpdateEffect.mjs +0 -14
- package/hooks/useWindowSize.mjs +0 -32
- package/index.mjs +0 -4
- package/m/MotionProvider.mjs +0 -40
- package/m/index.mjs +0 -5
- package/sc/index.mjs +0 -31
- package/scm/index.mjs +0 -31
- package/shared/index.mjs +0 -43
- package/styles/Body.mjs +0 -16
- package/styles/Global.mjs +0 -49
- package/styles/index.mjs +0 -7
- package/styles/media.mjs +0 -151
- package/styles/spacing.mjs +0 -46
- package/styles/styled.mjs +0 -26
- package/styles/theme--vanilla.mjs +0 -65
- package/styles/theme.mjs +0 -38
- package/tw/index.mjs +0 -30
- package/twm/index.mjs +0 -30
- package/types.mjs +0 -1
- /package/m/{lite.mjs → lite.js} +0 -0
- /package/m/{max.mjs → max.js} +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
export function useDateLocale(locale, defaultLocale) {
|
|
4
|
+
var _this = this;
|
|
5
|
+
if (defaultLocale === void 0) { defaultLocale = "en"; }
|
|
6
|
+
var _a = useState(), data = _a[0], setData = _a[1];
|
|
7
|
+
var _b = useState(defaultLocale), current = _b[0], setCurrent = _b[1];
|
|
8
|
+
useEffect(function () {
|
|
9
|
+
var importLocaleFile = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
10
|
+
var localeToSet;
|
|
11
|
+
return __generator(this, function (_a) {
|
|
12
|
+
switch (_a.label) {
|
|
13
|
+
case 0: return [4, import("date-fns/locale/en-US/index.js")];
|
|
14
|
+
case 1:
|
|
15
|
+
localeToSet = _a.sent();
|
|
16
|
+
setCurrent(locale || current);
|
|
17
|
+
setData(localeToSet.default);
|
|
18
|
+
return [2];
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}); };
|
|
22
|
+
if (locale !== current) {
|
|
23
|
+
importLocaleFile();
|
|
24
|
+
}
|
|
25
|
+
}, [locale, current]);
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
export default useDateLocale;
|
|
@@ -1,12 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/**
|
|
3
|
-
* # Use fixed offset
|
|
4
|
-
*
|
|
5
|
-
* Maybe use [ResizeObserver polyfill](https://github.com/juggle/resize-observer)
|
|
6
|
-
*
|
|
7
|
-
* @see https://web.dev/resize-observer/
|
|
8
|
-
*
|
|
9
|
-
* @param selector By default `[data-fixed]`: anyhting with the data attribute `data-fixed`
|
|
10
|
-
*/
|
|
11
2
|
export declare function useFixedOffset(selector?: string): import("react").MutableRefObject<number>;
|
|
12
3
|
export default useFixedOffset;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import debounce from "@koine/utils/debounce";
|
|
3
|
+
import $each from "@koine/dom/$each";
|
|
4
|
+
import calculateFixedOffset from "@koine/dom/calculateFixedOffset";
|
|
5
|
+
import injectCss from "@koine/dom/injectCss";
|
|
6
|
+
import listenResizeDebounced from "@koine/dom/listenResizeDebounced";
|
|
7
|
+
import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect.js";
|
|
8
|
+
var inject = function (value) {
|
|
9
|
+
injectCss("useFixedOffset", "html{scroll-padding-top: ".concat(value, "px}"));
|
|
10
|
+
};
|
|
11
|
+
export function useFixedOffset(selector) {
|
|
12
|
+
var fixedOffset = useRef(0);
|
|
13
|
+
useIsomorphicLayoutEffect(function () {
|
|
14
|
+
var update = function () {
|
|
15
|
+
var newFixedOffset = calculateFixedOffset();
|
|
16
|
+
fixedOffset.current = newFixedOffset;
|
|
17
|
+
inject(newFixedOffset);
|
|
18
|
+
};
|
|
19
|
+
update();
|
|
20
|
+
if (ResizeObserver) {
|
|
21
|
+
var observer_1 = new ResizeObserver(function (entries) {
|
|
22
|
+
var newFixedOffset = 0;
|
|
23
|
+
entries.forEach(function (entry) {
|
|
24
|
+
newFixedOffset += entry.contentRect.height;
|
|
25
|
+
});
|
|
26
|
+
fixedOffset.current = newFixedOffset;
|
|
27
|
+
var updateOnResize = debounce(function () { return inject(newFixedOffset); }, 400, true);
|
|
28
|
+
updateOnResize();
|
|
29
|
+
});
|
|
30
|
+
$each(selector || "[data-fixed]", function ($el) {
|
|
31
|
+
if (observer_1)
|
|
32
|
+
observer_1.observe($el);
|
|
33
|
+
});
|
|
34
|
+
return function () {
|
|
35
|
+
observer_1 === null || observer_1 === void 0 ? void 0 : observer_1.disconnect();
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
var listener = listenResizeDebounced(0, update);
|
|
40
|
+
return listener;
|
|
41
|
+
}
|
|
42
|
+
}, [selector]);
|
|
43
|
+
return fixedOffset;
|
|
44
|
+
}
|
|
45
|
+
export default useFixedOffset;
|
package/hooks/useFocus.d.ts
CHANGED
package/hooks/useInterval.d.ts
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @borrows [dan abramov](https://overreacted.io/making-setinterval-declarative-with-react-hooks/)
|
|
3
|
-
*
|
|
4
|
-
* We just add `deps` array argument and typescript support
|
|
5
|
-
*/
|
|
6
1
|
export declare function useInterval<T extends () => unknown>(callback: T, delay: number, deps?: unknown[]): void;
|
|
7
2
|
export default useInterval;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { __spreadArray } from "tslib";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import noop from "@koine/utils/noop";
|
|
4
|
+
export function useInterval(callback, delay, deps) {
|
|
5
|
+
if (deps === void 0) { deps = []; }
|
|
6
|
+
var savedCallback = useRef();
|
|
7
|
+
useEffect(function () {
|
|
8
|
+
savedCallback.current = callback;
|
|
9
|
+
}, __spreadArray([callback], deps, true));
|
|
10
|
+
useEffect(function () {
|
|
11
|
+
function tick() {
|
|
12
|
+
if (savedCallback.current)
|
|
13
|
+
savedCallback.current();
|
|
14
|
+
}
|
|
15
|
+
if (delay !== null) {
|
|
16
|
+
var id_1 = setInterval(tick, delay);
|
|
17
|
+
return function () { return clearInterval(id_1); };
|
|
18
|
+
}
|
|
19
|
+
return noop;
|
|
20
|
+
}, [delay]);
|
|
21
|
+
}
|
|
22
|
+
export default useInterval;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts)
|
|
4
|
-
*/
|
|
5
2
|
export declare const useIsomorphicLayoutEffect: typeof useEffect;
|
|
6
3
|
export default useIsomorphicLayoutEffect;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { __spreadArray } from "tslib";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import on from "@koine/dom/on";
|
|
4
|
+
export function useKeyUp(callback, deps) {
|
|
5
|
+
if (deps === void 0) { deps = []; }
|
|
6
|
+
useEffect(function () {
|
|
7
|
+
var listener = on(window, "keyup", function (event) {
|
|
8
|
+
if (!event.ctrlKey &&
|
|
9
|
+
!event.altKey &&
|
|
10
|
+
!event.shiftKey &&
|
|
11
|
+
!event.metaKey) {
|
|
12
|
+
callback(event);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return listener;
|
|
16
|
+
}, __spreadArray([callback], deps, true));
|
|
17
|
+
}
|
|
18
|
+
export default useKeyUp;
|
package/hooks/useMeasure.d.ts
CHANGED
|
@@ -18,10 +18,5 @@ export type UseMeasureReturn = [
|
|
|
18
18
|
RectReadOnly,
|
|
19
19
|
() => void
|
|
20
20
|
];
|
|
21
|
-
/**
|
|
22
|
-
* Use measure hook
|
|
23
|
-
*
|
|
24
|
-
* @borrows [pmndrs/react-use-measure](https://github.com/pmndrs/react-use-measure)
|
|
25
|
-
*/
|
|
26
21
|
export declare function useMeasure(options?: UseMeasureOptions): UseMeasureReturn;
|
|
27
22
|
export default useMeasure;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { __spreadArray } from "tslib";
|
|
2
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import debounce from "@koine/utils/debounce";
|
|
4
|
+
import noop from "@koine/utils/noop";
|
|
5
|
+
import listenResizeDebounced from "@koine/dom/listenResizeDebounced";
|
|
6
|
+
import listenScrollDebounced from "@koine/dom/listenScrollDebounced";
|
|
7
|
+
import off from "@koine/dom/off";
|
|
8
|
+
import on from "@koine/dom/on";
|
|
9
|
+
var observer;
|
|
10
|
+
function findScrollContainers(element) {
|
|
11
|
+
var result = [];
|
|
12
|
+
if (!element || element === document.body)
|
|
13
|
+
return result;
|
|
14
|
+
var _a = window.getComputedStyle(element), overflow = _a.overflow, overflowX = _a.overflowX, overflowY = _a.overflowY;
|
|
15
|
+
if ([overflow, overflowX, overflowY].some(function (prop) { return prop === "auto" || prop === "scroll"; }))
|
|
16
|
+
result.push(element);
|
|
17
|
+
return __spreadArray(__spreadArray([], result, true), findScrollContainers(element.parentElement), true);
|
|
18
|
+
}
|
|
19
|
+
var keys = [
|
|
20
|
+
"x",
|
|
21
|
+
"y",
|
|
22
|
+
"top",
|
|
23
|
+
"bottom",
|
|
24
|
+
"left",
|
|
25
|
+
"right",
|
|
26
|
+
"width",
|
|
27
|
+
"height",
|
|
28
|
+
];
|
|
29
|
+
var areBoundsEqual = function (a, b) {
|
|
30
|
+
return keys.every(function (key) { return a[key] === b[key]; });
|
|
31
|
+
};
|
|
32
|
+
export function useMeasure(options) {
|
|
33
|
+
var _a = (options || {}).scroll, scroll = _a === void 0 ? false : _a;
|
|
34
|
+
var _b = useState({
|
|
35
|
+
left: 0,
|
|
36
|
+
top: 0,
|
|
37
|
+
width: 0,
|
|
38
|
+
height: 0,
|
|
39
|
+
bottom: 0,
|
|
40
|
+
right: 0,
|
|
41
|
+
x: 0,
|
|
42
|
+
y: 0,
|
|
43
|
+
}), bounds = _b[0], setBounds = _b[1];
|
|
44
|
+
var state = useRef([
|
|
45
|
+
null,
|
|
46
|
+
null,
|
|
47
|
+
null,
|
|
48
|
+
bounds,
|
|
49
|
+
]);
|
|
50
|
+
var mounted = useRef(false);
|
|
51
|
+
useEffect(function () {
|
|
52
|
+
mounted.current = true;
|
|
53
|
+
return function () { return void (mounted.current = false); };
|
|
54
|
+
}, []);
|
|
55
|
+
var _c = useMemo(function () {
|
|
56
|
+
var callback = function () {
|
|
57
|
+
var _args = [];
|
|
58
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
59
|
+
_args[_i] = arguments[_i];
|
|
60
|
+
}
|
|
61
|
+
var _a = state.current, element = _a[0], lastBounds = _a[3];
|
|
62
|
+
if (!element)
|
|
63
|
+
return;
|
|
64
|
+
var size = element.getBoundingClientRect();
|
|
65
|
+
Object.freeze(size);
|
|
66
|
+
if (mounted.current && !areBoundsEqual(lastBounds, size)) {
|
|
67
|
+
state.current[3] = size;
|
|
68
|
+
setBounds(size);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var debouncedCallback = debounce(callback);
|
|
72
|
+
return [callback, debouncedCallback, debouncedCallback];
|
|
73
|
+
}, [setBounds]), forceRefresh = _c[0], scrollChange = _c[2];
|
|
74
|
+
function removeListeners() {
|
|
75
|
+
var _a = state.current, scrollContainers = _a[1], resizeObserver = _a[2];
|
|
76
|
+
if (scrollContainers) {
|
|
77
|
+
scrollContainers.forEach(function (element) {
|
|
78
|
+
return off(element, "scroll", scrollChange);
|
|
79
|
+
});
|
|
80
|
+
state.current[1] = null;
|
|
81
|
+
}
|
|
82
|
+
if (resizeObserver) {
|
|
83
|
+
resizeObserver.disconnect();
|
|
84
|
+
state.current[2] = null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function addListeners() {
|
|
88
|
+
var _a = state.current, element = _a[0], scrollContainers = _a[1];
|
|
89
|
+
if (!element)
|
|
90
|
+
return;
|
|
91
|
+
if (!observer && ResizeObserver) {
|
|
92
|
+
observer = new ResizeObserver(scrollChange);
|
|
93
|
+
state.current[2] = observer;
|
|
94
|
+
observer.observe(element);
|
|
95
|
+
if (scroll && scrollContainers) {
|
|
96
|
+
scrollContainers.forEach(function (scrollContainer) {
|
|
97
|
+
return on(scrollContainer, "scroll", scrollChange, {
|
|
98
|
+
capture: true,
|
|
99
|
+
passive: true,
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
var ref = function (node) {
|
|
106
|
+
if (!node || node === state.current[0])
|
|
107
|
+
return;
|
|
108
|
+
removeListeners();
|
|
109
|
+
state.current[0] = node;
|
|
110
|
+
state.current[1] = findScrollContainers(node);
|
|
111
|
+
addListeners();
|
|
112
|
+
};
|
|
113
|
+
useEffect(function () {
|
|
114
|
+
if (scroll) {
|
|
115
|
+
var listener = listenScrollDebounced(0, forceRefresh, 100);
|
|
116
|
+
return listener;
|
|
117
|
+
}
|
|
118
|
+
return noop;
|
|
119
|
+
}, [scroll, forceRefresh]);
|
|
120
|
+
useEffect(function () {
|
|
121
|
+
var listener = listenResizeDebounced(0, forceRefresh, 100);
|
|
122
|
+
return listener;
|
|
123
|
+
}, [forceRefresh]);
|
|
124
|
+
useEffect(function () {
|
|
125
|
+
removeListeners();
|
|
126
|
+
addListeners();
|
|
127
|
+
}, [scroll]);
|
|
128
|
+
useEffect(function () {
|
|
129
|
+
forceRefresh();
|
|
130
|
+
return removeListeners;
|
|
131
|
+
}, []);
|
|
132
|
+
return [ref, bounds, forceRefresh];
|
|
133
|
+
}
|
|
134
|
+
export default useMeasure;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
2
|
+
export function useMountedState() {
|
|
3
|
+
var mountedRef = useRef(false);
|
|
4
|
+
var get = useCallback(function () { return mountedRef.current; }, []);
|
|
5
|
+
useEffect(function () {
|
|
6
|
+
mountedRef.current = true;
|
|
7
|
+
return function () {
|
|
8
|
+
mountedRef.current = false;
|
|
9
|
+
};
|
|
10
|
+
}, []);
|
|
11
|
+
return get;
|
|
12
|
+
}
|
|
13
|
+
export default useMountedState;
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @return A custom error message (most browser will ignore it), or just a
|
|
3
|
-
* boolean to signal whether we want to prompt the user
|
|
4
|
-
*
|
|
5
|
-
* We might instead return an array with the above as first element and two
|
|
6
|
-
* callbacks, but the callback technique is too cumbersome and unreliable
|
|
7
|
-
* probably:
|
|
8
|
-
* 2) A callback on confirmed leaving
|
|
9
|
-
* 3) A callback on cancel, user stays on page
|
|
10
|
-
*/
|
|
11
1
|
export type UseNavigateAwayHandler = (event: BeforeUnloadEvent) => string | boolean;
|
|
12
|
-
/**
|
|
13
|
-
* @resources
|
|
14
|
-
*
|
|
15
|
-
* About browser's specs see:
|
|
16
|
-
* - https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event
|
|
17
|
-
* - https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5
|
|
18
|
-
* - https://stackoverflow.com/questions/58009424/pagehide-event-on-google-chrome
|
|
19
|
-
*
|
|
20
|
-
* About react see:
|
|
21
|
-
* - https://github.com/jacobbuck/react-beforeunload
|
|
22
|
-
* - https://github.com/dioscarey/react-beforeunload-component
|
|
23
|
-
*
|
|
24
|
-
* About next.js see:
|
|
25
|
-
* - https://github.com/vercel/next.js/issues/2476
|
|
26
|
-
* - https://github.com/vercel/next.js/issues/2694
|
|
27
|
-
*
|
|
28
|
-
* For the callback technique see:
|
|
29
|
-
* - https://stackoverflow.com/a/11835394/1938970
|
|
30
|
-
*/
|
|
31
2
|
export declare const useNavigateAway: (handler: UseNavigateAwayHandler) => void;
|
|
32
3
|
export default useNavigateAway;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
import on from "@koine/dom/on";
|
|
3
|
+
export var useNavigateAway = function (handler) {
|
|
4
|
+
var beforeUnloadHandlerRef = useRef();
|
|
5
|
+
useEffect(function () {
|
|
6
|
+
beforeUnloadHandlerRef.current = function (event) {
|
|
7
|
+
var customMessageOrCondition = handler(event);
|
|
8
|
+
if (customMessageOrCondition) {
|
|
9
|
+
event.preventDefault();
|
|
10
|
+
}
|
|
11
|
+
if (typeof customMessageOrCondition === "string") {
|
|
12
|
+
return (event.returnValue = customMessageOrCondition);
|
|
13
|
+
}
|
|
14
|
+
if (event.defaultPrevented) {
|
|
15
|
+
return (event.returnValue = "");
|
|
16
|
+
}
|
|
17
|
+
return;
|
|
18
|
+
};
|
|
19
|
+
}, [handler]);
|
|
20
|
+
useEffect(function () {
|
|
21
|
+
var listenerBeforeunload = on(window, "beforeunload", function (event) { var _a; return (_a = beforeUnloadHandlerRef.current) === null || _a === void 0 ? void 0 : _a.call(beforeUnloadHandlerRef, event); });
|
|
22
|
+
return listenerBeforeunload;
|
|
23
|
+
}, []);
|
|
24
|
+
};
|
|
25
|
+
export default useNavigateAway;
|
package/hooks/usePrevious.d.ts
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
export function usePrevious(state, defaulValue) {
|
|
3
|
+
var _a = useState([state, defaulValue]), tuple = _a[0], setTuple = _a[1];
|
|
4
|
+
if (tuple[1] !== state) {
|
|
5
|
+
setTuple([tuple[1], state]);
|
|
6
|
+
}
|
|
7
|
+
return tuple[0];
|
|
8
|
+
}
|
|
9
|
+
export default usePrevious;
|
|
@@ -4,12 +4,5 @@ type Position = {
|
|
|
4
4
|
y: number;
|
|
5
5
|
};
|
|
6
6
|
type ElementRef = React.MutableRefObject<HTMLElement | undefined>;
|
|
7
|
-
/**
|
|
8
|
-
* @borrows [@n8tb1t/use-scroll-position@2.0.3](https://github.com/n8tb1t/use-scroll-position) by `n8tb1t <n8tb1t@gmail.com>`
|
|
9
|
-
*
|
|
10
|
-
* We've just:
|
|
11
|
-
* - reused internal helper functions
|
|
12
|
-
* - compacted object arguments in functions as plain argument list to improve compression
|
|
13
|
-
*/
|
|
14
7
|
export declare const useScrollPosition: (effect: (currentPosition: Position, prevPosition: Position) => void, deps?: import("react").DependencyList, element?: ElementRef, boundingElement?: ElementRef, wait?: number) => void;
|
|
15
8
|
export default useScrollPosition;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import isBrowser from "@koine/utils/isBrowser";
|
|
3
|
+
import listenScroll from "@koine/dom/listenScroll";
|
|
4
|
+
import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect.js";
|
|
5
|
+
var zeroPosition = { x: 0, y: 0 };
|
|
6
|
+
var getClientRect = function (element) {
|
|
7
|
+
return element === null || element === void 0 ? void 0 : element.getBoundingClientRect();
|
|
8
|
+
};
|
|
9
|
+
var getScrollPosition = function (element, boundingElement) {
|
|
10
|
+
if (!isBrowser) {
|
|
11
|
+
return zeroPosition;
|
|
12
|
+
}
|
|
13
|
+
if (!boundingElement) {
|
|
14
|
+
return { x: window.scrollX, y: window.scrollY };
|
|
15
|
+
}
|
|
16
|
+
var targetPosition = getClientRect((element === null || element === void 0 ? void 0 : element.current) || document.body);
|
|
17
|
+
var containerPosition = getClientRect(boundingElement.current);
|
|
18
|
+
if (!targetPosition) {
|
|
19
|
+
return zeroPosition;
|
|
20
|
+
}
|
|
21
|
+
return containerPosition
|
|
22
|
+
? {
|
|
23
|
+
x: (containerPosition.x || 0) - (targetPosition.x || 0),
|
|
24
|
+
y: (containerPosition.y || 0) - (targetPosition.y || 0),
|
|
25
|
+
}
|
|
26
|
+
: { x: targetPosition.left, y: targetPosition.top };
|
|
27
|
+
};
|
|
28
|
+
export var useScrollPosition = function (effect, deps, element, boundingElement, wait) {
|
|
29
|
+
if (deps === void 0) { deps = []; }
|
|
30
|
+
var position = useRef(getScrollPosition(null, boundingElement));
|
|
31
|
+
var throttleTimeout = null;
|
|
32
|
+
var callBack = function () {
|
|
33
|
+
var current = getScrollPosition(element, boundingElement);
|
|
34
|
+
effect(current, position.current);
|
|
35
|
+
position.current = current;
|
|
36
|
+
throttleTimeout = null;
|
|
37
|
+
};
|
|
38
|
+
useIsomorphicLayoutEffect(function () {
|
|
39
|
+
if (!isBrowser) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
var handleScroll = function () {
|
|
43
|
+
if (wait) {
|
|
44
|
+
if (throttleTimeout === null) {
|
|
45
|
+
throttleTimeout = window.setTimeout(callBack, wait);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
callBack();
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var listener = listenScroll(handleScroll, boundingElement === null || boundingElement === void 0 ? void 0 : boundingElement.current);
|
|
53
|
+
return function () {
|
|
54
|
+
listener();
|
|
55
|
+
if (throttleTimeout) {
|
|
56
|
+
clearTimeout(throttleTimeout);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}, deps);
|
|
60
|
+
};
|
|
61
|
+
export default useScrollPosition;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import noop from "@koine/utils/noop";
|
|
3
|
+
import listenScroll from "@koine/dom/listenScroll";
|
|
4
|
+
export var useScrollThreshold = function (threshold, callback) {
|
|
5
|
+
var _a = useState(false), isBelow = _a[0], setIsBelow = _a[1];
|
|
6
|
+
var handler = useCallback(function () {
|
|
7
|
+
if (threshold) {
|
|
8
|
+
var posY = window.scrollY;
|
|
9
|
+
var isAbove = posY < threshold;
|
|
10
|
+
var isBelow_1 = posY > threshold;
|
|
11
|
+
setIsBelow(isBelow_1);
|
|
12
|
+
if (callback)
|
|
13
|
+
callback(isAbove, isBelow_1);
|
|
14
|
+
}
|
|
15
|
+
}, [threshold, callback]);
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
if (threshold) {
|
|
18
|
+
var listener = listenScroll(handler);
|
|
19
|
+
handler();
|
|
20
|
+
return listener;
|
|
21
|
+
}
|
|
22
|
+
return noop;
|
|
23
|
+
}, [threshold, handler]);
|
|
24
|
+
return isBelow;
|
|
25
|
+
};
|
|
26
|
+
export default useScrollThreshold;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import isBrowser from "@koine/utils/isBrowser";
|
|
2
|
+
import useHeader from "../Header/useHeader.js";
|
|
3
|
+
export function useScrollTo(id, offset) {
|
|
4
|
+
if (id === void 0) { id = ""; }
|
|
5
|
+
if (offset === void 0) { offset = 0; }
|
|
6
|
+
var _a = useHeader(), headerHeight = _a[2];
|
|
7
|
+
if (!isBrowser) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
var headerOffset = headerHeight || 0;
|
|
11
|
+
var element = document.getElementById(id);
|
|
12
|
+
var top = 0;
|
|
13
|
+
if (element && element.offsetParent) {
|
|
14
|
+
do {
|
|
15
|
+
top += element.offsetTop;
|
|
16
|
+
} while ((element = element.offsetParent));
|
|
17
|
+
}
|
|
18
|
+
top -= offset;
|
|
19
|
+
top -= headerOffset;
|
|
20
|
+
window.scroll(0, top);
|
|
21
|
+
}
|
|
22
|
+
export default useScrollTo;
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param disregardAutomaticFixedOffset When the `to` scroll argument is a DOM
|
|
4
|
-
* selector we will keep into account the _fixedOffset_ despite this option.
|
|
5
|
-
* @returns
|
|
6
|
-
*/
|
|
7
1
|
export declare function useSmoothScroll(disregardAutomaticFixedOffset?: boolean): (to?: number | string, customOffset?: number, callback?: () => void, fallbackTimeout?: number, behavior?: ScrollBehavior) => void;
|
|
8
2
|
export default useSmoothScroll;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import isNumber from "@koine/utils/isNumber";
|
|
3
|
+
import getOffsetTopSlim from "@koine/dom/getOffsetTopSlim";
|
|
4
|
+
import scrollTo from "@koine/dom/scrollTo";
|
|
5
|
+
import useFixedOffset from "./useFixedOffset.js";
|
|
6
|
+
export function useSmoothScroll(disregardAutomaticFixedOffset) {
|
|
7
|
+
var fixedOffset = useFixedOffset();
|
|
8
|
+
var scroll = useCallback(function (to, customOffset, callback, fallbackTimeout, behavior) {
|
|
9
|
+
var top = undefined;
|
|
10
|
+
var toIsElement = false;
|
|
11
|
+
if (isNumber(to)) {
|
|
12
|
+
top = to;
|
|
13
|
+
}
|
|
14
|
+
else if (to) {
|
|
15
|
+
var el = document.getElementById(to);
|
|
16
|
+
if (el) {
|
|
17
|
+
top = getOffsetTopSlim(el) - fixedOffset.current;
|
|
18
|
+
toIsElement = true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (isNumber(top)) {
|
|
22
|
+
top =
|
|
23
|
+
top +
|
|
24
|
+
(customOffset || 0) +
|
|
25
|
+
(disregardAutomaticFixedOffset || toIsElement
|
|
26
|
+
? 0
|
|
27
|
+
: fixedOffset.current);
|
|
28
|
+
scrollTo(top, callback, fallbackTimeout, behavior);
|
|
29
|
+
}
|
|
30
|
+
}, [disregardAutomaticFixedOffset, fixedOffset]);
|
|
31
|
+
return scroll;
|
|
32
|
+
}
|
|
33
|
+
export default useSmoothScroll;
|
package/hooks/useSpinDelay.d.ts
CHANGED
|
@@ -1,14 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wraps your booleans only returning true after the `delay`, and for a minimum
|
|
3
|
-
* time of `minDuration`. This way you're sure that you don't show unnecessary
|
|
4
|
-
* or very short living spinners.
|
|
5
|
-
*
|
|
6
|
-
* @borrows [smeijer/spin-delay](https://github.com/smeijer/spin-delay)
|
|
7
|
-
*
|
|
8
|
-
* - Smaller footprint and options object as argument
|
|
9
|
-
*
|
|
10
|
-
* @param delay [500]
|
|
11
|
-
* @param minDuration [200]
|
|
12
|
-
*/
|
|
13
1
|
export declare function useSpinDelay(loading: boolean, delay?: number, minDuration?: number): boolean;
|
|
14
2
|
export default useSpinDelay;
|