@koine/react 2.0.0-beta.21 → 2.0.0-beta.211
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.default.js +1 -0
- package/FaviconTags.cjs.js +10 -0
- package/FaviconTags.cjs.mjs +2 -0
- package/FaviconTags.d.ts +11 -1
- package/FaviconTags.esm.js +5 -0
- package/Meta.cjs.default.js +1 -0
- package/Meta.cjs.js +10 -0
- package/Meta.cjs.mjs +2 -0
- package/Meta.d.ts +11 -1
- package/Meta.esm.js +5 -0
- package/NoJs.cjs.default.js +1 -0
- package/NoJs.cjs.js +10 -0
- package/NoJs.cjs.mjs +2 -0
- package/NoJs.d.ts +2 -2
- package/NoJs.esm.js +5 -0
- package/Polymorphic.cjs.default.js +1 -0
- package/Polymorphic.cjs.js +2 -0
- package/Polymorphic.cjs.mjs +2 -0
- package/Polymorphic.d.ts +40 -0
- package/Polymorphic.esm.js +1 -0
- package/README.md +1 -0
- package/calendar/CalendarDaygridCell.cjs.js +9 -0
- package/{Calendar → calendar}/CalendarDaygridCell.d.ts +4 -4
- package/calendar/CalendarDaygridCell.esm.js +7 -0
- package/calendar/CalendarDaygridNav.cjs.js +9 -0
- package/{Calendar → calendar}/CalendarDaygridNav.d.ts +3 -3
- package/calendar/CalendarDaygridNav.esm.js +7 -0
- package/calendar/CalendarDaygridTable.cjs.js +13 -0
- package/{Calendar → calendar}/CalendarDaygridTable.d.ts +4 -4
- package/calendar/CalendarDaygridTable.esm.js +11 -0
- package/calendar/CalendarLegend.cjs.js +7 -0
- package/{Calendar → calendar}/CalendarLegend.d.ts +3 -3
- package/calendar/CalendarLegend.esm.js +5 -0
- package/calendar/calendar-api-google.cjs.js +10 -0
- package/calendar/calendar-api-google.d.ts +18 -0
- package/calendar/calendar-api-google.esm.js +8 -0
- package/{Calendar → calendar}/types.d.ts +19 -0
- package/calendar/useCalendar.cjs.js +9 -0
- package/{Calendar → calendar}/useCalendar.d.ts +19 -5
- package/calendar/useCalendar.esm.js +7 -0
- package/calendar/useDateLocale.cjs.js +7 -0
- package/calendar/useDateLocale.d.ts +8 -0
- package/calendar/useDateLocale.esm.js +5 -0
- package/calendar/utils.cjs.js +23 -0
- package/calendar/utils.d.ts +11 -0
- package/calendar/utils.esm.js +13 -0
- package/calendar.cjs.default.js +1 -0
- package/calendar.cjs.js +17 -0
- package/calendar.cjs.mjs +2 -0
- package/calendar.d.ts +7 -0
- package/calendar.esm.js +6 -0
- package/classed.cjs.default.js +1 -0
- package/classed.cjs.js +10 -0
- package/classed.cjs.mjs +2 -0
- package/classed.d.ts +21 -2
- package/classed.esm.js +5 -0
- package/createUseMediaQueryWidth.cjs.default.js +1 -0
- package/createUseMediaQueryWidth.cjs.js +12 -0
- package/createUseMediaQueryWidth.cjs.mjs +2 -0
- package/createUseMediaQueryWidth.d.ts +7 -1
- package/createUseMediaQueryWidth.esm.js +7 -0
- package/extendComponent.cjs.default.js +1 -0
- package/extendComponent.cjs.js +10 -0
- package/extendComponent.cjs.mjs +2 -0
- package/extendComponent.d.ts +13 -2
- package/extendComponent.esm.js +5 -0
- package/forms/antispam.cjs.js +9 -0
- package/forms/antispam.d.ts +47 -0
- package/forms/antispam.esm.js +6 -0
- package/forms.cjs.default.js +1 -0
- package/forms.cjs.js +8 -0
- package/forms.cjs.mjs +2 -0
- package/forms.d.ts +1 -0
- package/forms.esm.js +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +57 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +28 -25
- package/index.esm.js +26 -0
- package/mergeRefs.cjs.default.js +1 -0
- package/mergeRefs.cjs.js +8 -0
- package/mergeRefs.cjs.mjs +2 -0
- package/mergeRefs.d.ts +1 -2
- package/mergeRefs.esm.js +3 -0
- package/package.json +147 -579
- package/types.cjs.default.js +1 -0
- package/types.cjs.js +2 -0
- package/types.cjs.mjs +2 -0
- package/types.d.ts +1 -9
- package/types.esm.js +1 -0
- package/useAsyncFn.cjs.default.js +1 -0
- package/useAsyncFn.cjs.js +11 -0
- package/useAsyncFn.cjs.mjs +2 -0
- package/useAsyncFn.d.ts +6 -2
- package/useAsyncFn.esm.js +6 -0
- package/useFirstMountState.cjs.default.js +1 -0
- package/useFirstMountState.cjs.js +10 -0
- package/useFirstMountState.cjs.mjs +2 -0
- package/useFirstMountState.d.ts +4 -1
- package/useFirstMountState.esm.js +5 -0
- package/useFixedOffset.cjs.default.js +1 -0
- package/useFixedOffset.cjs.js +13 -0
- package/useFixedOffset.cjs.mjs +2 -0
- package/useFixedOffset.d.ts +10 -2
- package/useFixedOffset.esm.js +8 -0
- package/useFocus.cjs.default.js +1 -0
- package/useFocus.cjs.js +10 -0
- package/useFocus.cjs.mjs +2 -0
- package/useFocus.d.ts +4 -2
- package/useFocus.esm.js +5 -0
- package/useInterval.cjs.default.js +1 -0
- package/useInterval.cjs.js +11 -0
- package/useInterval.cjs.mjs +2 -0
- package/useInterval.d.ts +6 -1
- package/useInterval.esm.js +6 -0
- package/useIsomorphicLayoutEffect.cjs.default.js +1 -0
- package/useIsomorphicLayoutEffect.cjs.js +11 -0
- package/useIsomorphicLayoutEffect.cjs.mjs +2 -0
- package/useIsomorphicLayoutEffect.d.ts +4 -1
- package/useIsomorphicLayoutEffect.esm.js +6 -0
- package/useKeyUp.cjs.default.js +1 -0
- package/useKeyUp.cjs.js +11 -0
- package/useKeyUp.cjs.mjs +2 -0
- package/useKeyUp.d.ts +1 -1
- package/useKeyUp.esm.js +6 -0
- package/useMeasure.cjs.default.js +1 -0
- package/useMeasure.cjs.js +12 -0
- package/useMeasure.cjs.mjs +2 -0
- package/useMeasure.d.ts +6 -1
- package/useMeasure.esm.js +7 -0
- package/useMountedState.cjs.default.js +1 -0
- package/useMountedState.cjs.js +10 -0
- package/useMountedState.cjs.mjs +2 -0
- package/useMountedState.d.ts +4 -1
- package/useMountedState.esm.js +5 -0
- package/useNavigateAway.cjs.default.js +1 -0
- package/useNavigateAway.cjs.js +11 -0
- package/useNavigateAway.cjs.mjs +2 -0
- package/useNavigateAway.d.ts +30 -1
- package/useNavigateAway.esm.js +6 -0
- package/usePrevious.cjs.default.js +1 -0
- package/usePrevious.cjs.js +10 -0
- package/usePrevious.cjs.mjs +2 -0
- package/usePrevious.d.ts +4 -1
- package/usePrevious.esm.js +5 -0
- package/usePreviousRef.cjs.default.js +1 -0
- package/usePreviousRef.cjs.js +10 -0
- package/usePreviousRef.cjs.mjs +2 -0
- package/usePreviousRef.d.ts +1 -1
- package/usePreviousRef.esm.js +5 -0
- package/useReveal.d.ts +34 -0
- package/useScrollPosition.cjs.default.js +1 -0
- package/useScrollPosition.cjs.js +13 -0
- package/useScrollPosition.cjs.mjs +2 -0
- package/useScrollPosition.d.ts +8 -2
- package/useScrollPosition.esm.js +8 -0
- package/useScrollThreshold.cjs.default.js +1 -0
- package/useScrollThreshold.cjs.js +12 -0
- package/useScrollThreshold.cjs.mjs +2 -0
- package/useScrollThreshold.d.ts +1 -1
- package/useScrollThreshold.esm.js +7 -0
- package/useScrollTo.cjs.default.js +1 -0
- package/useScrollTo.cjs.js +10 -0
- package/useScrollTo.cjs.mjs +2 -0
- package/useScrollTo.d.ts +1 -1
- package/useScrollTo.esm.js +5 -0
- package/useSmoothScroll.cjs.default.js +1 -0
- package/useSmoothScroll.cjs.js +13 -0
- package/useSmoothScroll.cjs.mjs +2 -0
- package/useSmoothScroll.d.ts +7 -1
- package/useSmoothScroll.esm.js +8 -0
- package/useSpinDelay.cjs.default.js +1 -0
- package/useSpinDelay.cjs.js +10 -0
- package/useSpinDelay.cjs.mjs +2 -0
- package/useSpinDelay.d.ts +13 -1
- package/useSpinDelay.esm.js +5 -0
- package/useTraceUpdate.cjs.default.js +1 -0
- package/useTraceUpdate.cjs.js +10 -0
- package/useTraceUpdate.cjs.mjs +2 -0
- package/useTraceUpdate.d.ts +4 -1
- package/useTraceUpdate.esm.js +5 -0
- package/useUpdateEffect.cjs.default.js +1 -0
- package/useUpdateEffect.cjs.js +11 -0
- package/useUpdateEffect.cjs.mjs +2 -0
- package/useUpdateEffect.d.ts +4 -1
- package/useUpdateEffect.esm.js +6 -0
- package/useWindowSize.cjs.default.js +1 -0
- package/useWindowSize.cjs.js +11 -0
- package/useWindowSize.cjs.mjs +2 -0
- package/useWindowSize.d.ts +11 -2
- package/useWindowSize.esm.js +6 -0
- package/vite.config.d.ts +2 -0
- package/Alert/Alert.d.ts +0 -5
- package/Alert/Alert.js +0 -10
- package/Alert/index.d.ts +0 -1
- package/Alert/index.js +0 -1
- package/Animations/Reveal.d.ts +0 -3
- package/Animations/Reveal.js +0 -16
- package/Animations/Underline.d.ts +0 -1
- package/Animations/Underline.js +0 -5
- package/Animations/index.d.ts +0 -3
- package/Animations/index.js +0 -3
- package/Animations/useReveal.d.ts +0 -13
- package/Animations/useReveal.js +0 -43
- package/Autocomplete/AutocompleteDownshift.d.ts +0 -1
- package/Autocomplete/AutocompleteDownshift.js +0 -1
- package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +0 -1
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +0 -1
- package/Autocomplete/AutocompleteMui.d.ts +0 -22
- package/Autocomplete/AutocompleteMui.js +0 -93
- package/Autocomplete/AutocompleteReach.d.ts +0 -1
- package/Autocomplete/AutocompleteReach.js +0 -1
- package/Autocomplete/components.d.ts +0 -12
- package/Autocomplete/components.js +0 -26
- package/Autocomplete/helpers.d.ts +0 -3
- package/Autocomplete/helpers.js +0 -16
- package/Autocomplete/index.d.ts +0 -2
- package/Autocomplete/index.js +0 -1
- package/Bg/BgColor.d.ts +0 -12
- package/Bg/BgColor.js +0 -16
- package/Bg/BgPhoto.d.ts +0 -8
- package/Bg/BgPhoto.js +0 -16
- package/Bg/BgSvg.d.ts +0 -4
- package/Bg/BgSvg.js +0 -9
- package/Bg/index.d.ts +0 -3
- package/Bg/index.js +0 -3
- package/Breadcrumbs/Breadcrumbs.d.ts +0 -13
- package/Breadcrumbs/Breadcrumbs.js +0 -27
- package/Breadcrumbs/index.d.ts +0 -1
- package/Breadcrumbs/index.js +0 -1
- package/Buttons/Button.d.ts +0 -14
- package/Buttons/Button.js +0 -10
- package/Buttons/ButtonComposite.d.ts +0 -22
- package/Buttons/ButtonComposite.js +0 -28
- package/Buttons/ButtonFab.d.ts +0 -4
- package/Buttons/ButtonFab.js +0 -6
- package/Buttons/ButtonLink.d.ts +0 -8
- package/Buttons/ButtonLink.js +0 -11
- package/Buttons/IconButton.d.ts +0 -8
- package/Buttons/IconButton.js +0 -7
- package/Buttons/index.d.ts +0 -5
- package/Buttons/index.js +0 -5
- package/Calendar/CalendarDaygridCell.js +0 -46
- package/Calendar/CalendarDaygridNav.js +0 -24
- package/Calendar/CalendarDaygridTable.js +0 -45
- package/Calendar/CalendarLegend.js +0 -9
- package/Calendar/calendar-api-google.d.ts +0 -10
- package/Calendar/calendar-api-google.js +0 -124
- package/Calendar/index.d.ts +0 -6
- package/Calendar/index.js +0 -6
- package/Calendar/types.js +0 -1
- package/Calendar/useCalendar.js +0 -176
- package/Calendar/utils.d.ts +0 -11
- package/Calendar/utils.js +0 -185
- package/Carousel/Carousel.d.ts +0 -1
- package/Carousel/Carousel.js +0 -1
- package/Carousel/CarouselCss.d.ts +0 -13
- package/Carousel/CarouselCss.js +0 -19
- package/Carousel/index.d.ts +0 -1
- package/Carousel/index.js +0 -1
- package/Collapsable/Collapsable.d.ts +0 -1
- package/Collapsable/Collapsable.js +0 -1
- package/Collapsable/CollapsableReach.d.ts +0 -0
- package/Collapsable/CollapsableReach.js +0 -1
- package/Collapsable/index.d.ts +0 -1
- package/Collapsable/index.js +0 -1
- package/Debug/Debug.d.ts +0 -4
- package/Debug/Debug.js +0 -9
- package/Debug/index.d.ts +0 -1
- package/Debug/index.js +0 -1
- package/Details/Details.d.ts +0 -398
- package/Details/Details.js +0 -52
- package/Details/index.d.ts +0 -1
- package/Details/index.js +0 -1
- package/Dialog/DialogMui.d.ts +0 -165
- package/Dialog/DialogMui.js +0 -39
- package/Dialog/css/bare.d.ts +0 -171
- package/Dialog/css/bare.js +0 -21
- package/Dialog/index.d.ts +0 -2
- package/Dialog/index.js +0 -1
- package/Dialog/m/bare.d.ts +0 -4
- package/Dialog/m/bare.js +0 -3
- package/Dialog/m/basic.d.ts +0 -4
- package/Dialog/m/basic.js +0 -28
- package/Dialog/m/index.d.ts +0 -2
- package/Dialog/m/index.js +0 -4
- package/Dialog/sc/bare.d.ts +0 -61
- package/Dialog/sc/bare.js +0 -31
- package/Dialog/sc/framer.d.ts +0 -24
- package/Dialog/sc/framer.js +0 -16
- package/Dialog/sc/framerMaterial.d.ts +0 -24
- package/Dialog/sc/framerMaterial.js +0 -16
- package/Dialog/sc/material.d.ts +0 -60
- package/Dialog/sc/material.js +0 -21
- package/Dialog/tw/bare.d.ts +0 -208
- package/Dialog/tw/bare.js +0 -29
- package/Dialog/tw/elegant.d.ts +0 -270
- package/Dialog/tw/elegant.js +0 -21
- package/Dialog/tw/framer.d.ts +0 -108
- package/Dialog/tw/framer.js +0 -16
- package/Dialog/tw/framerMaterial.d.ts +0 -164
- package/Dialog/tw/framerMaterial.js +0 -16
- package/Dialog/tw/material.d.ts +0 -270
- package/Dialog/tw/material.js +0 -21
- package/Editor/Editor--tiptap.d.ts +0 -9
- package/Editor/Editor--tiptap.js +0 -26
- package/Editor/components.d.ts +0 -5
- package/Editor/components.js +0 -10
- package/Editor/index.d.ts +0 -1
- package/Editor/index.js +0 -1
- package/FaviconTags.js +0 -6
- package/Form/Form.d.ts +0 -125
- package/Form/Form.js +0 -60
- package/Form/index.d.ts +0 -1
- package/Form/index.js +0 -1
- package/Form/sc/bare.d.ts +0 -57
- package/Form/sc/bare.js +0 -20
- package/Forms/Checkbox/Checkbox.d.ts +0 -7
- package/Forms/Checkbox/Checkbox.js +0 -15
- package/Forms/Checkbox/index.d.ts +0 -1
- package/Forms/Checkbox/index.js +0 -1
- package/Forms/Feedback/Feedback.d.ts +0 -5
- package/Forms/Feedback/Feedback.js +0 -9
- package/Forms/Feedback/index.d.ts +0 -1
- package/Forms/Feedback/index.js +0 -1
- package/Forms/Field/Field.d.ts +0 -18
- package/Forms/Field/Field.js +0 -25
- package/Forms/Field/FieldControl.d.ts +0 -14
- package/Forms/Field/FieldControl.js +0 -35
- package/Forms/Field/FieldHint.d.ts +0 -1
- package/Forms/Field/FieldHint.js +0 -4
- package/Forms/Field/index.d.ts +0 -2
- package/Forms/Field/index.js +0 -2
- package/Forms/Input/Input.d.ts +0 -8
- package/Forms/Input/Input.js +0 -16
- package/Forms/Input/index.d.ts +0 -1
- package/Forms/Input/index.js +0 -1
- package/Forms/InputGroup/InputGroup.d.ts +0 -12
- package/Forms/InputGroup/InputGroup.js +0 -15
- package/Forms/InputGroup/index.d.ts +0 -1
- package/Forms/InputGroup/index.js +0 -1
- package/Forms/Label/Label.d.ts +0 -3
- package/Forms/Label/Label.js +0 -6
- package/Forms/Label/index.d.ts +0 -1
- package/Forms/Label/index.js +0 -1
- package/Forms/Password/Password.d.ts +0 -4
- package/Forms/Password/Password.js +0 -17
- package/Forms/Password/index.d.ts +0 -1
- package/Forms/Password/index.js +0 -1
- package/Forms/Radio/Radio.d.ts +0 -11
- package/Forms/Radio/Radio.js +0 -25
- package/Forms/Radio/index.d.ts +0 -1
- package/Forms/Radio/index.js +0 -1
- package/Forms/Switch/Switch.d.ts +0 -5
- package/Forms/Switch/Switch.js +0 -17
- package/Forms/Switch/index.d.ts +0 -1
- package/Forms/Switch/index.js +0 -1
- package/Forms/Textarea/Textarea.d.ts +0 -4
- package/Forms/Textarea/Textarea.js +0 -12
- package/Forms/Textarea/TextareaRich.d.ts +0 -5
- package/Forms/Textarea/TextareaRich.js +0 -26
- package/Forms/Textarea/index.d.ts +0 -2
- package/Forms/Textarea/index.js +0 -2
- package/Forms/Toggle/Toggle-tailwind.d.ts +0 -0
- package/Forms/Toggle/Toggle-tailwind.js +0 -1
- package/Forms/Toggle/Toggle.d.ts +0 -18
- package/Forms/Toggle/Toggle.js +0 -25
- package/Forms/Toggle/index.d.ts +0 -1
- package/Forms/Toggle/index.js +0 -1
- package/Forms/Toggle/useToggle-tailwind.d.ts +0 -0
- package/Forms/Toggle/useToggle-tailwind.js +0 -1
- package/Forms/Toggle/useToggle.d.ts +0 -16
- package/Forms/Toggle/useToggle.js +0 -85
- package/Forms/antispam.d.ts +0 -27
- package/Forms/antispam.js +0 -29
- package/Forms/helpers.d.ts +0 -18
- package/Forms/helpers.js +0 -35
- package/Forms/index.d.ts +0 -15
- package/Forms/index.js +0 -15
- package/Forms/styles.d.ts +0 -9
- package/Forms/styles.js +0 -19
- package/Gauge/Gauge.d.ts +0 -4
- package/Gauge/Gauge.js +0 -1
- package/Grid/Grid.d.ts +0 -32
- package/Grid/Grid.js +0 -52
- package/Grid/index.d.ts +0 -1
- package/Grid/index.js +0 -1
- package/Hamburger/Hamburger.d.ts +0 -5
- package/Hamburger/Hamburger.js +0 -47
- package/Hamburger/index.d.ts +0 -1
- package/Hamburger/index.js +0 -1
- package/Header/index.d.ts +0 -1
- package/Header/index.js +0 -1
- package/Header/useHeader.d.ts +0 -20
- package/Header/useHeader.js +0 -32
- package/Hidden/Hidden.d.ts +0 -6
- package/Hidden/Hidden.js +0 -10
- package/Hidden/index.d.ts +0 -1
- package/Hidden/index.js +0 -1
- package/Img/index.d.ts +0 -1
- package/Img/index.js +0 -1
- package/Img/sc/bare.d.ts +0 -2
- package/Img/sc/bare.js +0 -4
- package/Img/types.d.ts +0 -9
- package/Img/types.js +0 -1
- package/Link/Link.d.ts +0 -3
- package/Link/Link.js +0 -4
- package/Link/LinkBlank.d.ts +0 -5
- package/Link/LinkBlank.js +0 -15
- package/Link/index.d.ts +0 -2
- package/Link/index.js +0 -2
- package/Menu/Menu.d.ts +0 -1
- package/Menu/Menu.js +0 -4
- package/Menu/MenuMui.d.ts +0 -0
- package/Menu/MenuMui.js +0 -1
- package/Menu/index.d.ts +0 -1
- package/Menu/index.js +0 -1
- package/MenuItem/MenuItem.d.ts +0 -1
- package/MenuItem/MenuItem.js +0 -4
- package/MenuItem/MenuItemMui.d.ts +0 -0
- package/MenuItem/MenuItemMui.js +0 -1
- package/MenuItem/index.d.ts +0 -1
- package/MenuItem/index.js +0 -1
- package/MenuItem/useMenuItem.d.ts +0 -9
- package/MenuItem/useMenuItem.js +0 -42
- package/Meta.js +0 -6
- package/NoJs.js +0 -7
- package/Pagination/PaginationNav.d.ts +0 -14
- package/Pagination/PaginationNav.js +0 -48
- package/Pagination/PaginationResults.d.ts +0 -3
- package/Pagination/PaginationResults.js +0 -11
- package/Pagination/index.d.ts +0 -2
- package/Pagination/index.js +0 -2
- package/Pill/Pill.d.ts +0 -5
- package/Pill/Pill.js +0 -7
- package/Pill/index.d.ts +0 -1
- package/Pill/index.js +0 -1
- package/Progress/ProgressCircular.d.ts +0 -13
- package/Progress/ProgressCircular.js +0 -12
- package/Progress/ProgressLinear.d.ts +0 -15
- package/Progress/ProgressLinear.js +0 -21
- package/Progress/ProgressOverlay.d.ts +0 -4
- package/Progress/ProgressOverlay.js +0 -23
- package/Progress/index.d.ts +0 -3
- package/Progress/index.js +0 -3
- package/Rating/Rating.d.ts +0 -27
- package/Rating/Rating.js +0 -43
- package/Rating/index.d.ts +0 -8
- package/Rating/index.js +0 -45
- package/Select/SelectDownshift.d.ts +0 -5
- package/Select/SelectDownshift.js +0 -1
- package/Select/components.d.ts +0 -6
- package/Select/components.js +0 -12
- package/Select/index.d.ts +0 -2
- package/Select/index.js +0 -1
- package/Sidebar/Sidebar.d.ts +0 -3
- package/Sidebar/Sidebar.js +0 -23
- package/Sidebar/index.d.ts +0 -1
- package/Sidebar/index.js +0 -1
- package/Spacing/Spacing.d.ts +0 -17
- package/Spacing/Spacing.js +0 -32
- package/Spacing/index.d.ts +0 -1
- package/Spacing/index.js +0 -1
- package/Sticky/Sticky.d.ts +0 -2
- package/Sticky/Sticky.js +0 -1
- package/Sticky/StickyCss.d.ts +0 -5
- package/Sticky/StickyCss.js +0 -6
- package/Sticky/index.d.ts +0 -1
- package/Sticky/index.js +0 -1
- package/Tabs/TabsMui.d.ts +0 -84
- package/Tabs/TabsMui.js +0 -30
- package/Tabs/index.d.ts +0 -1
- package/Tabs/index.js +0 -1
- package/Tabs/sc/bare.d.ts +0 -0
- package/Tabs/sc/bare.js +0 -1
- package/Tabs/tw/bare.d.ts +0 -85
- package/Tabs/tw/bare.js +0 -17
- package/Tabs/tw/material.d.ts +0 -118
- package/Tabs/tw/material.js +0 -19
- package/Tabs/useTabs.d.ts +0 -21
- package/Tabs/useTabs.js +0 -44
- package/Typography/CopyPasteVisible.d.ts +0 -1
- package/Typography/CopyPasteVisible.js +0 -4
- package/Typography/Native.d.ts +0 -10
- package/Typography/Native.js +0 -14
- package/Typography/ReadMore.d.ts +0 -10
- package/Typography/ReadMore.js +0 -42
- package/Typography/TextLoop.d.ts +0 -16
- package/Typography/TextLoop.js +0 -45
- package/Typography/TypeStairs.d.ts +0 -6
- package/Typography/TypeStairs.js +0 -42
- package/Typography/index.d.ts +0 -5
- package/Typography/index.js +0 -5
- package/classed.js +0 -43
- package/createUseMediaQueryWidth.js +0 -39
- package/css/index.d.ts +0 -1
- package/css/index.js +0 -1
- package/extendComponent.js +0 -9
- package/index.js +0 -24
- package/m/MotionProvider.d.ts +0 -6
- package/m/MotionProvider.js +0 -7
- package/m/index.d.ts +0 -1
- package/m/index.js +0 -1
- package/m/lite.d.ts +0 -2
- package/m/lite.js +0 -2
- package/m/max.d.ts +0 -2
- package/m/max.js +0 -2
- package/mergeRefs.js +0 -13
- package/sc/index.d.ts +0 -29
- package/sc/index.js +0 -29
- package/scm/index.d.ts +0 -28
- package/scm/index.js +0 -28
- package/shared/index.d.ts +0 -7
- package/shared/index.js +0 -7
- package/styles/Body.d.ts +0 -2
- package/styles/Body.js +0 -5
- package/styles/Global.d.ts +0 -2
- package/styles/Global.js +0 -5
- package/styles/index.d.ts +0 -7
- package/styles/index.js +0 -7
- package/styles/media.d.ts +0 -18
- package/styles/media.js +0 -75
- package/styles/spacing.d.ts +0 -12
- package/styles/spacing.js +0 -45
- package/styles/styled.d.ts +0 -8
- package/styles/styled.js +0 -9
- package/styles/theme--vanilla.d.ts +0 -17
- package/styles/theme--vanilla.js +0 -47
- package/styles/theme.d.ts +0 -53
- package/styles/theme.js +0 -30
- package/tw/index.d.ts +0 -1
- package/tw/index.js +0 -1
- package/twm/index.d.ts +0 -1
- package/twm/index.js +0 -1
- package/types.js +0 -1
- package/typings.d.ts +0 -99
- package/useAsyncFn.js +0 -33
- package/useDateLocale.d.ts +0 -2
- package/useDateLocale.js +0 -28
- package/useFirstMountState.js +0 -10
- package/useFixedOffset.js +0 -42
- package/useFocus.js +0 -9
- package/useInterval.js +0 -22
- package/useIsomorphicLayoutEffect.js +0 -6
- package/useKeyUp.js +0 -18
- package/useMeasure.js +0 -130
- package/useMountedState.js +0 -13
- package/useNavigateAway.js +0 -25
- package/usePrevious.js +0 -10
- package/usePreviousRef.js +0 -9
- package/useScrollPosition.js +0 -61
- package/useScrollThreshold.js +0 -27
- package/useScrollTo.js +0 -23
- package/useSmoothScroll.js +0 -32
- package/useSpinDelay.js +0 -39
- package/useTraceUpdate.js +0 -19
- package/useUpdateEffect.js +0 -11
- package/useWindowSize.js +0 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./FaviconTags.cjs.js').default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
let FaviconTags=({name:a,color:t,safariTabColor:o,tileColor:c,themeColor:l})=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("link",{rel:"shortcut icon",href:"/favicon.ico",type:"image/x-icon"}),jsxRuntime.jsx("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/apple-touch-icon.png"}),jsxRuntime.jsx("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon-32x32.png"}),jsxRuntime.jsx("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon-16x16.png"}),jsxRuntime.jsx("link",{rel:"manifest",href:"/site.webmanifest"}),jsxRuntime.jsx("link",{rel:"mask-icon",href:"/safari-pinned-tab.svg",color:o||t}),jsxRuntime.jsx("meta",{name:"apple-mobile-web-app-title",content:a}),jsxRuntime.jsx("meta",{name:"application-name",content:a}),jsxRuntime.jsx("meta",{name:"msapplication-TileColor",content:c||t}),jsxRuntime.jsx("meta",{name:"theme-color",content:l||t})]});
|
|
8
|
+
|
|
9
|
+
exports.FaviconTags = FaviconTags;
|
|
10
|
+
exports.default = FaviconTags;
|
package/FaviconTags.d.ts
CHANGED
|
@@ -5,5 +5,15 @@ export type FaviconTagsProps = {
|
|
|
5
5
|
tileColor?: string;
|
|
6
6
|
themeColor?: string;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Favicon tags.
|
|
10
|
+
*
|
|
11
|
+
* This component is meant to be wrapped in a `<head>` manager component.
|
|
12
|
+
*
|
|
13
|
+
* These tags have been produced by [realfavicongenerator.net](https://realfavicongenerator.net/)
|
|
14
|
+
* on _**16 Feb 2022**_.
|
|
15
|
+
*
|
|
16
|
+
* @see https://realfavicongenerator.net/
|
|
17
|
+
*/
|
|
18
|
+
export declare let FaviconTags: ({ name, color, safariTabColor, tileColor, themeColor, }: FaviconTagsProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
19
|
export default FaviconTags;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
let FaviconTags=({name:a,color:t,safariTabColor:o,tileColor:c,themeColor:l})=>jsxs(Fragment,{children:[jsx("link",{rel:"shortcut icon",href:"/favicon.ico",type:"image/x-icon"}),jsx("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/apple-touch-icon.png"}),jsx("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon-32x32.png"}),jsx("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon-16x16.png"}),jsx("link",{rel:"manifest",href:"/site.webmanifest"}),jsx("link",{rel:"mask-icon",href:"/safari-pinned-tab.svg",color:o||t}),jsx("meta",{name:"apple-mobile-web-app-title",content:a}),jsx("meta",{name:"application-name",content:a}),jsx("meta",{name:"msapplication-TileColor",content:c||t}),jsx("meta",{name:"theme-color",content:l||t})]});
|
|
4
|
+
|
|
5
|
+
export { FaviconTags, FaviconTags as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./Meta.cjs.js').default;
|
package/Meta.cjs.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
let Meta=({zoom:t})=>jsxRuntime.jsx("meta",{name:"viewport",content:`width=device-width, initial-scale=1, maximum-scale=1${t?"":", user-scalable=0"}`});
|
|
8
|
+
|
|
9
|
+
exports.Meta = Meta;
|
|
10
|
+
exports.default = Meta;
|
package/Meta.cjs.mjs
ADDED
package/Meta.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
export type MetaProps = {
|
|
2
|
+
/**
|
|
3
|
+
* Determines whether `user-scalable=0` is add to the `meta->viewport` content
|
|
4
|
+
*
|
|
5
|
+
* This is an opt in instead of the default browser behaviour as it helps prevent
|
|
6
|
+
* weird zooming on input fields on iPhone iOS devices.
|
|
7
|
+
* @see https://www.warrenchandler.com/2019/04/02/stop-iphones-from-zooming-in-on-form-fields/
|
|
8
|
+
* @see https://css-tricks.com/16px-or-larger-text-prevents-ios-form-zoom/
|
|
9
|
+
*
|
|
10
|
+
* @default false
|
|
11
|
+
*/
|
|
2
12
|
zoom?: boolean;
|
|
3
13
|
};
|
|
4
|
-
export declare
|
|
14
|
+
export declare let Meta: ({ zoom }: MetaProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
15
|
export default Meta;
|
package/Meta.esm.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./NoJs.cjs.js').default;
|
package/NoJs.cjs.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
let NoJs=t=>jsxRuntime.jsx("script",{id:"no-js",dangerouslySetInnerHTML:{__html:'document.querySelector("html").className=document.querySelector("html").className.replace(/no-js/,"") + "js";'}});
|
|
8
|
+
|
|
9
|
+
exports.NoJs = NoJs;
|
|
10
|
+
exports.default = NoJs;
|
package/NoJs.cjs.mjs
ADDED
package/NoJs.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type NoJsProps =
|
|
2
|
-
export declare
|
|
1
|
+
export type NoJsProps = Record<string, never>;
|
|
2
|
+
export declare let NoJs: (_props: NoJsProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default NoJs;
|
package/NoJs.esm.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./Polymorphic.cjs.js').default;
|
package/Polymorphic.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { JSX } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* React Polymorphic components type utilities
|
|
4
|
+
*
|
|
5
|
+
* @resources
|
|
6
|
+
* - [Polymorphic types from Radix UI in Wanda System](https://github.com/wonderflow-bv/wanda/blob/main/packages/react-components/src/types/polymorphic/index.ts)
|
|
7
|
+
* - [TypeScript + React: Typing Generic forwardRefs](https://fettblog.eu/typescript-react-generic-forward-refs/)
|
|
8
|
+
* - [React with Typescript -- Generics while using React.forwardRef](https://stackoverflow.com/a/58473012/1938970)
|
|
9
|
+
* - [How to write a generic that extracts the prop types of the component that passed in](https://stackoverflow.com/a/57846897/1938970)
|
|
10
|
+
* - [React TS Generic component to pass generic props to children](https://stackoverflow.com/a/68442669/1938970)
|
|
11
|
+
* - [About custom ref prop](https://gist.github.com/gaearon/1a018a023347fe1c2476073330cc5509)
|
|
12
|
+
* - [forwardRef performance](https://github.com/facebook/react/issues/13456)
|
|
13
|
+
* - [React docs: Exposing DOM Refs to Parent Components](https://github.com/facebook/react/issues/13456)
|
|
14
|
+
*/
|
|
15
|
+
export declare namespace Polymorphic {
|
|
16
|
+
type Merge<P1 = Record<string, never>, P2 = Record<string, never>> = Omit<P1, keyof P2> & P2;
|
|
17
|
+
type ComponentTypes = React.ComponentClass<any> | React.FunctionComponent<any> | keyof JSX.IntrinsicElements;
|
|
18
|
+
type InferProps<TComponent extends ComponentTypes> = TComponent extends React.ComponentClass<infer Props> ? Props : TComponent extends React.FunctionComponent<infer Props> ? Props : TComponent extends React.ForwardRefExoticComponent<infer Props> ? Props : TComponent extends keyof JSX.IntrinsicElements ? React.ComponentPropsWithoutRef<TComponent> : never;
|
|
19
|
+
type AsProp<TComponent extends React.ElementType> = {
|
|
20
|
+
as?: TComponent;
|
|
21
|
+
};
|
|
22
|
+
export type Ref<TComponent extends React.ElementType> = React.ComponentPropsWithRef<TComponent>["ref"];
|
|
23
|
+
export type Props<TComponent extends React.ElementType, Props = Record<string, never>> = Omit<InferProps<TComponent>, keyof Props> & AsProp<TComponent> & Props;
|
|
24
|
+
export type PropsWithRef<TComponent extends React.ElementType, TProps = Record<string, never>> = Props<TComponent, TProps> & {
|
|
25
|
+
ref?: Ref<TComponent>;
|
|
26
|
+
};
|
|
27
|
+
type ForwardRefExoticComponent<TComponent, OwnProps> = React.ForwardRefExoticComponent<Merge<TComponent extends React.ElementType ? React.ComponentPropsWithRef<TComponent> : never, OwnProps & {
|
|
28
|
+
as?: TComponent;
|
|
29
|
+
}>>;
|
|
30
|
+
export type ComponentForwarded<TComponent, TProps = Record<string, never>> = ForwardRefExoticComponent<TComponent, TProps> & {
|
|
31
|
+
<As = TComponent>(props: As extends "" ? {
|
|
32
|
+
as: keyof JSX.IntrinsicElements;
|
|
33
|
+
} : As extends React.ComponentType<infer P> ? Merge<P, TProps & {
|
|
34
|
+
as: As;
|
|
35
|
+
}> : As extends keyof JSX.IntrinsicElements ? Merge<JSX.IntrinsicElements[As], TProps & {
|
|
36
|
+
as: As;
|
|
37
|
+
}> : never): React.ReactElement | null;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# @koine/react
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var utils = require('./utils.cjs.js');
|
|
6
|
+
|
|
7
|
+
let d=l=>jsxRuntime.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",...l,children:[jsxRuntime.jsx("path",{d:"M0 0h24v24H0z"}),jsxRuntime.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})]}),o={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"};let CalendarDaygridCell=({eventClicked:a,setEventClicked:s,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]=react.useState(false),O=p.filter(e=>!e.placeholder);return jsxRuntime.jsx(f,{children:p.map((t,p)=>{if(p===u&&!x)return jsxRuntime.jsxs(y,{onClick:()=>M(true),children:[jsxRuntime.jsx(d,{}),O.length-u]},"overflowMessage"+p);if(p>u&&!x)return null;if(t.placeholder)return jsxRuntime.jsx(react.Fragment,{children:jsxRuntime.jsx($,{$placeholder:true,children:jsxRuntime.jsx(m,{"aria-hidden":"true",style:{visibility:"hidden"},$placeholder:true,children:jsxRuntime.jsx(w,{children:" "})})})},t.key);let f={zIndex:+!!t.firstOfMulti,position:"relative",width:t.firstOfMulti?`${100*t.width}%`:"100%"};v[t.calendar.id].on||(o.display="none");let k={$view:c,$selected:a?.uid===t.uid,$past:t.isPast,$color:t.color,$isOutOfRange:t.$isOutOfRange,$isToday:t.$isToday};return jsxRuntime.jsx(react.Fragment,{children:jsxRuntime.jsx($,{style:f,...k,children:jsxRuntime.jsx(m,{role:"button",style:o,...k,onClick:()=>s(e=>e?.uid===t.uid?null:t),onMouseEnter:()=>h(t),onMouseLeave:()=>h(null),children:t.allDay?jsxRuntime.jsx(w,{children:t.title}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(g,{children:utils.getDisplayTime(t.start)}),jsxRuntime.jsx(w,{children:t.title})]})})})},t.key)})})};
|
|
8
|
+
|
|
9
|
+
exports.CalendarDaygridCell = CalendarDaygridCell;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { KoineComponent, KoineComponentProps } from "../types
|
|
2
|
-
import type { CalendarView, CalendarViewDayProps, CalendarViewEvent, CalendarsMap } from "./types
|
|
3
|
-
import { UseCalendarReturn } from "./useCalendar
|
|
1
|
+
import type { KoineComponent, KoineComponentProps } from "../types";
|
|
2
|
+
import type { CalendarView, CalendarViewDayProps, CalendarViewEvent, CalendarsMap } from "./types";
|
|
3
|
+
import type { UseCalendarReturn } from "./useCalendar";
|
|
4
4
|
export type KoineCalendarDaygridCellProps = {
|
|
5
5
|
eventClicked?: UseCalendarReturn["eventClicked"];
|
|
6
6
|
setEventClicked: UseCalendarReturn["setEventClicked"];
|
|
@@ -32,4 +32,4 @@ export type CalendarDaygridCellComponents = {
|
|
|
32
32
|
CellEventStart?: KoineComponent;
|
|
33
33
|
};
|
|
34
34
|
export type CalendarDaygridCellProps = KoineComponentProps<KoineCalendarDaygridCellProps, CalendarDaygridCellComponents>;
|
|
35
|
-
export declare
|
|
35
|
+
export declare let CalendarDaygridCell: ({ eventClicked, setEventClicked, setEventHovered, view, maxEvents, events, calendarsMap, Cell, CellOverflow, CellEvent, CellEventBtn, CellEventTitle, CellEventStart, }: CalendarDaygridCellProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, Fragment } from 'react';
|
|
3
|
+
import { getDisplayTime } from './utils.esm.js';
|
|
4
|
+
|
|
5
|
+
let d=l=>jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",...l,children:[jsx("path",{d:"M0 0h24v24H0z"}),jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})]}),o={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"};let CalendarDaygridCell=({eventClicked:a,setEventClicked:s,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(false),O=p.filter(e=>!e.placeholder);return jsx(f,{children:p.map((t,p)=>{if(p===u&&!x)return jsxs(y,{onClick:()=>M(true),children:[jsx(d,{}),O.length-u]},"overflowMessage"+p);if(p>u&&!x)return null;if(t.placeholder)return jsx(Fragment,{children:jsx($,{$placeholder:true,children:jsx(m,{"aria-hidden":"true",style:{visibility:"hidden"},$placeholder:true,children:jsx(w,{children:" "})})})},t.key);let f={zIndex:+!!t.firstOfMulti,position:"relative",width:t.firstOfMulti?`${100*t.width}%`:"100%"};v[t.calendar.id].on||(o.display="none");let k={$view:c,$selected:a?.uid===t.uid,$past:t.isPast,$color:t.color,$isOutOfRange:t.$isOutOfRange,$isToday:t.$isToday};return jsx(Fragment,{children:jsx($,{style:f,...k,children:jsx(m,{role:"button",style:o,...k,onClick:()=>s(e=>e?.uid===t.uid?null:t),onMouseEnter:()=>h(t),onMouseLeave:()=>h(null),children:t.allDay?jsx(w,{children:t.title}):jsxs(Fragment$1,{children:[jsx(g,{children:getDisplayTime(t.start)}),jsx(w,{children:t.title})]})})})},t.key)})})};
|
|
6
|
+
|
|
7
|
+
export { CalendarDaygridCell };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var format = require('date-fns/format');
|
|
5
|
+
var useDateLocale = require('./useDateLocale.cjs.js');
|
|
6
|
+
|
|
7
|
+
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.useDateLocale(c)},x="";return "month"===l&&(x=format.format(C,"MMMM yyyy",v)),"week"===l&&(x=C.getMonth()===p.getMonth()?format.format(C,"# MMMM yyyy",v).replace("#",`${C.getDate()}-${p.getDate()}`):`${format.format(C,"d MMMM",v)} - ${format.format(p,"d MMMM yyyy",v)}`),jsxRuntime.jsxs(m,{children:[jsxRuntime.jsxs(b,{children:[jsxRuntime.jsx(k,{onClick:i}),jsxRuntime.jsx(u,{onClick:M}),jsxRuntime.jsx(h,{onClick:d,disabled:r}),jsxRuntime.jsx(f,{onClick:()=>y("month"),disabled:"month"===l}),jsxRuntime.jsx(g,{onClick:()=>y("week"),disabled:"week"===l})]}),jsxRuntime.jsx(s,{range:a,formatted:x})]})};
|
|
8
|
+
|
|
9
|
+
exports.KoineCalendarDaygridNav = KoineCalendarDaygridNav;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { KoineComponent, KoineComponentProps } from "../types
|
|
2
|
-
import type { CalendarRange, CalendarView } from "./types
|
|
1
|
+
import type { KoineComponent, KoineComponentProps } from "../types";
|
|
2
|
+
import type { CalendarRange, CalendarView } from "./types";
|
|
3
3
|
export type KoineCalendarDaygridNavProps = {
|
|
4
4
|
locale: string;
|
|
5
5
|
range: CalendarRange;
|
|
@@ -24,4 +24,4 @@ export type CalendarDaygridNavProps = KoineComponentProps<KoineCalendarDaygridNa
|
|
|
24
24
|
NavBtnViewMonth?: KoineComponent;
|
|
25
25
|
NavBtnViewWeek?: KoineComponent;
|
|
26
26
|
}>;
|
|
27
|
-
export declare
|
|
27
|
+
export declare let KoineCalendarDaygridNav: ({ range, view, todayInView, handlePrev, handleNext, handleToday, handleView, locale: localeCode, NavRoot, NavTitle, NavBtns, NavBtnPrev, NavBtnNext, NavBtnToday, NavBtnViewMonth, NavBtnViewWeek, }: CalendarDaygridNavProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { format } from 'date-fns/format';
|
|
3
|
+
import { useDateLocale } from './useDateLocale.esm.js';
|
|
4
|
+
|
|
5
|
+
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)}`),jsxs(m,{children:[jsxs(b,{children:[jsx(k,{onClick:i}),jsx(u,{onClick:M}),jsx(h,{onClick:d,disabled:r}),jsx(f,{onClick:()=>y("month"),disabled:"month"===l}),jsx(g,{onClick:()=>y("week"),disabled:"week"===l})]}),jsx(s,{range:a,formatted:x})]})};
|
|
6
|
+
|
|
7
|
+
export { KoineCalendarDaygridNav };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var eachWeekOfInterval = require('date-fns/eachWeekOfInterval');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var reactSwipeable = require('react-swipeable');
|
|
7
|
+
var CalendarDaygridCell = require('./CalendarDaygridCell.cjs.js');
|
|
8
|
+
var useDateLocale = require('./useDateLocale.cjs.js');
|
|
9
|
+
var utils = require('./utils.cjs.js');
|
|
10
|
+
|
|
11
|
+
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})=>{let q={Cell:I,CellOverflow:K,CellEvent:M,CellEventBtn:R,CellEventTitle:T,CellEventStart:W},[A,B]=react.useState(f||[0,1,2,3,4,5,6]),[E,F]=react.useState([]),G=useDateLocale.useDateLocale(d),{month:H,weeks:J}=react.useMemo(()=>(function(e){let[t,a]=e,i=eachWeekOfInterval.eachWeekOfInterval({start:t,end:a},{weekStartsOn:1});return {month:t.getMonth(),weeks:i}})(u),[u]),N=reactSwipeable.useSwipeable({onSwipedLeft:c,onSwipedRight:s});return react.useEffect(()=>{F(utils.processEventsInView(h,b,H,J));},[h,b,H,J]),react.useEffect(()=>{G&&G.localize&&!f&&B([1,2,3,4,5,6,0].map(e=>G.localize.day(e,{width:"abbreviated"})));},[G,f]),jsxRuntime.jsxs(C,{...N,children:[jsxRuntime.jsx(D,{children:jsxRuntime.jsx("tr",{children:A.map(t=>jsxRuntime.jsx(S,{scope:"column",children:t},t))})}),jsxRuntime.jsx(k,{children:E.map(r=>jsxRuntime.jsx(z,{...r.props,children:r.days.map(r=>jsxRuntime.jsxs(L,{...r.props,children:[jsxRuntime.jsx(O,{...r.props,children:r.label}),r.events.length>0&&jsxRuntime.jsx(CalendarDaygridCell.CalendarDaygridCell,{eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,view:b,maxEvents:j,events:r.events,timestamp:r.timestamp,calendarsMap:x,...q})]}))}))})]})};
|
|
12
|
+
|
|
13
|
+
exports.KoineCalendarDaygridTable = KoineCalendarDaygridTable;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { KoineComponent, KoineComponentProps } from "../types
|
|
2
|
-
import { CalendarDaygridCellComponents, CalendarDaygridCellProps } from "./CalendarDaygridCell
|
|
3
|
-
import type { CalendarEventsMap, CalendarRange, CalendarView, CalendarViewDayProps } from "./types
|
|
1
|
+
import type { KoineComponent, KoineComponentProps } from "../types";
|
|
2
|
+
import { type CalendarDaygridCellComponents, type CalendarDaygridCellProps } from "./CalendarDaygridCell";
|
|
3
|
+
import type { CalendarEventsMap, CalendarRange, CalendarView, CalendarViewDayProps } from "./types";
|
|
4
4
|
export type CalendarDaygridTableBodyCellProps = CalendarViewDayProps;
|
|
5
5
|
export type CalendarDaygridTableBodyCellDateProps = CalendarViewDayProps;
|
|
6
6
|
export type KoineCalendarDaygridTableProps = {
|
|
@@ -22,4 +22,4 @@ export type CalendarDaygridTableProps = KoineComponentProps<KoineCalendarDaygrid
|
|
|
22
22
|
TableBodyCellDate?: KoineComponent<CalendarDaygridTableBodyCellDateProps>;
|
|
23
23
|
TableBodyRow?: KoineComponent;
|
|
24
24
|
} & CalendarDaygridCellComponents>;
|
|
25
|
-
export declare
|
|
25
|
+
export declare let KoineCalendarDaygridTable: ({ locale: localeCode, handlePrev, handleNext, events, dayLabels, view, range, eventClicked, setEventClicked, eventHovered, setEventHovered, calendarsMap, maxEvents, Table, TableHead, TableHeadCell, TableBody, TableBodyRow, TableBodyCell, TableBodyCellDate, Cell, CellOverflow, CellEvent, CellEventBtn, CellEventTitle, CellEventStart, }: CalendarDaygridTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { eachWeekOfInterval } from 'date-fns/eachWeekOfInterval';
|
|
3
|
+
import { useState, useMemo, useEffect } from 'react';
|
|
4
|
+
import { useSwipeable } from 'react-swipeable';
|
|
5
|
+
import { CalendarDaygridCell } from './CalendarDaygridCell.esm.js';
|
|
6
|
+
import { useDateLocale } from './useDateLocale.esm.js';
|
|
7
|
+
import { processEventsInView } from './utils.esm.js';
|
|
8
|
+
|
|
9
|
+
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})=>{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([]),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(e=>G.localize.day(e,{width:"abbreviated"})));},[G,f]),jsxs(C,{...N,children:[jsx(D,{children:jsx("tr",{children:A.map(t=>jsx(S,{scope:"column",children:t},t))})}),jsx(k,{children:E.map(r=>jsx(z,{...r.props,children:r.days.map(r=>jsxs(L,{...r.props,children:[jsx(O,{...r.props,children:r.label}),r.events.length>0&&jsx(CalendarDaygridCell,{eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,view:b,maxEvents:j,events:r.events,timestamp:r.timestamp,calendarsMap:x,...q})]}))}))})]})};
|
|
10
|
+
|
|
11
|
+
export { KoineCalendarDaygridTable };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
|
|
5
|
+
let KoineCalendarLegend=({calendarsMap:a={},toggleCalendarVisibility:s,LegendItem:d="div",LegendItemStatus:i="span",LegendItemLabel:l="span",LegendItemEvents:t="span"})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:Object.entries(a).map(([r,a])=>jsxRuntime.jsxs(d,{onClick:()=>s(r),$color:a.color,$empty:0===a.events,disabled:0===a.events,children:[jsxRuntime.jsx(i,{children:a.on?"⬤":"⭘"}),jsxRuntime.jsx(l,{children:a.name}),jsxRuntime.jsx(t,{children:a.events})]},"CalendarLegend."+r))});
|
|
6
|
+
|
|
7
|
+
exports.KoineCalendarLegend = KoineCalendarLegend;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { KoineComponent, KoineComponentProps } from "../types
|
|
2
|
-
import type { CalendarsMap } from "./types
|
|
1
|
+
import type { KoineComponent, KoineComponentProps } from "../types";
|
|
2
|
+
import type { CalendarsMap } from "./types";
|
|
3
3
|
export type KoineCalendarLegendProps = {
|
|
4
4
|
toggleCalendarVisibility: (id: string) => void;
|
|
5
5
|
calendarsMap: CalendarsMap;
|
|
@@ -15,4 +15,4 @@ export type CalendarLegendProps = KoineComponentProps<KoineCalendarLegendProps,
|
|
|
15
15
|
LegendItemLabel?: KoineComponent;
|
|
16
16
|
LegendItemEvents?: KoineComponent;
|
|
17
17
|
}>;
|
|
18
|
-
export declare
|
|
18
|
+
export declare let KoineCalendarLegend: ({ calendarsMap, toggleCalendarVisibility, LegendItem, LegendItemStatus, LegendItemLabel, LegendItemEvents, }: CalendarLegendProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
let KoineCalendarLegend=({calendarsMap:a={},toggleCalendarVisibility:s,LegendItem:d="div",LegendItemStatus:i="span",LegendItemLabel:l="span",LegendItemEvents:t="span"})=>jsx(Fragment,{children:Object.entries(a).map(([r,a])=>jsxs(d,{onClick:()=>s(r),$color:a.color,$empty:0===a.events,disabled:0===a.events,children:[jsx(i,{children:a.on?"⬤":"⭘"}),jsx(l,{children:a.name}),jsx(t,{children:a.events})]},"CalendarLegend."+r))});
|
|
4
|
+
|
|
5
|
+
export { KoineCalendarLegend };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var differenceInDays = require('date-fns/differenceInDays');
|
|
4
|
+
var subDays = require('date-fns/subDays');
|
|
5
|
+
var utils$1 = require('@koine/utils');
|
|
6
|
+
var utils = require('./utils.cjs.js');
|
|
7
|
+
|
|
8
|
+
let getCalendarsEventsFromGoogle=async({calendars:e,...t})=>{let a={};return await Promise.all(e.map(async e=>{utils.addCalendarEvents(await o({calendar:e,...t}),a);})),a};async function o({apiKey:s,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:s||process.env.GOOGLE_CALENDAR_API_KEY||""}).toString(),f="https://www.googleapis.com/calendar/v3/calendars/"+o.id+"/events?"+u;try{let s=await fetch(f,{method:"GET"}),m=await s.json();o.name=o.name||m.summary,m.items.forEach(s=>{var m,d;let l,u,f,w,g,p,D,h,y,E,v,S,T,I,x=(m=s,d=o,l=new Date(m.created),u=m.htmlLink,f=m.summary,w=m.status,g=new Date(m.start.date||m.start.dateTime),p=new Date(m.end.date||m.end.dateTime),D=d.color,h=utils$1.isUndefined(m.end.dateTime)&&utils$1.isString(m.end.date),y=m.location||"",E=m.description||"",v=l.getTime()+""+g.getTime(),h&&p>g&&(p=subDays.subDays(p,1)).setHours(23,59,59),S=function(){let t=new Date(g),a=new Date(p),n=[utils.getEventTimestamp(t)];for(;differenceInDays.differenceInDays(a,t);)t.setDate(t.getDate()+1),n.push(utils.getEventTimestamp(t));return n}(),T=utils$1.arrayToLookup(S),I=S.length>1,{calendar:d,created:l,link:u,title:f,status:w,start:g,end:p,days:S,daysMap:T,multi:I,color:D,allDay:h,location:y,description:E,uid:v});c[x.uid]=x;});}catch(e){}return c}
|
|
9
|
+
|
|
10
|
+
exports.getCalendarsEventsFromGoogle = getCalendarsEventsFromGoogle;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CalendarEventsMap, Calendars } from "./types";
|
|
2
|
+
type GetCalendarsEventsFromGoogleOptions = {
|
|
3
|
+
/** Fall back to `process.env.GOOGLE_CALENDAR_API_KEY */
|
|
4
|
+
apiKey?: string;
|
|
5
|
+
/** Start gethering events from date */
|
|
6
|
+
start: Date;
|
|
7
|
+
/** End gethering events at date */
|
|
8
|
+
end: Date;
|
|
9
|
+
/**
|
|
10
|
+
* The default is the time zone of the calendar
|
|
11
|
+
* @see https://developers.google.com/calendar/api/v3/reference/events/list
|
|
12
|
+
*/
|
|
13
|
+
timeZone?: string;
|
|
14
|
+
/** The calendars settings */
|
|
15
|
+
calendars: Calendars;
|
|
16
|
+
};
|
|
17
|
+
export declare let getCalendarsEventsFromGoogle: ({ calendars, ...options }: GetCalendarsEventsFromGoogleOptions) => Promise<CalendarEventsMap>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { differenceInDays } from 'date-fns/differenceInDays';
|
|
2
|
+
import { subDays } from 'date-fns/subDays';
|
|
3
|
+
import { isUndefined, isString, arrayToLookup } from '@koine/utils';
|
|
4
|
+
import { addCalendarEvents, getEventTimestamp } from './utils.esm.js';
|
|
5
|
+
|
|
6
|
+
let getCalendarsEventsFromGoogle=async({calendars:e,...t})=>{let a={};return await Promise.all(e.map(async e=>{addCalendarEvents(await o({calendar:e,...t}),a);})),a};async function o({apiKey:s,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:s||process.env.GOOGLE_CALENDAR_API_KEY||""}).toString(),f="https://www.googleapis.com/calendar/v3/calendars/"+o.id+"/events?"+u;try{let s=await fetch(f,{method:"GET"}),m=await s.json();o.name=o.name||m.summary,m.items.forEach(s=>{var m,d;let l,u,f,w,g,p,D,h,y,E,v,S,T,I,x=(m=s,d=o,l=new Date(m.created),u=m.htmlLink,f=m.summary,w=m.status,g=new Date(m.start.date||m.start.dateTime),p=new Date(m.end.date||m.end.dateTime),D=d.color,h=isUndefined(m.end.dateTime)&&isString(m.end.date),y=m.location||"",E=m.description||"",v=l.getTime()+""+g.getTime(),h&&p>g&&(p=subDays(p,1)).setHours(23,59,59),S=function(){let t=new Date(g),a=new Date(p),n=[getEventTimestamp(t)];for(;differenceInDays(a,t);)t.setDate(t.getDate()+1),n.push(getEventTimestamp(t));return n}(),T=arrayToLookup(S),I=S.length>1,{calendar:d,created:l,link:u,title:f,status:w,start:g,end:p,days:S,daysMap:T,multi:I,color:D,allDay:h,location:y,description:E,uid:v});c[x.uid]=x;});}catch(e){}return c}
|
|
7
|
+
|
|
8
|
+
export { getCalendarsEventsFromGoogle };
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
export type Calendar = {
|
|
2
2
|
id: string;
|
|
3
3
|
color: string;
|
|
4
|
+
/**
|
|
5
|
+
* If not defined the name is gathered from the remote calendar response,
|
|
6
|
+
* for google calendars that comes from the `summary` value.
|
|
7
|
+
*/
|
|
4
8
|
name?: string;
|
|
5
9
|
};
|
|
6
10
|
export type Calendars = Calendar[];
|
|
@@ -12,8 +16,17 @@ export type CalendarRange = [Date, Date];
|
|
|
12
16
|
export type CalendarView = "month" | "week";
|
|
13
17
|
export type CalendarEvent = {
|
|
14
18
|
calendar: Calendar;
|
|
19
|
+
/**
|
|
20
|
+
* List of day timestamps across which the event spans
|
|
21
|
+
*/
|
|
15
22
|
days: number[];
|
|
23
|
+
/**
|
|
24
|
+
* Lookup object for day timestamps across which the event spans
|
|
25
|
+
*/
|
|
16
26
|
daysMap: Record<number, 1>;
|
|
27
|
+
/**
|
|
28
|
+
* Flag for events that spans across multiple days
|
|
29
|
+
*/
|
|
17
30
|
multi: boolean;
|
|
18
31
|
allDay: boolean;
|
|
19
32
|
link: string;
|
|
@@ -27,7 +40,13 @@ export type CalendarEvent = {
|
|
|
27
40
|
description: string;
|
|
28
41
|
uid: string;
|
|
29
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Calendar events mapped by day `timestamp` number
|
|
45
|
+
*/
|
|
30
46
|
export type CalendarEventsByTimestamp = Record<number, CalendarEventsMap>;
|
|
47
|
+
/**
|
|
48
|
+
* Calendar events map by `uid`
|
|
49
|
+
*/
|
|
31
50
|
export type CalendarEventsMap = Record<CalendarEvent["uid"], CalendarEvent>;
|
|
32
51
|
export type CalendarViewWeeks = CalendarViewWeek[];
|
|
33
52
|
export type CalendarViewWeek = {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var calendarApiGoogle = require('./calendar-api-google.cjs.js');
|
|
5
|
+
var utils = require('./utils.cjs.js');
|
|
6
|
+
|
|
7
|
+
let useCalendar=({locale:d,apiKey:c,calendars:p,events:g,start:m,end:y,view:v="month",timeZone:f="",onError:b})=>{let[w,T]=react.useState(v),D=m||utils.getStartDate(new Date,w),h=y||utils.getEndDate(D,w),[O,P]=react.useState([D,h]),[j,x]=react.useState(utils.isTodayInView(D,h)),[C,L]=react.useState(g||{}),[N,k]=react.useState(null),[q,z]=react.useState(null),[A,B]=react.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}},p.reduce((e,t)=>(e[t.id]={...t,name:t.name||"",on:true,events:0},e),{})),E=react.useCallback(e=>{B({type:"visibility",payload:e});},[B]),F=react.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=react.useCallback(async(e,t,l)=>{try{let n=await calendarApiGoogle.getCalendarsEventsFromGoogle({apiKey:c,calendars:e,timeZone:f,start:t,end:l});L(n);}catch(e){b&&b(e);}},[L,c,f,b]),H=react.useCallback(()=>{let[e,t]=O,l=utils.getStartDate(new Date,w),n=utils.getEndDate(l,w);P([l,n]),(e.getTime()!==l.getTime()||t.getTime()!==n.getTime())&&(z(null),k(null));},[w,O]),I=react.useCallback(()=>{P(([e])=>{let t=utils.getPrevDate(e,w),l=utils.getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),J=react.useCallback(()=>{P(([e])=>{let t=utils.getNextDate(e,w),l=utils.getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),K=react.useCallback(e=>{let t=utils.getStartDate(D,e),l=utils.getEndDate(t,e);P([t,l]),T(e),z(null),k(null);},[D]);return react.useEffect(()=>{let[e,t]=O;G(p,e,t),x(utils.isTodayInView(e,t));},[O]),react.useEffect(()=>{C&&F(C);},[C,F]),react.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})}};
|
|
8
|
+
|
|
9
|
+
exports.useCalendar = useCalendar;
|
|
@@ -1,15 +1,29 @@
|
|
|
1
|
-
import type { KoineCalendarDaygridNavProps } from "./CalendarDaygridNav
|
|
2
|
-
import type { KoineCalendarDaygridTableProps } from "./CalendarDaygridTable
|
|
3
|
-
import type { KoineCalendarLegendProps } from "./CalendarLegend
|
|
4
|
-
import type { CalendarEvent, CalendarEventsMap, CalendarView, Calendars } from "./types
|
|
1
|
+
import type { KoineCalendarDaygridNavProps } from "./CalendarDaygridNav";
|
|
2
|
+
import type { KoineCalendarDaygridTableProps } from "./CalendarDaygridTable";
|
|
3
|
+
import type { KoineCalendarLegendProps } from "./CalendarLegend";
|
|
4
|
+
import type { CalendarEvent, CalendarEventsMap, CalendarView, Calendars } from "./types";
|
|
5
5
|
export type UseCalendarProps = {
|
|
6
|
+
/** The locale to format with `date-fns` */
|
|
6
7
|
locale: string;
|
|
8
|
+
/** Calendars infos to use */
|
|
7
9
|
calendars: Calendars;
|
|
10
|
+
/** Fall back to `process.env.GOOGLE_CALENDAR_API_KEY */
|
|
8
11
|
apiKey?: string;
|
|
12
|
+
/** The key is the event `uid` */
|
|
9
13
|
events?: CalendarEventsMap;
|
|
14
|
+
/** It defaults to the first of the current month */
|
|
10
15
|
start?: Date;
|
|
16
|
+
/** It defaults to the last day of the current month */
|
|
11
17
|
end?: Date;
|
|
18
|
+
/**
|
|
19
|
+
* The calendar view
|
|
20
|
+
* @default "month"
|
|
21
|
+
*/
|
|
12
22
|
view?: CalendarView;
|
|
23
|
+
/**
|
|
24
|
+
* The default is the time zone of the calendar
|
|
25
|
+
* @see https://developers.google.com/calendar/api/v3/reference/events/list
|
|
26
|
+
*/
|
|
13
27
|
timeZone?: string;
|
|
14
28
|
onError?: (e: any) => void;
|
|
15
29
|
};
|
|
@@ -23,7 +37,7 @@ export type CalendarsUpdateActionVisibility = {
|
|
|
23
37
|
payload: string | string[];
|
|
24
38
|
};
|
|
25
39
|
export type CalendarsUpdateAction = CalendarsUpdateActionEvents | CalendarsUpdateActionVisibility;
|
|
26
|
-
export declare
|
|
40
|
+
export declare let useCalendar: ({ locale, apiKey, calendars, events: initialEvents, start: initialStart, end: initialEnd, view: initialView, timeZone, onError, }: UseCalendarProps) => {
|
|
27
41
|
view: "month" | "week";
|
|
28
42
|
eventClicked: CalendarEvent | null;
|
|
29
43
|
setEventClicked: import("react").Dispatch<import("react").SetStateAction<CalendarEvent | null>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useState, useReducer, useCallback, useEffect } from 'react';
|
|
2
|
+
import { getCalendarsEventsFromGoogle } from './calendar-api-google.esm.js';
|
|
3
|
+
import { getStartDate, getEndDate, isTodayInView, getPrevDate, getNextDate } from './utils.esm.js';
|
|
4
|
+
|
|
5
|
+
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}},p.reduce((e,t)=>(e[t.id]={...t,name:t.name||"",on:true,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});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]),(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));},[O]),useEffect(()=>{C&&F(C);},[C,F]),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})}};
|
|
6
|
+
|
|
7
|
+
export { useCalendar };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
|
|
5
|
+
let useDateLocale=(a,l="en")=>{let[r,n]=react.useState(),[o,c]=react.useState(l);return react.useEffect(()=>{let e=async()=>{let e=await import('date-fns/locale/en-US');c(a||o),n(e.enUS);};a!==o&&e();},[a,o]),r};
|
|
6
|
+
|
|
7
|
+
exports.useDateLocale = useDateLocale;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Locale } from "date-fns";
|
|
2
|
+
/**
|
|
3
|
+
* Dynamically import the date-fns correct locale
|
|
4
|
+
*
|
|
5
|
+
* Inspired by:
|
|
6
|
+
* @see https://robertmarshall.dev/blog/dynamically-import-datefns-locale-mui-datepicker-localization/
|
|
7
|
+
*/
|
|
8
|
+
export declare let useDateLocale: (locale?: string, defaultLocale?: string) => Locale | undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
let useDateLocale=(a,l="en")=>{let[r,n]=useState(),[o,c]=useState(l);return useEffect(()=>{let e=async()=>{let e=await import('date-fns/locale/en-US');c(a||o),n(e.enUS);};a!==o&&e();},[a,o]),r};
|
|
4
|
+
|
|
5
|
+
export { useDateLocale };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var addDays = require('date-fns/addDays');
|
|
4
|
+
var addMonths = require('date-fns/addMonths');
|
|
5
|
+
var addWeeks = require('date-fns/addWeeks');
|
|
6
|
+
var endOfMonth = require('date-fns/endOfMonth');
|
|
7
|
+
var endOfWeek = require('date-fns/endOfWeek');
|
|
8
|
+
var isWithinInterval = require('date-fns/isWithinInterval');
|
|
9
|
+
var startOfWeek = require('date-fns/startOfWeek');
|
|
10
|
+
var subMonths = require('date-fns/subMonths');
|
|
11
|
+
var subWeeks = require('date-fns/subWeeks');
|
|
12
|
+
|
|
13
|
+
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.startOfWeek(e,{weekStartsOn:1})),e);let getEndDate=(e,t)=>{let r=e;return "month"===t?r=endOfMonth.endOfMonth(e):"week"===t&&(r=endOfWeek.endOfWeek(e,{weekStartsOn:1})),r.setHours(23,59,59),r};let getPrevDate=(e,t)=>"month"===t?subMonths.subMonths(e,1):subWeeks.subWeeks(e,1);let getNextDate=(e,a)=>"month"===a?addMonths.addMonths(e,1):addWeeks.addWeeks(e,1);let isTodayInView=(e,t)=>isWithinInterval.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 processEventsInView=(t,r,a,n)=>{let s=(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})(t),o=(e=>{let t=[];for(let r in e)t.push(e[r]);return 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})(t),l=new Date,m=getEventTimestamp(l),i={},d=[];for(let t=0;t<n.length;t++){let p={props:{key:`week.${t}`},days:[]},f=n[t],u=f.getDate(),g=getEventTimestamp(new Date(f)),h=getEventTimestamp(addDays.addDays(new Date(f),6));for(let e=0;e<7;e++){let t=new Date(new Date(f).setDate(u+e)),n=getEventTimestamp(t),d={$isToday:m===n,$isOutOfRange:"month"===r&&t.getMonth()!==a},v={props:{key:`day.${n}`,...d},timestamp:n+"",label:t.getDate()+"",events:[]};if(s?.[n]){let t=Object.keys(s[n]).map(()=>0);for(let r=0;r<o.length;r++){let a,s=o[r],m=1,p=0;if(s.daysMap[n]){if(s.multi&&(m=s.days.filter(e=>e>=g&&e<=h).length,(0===s.days.indexOf(n)||0===e)&&(a=true)),i[s.uid])p=i[s.uid];else for(let e=0;e<t.length;e++)if(1!==t[e]){p=e;break}t[p]=1,a&&(i[s.uid]=p),v.events.push({key:`event.${n}-${p}`,...d,...s,isPast:l>s.end,firstOfMulti:a,top:p,width:m});}}for(let e=0;e<t.length;e++)1!==t[e]&&v.events.push({key:`event.${n}-${e}}`,placeholder:true,top:e});v.events.sort((e,t)=>e.top-t.top);}p.days.push(v);}d.push(p);}return d};
|
|
14
|
+
|
|
15
|
+
exports.addCalendarEvents = addCalendarEvents;
|
|
16
|
+
exports.getDisplayTime = getDisplayTime;
|
|
17
|
+
exports.getEndDate = getEndDate;
|
|
18
|
+
exports.getEventTimestamp = getEventTimestamp;
|
|
19
|
+
exports.getNextDate = getNextDate;
|
|
20
|
+
exports.getPrevDate = getPrevDate;
|
|
21
|
+
exports.getStartDate = getStartDate;
|
|
22
|
+
exports.isTodayInView = isTodayInView;
|
|
23
|
+
exports.processEventsInView = processEventsInView;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CalendarEventsMap, CalendarView, CalendarViewWeeks } from "./types";
|
|
2
|
+
export declare let getEventTimestamp: (dateLike: number | Date | string) => number;
|
|
3
|
+
export declare let getDisplayTime: (date: Date) => string;
|
|
4
|
+
export declare let getStartDate: (date: Date, view: CalendarView) => Date;
|
|
5
|
+
export declare let getEndDate: (start: Date, view: CalendarView) => Date;
|
|
6
|
+
export declare let getPrevDate: (date: Date, view: CalendarView) => Date;
|
|
7
|
+
export declare let getNextDate: (date: Date, view: CalendarView) => Date;
|
|
8
|
+
export declare let isTodayInView: (start: Date, end: Date) => boolean;
|
|
9
|
+
export declare let mergeCalendarEvents: (first: CalendarEventsMap, second: CalendarEventsMap) => CalendarEventsMap;
|
|
10
|
+
export declare let addCalendarEvents: (toAdd: CalendarEventsMap, toExtend: CalendarEventsMap) => CalendarEventsMap;
|
|
11
|
+
export declare let processEventsInView: (eventsMap: CalendarEventsMap, calendarView: CalendarView, month: number, weeks: Date[]) => CalendarViewWeeks;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { addDays } from 'date-fns/addDays';
|
|
2
|
+
import { addMonths } from 'date-fns/addMonths';
|
|
3
|
+
import { addWeeks } from 'date-fns/addWeeks';
|
|
4
|
+
import { endOfMonth } from 'date-fns/endOfMonth';
|
|
5
|
+
import { endOfWeek } from 'date-fns/endOfWeek';
|
|
6
|
+
import { isWithinInterval } from 'date-fns/isWithinInterval';
|
|
7
|
+
import { startOfWeek } from 'date-fns/startOfWeek';
|
|
8
|
+
import { subMonths } from 'date-fns/subMonths';
|
|
9
|
+
import { subWeeks } from 'date-fns/subWeeks';
|
|
10
|
+
|
|
11
|
+
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 processEventsInView=(t,r,a,n)=>{let s=(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})(t),o=(e=>{let t=[];for(let r in e)t.push(e[r]);return 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})(t),l=new Date,m=getEventTimestamp(l),i={},d=[];for(let t=0;t<n.length;t++){let p={props:{key:`week.${t}`},days:[]},f=n[t],u=f.getDate(),g=getEventTimestamp(new Date(f)),h=getEventTimestamp(addDays(new Date(f),6));for(let e=0;e<7;e++){let t=new Date(new Date(f).setDate(u+e)),n=getEventTimestamp(t),d={$isToday:m===n,$isOutOfRange:"month"===r&&t.getMonth()!==a},v={props:{key:`day.${n}`,...d},timestamp:n+"",label:t.getDate()+"",events:[]};if(s?.[n]){let t=Object.keys(s[n]).map(()=>0);for(let r=0;r<o.length;r++){let a,s=o[r],m=1,p=0;if(s.daysMap[n]){if(s.multi&&(m=s.days.filter(e=>e>=g&&e<=h).length,(0===s.days.indexOf(n)||0===e)&&(a=true)),i[s.uid])p=i[s.uid];else for(let e=0;e<t.length;e++)if(1!==t[e]){p=e;break}t[p]=1,a&&(i[s.uid]=p),v.events.push({key:`event.${n}-${p}`,...d,...s,isPast:l>s.end,firstOfMulti:a,top:p,width:m});}}for(let e=0;e<t.length;e++)1!==t[e]&&v.events.push({key:`event.${n}-${e}}`,placeholder:true,top:e});v.events.sort((e,t)=>e.top-t.top);}p.days.push(v);}d.push(p);}return d};
|
|
12
|
+
|
|
13
|
+
export { addCalendarEvents, getDisplayTime, getEndDate, getEventTimestamp, getNextDate, getPrevDate, getStartDate, isTodayInView, processEventsInView };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./calendar.cjs.js').default;
|