@koine/react 2.0.0-beta.9 → 2.0.0-beta.90
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/FaviconTags.cjs.d.ts +2 -0
- package/FaviconTags.cjs.default.js +1 -0
- package/FaviconTags.cjs.js +19 -0
- package/FaviconTags.cjs.mjs +2 -0
- package/FaviconTags.d.ts +1 -11
- package/FaviconTags.esm.js +14 -0
- package/Meta.cjs.d.ts +2 -0
- package/Meta.cjs.default.js +1 -0
- package/Meta.cjs.js +19 -0
- package/Meta.cjs.mjs +2 -0
- package/Meta.d.ts +5 -0
- package/Meta.esm.js +14 -0
- package/NoJs.cjs.d.ts +2 -0
- package/NoJs.cjs.default.js +1 -0
- package/NoJs.cjs.js +10 -0
- package/NoJs.cjs.mjs +2 -0
- package/NoJs.d.ts +3 -0
- package/NoJs.esm.js +5 -0
- package/Polymorphic.cjs.d.ts +1 -0
- package/Polymorphic.cjs.default.js +1 -0
- package/Polymorphic.cjs.js +2 -0
- package/Polymorphic.cjs.mjs +2 -0
- package/Polymorphic.d.ts +26 -0
- package/Polymorphic.esm.js +1 -0
- package/{Calendar → calendar}/CalendarDaygridCell.d.ts +2 -3
- package/{Calendar → calendar}/CalendarDaygridNav.d.ts +1 -1
- package/{Calendar → calendar}/CalendarDaygridTable.d.ts +2 -2
- package/{Calendar → calendar}/CalendarLegend.d.ts +1 -2
- package/calendar/calendar-api-google.d.ts +10 -0
- package/{Calendar → calendar}/types.d.ts +0 -19
- package/{Calendar → calendar}/useCalendar.d.ts +1 -16
- package/calendar/useDateLocale.d.ts +2 -0
- package/calendar/utils.d.ts +11 -0
- package/calendar.cjs.d.ts +1 -0
- package/calendar.cjs.default.js +1 -0
- package/calendar.cjs.js +151 -0
- package/calendar.cjs.mjs +2 -0
- package/calendar.d.ts +7 -0
- package/calendar.esm.js +124 -0
- package/classed.cjs.d.ts +2 -0
- package/classed.cjs.default.js +1 -0
- package/classed.cjs.js +51 -0
- package/classed.cjs.mjs +2 -0
- package/classed.d.ts +8 -0
- package/classed.esm.js +46 -0
- package/createUseMediaQueryWidth.cjs.d.ts +2 -0
- package/createUseMediaQueryWidth.cjs.default.js +1 -0
- package/createUseMediaQueryWidth.cjs.js +26 -0
- package/createUseMediaQueryWidth.cjs.mjs +2 -0
- package/createUseMediaQueryWidth.d.ts +6 -0
- package/createUseMediaQueryWidth.esm.js +21 -0
- package/extendComponent.cjs.d.ts +2 -0
- package/extendComponent.cjs.default.js +1 -0
- package/extendComponent.cjs.js +14 -0
- package/extendComponent.cjs.mjs +2 -0
- package/{helpers/extend-component.d.ts → extendComponent.d.ts} +1 -13
- package/extendComponent.esm.js +9 -0
- package/forms/antispam.d.ts +27 -0
- package/forms.cjs.d.ts +1 -0
- package/forms.cjs.default.js +1 -0
- package/forms.cjs.js +37 -0
- package/forms.cjs.mjs +2 -0
- package/forms.d.ts +1 -0
- package/forms.esm.js +32 -0
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +63 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +28 -1
- package/index.esm.js +30 -0
- package/mergeRefs.cjs.d.ts +2 -0
- package/mergeRefs.cjs.default.js +1 -0
- package/mergeRefs.cjs.js +8 -0
- package/mergeRefs.cjs.mjs +2 -0
- package/mergeRefs.d.ts +2 -0
- package/mergeRefs.esm.js +3 -0
- package/package.json +169 -47
- package/{Img/index.d.ts → types.cjs.d.ts} +0 -0
- package/types.cjs.default.js +1 -0
- package/types.cjs.js +2 -0
- package/types.cjs.mjs +2 -0
- package/types.d.ts +0 -8
- package/types.esm.js +1 -0
- package/useAsyncFn.cjs.d.ts +2 -0
- package/useAsyncFn.cjs.default.js +1 -0
- package/useAsyncFn.cjs.js +14 -0
- package/useAsyncFn.cjs.mjs +2 -0
- package/{hooks/useAsyncFn.d.ts → useAsyncFn.d.ts} +3 -5
- package/useAsyncFn.esm.js +9 -0
- package/useFirstMountState.cjs.d.ts +2 -0
- package/useFirstMountState.cjs.default.js +1 -0
- package/useFirstMountState.cjs.js +12 -0
- package/useFirstMountState.cjs.mjs +2 -0
- package/useFirstMountState.d.ts +2 -0
- package/useFirstMountState.esm.js +7 -0
- package/useFixedOffset.cjs.d.ts +2 -0
- package/useFixedOffset.cjs.default.js +1 -0
- package/useFixedOffset.cjs.js +24 -0
- package/useFixedOffset.cjs.mjs +2 -0
- package/useFixedOffset.d.ts +2 -0
- package/useFixedOffset.esm.js +19 -0
- package/useFocus.cjs.d.ts +2 -0
- package/useFocus.cjs.default.js +1 -0
- package/useFocus.cjs.js +12 -0
- package/useFocus.cjs.mjs +2 -0
- package/useFocus.d.ts +2 -0
- package/useFocus.esm.js +7 -0
- package/useInterval.cjs.d.ts +2 -0
- package/useInterval.cjs.default.js +1 -0
- package/useInterval.cjs.js +16 -0
- package/useInterval.cjs.mjs +2 -0
- package/useInterval.d.ts +2 -0
- package/useInterval.esm.js +11 -0
- package/useIsomorphicLayoutEffect.cjs.d.ts +2 -0
- package/useIsomorphicLayoutEffect.cjs.default.js +1 -0
- package/useIsomorphicLayoutEffect.cjs.js +13 -0
- package/useIsomorphicLayoutEffect.cjs.mjs +2 -0
- package/useIsomorphicLayoutEffect.d.ts +3 -0
- package/useIsomorphicLayoutEffect.esm.js +8 -0
- package/useKeyUp.cjs.d.ts +2 -0
- package/useKeyUp.cjs.default.js +1 -0
- package/useKeyUp.cjs.js +16 -0
- package/useKeyUp.cjs.mjs +2 -0
- package/useKeyUp.d.ts +2 -0
- package/useKeyUp.esm.js +11 -0
- package/useMeasure.cjs.d.ts +2 -0
- package/useMeasure.cjs.default.js +1 -0
- package/useMeasure.cjs.js +44 -0
- package/useMeasure.cjs.mjs +2 -0
- package/{hooks/useMeasure.d.ts → useMeasure.d.ts} +1 -6
- package/useMeasure.esm.js +39 -0
- package/useMountedState.cjs.d.ts +2 -0
- package/useMountedState.cjs.default.js +1 -0
- package/useMountedState.cjs.js +12 -0
- package/useMountedState.cjs.mjs +2 -0
- package/useMountedState.d.ts +2 -0
- package/useMountedState.esm.js +7 -0
- package/useNavigateAway.cjs.d.ts +2 -0
- package/useNavigateAway.cjs.default.js +1 -0
- package/useNavigateAway.cjs.js +57 -0
- package/useNavigateAway.cjs.mjs +2 -0
- package/useNavigateAway.d.ts +3 -0
- package/useNavigateAway.esm.js +52 -0
- package/usePrevious.cjs.d.ts +2 -0
- package/usePrevious.cjs.default.js +1 -0
- package/usePrevious.cjs.js +10 -0
- package/usePrevious.cjs.mjs +2 -0
- package/usePrevious.d.ts +2 -0
- package/usePrevious.esm.js +5 -0
- package/usePreviousRef.cjs.d.ts +2 -0
- package/usePreviousRef.cjs.default.js +1 -0
- package/usePreviousRef.cjs.js +10 -0
- package/usePreviousRef.cjs.mjs +2 -0
- package/usePreviousRef.d.ts +2 -0
- package/usePreviousRef.esm.js +5 -0
- package/useReveal.d.ts +13 -0
- package/useScrollPosition.cjs.d.ts +2 -0
- package/useScrollPosition.cjs.default.js +1 -0
- package/useScrollPosition.cjs.js +19 -0
- package/useScrollPosition.cjs.mjs +2 -0
- package/useScrollPosition.d.ts +7 -0
- package/useScrollPosition.esm.js +14 -0
- package/useScrollThreshold.cjs.d.ts +2 -0
- package/useScrollThreshold.cjs.default.js +1 -0
- package/useScrollThreshold.cjs.js +15 -0
- package/useScrollThreshold.cjs.mjs +2 -0
- package/useScrollThreshold.d.ts +2 -0
- package/useScrollThreshold.esm.js +10 -0
- package/useScrollTo.cjs.d.ts +2 -0
- package/useScrollTo.cjs.default.js +1 -0
- package/useScrollTo.cjs.js +12 -0
- package/useScrollTo.cjs.mjs +2 -0
- package/useScrollTo.d.ts +2 -0
- package/useScrollTo.esm.js +7 -0
- package/useSmoothScroll.cjs.d.ts +2 -0
- package/useSmoothScroll.cjs.default.js +1 -0
- package/useSmoothScroll.cjs.js +19 -0
- package/useSmoothScroll.cjs.mjs +2 -0
- package/useSmoothScroll.d.ts +2 -0
- package/useSmoothScroll.esm.js +14 -0
- package/useSpinDelay.cjs.d.ts +2 -0
- package/useSpinDelay.cjs.default.js +1 -0
- package/useSpinDelay.cjs.js +21 -0
- package/useSpinDelay.cjs.mjs +2 -0
- package/useSpinDelay.d.ts +2 -0
- package/useSpinDelay.esm.js +16 -0
- package/useTraceUpdate.cjs.d.ts +2 -0
- package/useTraceUpdate.cjs.default.js +1 -0
- package/useTraceUpdate.cjs.js +13 -0
- package/useTraceUpdate.cjs.mjs +2 -0
- package/useTraceUpdate.d.ts +2 -0
- package/useTraceUpdate.esm.js +8 -0
- package/useUpdateEffect.cjs.d.ts +2 -0
- package/useUpdateEffect.cjs.default.js +1 -0
- package/useUpdateEffect.cjs.js +14 -0
- package/useUpdateEffect.cjs.mjs +2 -0
- package/useUpdateEffect.d.ts +3 -0
- package/useUpdateEffect.esm.js +9 -0
- package/useWindowSize.cjs.d.ts +2 -0
- package/useWindowSize.cjs.default.js +1 -0
- package/useWindowSize.cjs.js +19 -0
- package/useWindowSize.cjs.mjs +2 -0
- package/useWindowSize.d.ts +3 -0
- package/useWindowSize.esm.js +14 -0
- package/Alert/Alert.d.ts +0 -5
- package/Alert/Alert.js +0 -33
- package/Alert/Alert.mjs +0 -22
- package/Alert/Alert.stories.js +0 -39
- package/Alert/Alert.stories.mjs +0 -18
- package/Alert/index.d.ts +0 -1
- package/Alert/index.js +0 -6
- package/Alert/index.mjs +0 -1
- package/Animations/Reveal.d.ts +0 -4
- package/Animations/Reveal.js +0 -53
- package/Animations/Reveal.mjs +0 -43
- package/Animations/Underline.d.ts +0 -1
- package/Animations/Underline.js +0 -26
- package/Animations/Underline.mjs +0 -15
- package/Animations/index.d.ts +0 -3
- package/Animations/index.js +0 -8
- package/Animations/index.mjs +0 -3
- package/Animations/useReveal.d.ts +0 -34
- package/Animations/useReveal.js +0 -83
- package/Animations/useReveal.mjs +0 -73
- package/Autocomplete/AutocompleteDownshift.d.ts +0 -1
- package/Autocomplete/AutocompleteDownshift.js +0 -167
- package/Autocomplete/AutocompleteDownshift.mjs +0 -157
- package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +0 -1
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +0 -362
- package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
- package/Autocomplete/AutocompleteMui.d.ts +0 -47
- package/Autocomplete/AutocompleteMui.js +0 -183
- package/Autocomplete/AutocompleteMui.mjs +0 -219
- package/Autocomplete/AutocompleteReach.d.ts +0 -1
- package/Autocomplete/AutocompleteReach.js +0 -121
- package/Autocomplete/AutocompleteReach.mjs +0 -111
- package/Autocomplete/components.d.ts +0 -17
- package/Autocomplete/components.js +0 -132
- package/Autocomplete/components.mjs +0 -87
- package/Autocomplete/helpers.d.ts +0 -3
- package/Autocomplete/helpers.js +0 -34
- package/Autocomplete/helpers.mjs +0 -35
- package/Autocomplete/index.d.ts +0 -2
- package/Autocomplete/index.js +0 -15
- package/Autocomplete/index.mjs +0 -4
- package/Bg/BgColor.d.ts +0 -31
- package/Bg/BgColor.js +0 -64
- package/Bg/BgColor.mjs +0 -42
- package/Bg/BgPhoto.d.ts +0 -13
- package/Bg/BgPhoto.js +0 -82
- package/Bg/BgPhoto.mjs +0 -71
- package/Bg/BgSvg.d.ts +0 -7
- package/Bg/BgSvg.js +0 -31
- package/Bg/BgSvg.mjs +0 -22
- package/Bg/index.d.ts +0 -3
- package/Bg/index.js +0 -8
- package/Bg/index.mjs +0 -3
- package/Breadcrumbs/Breadcrumbs.d.ts +0 -13
- package/Breadcrumbs/Breadcrumbs.js +0 -103
- package/Breadcrumbs/Breadcrumbs.mjs +0 -91
- package/Breadcrumbs/index.d.ts +0 -1
- package/Breadcrumbs/index.js +0 -6
- package/Breadcrumbs/index.mjs +0 -1
- package/Buttons/Button.d.ts +0 -18
- package/Buttons/Button.js +0 -106
- package/Buttons/Button.mjs +0 -78
- package/Buttons/ButtonComposite.d.ts +0 -23
- package/Buttons/ButtonComposite.js +0 -116
- package/Buttons/ButtonComposite.mjs +0 -105
- package/Buttons/ButtonFab.d.ts +0 -5
- package/Buttons/ButtonFab.js +0 -27
- package/Buttons/ButtonFab.mjs +0 -8
- package/Buttons/ButtonLink.d.ts +0 -8
- package/Buttons/ButtonLink.js +0 -29
- package/Buttons/ButtonLink.mjs +0 -18
- package/Buttons/IconButton.d.ts +0 -9
- package/Buttons/IconButton.js +0 -41
- package/Buttons/IconButton.mjs +0 -19
- package/Buttons/index.d.ts +0 -5
- package/Buttons/index.js +0 -10
- package/Buttons/index.mjs +0 -5
- package/Calendar/CalendarDaygridCell.js +0 -105
- package/Calendar/CalendarDaygridCell.mjs +0 -95
- package/Calendar/CalendarDaygridNav.js +0 -63
- package/Calendar/CalendarDaygridNav.mjs +0 -52
- package/Calendar/CalendarDaygridTable.js +0 -126
- package/Calendar/CalendarDaygridTable.mjs +0 -115
- package/Calendar/CalendarLegend.js +0 -39
- package/Calendar/CalendarLegend.mjs +0 -29
- package/Calendar/calendar-api-google.d.ts +0 -18
- package/Calendar/calendar-api-google.js +0 -110
- package/Calendar/calendar-api-google.mjs +0 -99
- package/Calendar/index.d.ts +0 -6
- package/Calendar/index.js +0 -11
- package/Calendar/index.mjs +0 -6
- package/Calendar/types.js +0 -4
- package/Calendar/types.mjs +0 -1
- package/Calendar/useCalendar.js +0 -235
- package/Calendar/useCalendar.mjs +0 -225
- package/Calendar/utils.d.ts +0 -11
- package/Calendar/utils.js +0 -252
- package/Calendar/utils.mjs +0 -209
- package/Carousel/Carousel.d.ts +0 -1
- package/Carousel/Carousel.js +0 -387
- package/Carousel/Carousel.mjs +0 -377
- package/Carousel/CarouselCss.d.ts +0 -35
- package/Carousel/CarouselCss.js +0 -64
- package/Carousel/CarouselCss.mjs +0 -44
- package/Carousel/index.d.ts +0 -1
- package/Carousel/index.js +0 -6
- package/Carousel/index.mjs +0 -1
- package/Collapsable/Collapsable.d.ts +0 -1
- package/Collapsable/Collapsable.js +0 -11
- package/Collapsable/Collapsable.mjs +0 -1
- package/Collapsable/CollapsableReach.d.ts +0 -6
- package/Collapsable/CollapsableReach.js +0 -251
- package/Collapsable/CollapsableReach.mjs +0 -250
- package/Collapsable/index.d.ts +0 -1
- package/Collapsable/index.js +0 -7
- package/Collapsable/index.mjs +0 -1
- package/Debug/Debug.d.ts +0 -4
- package/Debug/Debug.js +0 -34
- package/Debug/Debug.mjs +0 -23
- package/Debug/index.d.ts +0 -1
- package/Debug/index.js +0 -6
- package/Debug/index.mjs +0 -1
- package/Details/Details.d.ts +0 -404
- package/Details/Details.js +0 -117
- package/Details/Details.mjs +0 -90
- package/Details/Details.stories.js +0 -39
- package/Details/Details.stories.mjs +0 -21
- package/Details/index.d.ts +0 -1
- package/Details/index.js +0 -6
- package/Details/index.mjs +0 -1
- package/Dialog/DialogMui.d.ts +0 -167
- package/Dialog/DialogMui.js +0 -143
- package/Dialog/DialogMui.mjs +0 -105
- package/Dialog/DialogMui.stories.js +0 -38
- package/Dialog/DialogMui.stories.mjs +0 -20
- package/Dialog/css/bare.d.ts +0 -172
- package/Dialog/css/bare.js +0 -55
- package/Dialog/css/bare.mjs +0 -19
- package/Dialog/css/index.stories.js +0 -93
- package/Dialog/css/index.stories.mjs +0 -75
- package/Dialog/index.d.ts +0 -2
- package/Dialog/index.js +0 -11
- package/Dialog/index.mjs +0 -1
- package/Dialog/m/bare.d.ts +0 -4
- package/Dialog/m/bare.js +0 -125
- package/Dialog/m/bare.mjs +0 -115
- package/Dialog/m/basic.d.ts +0 -4
- package/Dialog/m/basic.js +0 -50
- package/Dialog/m/basic.mjs +0 -31
- package/Dialog/m/index.d.ts +0 -3
- package/Dialog/m/index.js +0 -14
- package/Dialog/m/index.mjs +0 -4
- package/Dialog/sc/bare.d.ts +0 -71
- package/Dialog/sc/bare.js +0 -83
- package/Dialog/sc/bare.mjs +0 -54
- package/Dialog/sc/framer.d.ts +0 -25
- package/Dialog/sc/framer.js +0 -26
- package/Dialog/sc/framer.mjs +0 -16
- package/Dialog/sc/framerMaterial.d.ts +0 -24
- package/Dialog/sc/framerMaterial.js +0 -26
- package/Dialog/sc/framerMaterial.mjs +0 -16
- package/Dialog/sc/index.stories.js +0 -75
- package/Dialog/sc/index.stories.mjs +0 -48
- package/Dialog/sc/material.d.ts +0 -61
- package/Dialog/sc/material.js +0 -78
- package/Dialog/sc/material.mjs +0 -41
- package/Dialog/tw/bare.d.ts +0 -223
- package/Dialog/tw/bare.js +0 -55
- package/Dialog/tw/bare.mjs +0 -29
- package/Dialog/tw/elegant.d.ts +0 -271
- package/Dialog/tw/elegant.js +0 -54
- package/Dialog/tw/elegant.mjs +0 -18
- package/Dialog/tw/framer.d.ts +0 -109
- package/Dialog/tw/framer.js +0 -26
- package/Dialog/tw/framer.mjs +0 -16
- package/Dialog/tw/framerMaterial.d.ts +0 -164
- package/Dialog/tw/framerMaterial.js +0 -26
- package/Dialog/tw/framerMaterial.mjs +0 -16
- package/Dialog/tw/index.stories.js +0 -113
- package/Dialog/tw/index.stories.mjs +0 -83
- package/Dialog/tw/material.d.ts +0 -271
- package/Dialog/tw/material.js +0 -54
- package/Dialog/tw/material.mjs +0 -18
- package/Editor/Editor--tiptap.d.ts +0 -9
- package/Editor/Editor--tiptap.js +0 -72
- package/Editor/Editor--tiptap.mjs +0 -53
- package/Editor/components.d.ts +0 -5
- package/Editor/components.js +0 -59
- package/Editor/components.mjs +0 -28
- package/Editor/index.d.ts +0 -1
- package/Editor/index.js +0 -6
- package/Editor/index.mjs +0 -1
- package/FaviconTags.js +0 -73
- package/FaviconTags.mjs +0 -64
- package/Form/Form.d.ts +0 -138
- package/Form/Form.js +0 -130
- package/Form/Form.mjs +0 -95
- package/Form/index.d.ts +0 -1
- package/Form/index.js +0 -6
- package/Form/index.mjs +0 -1
- package/Form/sc/bare.d.ts +0 -58
- package/Form/sc/bare.js +0 -55
- package/Form/sc/bare.mjs +0 -29
- package/Forms/Checkbox/Checkbox.d.ts +0 -11
- package/Forms/Checkbox/Checkbox.js +0 -62
- package/Forms/Checkbox/Checkbox.mjs +0 -36
- package/Forms/Checkbox/index.d.ts +0 -1
- package/Forms/Checkbox/index.js +0 -6
- package/Forms/Checkbox/index.mjs +0 -1
- package/Forms/Feedback/Feedback.d.ts +0 -5
- package/Forms/Feedback/Feedback.js +0 -25
- package/Forms/Feedback/Feedback.mjs +0 -14
- package/Forms/Feedback/index.d.ts +0 -1
- package/Forms/Feedback/index.js +0 -6
- package/Forms/Feedback/index.mjs +0 -1
- package/Forms/Field/Field.d.ts +0 -36
- package/Forms/Field/Field.js +0 -75
- package/Forms/Field/Field.mjs +0 -50
- package/Forms/Field/FieldControl.d.ts +0 -26
- package/Forms/Field/FieldControl.js +0 -69
- package/Forms/Field/FieldControl.mjs +0 -67
- package/Forms/Field/FieldHint.d.ts +0 -1
- package/Forms/Field/FieldHint.js +0 -17
- package/Forms/Field/FieldHint.mjs +0 -6
- package/Forms/Field/index.d.ts +0 -2
- package/Forms/Field/index.js +0 -7
- package/Forms/Field/index.mjs +0 -2
- package/Forms/Input/Input.d.ts +0 -9
- package/Forms/Input/Input.js +0 -67
- package/Forms/Input/Input.mjs +0 -36
- package/Forms/Input/index.d.ts +0 -1
- package/Forms/Input/index.js +0 -6
- package/Forms/Input/index.mjs +0 -1
- package/Forms/InputGroup/InputGroup.d.ts +0 -13
- package/Forms/InputGroup/InputGroup.js +0 -85
- package/Forms/InputGroup/InputGroup.mjs +0 -57
- package/Forms/InputGroup/index.d.ts +0 -1
- package/Forms/InputGroup/index.js +0 -6
- package/Forms/InputGroup/index.mjs +0 -1
- package/Forms/Label/Label.d.ts +0 -3
- package/Forms/Label/Label.js +0 -46
- package/Forms/Label/Label.mjs +0 -24
- package/Forms/Label/index.d.ts +0 -1
- package/Forms/Label/index.js +0 -6
- package/Forms/Label/index.mjs +0 -1
- package/Forms/Password/Password.d.ts +0 -5
- package/Forms/Password/Password.js +0 -72
- package/Forms/Password/Password.mjs +0 -53
- package/Forms/Password/index.d.ts +0 -1
- package/Forms/Password/index.js +0 -6
- package/Forms/Password/index.mjs +0 -1
- package/Forms/Radio/Radio.d.ts +0 -12
- package/Forms/Radio/Radio.js +0 -68
- package/Forms/Radio/Radio.mjs +0 -57
- package/Forms/Radio/index.d.ts +0 -1
- package/Forms/Radio/index.js +0 -6
- package/Forms/Radio/index.mjs +0 -1
- package/Forms/Switch/Switch.d.ts +0 -9
- package/Forms/Switch/Switch.js +0 -80
- package/Forms/Switch/Switch.mjs +0 -60
- package/Forms/Switch/index.d.ts +0 -1
- package/Forms/Switch/index.js +0 -6
- package/Forms/Switch/index.mjs +0 -1
- package/Forms/Textarea/Textarea.d.ts +0 -5
- package/Forms/Textarea/Textarea.js +0 -45
- package/Forms/Textarea/Textarea.mjs +0 -26
- package/Forms/Textarea/TextareaRich.d.ts +0 -6
- package/Forms/Textarea/TextareaRich.js +0 -58
- package/Forms/Textarea/TextareaRich.mjs +0 -48
- package/Forms/Textarea/index.d.ts +0 -2
- package/Forms/Textarea/index.js +0 -7
- package/Forms/Textarea/index.mjs +0 -2
- package/Forms/Toggle/Toggle-tailwind.d.ts +0 -0
- package/Forms/Toggle/Toggle-tailwind.js +0 -99
- package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
- package/Forms/Toggle/Toggle.d.ts +0 -19
- package/Forms/Toggle/Toggle.js +0 -175
- package/Forms/Toggle/Toggle.mjs +0 -123
- package/Forms/Toggle/index.d.ts +0 -1
- package/Forms/Toggle/index.js +0 -6
- package/Forms/Toggle/index.mjs +0 -1
- package/Forms/Toggle/useToggle-tailwind.d.ts +0 -0
- package/Forms/Toggle/useToggle-tailwind.js +0 -202
- package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
- package/Forms/Toggle/useToggle.d.ts +0 -46
- package/Forms/Toggle/useToggle.js +0 -145
- package/Forms/Toggle/useToggle.mjs +0 -163
- package/Forms/antispam.d.ts +0 -47
- package/Forms/antispam.js +0 -59
- package/Forms/antispam.mjs +0 -58
- package/Forms/helpers.d.ts +0 -26
- package/Forms/helpers.js +0 -72
- package/Forms/helpers.mjs +0 -52
- package/Forms/index.d.ts +0 -15
- package/Forms/index.js +0 -19
- package/Forms/index.mjs +0 -16
- package/Forms/styles.d.ts +0 -15
- package/Forms/styles.js +0 -94
- package/Forms/styles.mjs +0 -61
- package/Gauge/Gauge.d.ts +0 -5
- package/Gauge/Gauge.js +0 -111
- package/Gauge/Gauge.mjs +0 -101
- package/Grid/Grid.d.ts +0 -41
- package/Grid/Grid.js +0 -106
- package/Grid/Grid.mjs +0 -75
- package/Grid/index.d.ts +0 -1
- package/Grid/index.js +0 -6
- package/Grid/index.mjs +0 -1
- package/Hamburger/Hamburger.d.ts +0 -6
- package/Hamburger/Hamburger.js +0 -90
- package/Hamburger/Hamburger.mjs +0 -79
- package/Hamburger/index.d.ts +0 -1
- package/Hamburger/index.js +0 -6
- package/Hamburger/index.mjs +0 -1
- package/Header/index.d.ts +0 -1
- package/Header/index.js +0 -6
- package/Header/index.mjs +0 -1
- package/Header/useHeader.d.ts +0 -24
- package/Header/useHeader.js +0 -54
- package/Header/useHeader.mjs +0 -36
- package/Hidden/Hidden.d.ts +0 -6
- package/Hidden/Hidden.js +0 -21
- package/Hidden/Hidden.mjs +0 -10
- package/Hidden/index.d.ts +0 -1
- package/Hidden/index.js +0 -6
- package/Hidden/index.mjs +0 -1
- package/Img/index.js +0 -6
- package/Img/index.mjs +0 -1
- package/Img/sc/bare.d.ts +0 -2
- package/Img/sc/bare.js +0 -43
- package/Img/sc/bare.mjs +0 -36
- package/Img/types.d.ts +0 -9
- package/Img/types.js +0 -6
- package/Img/types.mjs +0 -1
- package/Link/Link.d.ts +0 -3
- package/Link/Link.js +0 -13
- package/Link/Link.mjs +0 -2
- package/Link/LinkBlank.d.ts +0 -5
- package/Link/LinkBlank.js +0 -52
- package/Link/LinkBlank.mjs +0 -32
- package/Link/index.d.ts +0 -2
- package/Link/index.js +0 -7
- package/Link/index.mjs +0 -2
- package/Menu/Menu.d.ts +0 -1
- package/Menu/Menu.js +0 -22
- package/Menu/Menu.mjs +0 -11
- package/Menu/MenuMui.d.ts +0 -0
- package/Menu/MenuMui.js +0 -165
- package/Menu/MenuMui.mjs +0 -164
- package/Menu/index.d.ts +0 -1
- package/Menu/index.js +0 -6
- package/Menu/index.mjs +0 -1
- package/MenuItem/MenuItem.d.ts +0 -1
- package/MenuItem/MenuItem.js +0 -31
- package/MenuItem/MenuItem.mjs +0 -20
- package/MenuItem/MenuItemMui.d.ts +0 -0
- package/MenuItem/MenuItemMui.js +0 -32
- package/MenuItem/MenuItemMui.mjs +0 -31
- package/MenuItem/index.d.ts +0 -1
- package/MenuItem/index.js +0 -6
- package/MenuItem/index.mjs +0 -1
- package/MenuItem/useMenuItem.d.ts +0 -9
- package/MenuItem/useMenuItem.js +0 -96
- package/MenuItem/useMenuItem.mjs +0 -78
- package/Meta/Meta.d.ts +0 -15
- package/Meta/Meta.js +0 -26
- package/Meta/Meta.mjs +0 -8
- package/Meta/index.d.ts +0 -2
- package/Meta/index.js +0 -12
- package/Meta/index.mjs +0 -2
- package/NoJs/NoJs.d.ts +0 -3
- package/NoJs/NoJs.js +0 -28
- package/NoJs/NoJs.mjs +0 -10
- package/NoJs/index.d.ts +0 -2
- package/NoJs/index.js +0 -12
- package/NoJs/index.mjs +0 -2
- package/Pagination/PaginationNav.d.ts +0 -22
- package/Pagination/PaginationNav.js +0 -126
- package/Pagination/PaginationNav.mjs +0 -122
- package/Pagination/PaginationResults.d.ts +0 -3
- package/Pagination/PaginationResults.js +0 -45
- package/Pagination/PaginationResults.mjs +0 -34
- package/Pagination/index.d.ts +0 -2
- package/Pagination/index.js +0 -7
- package/Pagination/index.mjs +0 -2
- package/Pill/Pill.d.ts +0 -5
- package/Pill/Pill.js +0 -62
- package/Pill/Pill.mjs +0 -37
- package/Pill/index.d.ts +0 -1
- package/Pill/index.js +0 -6
- package/Pill/index.mjs +0 -1
- package/Progress/ProgressCircular.d.ts +0 -19
- package/Progress/ProgressCircular.js +0 -62
- package/Progress/ProgressCircular.mjs +0 -53
- package/Progress/ProgressLinear.d.ts +0 -22
- package/Progress/ProgressLinear.js +0 -53
- package/Progress/ProgressLinear.mjs +0 -44
- package/Progress/ProgressOverlay.d.ts +0 -4
- package/Progress/ProgressOverlay.js +0 -75
- package/Progress/ProgressOverlay.mjs +0 -64
- package/Progress/index.d.ts +0 -3
- package/Progress/index.js +0 -8
- package/Progress/index.mjs +0 -3
- package/Rating/Rating.d.ts +0 -35
- package/Rating/Rating.js +0 -188
- package/Rating/Rating.mjs +0 -154
- package/Rating/index.d.ts +0 -11
- package/Rating/index.js +0 -85
- package/Rating/index.mjs +0 -62
- package/Select/SelectDownshift.d.ts +0 -5
- package/Select/SelectDownshift.js +0 -47
- package/Select/SelectDownshift.mjs +0 -37
- package/Select/components.d.ts +0 -6
- package/Select/components.js +0 -44
- package/Select/components.mjs +0 -25
- package/Select/index.d.ts +0 -2
- package/Select/index.js +0 -13
- package/Select/index.mjs +0 -2
- package/Sidebar/Sidebar.d.ts +0 -3
- package/Sidebar/Sidebar.js +0 -74
- package/Sidebar/Sidebar.mjs +0 -63
- package/Sidebar/index.d.ts +0 -1
- package/Sidebar/index.js +0 -6
- package/Sidebar/index.mjs +0 -1
- package/Spacing/Spacing.d.ts +0 -30
- package/Spacing/Spacing.js +0 -55
- package/Spacing/Spacing.mjs +0 -55
- package/Spacing/index.d.ts +0 -1
- package/Spacing/index.js +0 -6
- package/Spacing/index.mjs +0 -1
- package/Sticky/Sticky.d.ts +0 -2
- package/Sticky/Sticky.js +0 -228
- package/Sticky/Sticky.mjs +0 -218
- package/Sticky/StickyCss.d.ts +0 -5
- package/Sticky/StickyCss.js +0 -20
- package/Sticky/StickyCss.mjs +0 -10
- package/Sticky/index.d.ts +0 -1
- package/Sticky/index.js +0 -19
- package/Sticky/index.mjs +0 -1
- package/Tabs/TabsMui.d.ts +0 -85
- package/Tabs/TabsMui.js +0 -91
- package/Tabs/TabsMui.mjs +0 -61
- package/Tabs/TabsMui.stories.js +0 -38
- package/Tabs/TabsMui.stories.mjs +0 -20
- package/Tabs/index.d.ts +0 -1
- package/Tabs/index.js +0 -6
- package/Tabs/index.mjs +0 -1
- package/Tabs/sc/bare.d.ts +0 -5
- package/Tabs/sc/bare.js +0 -86
- package/Tabs/sc/bare.mjs +0 -85
- package/Tabs/sc/index.stories.js +0 -1
- package/Tabs/sc/index.stories.mjs +0 -0
- package/Tabs/tw/bare.d.ts +0 -86
- package/Tabs/tw/bare.js +0 -45
- package/Tabs/tw/bare.mjs +0 -15
- package/Tabs/tw/index.stories.js +0 -46
- package/Tabs/tw/index.stories.mjs +0 -25
- package/Tabs/tw/material.d.ts +0 -119
- package/Tabs/tw/material.js +0 -44
- package/Tabs/tw/material.mjs +0 -14
- package/Tabs/useTabs.d.ts +0 -43
- package/Tabs/useTabs.js +0 -66
- package/Tabs/useTabs.mjs +0 -46
- package/Typography/CopyPasteVisible.d.ts +0 -1
- package/Typography/CopyPasteVisible.js +0 -17
- package/Typography/CopyPasteVisible.mjs +0 -6
- package/Typography/Native.d.ts +0 -10
- package/Typography/Native.js +0 -90
- package/Typography/Native.mjs +0 -47
- package/Typography/ReadMore.d.ts +0 -12
- package/Typography/ReadMore.js +0 -125
- package/Typography/ReadMore.mjs +0 -114
- package/Typography/TextLoop.d.ts +0 -16
- package/Typography/TextLoop.js +0 -108
- package/Typography/TextLoop.mjs +0 -90
- package/Typography/TypeStairs.d.ts +0 -6
- package/Typography/TypeStairs.js +0 -71
- package/Typography/TypeStairs.mjs +0 -61
- package/Typography/index.d.ts +0 -5
- package/Typography/index.js +0 -10
- package/Typography/index.mjs +0 -5
- package/css/index.d.ts +0 -2
- package/css/index.js +0 -33
- package/css/index.mjs +0 -30
- package/helpers/classed.d.ts +0 -27
- package/helpers/classed.js +0 -66
- package/helpers/classed.mjs +0 -65
- package/helpers/classed.stories.js +0 -140
- package/helpers/classed.stories.mjs +0 -121
- package/helpers/createUseMediaQueryWidth.d.ts +0 -12
- package/helpers/createUseMediaQueryWidth.js +0 -193
- package/helpers/createUseMediaQueryWidth.mjs +0 -178
- package/helpers/extend-component.js +0 -32
- package/helpers/extend-component.mjs +0 -13
- package/helpers/index.d.ts +0 -4
- package/helpers/index.js +0 -9
- package/helpers/index.mjs +0 -4
- package/helpers/mergeRefs.d.ts +0 -3
- package/helpers/mergeRefs.js +0 -30
- package/helpers/mergeRefs.mjs +0 -12
- package/hooks/index.d.ts +0 -20
- package/hooks/index.js +0 -92
- package/hooks/index.mjs +0 -21
- package/hooks/types.d.ts +0 -8
- package/hooks/types.js +0 -6
- package/hooks/types.mjs +0 -3
- package/hooks/useAsyncFn.js +0 -56
- package/hooks/useAsyncFn.mjs +0 -39
- package/hooks/useDateLocale.d.ts +0 -8
- package/hooks/useDateLocale.js +0 -51
- package/hooks/useDateLocale.mjs +0 -37
- package/hooks/useFirstMountState.d.ts +0 -5
- package/hooks/useFirstMountState.js +0 -28
- package/hooks/useFirstMountState.mjs +0 -12
- package/hooks/useFixedOffset.d.ts +0 -12
- package/hooks/useFixedOffset.js +0 -67
- package/hooks/useFixedOffset.mjs +0 -56
- package/hooks/useFocus.d.ts +0 -6
- package/hooks/useFocus.js +0 -30
- package/hooks/useFocus.mjs +0 -14
- package/hooks/useInterval.d.ts +0 -7
- package/hooks/useInterval.js +0 -44
- package/hooks/useInterval.mjs +0 -29
- package/hooks/useIsomorphicLayoutEffect.d.ts +0 -6
- package/hooks/useIsomorphicLayoutEffect.js +0 -23
- package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
- package/hooks/useKeyUp.d.ts +0 -2
- package/hooks/useKeyUp.js +0 -40
- package/hooks/useKeyUp.mjs +0 -21
- package/hooks/useMeasure.js +0 -189
- package/hooks/useMeasure.mjs +0 -174
- package/hooks/useMountedState.d.ts +0 -5
- package/hooks/useMountedState.js +0 -31
- package/hooks/useMountedState.mjs +0 -15
- package/hooks/useNavigateAway.d.ts +0 -32
- package/hooks/useNavigateAway.js +0 -69
- package/hooks/useNavigateAway.mjs +0 -69
- package/hooks/usePrevious.d.ts +0 -5
- package/hooks/usePrevious.js +0 -33
- package/hooks/usePrevious.mjs +0 -17
- package/hooks/usePreviousRef.d.ts +0 -2
- package/hooks/usePreviousRef.js +0 -27
- package/hooks/usePreviousRef.mjs +0 -9
- package/hooks/useScrollPosition.d.ts +0 -15
- package/hooks/useScrollPosition.js +0 -83
- package/hooks/useScrollPosition.mjs +0 -70
- package/hooks/useScrollThreshold.d.ts +0 -2
- package/hooks/useScrollThreshold.js +0 -52
- package/hooks/useScrollThreshold.mjs +0 -33
- package/hooks/useScrollTo.d.ts +0 -2
- package/hooks/useScrollTo.js +0 -39
- package/hooks/useScrollTo.mjs +0 -20
- package/hooks/useSmoothScroll.d.ts +0 -8
- package/hooks/useSmoothScroll.js +0 -49
- package/hooks/useSmoothScroll.mjs +0 -35
- package/hooks/useSpinDelay.d.ts +0 -14
- package/hooks/useSpinDelay.js +0 -59
- package/hooks/useSpinDelay.mjs +0 -52
- package/hooks/useTraceUpdate.d.ts +0 -5
- package/hooks/useTraceUpdate.js +0 -39
- package/hooks/useTraceUpdate.mjs +0 -23
- package/hooks/useUpdateEffect.d.ts +0 -6
- package/hooks/useUpdateEffect.js +0 -30
- package/hooks/useUpdateEffect.mjs +0 -14
- package/hooks/useWindowSize.d.ts +0 -12
- package/hooks/useWindowSize.js +0 -43
- package/hooks/useWindowSize.mjs +0 -32
- package/index.js +0 -10
- package/index.mjs +0 -4
- package/m/MotionProvider.d.ts +0 -38
- package/m/MotionProvider.js +0 -27
- package/m/MotionProvider.mjs +0 -40
- package/m/index.d.ts +0 -6
- package/m/index.js +0 -10
- package/m/index.mjs +0 -5
- package/m/lite.d.ts +0 -2
- package/m/lite.js +0 -12
- package/m/lite.mjs +0 -2
- package/m/max.d.ts +0 -2
- package/m/max.js +0 -12
- package/m/max.mjs +0 -2
- package/sc/index.d.ts +0 -30
- package/sc/index.js +0 -49
- package/sc/index.mjs +0 -31
- package/scm/index.d.ts +0 -29
- package/scm/index.js +0 -40
- package/scm/index.mjs +0 -31
- package/shared/index.d.ts +0 -8
- package/shared/index.js +0 -13
- package/shared/index.mjs +0 -43
- package/styles/Body.d.ts +0 -10
- package/styles/Body.js +0 -28
- package/styles/Body.mjs +0 -16
- package/styles/Global.d.ts +0 -15
- package/styles/Global.js +0 -55
- package/styles/Global.mjs +0 -49
- package/styles/index.d.ts +0 -7
- package/styles/index.js +0 -142
- package/styles/index.mjs +0 -7
- package/styles/media.d.ts +0 -67
- package/styles/media.js +0 -139
- package/styles/media.mjs +0 -151
- package/styles/spacing.d.ts +0 -13
- package/styles/spacing.js +0 -70
- package/styles/spacing.mjs +0 -46
- package/styles/styled.d.ts +0 -12
- package/styles/styled.js +0 -58
- package/styles/styled.mjs +0 -26
- package/styles/theme--vanilla.d.ts +0 -17
- package/styles/theme--vanilla.js +0 -82
- package/styles/theme--vanilla.mjs +0 -65
- package/styles/theme.d.ts +0 -82
- package/styles/theme.js +0 -49
- package/styles/theme.mjs +0 -38
- package/tw/index.d.ts +0 -2
- package/tw/index.js +0 -33
- package/tw/index.mjs +0 -30
- package/twm/index.d.ts +0 -2
- package/twm/index.js +0 -33
- package/twm/index.mjs +0 -30
- package/types.js +0 -4
- package/types.mjs +0 -1
- package/typings.d.ts +0 -99
package/calendar.esm.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, Fragment, useEffect, useMemo, useReducer, useCallback } from 'react';
|
|
3
|
+
import { addDays } from 'date-fns/addDays';
|
|
4
|
+
import { addMonths } from 'date-fns/addMonths';
|
|
5
|
+
import { addWeeks } from 'date-fns/addWeeks';
|
|
6
|
+
import { endOfMonth } from 'date-fns/endOfMonth';
|
|
7
|
+
import { endOfWeek } from 'date-fns/endOfWeek';
|
|
8
|
+
import { isWithinInterval } from 'date-fns/isWithinInterval';
|
|
9
|
+
import { startOfWeek } from 'date-fns/startOfWeek';
|
|
10
|
+
import { subMonths } from 'date-fns/subMonths';
|
|
11
|
+
import { subWeeks } from 'date-fns/subWeeks';
|
|
12
|
+
import { format } from 'date-fns/format';
|
|
13
|
+
import { eachWeekOfInterval } from 'date-fns/eachWeekOfInterval';
|
|
14
|
+
import { useSwipeable } from 'react-swipeable';
|
|
15
|
+
import { differenceInDays } from 'date-fns/differenceInDays';
|
|
16
|
+
import { subDays } from 'date-fns/subDays';
|
|
17
|
+
import { isUndefined, isString, arrayToLookup } from '@koine/utils';
|
|
18
|
+
|
|
19
|
+
let getEventTimestamp=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.valueOf()/1e3};let getDisplayTime=e=>e.getHours()+":"+"0".repeat(2-e.getMinutes().toString().length)+e.getMinutes();let getStartDate=(e,t)=>(e.setHours(0,0,0),"month"===t?e.setDate(1):"week"===t&&(e=startOfWeek(e,{weekStartsOn:1})),e);let getEndDate=(e,t)=>{let r=e;return "month"===t?r=endOfMonth(e):"week"===t&&(r=endOfWeek(e,{weekStartsOn:1})),r.setHours(23,59,59),r};let getPrevDate=(e,t)=>"month"===t?subMonths(e,1):subWeeks(e,1);let getNextDate=(e,a)=>"month"===a?addMonths(e,1):addWeeks(e,1);let isTodayInView=(e,t)=>isWithinInterval(new Date,{start:e,end:t});let addCalendarEvents=(e,t)=>{for(let r in e){let a=e[r];t[r]=a;}return t};let i=e=>{let t={};for(let r in e){let a=e[r];a.days.forEach(e=>{t[e]=t[e]||{},t[e][r]=a;});}return t},d$1=e=>{let t=[];for(let r in e)t.push(e[r]);return(// sort events first multi, then all day then by start then by created date
|
|
20
|
+
t.sort((e,t)=>{let r=Number(t.multi)-Number(e.multi),a=Number(t.allDay)-Number(e.allDay),n=e.start.getTime()-t.start.getTime(),s=e.created.getTime()-t.created.getTime();return r||a||n||s}),t)};let processEventsInView=(t,r,a,n)=>{let s=i(t),o=d$1(t),l=new Date,m=getEventTimestamp(l),p={},f=[];for(let t=0;t<n.length;t++){let i={props:{key:`week.${t}`},days:[]},d=n[t],u=d.getDate(),g=getEventTimestamp(new Date(d)),h=getEventTimestamp(addDays(new Date(d),6));for(let e=0;e<7;e++){let t=new Date(new Date(d).setDate(u+e)),n=getEventTimestamp(t),f={$isToday:m===n,$isOutOfRange:"month"===r&&t.getMonth()!==a},v={props:{key:`day.${n}`,...f},timestamp:n+"",label:t.getDate()+"",events:[]};// check that we have events in this day
|
|
21
|
+
if(s?.[n]){let t=Object.keys(s[n]).map(()=>0);for(let r=0;r<o.length;r++){let a;let s=o[r],m=1,i=0;if(s.daysMap[n]){// if we already have the information on when the event has been
|
|
22
|
+
// vertically positioned use that index
|
|
23
|
+
if(// only for multi days events:
|
|
24
|
+
s.multi&&(// filter out the days outside of the current week view to avoid
|
|
25
|
+
// making a multi-days event chip wider than the week row or shorter
|
|
26
|
+
// than it should be (when event spans across weeks)
|
|
27
|
+
m=s.days.filter(e=>e>=g&&e<=h).length,// flag the first day of multi-days events, consider that an event
|
|
28
|
+
// might start in a day earlier (hence outside) of the current
|
|
29
|
+
// week/month view, so we always check for Mondays (dayNumber === 0)
|
|
30
|
+
(0===s.days.indexOf(n)||0===e)&&(a=!0)),p[s.uid])i=p[s.uid];else // now look for a free slot and use its index as `top`
|
|
31
|
+
for(let e=0;e<t.length;e++)if(1!==t[e]){i=e;break}// now mark the slot as busy
|
|
32
|
+
t[i]=1,// store the slot vertical position consistently for multi-days events
|
|
33
|
+
a&&(p[s.uid]=i),// push the event, they will be sorted later
|
|
34
|
+
v.events.push({key:`event.${n}-${i}`,...f,...s,isPast:l>s.end,firstOfMulti:a,top:i,width:m});}}// fill the empty slots with events' placeholders
|
|
35
|
+
for(let e=0;e<t.length;e++)1!==t[e]&&v.events.push({key:`event.${n}-${e}}`,placeholder:!0,top:e});// sort events and events placeholders by top position
|
|
36
|
+
v.events.sort((e,t)=>e.top-t.top);}i.days.push(v);}f.push(i);}return f};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* TODO: include in this lib utilities like in https://github.com/react-icons/react-icons/blob/master/packages/react-icons/src/iconBase.tsx
|
|
40
|
+
*
|
|
41
|
+
* this is the `MdAdd` icon from `react-icons`
|
|
42
|
+
*/let d=l=>/*#__PURE__*/jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",...l,children:[/*#__PURE__*/jsx("path",{d:"M0 0h24v24H0z"}),/*#__PURE__*/jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})]}),/**
|
|
43
|
+
* Style for button within a event cell
|
|
44
|
+
*
|
|
45
|
+
* Here we might differentiate week/month view where the first does not get
|
|
46
|
+
* ellipsed btn texts, with `Start` as block element and underneath the `Title`
|
|
47
|
+
* on multiple lines, but that would mean that we loose the ability to interweave
|
|
48
|
+
* single-day events among the spaces left by wider multi-days events.
|
|
49
|
+
*/o$1={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"};let CalendarDaygridCell=({eventClicked:a,setEventClicked:s,// eventHovered,
|
|
50
|
+
setEventHovered:h,view:c,maxEvents:u,events:p,calendarsMap:v,Cell:f="div",CellOverflow:y="div",CellEvent:$="div",CellEventBtn:m="div",CellEventTitle:w="span",CellEventStart:g="span"})=>{let[x,M]=useState(!1),O=p.filter(e=>!e.placeholder);return /*#__PURE__*/jsx(f,{children:p.map((t,p)=>{if(p===u&&!x)return /*#__PURE__*/jsxs(y,{onClick:()=>M(!0),children:[/*#__PURE__*/jsx(d,{}),O.length-u]},"overflowMessage"+p);if(p>u&&!x)return null;if(t.placeholder)return /*#__PURE__*/jsx(Fragment,{children:/*#__PURE__*/jsx($,{$placeholder:!0,children:/*#__PURE__*/jsx(m,{"aria-hidden":"true",style:{visibility:"hidden"},$placeholder:!0,children:/*#__PURE__*/jsx(w,{children:" "})})})},t.key);let f={zIndex:t.firstOfMulti?1:0,// to cover the following event days
|
|
51
|
+
position:"relative",width:t.firstOfMulti?`${100*t.width}%`:"100%"};v[t.calendar.id].on||// @ts-expect-error nevermind
|
|
52
|
+
(o$1.display="none");let k={$view:c,$selected:a?.uid===t.uid,$past:t.isPast,$color:t.color,$isOutOfRange:t.$isOutOfRange,$isToday:t.$isToday};return /*#__PURE__*/jsx(Fragment,{children:/*#__PURE__*/jsx($,{style:f,...k,children:/*#__PURE__*/jsx(m,{role:"button",style:o$1,...k,onClick:()=>s(e=>e?.uid===t.uid?null:t),onMouseEnter:()=>h(t),onMouseLeave:()=>h(null),children:t.allDay?/*#__PURE__*/jsx(w,{children:t.title}):/*#__PURE__*/jsxs(Fragment$1,{children:[/*#__PURE__*/jsx(g,{children:getDisplayTime(t.start)}),/*#__PURE__*/jsx(w,{children:t.title})]})})})},t.key)})})};/* {i === events.length - 1 && isExpanded ? (
|
|
53
|
+
<CellOverflow onClick={() => expand(false)}>
|
|
54
|
+
<IconCollapse />
|
|
55
|
+
Show less
|
|
56
|
+
</CellOverflow>
|
|
57
|
+
) : null} */
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Dynamically import the date-fns correct locale
|
|
61
|
+
*
|
|
62
|
+
* Inspired by:
|
|
63
|
+
* @see https://robertmarshall.dev/blog/dynamically-import-datefns-locale-mui-datepicker-localization/
|
|
64
|
+
*/let useDateLocale=(a,l="en")=>{let[r,n]=useState(),[o,c]=useState(l);return(// const [ready, setReady] = useState(false);
|
|
65
|
+
// If the user changes the locale listen to the change and import the locale that is now required.
|
|
66
|
+
useEffect(()=>{let e=async()=>{// This webpack option stops all of the date-fns files being imported and chunked.
|
|
67
|
+
// NB: this makes unnecessary numerous webpack chunks in applications
|
|
68
|
+
// that do not even use this hook, so we comment out the webpack dynamic
|
|
69
|
+
// import and its magic comment
|
|
70
|
+
// const localeToSet = await import(
|
|
71
|
+
// /FIXME: * webpackMode: "lazy", webpackChunkName: "df-[index]", webpackExclude: /_lib/ */
|
|
72
|
+
// `date-fns/locale/${locale}/index.js`,
|
|
73
|
+
// );
|
|
74
|
+
let e=await import('date-fns/locale/en-US');c(a||o),n(e.enUS);};// setReady(true);
|
|
75
|
+
// If the locale has not yet been loaded.
|
|
76
|
+
a!==o&&e();},[a,o]),r)};
|
|
77
|
+
|
|
78
|
+
let KoineCalendarDaygridNav=({range:a,view:l,todayInView:r,handlePrev:i,handleNext:M,handleToday:d,handleView:y,locale:c,NavRoot:m="nav",NavTitle:s="div",NavBtns:b="div",NavBtnPrev:k="button",NavBtnNext:u="button",NavBtnToday:h="button",NavBtnViewMonth:f="button",NavBtnViewWeek:g="button"})=>{let[C,p]=a,v={locale:useDateLocale(c)},x="";return "month"===l&&(x=format(C,"MMMM yyyy",v)),"week"===l&&(x=C.getMonth()===p.getMonth()?format(C,"# MMMM yyyy",v).replace("#",`${C.getDate()}-${p.getDate()}`):`${format(C,"d MMMM",v)} - ${format(p,"d MMMM yyyy",v)}`),/*#__PURE__*/jsxs(m,{children:[/*#__PURE__*/jsxs(b,{children:[/*#__PURE__*/jsx(k,{onClick:i}),/*#__PURE__*/jsx(u,{onClick:M}),/*#__PURE__*/jsx(h,{onClick:d,disabled:r}),/*#__PURE__*/jsx(f,{onClick:()=>y("month"),disabled:"month"===l}),/*#__PURE__*/jsx(g,{onClick:()=>y("week"),disabled:"week"===l})]}),/*#__PURE__*/jsx(s,{range:a,formatted:x})]})};
|
|
79
|
+
|
|
80
|
+
let KoineCalendarDaygridTable=({locale:d,handlePrev:s,handleNext:c,events:h,dayLabels:f,view:b,range:u,eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,calendarsMap:x={},maxEvents:j=5,Table:C="table",TableHead:D="thead",TableHeadCell:S="th",TableBody:k="tbody",TableBodyRow:z="tr",TableBodyCell:L="td",TableBodyCellDate:O="div",Cell:I,CellOverflow:K,CellEvent:M,CellEventBtn:R,CellEventTitle:T,CellEventStart:W})=>// ...props
|
|
81
|
+
{let q={Cell:I,CellOverflow:K,CellEvent:M,CellEventBtn:R,CellEventTitle:T,CellEventStart:W},[A,B]=useState(f||[0,1,2,3,4,5,6]),[E,F]=useState([]),// const [days, setDays] = useState(dayLabels || [...Array(7).keys()]);
|
|
82
|
+
G=useDateLocale(d),{month:H,weeks:J}=useMemo(()=>(function(e){let[t,a]=e,i=eachWeekOfInterval({start:t,end:a},{weekStartsOn:1});return {month:t.getMonth(),weeks:i}})(u),[u]),N=useSwipeable({onSwipedLeft:c,onSwipedRight:s});return useEffect(()=>{F(processEventsInView(h,b,H,J));},[h,b,H,J]),useEffect(()=>{G&&G.localize&&!f&&B([1,2,3,4,5,6,0].map(// @ts-expect-error nevermind
|
|
83
|
+
e=>G.localize.day(e,{width:"abbreviated"})));},[G,f]),/*#__PURE__*/jsxs(C,{...N,children:[/*#__PURE__*/jsx(D,{children:/*#__PURE__*/jsx("tr",{children:A.map(t=>/*#__PURE__*/jsx(S,{scope:"column",children:t},t))})}),/*#__PURE__*/jsx(k,{children:E.map((r,a)=>/*#__PURE__*/jsx(z,{...r.props,children:r.days.map(r=>/*#__PURE__*/jsxs(L,{...r.props,children:[/*#__PURE__*/jsx(O,{...r.props,children:r.label}),r.events.length>0&&/*#__PURE__*/jsx(CalendarDaygridCell,{eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,view:b,maxEvents:j,events:r.events,timestamp:r.timestamp,calendarsMap:x,...q})]}))}))})]})};
|
|
84
|
+
|
|
85
|
+
let KoineCalendarLegend=({calendarsMap:a={},toggleCalendarVisibility:s,LegendItem:d="div",LegendItemStatus:i="span",LegendItemLabel:l="span",LegendItemEvents:t="span"})=>// const sorted = Object.entries(calendarsMap).sort((a, b) => {
|
|
86
|
+
// const { name: nameA } = a[1];
|
|
87
|
+
// const { name: nameB } = b[1];
|
|
88
|
+
// if (nameA < nameB) return -1;
|
|
89
|
+
// else if (nameA > nameB) return 1;
|
|
90
|
+
// else return 0;
|
|
91
|
+
// });
|
|
92
|
+
/*#__PURE__*/jsx(Fragment$1,{children:Object.entries(a).map(([r,a])=>/*#__PURE__*/jsxs(d,{onClick:()=>s(r),$color:a.color,$empty:0===a.events,disabled:0===a.events,children:[/*#__PURE__*/jsx(i,{children:a.on?"⬤":"⭘"}),/*#__PURE__*/jsx(l,{children:a.name}),/*#__PURE__*/jsx(t,{children:a.events})]},"CalendarLegend."+r))});
|
|
93
|
+
|
|
94
|
+
/** Fall back to `process.env.GOOGLE_CALENDAR_API_KEY *//** Start gethering events from date *//** End gethering events at date *//**
|
|
95
|
+
* The default is the time zone of the calendar
|
|
96
|
+
* @see https://developers.google.com/calendar/api/v3/reference/events/list
|
|
97
|
+
*//** The calendars settings */let getCalendarsEventsFromGoogle=async({calendars:e,...t})=>{let a={};return await Promise.all(e.map(async e=>{addCalendarEvents(await o({calendar:e,...t}),a);})),a};/** The calendar settings */async function o({apiKey:i,calendar:o,timeZone:m="",start:d,end:l}){let c={},u=new URLSearchParams({calendarId:o.id,timeZone:m,singleEvents:"true",maxAttendees:"1",maxResults:"9999",sanitizeHtml:"true",timeMin:d.toISOString(),timeMax:l.toISOString(),key:i||process.env.GOOGLE_CALENDAR_API_KEY||""}).toString(),f=/**
|
|
98
|
+
* Google event as it comes from Google's API
|
|
99
|
+
*//**
|
|
100
|
+
* Google calendar as it comes from Google's API
|
|
101
|
+
*//**
|
|
102
|
+
* Google event's date as it comes from Google's API
|
|
103
|
+
*//** When the event is "all day" we have `date` instead of `dateTime` */"https://www.googleapis.com/calendar/v3/calendars/"+o.id+"/events?"+u;try{let i=await fetch(f,{method:"GET"}),m=await i.json();o.name=o.name||m.summary,m.items.forEach(i=>{let m=function(i,o){let m=new Date(i.created),d=i.htmlLink,l=i.summary,c=i.status,u=new Date(i.start.date||i.start.dateTime),f=new Date(i.end.date||i.end.dateTime),w=o.color,g=isUndefined(i.end.dateTime)&&isString(i.end.date),p=i.location||"",D=i.description||"",// FIXME: he.decode(event.description || '');
|
|
104
|
+
h=m.getTime()+""+u.getTime();// multi-days all day events has as end date the date after to what we actually
|
|
105
|
+
// mean, hence we subtract one day. @see https://support.google.com/calendar/thread/10074544/google-calendar-all-day-events-are-showing-up-as-a-24-hr-event-across-time-zones?hl=en
|
|
106
|
+
g&&f>u&&(f=subDays(f,1)).setHours(23,59,59);let y=function(){let t=new Date(u),a=new Date(f),n=[getEventTimestamp(t)];for(;differenceInDays(a,t);)// console.log(title, differenceInDays(to, from))
|
|
107
|
+
t.setDate(t.getDate()+1),n.push(getEventTimestamp(t));return n}(),E=arrayToLookup(y),S=y.length>1;return {calendar:o,created:m,link:d,title:l,status:c,start:u,end:f,days:y,daysMap:E,multi:S,color:w,allDay:g,location:p,description:D,uid:h}}(i,o);c[m.uid]=m;});}catch(e){}// if (onError) onError(e);
|
|
108
|
+
return c}
|
|
109
|
+
|
|
110
|
+
/** The locale to format with `date-fns` *//** Calendars infos to use *//** Fall back to `process.env.GOOGLE_CALENDAR_API_KEY *//** The key is the event `uid` *//** It defaults to the first of the current month *//** It defaults to the last day of the current month *//**
|
|
111
|
+
* The calendar view
|
|
112
|
+
* @default "month"
|
|
113
|
+
*//**
|
|
114
|
+
* The default is the time zone of the calendar
|
|
115
|
+
* @see https://developers.google.com/calendar/api/v3/reference/events/list
|
|
116
|
+
*/let useCalendar=({locale:d,apiKey:c,calendars:p,events:g,start:m,end:y,view:v="month",timeZone:f="",onError:b})=>{let[w,T]=useState(v),D=m||getStartDate(new Date,w),h=y||getEndDate(D,w),[O,P]=useState([D,h]),[j,x]=useState(isTodayInView(D,h)),[C,L]=useState(g||{}),[N,k]=useState(null),[q,z]=useState(null),[A,B]=useReducer((e,t)=>{let{type:l}=t;switch(l){case"events":{let l=t.payload;return Object.entries(e).reduce((e,[t,n])=>(e[t]={...n,events:l[t]||0},e),{})}case"visibility":{let l=t.payload;if("string"==typeof l)return {...e,[l]:{...e[l],on:!e[l].on}};return Object.entries(e).reduce((e,[t,n])=>(e[t]={...n,on:l.indexOf(t)>-1},e),{})}default:return e}},// initial state
|
|
117
|
+
p.reduce((e,t)=>(e[t.id]={...t,name:t.name||"",on:!0,events:0},e),{})),E=useCallback(e=>{B({type:"visibility",payload:e});},[B]),F=useCallback(e=>{let t={};for(let l in e){let{id:n}=e[l].calendar;t[n]=t[n]||0,t[n]++;}B({type:"events",payload:t});},[]),G=useCallback(async(e,t,l)=>{try{let n=await getCalendarsEventsFromGoogle({apiKey:c,calendars:e,timeZone:f,start:t,end:l});// setEvents(mergeCalendarEvents(events, newEvents));
|
|
118
|
+
L(n);}catch(e){b&&b(e);}},[L,c,f,b]),H=useCallback(()=>{let[e,t]=O,l=getStartDate(new Date,w),n=getEndDate(l,w);P([l,n]),// reset event only if we are not on the current view already
|
|
119
|
+
(e.getTime()!==l.getTime()||t.getTime()!==n.getTime())&&(z(null),k(null));},[w,O]),I=useCallback(()=>{P(([e])=>{let t=getPrevDate(e,w),l=getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),J=useCallback(()=>{P(([e])=>{let t=getNextDate(e,w),l=getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),K=useCallback(e=>{let t=getStartDate(D,e),l=getEndDate(t,e);P([t,l]),T(e),z(null),k(null);},[D]);return useEffect(()=>{let[e,t]=O;G(p,e,t),x(isTodayInView(e,t));},// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
120
|
+
[O]),useEffect(()=>{C&&F(C);},[C,F]),// when toggling a calendar we also remove the clicked event if that belongs
|
|
121
|
+
// to a now hidden calendar
|
|
122
|
+
useEffect(()=>{q&&!A[q.calendar.id].on&&z(null);},[A,q,z]),{view:w,eventClicked:q,setEventClicked:z,eventHovered:N,setEventHovered:k,getDaygridNavProps:()=>({locale:d,handlePrev:I,handleNext:J,handleToday:H,handleView:K,todayInView:j,range:O,view:w}),getDaygridTableProps:()=>({locale:d,events:C,eventClicked:q,setEventClicked:z,eventHovered:N,setEventHovered:k,handlePrev:I,handleNext:J,calendarsMap:A,range:O,view:w}),getLegendProps:()=>({calendarsMap:A,toggleCalendarVisibility:E})}};
|
|
123
|
+
|
|
124
|
+
export { CalendarDaygridCell, KoineCalendarDaygridNav, KoineCalendarDaygridTable, KoineCalendarLegend, useCalendar, useDateLocale };
|
package/classed.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./classed.cjs.js').default;
|
package/classed.cjs.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
// React.ComponentProps<typeof Component>
|
|
8
|
+
// ? @see https://react-typescript-cheatsheet.netlify.app/docs/advanced/patterns_by_usecase/#props-extracting-prop-types-of-a-component
|
|
9
|
+
// type ClassedComponent<Props = {}> =
|
|
10
|
+
// | React.ElementType<Props>
|
|
11
|
+
// | OverridableComponent<any>
|
|
12
|
+
// | React.Component<Props>
|
|
13
|
+
// | React.FunctionComponent<Props>
|
|
14
|
+
// | React.ReactElement<Props>
|
|
15
|
+
// | React.ReactHTMLElement<any>
|
|
16
|
+
// | string // | JSX.IntrinsicElements
|
|
17
|
+
// | ((props: Props) => JSX.Element);
|
|
18
|
+
/**
|
|
19
|
+
* This utility allows to extend a component a là `styled-components` but for
|
|
20
|
+
* a className based styling solution like Tailwind,
|
|
21
|
+
*
|
|
22
|
+
* It also plays nicely with tailwind intellisense:
|
|
23
|
+
* - https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssclassattributes
|
|
24
|
+
*
|
|
25
|
+
* For references about tagged functions:
|
|
26
|
+
* - https://javascript.plainenglish.io/how-css-in-js-libraries-work-da4145b1b6c7
|
|
27
|
+
* - https://makersden.io/blog/reverse-engineering-styled-components
|
|
28
|
+
* - https://typesafe.blog/article/the-logic-behind-javascript-tag-functions
|
|
29
|
+
* - https://flaming.codes/posts/typescript-and-javascript-tagged-template-strings
|
|
30
|
+
*
|
|
31
|
+
* Similar projects:
|
|
32
|
+
* - https://reactjsexample.com/style-radix-ui-components-with-tailwindcss/
|
|
33
|
+
*
|
|
34
|
+
* Discussions and Q/A:
|
|
35
|
+
* - https://stackoverflow.com/q/73055695/1938970
|
|
36
|
+
*/let classed=r=>{// @ts-expect-error nevermind for now...
|
|
37
|
+
let s=r.type||r;return function(r,...a){// FIXME: not sure if this is needed
|
|
38
|
+
// WrappedComponent.displayName = type.toString();
|
|
39
|
+
return /*#__PURE__*/react.forwardRef(// Props
|
|
40
|
+
function(e,n){let o=a.map((t,s)=>{let a="";return "function"==typeof t?a=t(e):void 0!==t&&(a=t.toString()),r[s]+a}).join(""),l="string"==typeof s,i=l?{}:e;if(l)for(let t in e)// like styled-components `transient` props
|
|
41
|
+
t.startsWith("$")||// FIXME: for react 18 we need: @ts-expect-error
|
|
42
|
+
(i[t]=e[t]);// get the tagged function string outcome
|
|
43
|
+
let c=o||r[0];return(// add the custom classes from props
|
|
44
|
+
c=// check if we need to clean it or not from the optional structure `< class="..."`
|
|
45
|
+
(c.match(/class="([^"]*)/)?.[1]||c)+(e?.className?" "+e?.className:""),/*#__PURE__*/react.createElement(s,{// ...props,
|
|
46
|
+
...i,// only add ot props if it is not an empty string
|
|
47
|
+
className:c||void 0,// add ref to props
|
|
48
|
+
ref:n}))})}};// as unknown as React.ReactElement<typeof props>;
|
|
49
|
+
|
|
50
|
+
exports.classed = classed;
|
|
51
|
+
exports["default"] = classed;
|
package/classed.cjs.mjs
ADDED
package/classed.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type ClassedAugmentedProps<Props> = Props & {
|
|
3
|
+
className?: string;
|
|
4
|
+
ref?: React.Ref<any>;
|
|
5
|
+
};
|
|
6
|
+
type ClassedFinalProps<Props, Component> = Component extends React.ReactHTML ? React.HTMLProps<Component> & ClassedAugmentedProps<Props> : ClassedAugmentedProps<Props>;
|
|
7
|
+
export declare let classed: <Props, Component extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = any>(component: Component) => (strings: TemplateStringsArray, ...args: ((props: Props) => string)[] | string[]) => React.ForwardRefExoticComponent<React.PropsWithoutRef<ClassedFinalProps<Props, Component>> & React.RefAttributes<Component>>;
|
|
8
|
+
export default classed;
|
package/classed.esm.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { forwardRef, createElement } from 'react';
|
|
2
|
+
|
|
3
|
+
// React.ComponentProps<typeof Component>
|
|
4
|
+
// ? @see https://react-typescript-cheatsheet.netlify.app/docs/advanced/patterns_by_usecase/#props-extracting-prop-types-of-a-component
|
|
5
|
+
// type ClassedComponent<Props = {}> =
|
|
6
|
+
// | React.ElementType<Props>
|
|
7
|
+
// | OverridableComponent<any>
|
|
8
|
+
// | React.Component<Props>
|
|
9
|
+
// | React.FunctionComponent<Props>
|
|
10
|
+
// | React.ReactElement<Props>
|
|
11
|
+
// | React.ReactHTMLElement<any>
|
|
12
|
+
// | string // | JSX.IntrinsicElements
|
|
13
|
+
// | ((props: Props) => JSX.Element);
|
|
14
|
+
/**
|
|
15
|
+
* This utility allows to extend a component a là `styled-components` but for
|
|
16
|
+
* a className based styling solution like Tailwind,
|
|
17
|
+
*
|
|
18
|
+
* It also plays nicely with tailwind intellisense:
|
|
19
|
+
* - https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssclassattributes
|
|
20
|
+
*
|
|
21
|
+
* For references about tagged functions:
|
|
22
|
+
* - https://javascript.plainenglish.io/how-css-in-js-libraries-work-da4145b1b6c7
|
|
23
|
+
* - https://makersden.io/blog/reverse-engineering-styled-components
|
|
24
|
+
* - https://typesafe.blog/article/the-logic-behind-javascript-tag-functions
|
|
25
|
+
* - https://flaming.codes/posts/typescript-and-javascript-tagged-template-strings
|
|
26
|
+
*
|
|
27
|
+
* Similar projects:
|
|
28
|
+
* - https://reactjsexample.com/style-radix-ui-components-with-tailwindcss/
|
|
29
|
+
*
|
|
30
|
+
* Discussions and Q/A:
|
|
31
|
+
* - https://stackoverflow.com/q/73055695/1938970
|
|
32
|
+
*/let classed=r=>{// @ts-expect-error nevermind for now...
|
|
33
|
+
let s=r.type||r;return function(r,...a){// FIXME: not sure if this is needed
|
|
34
|
+
// WrappedComponent.displayName = type.toString();
|
|
35
|
+
return /*#__PURE__*/forwardRef(// Props
|
|
36
|
+
function(e,n){let o=a.map((t,s)=>{let a="";return "function"==typeof t?a=t(e):void 0!==t&&(a=t.toString()),r[s]+a}).join(""),l="string"==typeof s,i=l?{}:e;if(l)for(let t in e)// like styled-components `transient` props
|
|
37
|
+
t.startsWith("$")||// FIXME: for react 18 we need: @ts-expect-error
|
|
38
|
+
(i[t]=e[t]);// get the tagged function string outcome
|
|
39
|
+
let c=o||r[0];return(// add the custom classes from props
|
|
40
|
+
c=// check if we need to clean it or not from the optional structure `< class="..."`
|
|
41
|
+
(c.match(/class="([^"]*)/)?.[1]||c)+(e?.className?" "+e?.className:""),/*#__PURE__*/createElement(s,{// ...props,
|
|
42
|
+
...i,// only add ot props if it is not an empty string
|
|
43
|
+
className:c||void 0,// add ref to props
|
|
44
|
+
ref:n}))})}};// as unknown as React.ReactElement<typeof props>;
|
|
45
|
+
|
|
46
|
+
export { classed, classed as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./createUseMediaQueryWidth.cjs.js').default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var utils = require('@koine/utils');
|
|
7
|
+
var useIsomorphicLayoutEffect = require('./useIsomorphicLayoutEffect.cjs.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Use `null` instead of `false` as default value, @see https://observablehq.com/@werehamster/avoiding-hydration-mismatch-when-using-react-hooks
|
|
11
|
+
*
|
|
12
|
+
* @param customBreakpoints
|
|
13
|
+
* @returns
|
|
14
|
+
*/let createUseMediaQueryWidth=n=>{let a=utils.getMediaQueryWidthResolvers(n);return function(t,n){let[o,s]=t.substring(1).split("-");utils.isUndefined(s)&&(s=o),utils.isUndefined(o)&&(o="min");// with the hook creator approach these breakpoint types cannot be deduced
|
|
15
|
+
// const [br1, br2] = ruleBreakpoint.split("-") as Split<
|
|
16
|
+
// typeof ruleBreakpoint,
|
|
17
|
+
// "-"
|
|
18
|
+
// >;
|
|
19
|
+
let[d,m]=s.split("_"),u=a[o](d,m),[c,l]=react.useState(utils.isUndefined(n)?null:n);return useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(()=>{let e=window.matchMedia(u),t=e=>{l(e.matches);};return(// Safari < 14 can't use addEventListener on a MediaQueryList
|
|
20
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList#Browser_compatibility
|
|
21
|
+
(l(e.matches),e.addEventListener)?(e.addEventListener("change",t),()=>{e.removeEventListener("change",t);}):(// Update the state whenever the media query match state changes
|
|
22
|
+
e.addListener(t),// Clean up on unmount and if the query changes
|
|
23
|
+
()=>{e.removeListener(t);}))},[u]),c}};//// without creator it would be:
|
|
24
|
+
|
|
25
|
+
exports.createUseMediaQueryWidth = createUseMediaQueryWidth;
|
|
26
|
+
exports["default"] = createUseMediaQueryWidth;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type GetMediaQueryWidthResolversBreakpoints } from "@koine/utils";
|
|
2
|
+
type _MediaQuerWidthDefExplicit<TBreakpoint extends string> = `min-${TBreakpoint}` | `max-${TBreakpoint}` | `up-${TBreakpoint}` | `down-${TBreakpoint}` | `between-${TBreakpoint}_${TBreakpoint}` | `only-${TBreakpoint}`;
|
|
3
|
+
export type MediaQuerWidthDef<TBreakpoint extends string> = `${TBreakpoint}` | _MediaQuerWidthDefExplicit<TBreakpoint>;
|
|
4
|
+
export type MediaQueryWidth<TBreakpoint extends string> = `@${MediaQuerWidthDef<TBreakpoint>}`;
|
|
5
|
+
export declare let createUseMediaQueryWidth: <TBreakpointsConfig extends GetMediaQueryWidthResolversBreakpoints>(customBreakpoints: TBreakpointsConfig) => <TBreakpoints extends Extract<keyof TBreakpointsConfig, string>>(media: MediaQueryWidth<TBreakpoints>, serverValue?: null | boolean) => boolean | null;
|
|
6
|
+
export default createUseMediaQueryWidth;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { getMediaQueryWidthResolvers, isUndefined } from '@koine/utils';
|
|
3
|
+
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.esm.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Use `null` instead of `false` as default value, @see https://observablehq.com/@werehamster/avoiding-hydration-mismatch-when-using-react-hooks
|
|
7
|
+
*
|
|
8
|
+
* @param customBreakpoints
|
|
9
|
+
* @returns
|
|
10
|
+
*/let createUseMediaQueryWidth=n=>{let a=getMediaQueryWidthResolvers(n);return function(t,n){let[o,s]=t.substring(1).split("-");isUndefined(s)&&(s=o),isUndefined(o)&&(o="min");// with the hook creator approach these breakpoint types cannot be deduced
|
|
11
|
+
// const [br1, br2] = ruleBreakpoint.split("-") as Split<
|
|
12
|
+
// typeof ruleBreakpoint,
|
|
13
|
+
// "-"
|
|
14
|
+
// >;
|
|
15
|
+
let[d,m]=s.split("_"),u=a[o](d,m),[c,l]=useState(isUndefined(n)?null:n);return useIsomorphicLayoutEffect(()=>{let e=window.matchMedia(u),t=e=>{l(e.matches);};return(// Safari < 14 can't use addEventListener on a MediaQueryList
|
|
16
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList#Browser_compatibility
|
|
17
|
+
(l(e.matches),e.addEventListener)?(e.addEventListener("change",t),()=>{e.removeEventListener("change",t);}):(// Update the state whenever the media query match state changes
|
|
18
|
+
e.addListener(t),// Clean up on unmount and if the query changes
|
|
19
|
+
()=>{e.removeListener(t);}))},[u]),c}};//// without creator it would be:
|
|
20
|
+
|
|
21
|
+
export { createUseMediaQueryWidth, createUseMediaQueryWidth as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./extendComponent.cjs.js').default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
let extendComponent=(t,o)=>// const NewComponent = forwardRef<React.ComponentProps<Component>, Component>(
|
|
8
|
+
// (props, ref) => createElement(component, { ...props, ref })
|
|
9
|
+
// );
|
|
10
|
+
Object.assign(// FIXME: check if we need to forwardRef or not
|
|
11
|
+
o=>react.createElement(t,o),{...o,defaultProps:o});
|
|
12
|
+
|
|
13
|
+
exports["default"] = extendComponent;
|
|
14
|
+
exports.extendComponent = extendComponent;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
export type ExtendableComponent<Props = any> = React.ForwardRefExoticComponent<Props> | React.ExoticComponent<Props> | React.FC<Props> | ((props: Props) => JSX.Element);
|
|
3
|
-
export declare
|
|
2
|
+
export declare let extendComponent: <Component extends ExtendableComponent<any>, DefaultProps extends {}>(component: Component, defaultProps: DefaultProps) => ((props: React.ComponentProps<Component>) => import("react").FunctionComponentElement<any>) & DefaultProps & {
|
|
4
3
|
defaultProps: DefaultProps;
|
|
5
4
|
};
|
|
6
5
|
export interface OverridableComponents {
|
|
@@ -10,17 +9,6 @@ export interface OverridableComponents {
|
|
|
10
9
|
motionable?: boolean;
|
|
11
10
|
};
|
|
12
11
|
}
|
|
13
|
-
/**
|
|
14
|
-
* Type to define a component that has overridable components.
|
|
15
|
-
*
|
|
16
|
-
* Each of them can define its:
|
|
17
|
-
* - `type`: either as a native HTMLElement (the props for that element will be
|
|
18
|
-
* automatically inferred) or as a custom React component
|
|
19
|
-
* - `props`: any additional custom props
|
|
20
|
-
* - `motionable`: if that component has a possible implementation with `framer-motion`,
|
|
21
|
-
* in that case we remove some HTMLAttributes props which collides with
|
|
22
|
-
* `MotionProps` from framer.
|
|
23
|
-
*/
|
|
24
12
|
export type WithComponents<Props, Components extends OverridableComponents> = Props & {
|
|
25
13
|
[Name in keyof Components]: NonNullable<Components[Name]["type"] extends keyof JSX.IntrinsicElements ? React.ElementType<Components[Name]["motionable"] extends true ? Omit<React.ComponentPropsWithoutRef<Components[Name]["type"]>, HtmlAttributesCollidingWithMotionProps> & Components[Name]["props"] : React.ComponentPropsWithoutRef<Components[Name]["type"]> & Components[Name]["props"]> : Components[Name]["type"]>;
|
|
26
14
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createElement } from 'react';
|
|
2
|
+
|
|
3
|
+
let extendComponent=(t,o)=>// const NewComponent = forwardRef<React.ComponentProps<Component>, Component>(
|
|
4
|
+
// (props, ref) => createElement(component, { ...props, ref })
|
|
5
|
+
// );
|
|
6
|
+
Object.assign(// FIXME: check if we need to forwardRef or not
|
|
7
|
+
o=>createElement(t,o),{...o,defaultProps:o});
|
|
8
|
+
|
|
9
|
+
export { extendComponent as default, extendComponent };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ObjectShape } from "@kuus/yup";
|
|
2
|
+
export declare let encodeForm: <T extends ObjectShape = {}>(validationRules: T) => {
|
|
3
|
+
encodedSchema: import("@kuus/yup").ObjectSchema<{
|
|
4
|
+
[x: string]: T[keyof T] extends import("@kuus/yup").ISchema<any, any, any, any> ? T[keyof T]["__outputType"] : T[keyof T] extends {
|
|
5
|
+
readonly key: string;
|
|
6
|
+
readonly isContext: boolean;
|
|
7
|
+
readonly isValue: boolean;
|
|
8
|
+
readonly isSibling: boolean;
|
|
9
|
+
readonly path: any;
|
|
10
|
+
readonly getter: (data: unknown) => unknown;
|
|
11
|
+
readonly map?: ((value: unknown) => infer T_1) | undefined;
|
|
12
|
+
readonly __isYupRef: boolean;
|
|
13
|
+
getValue(value: any, parent?: {} | undefined, context?: {} | undefined): infer T_1;
|
|
14
|
+
cast(value: any, options?: {
|
|
15
|
+
parent?: {} | undefined;
|
|
16
|
+
context?: {} | undefined;
|
|
17
|
+
} | undefined): infer T_1;
|
|
18
|
+
resolve(): any;
|
|
19
|
+
describe(): import("@kuus/yup").SchemaRefDescription;
|
|
20
|
+
toString(): string;
|
|
21
|
+
} ? T_1 : unknown;
|
|
22
|
+
}, import("@kuus/yup").AnyObject, {
|
|
23
|
+
[x: string]: T[keyof T] extends import("@kuus/yup").ISchema<any, import("@kuus/yup").AnyObject, any, any> ? T[keyof T]["__default"] : undefined;
|
|
24
|
+
}, "">;
|
|
25
|
+
encodedNames: Record<keyof T, string>;
|
|
26
|
+
};
|
|
27
|
+
export declare let decodeForm: <ReturnAs extends Record<string, unknown> = {}, FormData extends Record<string, unknown> = {}>(formData: FormData) => ReturnAs;
|
package/forms.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./forms";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./forms.cjs.js').default;
|
package/forms.cjs.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var yup = require('@kuus/yup');
|
|
6
|
+
var utils = require('@koine/utils');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Encode form
|
|
10
|
+
*
|
|
11
|
+
* Takes a record of yup validations and outputs a `yup` schema with encoded
|
|
12
|
+
* names (antispam technique) and a record of the encoded/decoded input `name`s.
|
|
13
|
+
*
|
|
14
|
+
* We skip the names prefixed wth an underscore which are considered programmatic
|
|
15
|
+
* form data not created by user input.
|
|
16
|
+
*
|
|
17
|
+
* FIXME: types https://github.com/jquense/yup/issues/1700
|
|
18
|
+
*/let encodeForm=t=>{let o={},i={};for(let e in t)if(!e.startsWith("_")){let l=utils.encode(e);o[l]=t[e],i[e]=l;}return {encodedSchema:// we need `.required()` to correctly infer the type @see
|
|
19
|
+
// https://github.com/jquense/yup/issues/946
|
|
20
|
+
yup.object(o).required(),encodedNames:i}};/**
|
|
21
|
+
* Decode form data
|
|
22
|
+
*
|
|
23
|
+
* This function is meant to be used inside an api endpoint to gather an encoded
|
|
24
|
+
* form submit data and transform it to the decoded desired json data.
|
|
25
|
+
*
|
|
26
|
+
* Here too we skip encoding/decoding process for names prefixed wth an underscore
|
|
27
|
+
* which are considered programmatic form data not created by user input.
|
|
28
|
+
*/let decodeForm=e=>{let r={};for(let i in e){let l=utils.decode(i);// always add underscore prefixed names as they are treated as internal
|
|
29
|
+
// private inputs outside of the honeypot system, normalise them here removing
|
|
30
|
+
// the underscore prefix
|
|
31
|
+
i.startsWith("_")?// @ts-expect-error nevermind
|
|
32
|
+
r[i.substring(1)]=e[i]:utils.isUndefined(e[i])||""!==e[l]||// @ts-expect-error nevermind
|
|
33
|
+
(r[l]=e[i]);}// console.log(formData, decoded, json);
|
|
34
|
+
return r};
|
|
35
|
+
|
|
36
|
+
exports.decodeForm = decodeForm;
|
|
37
|
+
exports.encodeForm = encodeForm;
|
package/forms.cjs.mjs
ADDED
package/forms.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./forms/antispam";
|
package/forms.esm.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { object } from '@kuus/yup';
|
|
2
|
+
import { encode, decode, isUndefined } from '@koine/utils';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Encode form
|
|
6
|
+
*
|
|
7
|
+
* Takes a record of yup validations and outputs a `yup` schema with encoded
|
|
8
|
+
* names (antispam technique) and a record of the encoded/decoded input `name`s.
|
|
9
|
+
*
|
|
10
|
+
* We skip the names prefixed wth an underscore which are considered programmatic
|
|
11
|
+
* form data not created by user input.
|
|
12
|
+
*
|
|
13
|
+
* FIXME: types https://github.com/jquense/yup/issues/1700
|
|
14
|
+
*/let encodeForm=t=>{let o={},i={};for(let e in t)if(!e.startsWith("_")){let l=encode(e);o[l]=t[e],i[e]=l;}return {encodedSchema:// we need `.required()` to correctly infer the type @see
|
|
15
|
+
// https://github.com/jquense/yup/issues/946
|
|
16
|
+
object(o).required(),encodedNames:i}};/**
|
|
17
|
+
* Decode form data
|
|
18
|
+
*
|
|
19
|
+
* This function is meant to be used inside an api endpoint to gather an encoded
|
|
20
|
+
* form submit data and transform it to the decoded desired json data.
|
|
21
|
+
*
|
|
22
|
+
* Here too we skip encoding/decoding process for names prefixed wth an underscore
|
|
23
|
+
* which are considered programmatic form data not created by user input.
|
|
24
|
+
*/let decodeForm=e=>{let r={};for(let i in e){let l=decode(i);// always add underscore prefixed names as they are treated as internal
|
|
25
|
+
// private inputs outside of the honeypot system, normalise them here removing
|
|
26
|
+
// the underscore prefix
|
|
27
|
+
i.startsWith("_")?// @ts-expect-error nevermind
|
|
28
|
+
r[i.substring(1)]=e[i]:isUndefined(e[i])||""!==e[l]||// @ts-expect-error nevermind
|
|
29
|
+
(r[l]=e[i]);}// console.log(formData, decoded, json);
|
|
30
|
+
return r};
|
|
31
|
+
|
|
32
|
+
export { decodeForm, encodeForm };
|
package/index.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./index.cjs.js').default;
|
package/index.cjs.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var classed = require('./classed.cjs.js');
|
|
6
|
+
var createUseMediaQueryWidth = require('./createUseMediaQueryWidth.cjs.js');
|
|
7
|
+
var extendComponent = require('./extendComponent.cjs.js');
|
|
8
|
+
var FaviconTags = require('./FaviconTags.cjs.js');
|
|
9
|
+
var mergeRefs = require('./mergeRefs.cjs.js');
|
|
10
|
+
var Meta = require('./Meta.cjs.js');
|
|
11
|
+
var NoJs = require('./NoJs.cjs.js');
|
|
12
|
+
var useAsyncFn = require('./useAsyncFn.cjs.js');
|
|
13
|
+
var useFirstMountState = require('./useFirstMountState.cjs.js');
|
|
14
|
+
var useFixedOffset = require('./useFixedOffset.cjs.js');
|
|
15
|
+
var useFocus = require('./useFocus.cjs.js');
|
|
16
|
+
var useInterval = require('./useInterval.cjs.js');
|
|
17
|
+
var useIsomorphicLayoutEffect = require('./useIsomorphicLayoutEffect.cjs.js');
|
|
18
|
+
var useKeyUp = require('./useKeyUp.cjs.js');
|
|
19
|
+
var useMeasure = require('./useMeasure.cjs.js');
|
|
20
|
+
var useMountedState = require('./useMountedState.cjs.js');
|
|
21
|
+
var useNavigateAway = require('./useNavigateAway.cjs.js');
|
|
22
|
+
var usePrevious = require('./usePrevious.cjs.js');
|
|
23
|
+
var usePreviousRef = require('./usePreviousRef.cjs.js');
|
|
24
|
+
var useScrollPosition = require('./useScrollPosition.cjs.js');
|
|
25
|
+
var useScrollThreshold = require('./useScrollThreshold.cjs.js');
|
|
26
|
+
var useSmoothScroll = require('./useSmoothScroll.cjs.js');
|
|
27
|
+
var useSpinDelay = require('./useSpinDelay.cjs.js');
|
|
28
|
+
var useTraceUpdate = require('./useTraceUpdate.cjs.js');
|
|
29
|
+
var useUpdateEffect = require('./useUpdateEffect.cjs.js');
|
|
30
|
+
var useWindowSize = require('./useWindowSize.cjs.js');
|
|
31
|
+
require('react');
|
|
32
|
+
require('@koine/utils');
|
|
33
|
+
require('react/jsx-runtime');
|
|
34
|
+
require('@koine/dom');
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
exports.classed = classed.classed;
|
|
39
|
+
exports.createUseMediaQueryWidth = createUseMediaQueryWidth.createUseMediaQueryWidth;
|
|
40
|
+
exports.extendComponent = extendComponent.extendComponent;
|
|
41
|
+
exports.FaviconTags = FaviconTags.FaviconTags;
|
|
42
|
+
exports.mergeRefs = mergeRefs.mergeRefs;
|
|
43
|
+
exports.Meta = Meta.Meta;
|
|
44
|
+
exports.NoJs = NoJs.NoJs;
|
|
45
|
+
exports.useAsyncFn = useAsyncFn.useAsyncFn;
|
|
46
|
+
exports.useFirstMountState = useFirstMountState.useFirstMountState;
|
|
47
|
+
exports.useFixedOffset = useFixedOffset.useFixedOffset;
|
|
48
|
+
exports.useFocus = useFocus.useFocus;
|
|
49
|
+
exports.useInterval = useInterval.useInterval;
|
|
50
|
+
exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect.useIsomorphicLayoutEffect;
|
|
51
|
+
exports.useKeyUp = useKeyUp.useKeyUp;
|
|
52
|
+
exports.useMeasure = useMeasure.useMeasure;
|
|
53
|
+
exports.useMountedState = useMountedState.useMountedState;
|
|
54
|
+
exports.useNavigateAway = useNavigateAway.useNavigateAway;
|
|
55
|
+
exports.usePrevious = usePrevious.usePrevious;
|
|
56
|
+
exports.usePreviousRef = usePreviousRef.usePreviousRef;
|
|
57
|
+
exports.useScrollPosition = useScrollPosition.useScrollPosition;
|
|
58
|
+
exports.useScrollThreshold = useScrollThreshold.useScrollThreshold;
|
|
59
|
+
exports.useSmoothScroll = useSmoothScroll.useSmoothScroll;
|
|
60
|
+
exports.useSpinDelay = useSpinDelay.useSpinDelay;
|
|
61
|
+
exports.useTraceUpdate = useTraceUpdate.useTraceUpdate;
|
|
62
|
+
exports.useUpdateEffect = useUpdateEffect.useUpdateEffect;
|
|
63
|
+
exports.useWindowSize = useWindowSize.useWindowSize;
|
package/index.cjs.mjs
ADDED
package/index.d.ts
CHANGED
|
@@ -1 +1,28 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { classed } from "./classed";
|
|
2
|
+
export { createUseMediaQueryWidth, type MediaQuerWidthDef, type MediaQueryWidth, } from "./createUseMediaQueryWidth";
|
|
3
|
+
export { type ExtendableComponent, type OverridableComponents, type WithComponents, extendComponent, } from "./extendComponent";
|
|
4
|
+
export { FaviconTags, type FaviconTagsProps } from "./FaviconTags";
|
|
5
|
+
export { mergeRefs } from "./mergeRefs";
|
|
6
|
+
export { Meta, type MetaProps } from "./Meta";
|
|
7
|
+
export { NoJs, type NoJsProps } from "./NoJs";
|
|
8
|
+
export type { Polymorphic } from "./Polymorphic";
|
|
9
|
+
export { useAsyncFn, type UseAsyncFnReturn, type UseAsyncState, } from "./useAsyncFn";
|
|
10
|
+
export { useFirstMountState } from "./useFirstMountState";
|
|
11
|
+
export { useFixedOffset } from "./useFixedOffset";
|
|
12
|
+
export { useFocus } from "./useFocus";
|
|
13
|
+
export { useInterval } from "./useInterval";
|
|
14
|
+
export { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
|
|
15
|
+
export { useKeyUp } from "./useKeyUp";
|
|
16
|
+
export { useMeasure, type UseMeasureOptions, type UseMeasureReturn, } from "./useMeasure";
|
|
17
|
+
export { useMountedState } from "./useMountedState";
|
|
18
|
+
export { useNavigateAway, type UseNavigateAwayHandler, } from "./useNavigateAway";
|
|
19
|
+
export { usePrevious } from "./usePrevious";
|
|
20
|
+
export { usePreviousRef } from "./usePreviousRef";
|
|
21
|
+
export { useScrollPosition } from "./useScrollPosition";
|
|
22
|
+
export { useScrollThreshold } from "./useScrollThreshold";
|
|
23
|
+
export { useSmoothScroll } from "./useSmoothScroll";
|
|
24
|
+
export { useSpinDelay } from "./useSpinDelay";
|
|
25
|
+
export { useTraceUpdate } from "./useTraceUpdate";
|
|
26
|
+
export { useUpdateEffect } from "./useUpdateEffect";
|
|
27
|
+
export { useWindowSize } from "./useWindowSize";
|
|
28
|
+
export type { KoineComponentProps, KoineComponent } from "./types";
|