@koine/react 2.0.0-beta.14 → 2.0.0-beta.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Alert/Alert.js +10 -0
- package/Alert/index.d.ts +1 -1
- package/Alert/index.js +1 -0
- package/Animations/Reveal.d.ts +1 -2
- package/Animations/Reveal.js +16 -0
- package/Animations/Underline.js +5 -0
- package/Animations/index.d.ts +3 -3
- package/Animations/index.js +3 -0
- package/Animations/useReveal.d.ts +0 -21
- package/Animations/useReveal.js +42 -0
- package/Autocomplete/AutocompleteDownshift.js +1 -0
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +1 -0
- package/Autocomplete/AutocompleteMui.d.ts +2 -27
- package/Autocomplete/AutocompleteMui.js +93 -0
- package/Autocomplete/AutocompleteReach.js +1 -0
- package/Autocomplete/components.d.ts +0 -5
- package/Autocomplete/components.js +26 -0
- package/Autocomplete/helpers.d.ts +1 -1
- package/Autocomplete/helpers.js +17 -0
- package/Autocomplete/index.d.ts +2 -2
- package/Autocomplete/index.js +1 -0
- package/Bg/BgColor.d.ts +1 -20
- package/Bg/BgColor.js +16 -0
- package/Bg/BgPhoto.d.ts +1 -6
- package/Bg/BgPhoto.js +16 -0
- package/Bg/BgSvg.d.ts +0 -3
- package/Bg/BgSvg.js +9 -0
- package/Bg/index.d.ts +3 -3
- package/Bg/index.js +3 -0
- package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/Breadcrumbs/Breadcrumbs.js +27 -0
- package/Breadcrumbs/index.d.ts +1 -1
- package/Breadcrumbs/index.js +1 -0
- package/Buttons/Button.d.ts +0 -4
- package/Buttons/Button.js +10 -0
- package/Buttons/ButtonComposite.d.ts +3 -4
- package/Buttons/ButtonComposite.js +28 -0
- package/Buttons/ButtonFab.d.ts +1 -2
- package/Buttons/ButtonFab.js +6 -0
- package/Buttons/ButtonLink.d.ts +3 -3
- package/Buttons/ButtonLink.js +11 -0
- package/Buttons/IconButton.d.ts +1 -2
- package/Buttons/IconButton.js +7 -0
- package/Buttons/index.d.ts +5 -5
- package/Buttons/index.js +5 -0
- package/Calendar/CalendarDaygridCell.d.ts +3 -4
- package/Calendar/CalendarDaygridCell.js +46 -0
- package/Calendar/CalendarDaygridNav.d.ts +2 -2
- package/Calendar/CalendarDaygridNav.js +23 -0
- package/Calendar/CalendarDaygridTable.d.ts +3 -3
- package/Calendar/CalendarDaygridTable.js +45 -0
- package/Calendar/CalendarLegend.d.ts +2 -3
- package/Calendar/CalendarLegend.js +8 -0
- package/Calendar/calendar-api-google.d.ts +1 -9
- package/Calendar/calendar-api-google.js +126 -0
- package/Calendar/index.d.ts +6 -6
- package/Calendar/index.js +6 -0
- package/Calendar/types.d.ts +0 -19
- package/Calendar/types.js +1 -0
- package/Calendar/useCalendar.d.ts +4 -19
- package/Calendar/useCalendar.js +176 -0
- package/Calendar/utils.d.ts +1 -1
- package/Calendar/utils.js +185 -0
- package/Carousel/Carousel.js +1 -0
- package/Carousel/CarouselCss.d.ts +1 -23
- package/Carousel/CarouselCss.js +19 -0
- package/Carousel/index.d.ts +1 -1
- package/Carousel/index.js +1 -0
- package/Collapsable/Collapsable.js +1 -0
- package/Collapsable/CollapsableReach.d.ts +0 -6
- package/Collapsable/CollapsableReach.js +1 -0
- package/Collapsable/index.d.ts +1 -1
- package/Collapsable/index.js +1 -0
- package/Debug/Debug.js +9 -0
- package/Debug/index.d.ts +1 -1
- package/Debug/index.js +1 -0
- package/Details/Details.d.ts +0 -6
- package/Details/Details.js +52 -0
- package/Details/index.d.ts +1 -1
- package/Details/index.js +1 -0
- package/Dialog/DialogMui.d.ts +1 -3
- package/Dialog/DialogMui.js +39 -0
- package/Dialog/css/bare.d.ts +1 -2
- package/Dialog/css/bare.js +20 -0
- package/Dialog/index.d.ts +2 -2
- package/Dialog/index.js +1 -0
- package/Dialog/m/bare.js +3 -0
- package/Dialog/m/basic.d.ts +1 -1
- package/Dialog/m/basic.js +28 -0
- package/Dialog/m/index.d.ts +1 -2
- package/Dialog/m/index.js +4 -0
- package/Dialog/sc/bare.d.ts +2 -12
- package/Dialog/sc/bare.js +31 -0
- package/Dialog/sc/framer.d.ts +1 -2
- package/Dialog/sc/framer.js +16 -0
- package/Dialog/sc/framerMaterial.js +16 -0
- package/Dialog/sc/material.d.ts +1 -2
- package/Dialog/sc/material.js +21 -0
- package/Dialog/tw/bare.d.ts +2 -17
- package/Dialog/tw/bare.js +28 -0
- package/Dialog/tw/elegant.d.ts +1 -2
- package/Dialog/tw/elegant.js +20 -0
- package/Dialog/tw/framer.d.ts +1 -2
- package/Dialog/tw/framer.js +16 -0
- package/Dialog/tw/framerMaterial.js +16 -0
- package/Dialog/tw/material.d.ts +1 -2
- package/Dialog/tw/material.js +20 -0
- package/Editor/Editor--tiptap.js +26 -0
- package/Editor/components.js +10 -0
- package/Editor/index.d.ts +1 -1
- package/Editor/index.js +1 -0
- package/FaviconTags.d.ts +0 -10
- package/FaviconTags.js +6 -0
- package/Form/Form.d.ts +1 -14
- package/Form/Form.js +60 -0
- package/Form/index.d.ts +1 -1
- package/Form/index.js +1 -0
- package/Form/sc/bare.d.ts +1 -2
- package/Form/sc/bare.js +20 -0
- package/Forms/Checkbox/Checkbox.d.ts +1 -5
- package/Forms/Checkbox/Checkbox.js +15 -0
- package/Forms/Checkbox/index.d.ts +1 -1
- package/Forms/Checkbox/index.js +1 -0
- package/Forms/Feedback/Feedback.js +9 -0
- package/Forms/Feedback/index.d.ts +1 -1
- package/Forms/Feedback/index.js +1 -0
- package/Forms/Field/Field.d.ts +1 -19
- package/Forms/Field/Field.js +25 -0
- package/Forms/Field/FieldControl.d.ts +2 -14
- package/Forms/Field/FieldControl.js +35 -0
- package/Forms/Field/FieldHint.js +4 -0
- package/Forms/Field/index.d.ts +2 -2
- package/Forms/Field/index.js +2 -0
- package/Forms/Input/Input.d.ts +1 -2
- package/Forms/Input/Input.js +16 -0
- package/Forms/Input/index.d.ts +1 -1
- package/Forms/Input/index.js +1 -0
- package/Forms/InputGroup/InputGroup.d.ts +1 -2
- package/Forms/InputGroup/InputGroup.js +15 -0
- package/Forms/InputGroup/index.d.ts +1 -1
- package/Forms/InputGroup/index.js +1 -0
- package/Forms/Label/Label.js +6 -0
- package/Forms/Label/index.d.ts +1 -1
- package/Forms/Label/index.js +1 -0
- package/Forms/Password/Password.d.ts +1 -2
- package/Forms/Password/Password.js +17 -0
- package/Forms/Password/index.d.ts +1 -1
- package/Forms/Password/index.js +1 -0
- package/Forms/Radio/Radio.d.ts +1 -2
- package/Forms/Radio/Radio.js +25 -0
- package/Forms/Radio/index.d.ts +1 -1
- package/Forms/Radio/index.js +1 -0
- package/Forms/Switch/Switch.d.ts +1 -5
- package/Forms/Switch/Switch.js +17 -0
- package/Forms/Switch/index.d.ts +1 -1
- package/Forms/Switch/index.js +1 -0
- package/Forms/Textarea/Textarea.d.ts +1 -2
- package/Forms/Textarea/Textarea.js +12 -0
- package/Forms/Textarea/TextareaRich.d.ts +1 -2
- package/Forms/Textarea/TextareaRich.js +26 -0
- package/Forms/Textarea/index.d.ts +2 -2
- package/Forms/Textarea/index.js +2 -0
- package/Forms/Toggle/Toggle-tailwind.js +1 -0
- package/Forms/Toggle/Toggle.d.ts +0 -1
- package/Forms/Toggle/Toggle.js +25 -0
- package/Forms/Toggle/index.d.ts +1 -1
- package/Forms/Toggle/index.js +1 -0
- package/Forms/Toggle/useToggle-tailwind.js +1 -0
- package/Forms/Toggle/useToggle.d.ts +1 -31
- package/Forms/Toggle/useToggle.js +85 -0
- package/Forms/antispam.d.ts +0 -20
- package/Forms/antispam.js +31 -0
- package/Forms/helpers.d.ts +0 -8
- package/Forms/helpers.js +36 -0
- package/Forms/index.d.ts +15 -15
- package/Forms/index.js +15 -0
- package/Forms/styles.d.ts +0 -6
- package/Forms/styles.js +19 -0
- package/Gauge/Gauge.d.ts +0 -1
- package/Gauge/Gauge.js +1 -0
- package/Grid/Grid.d.ts +1 -10
- package/Grid/Grid.js +52 -0
- package/Grid/index.d.ts +1 -1
- package/Grid/index.js +1 -0
- package/Hamburger/Hamburger.d.ts +0 -1
- package/Hamburger/Hamburger.js +47 -0
- package/Hamburger/index.d.ts +1 -1
- package/Hamburger/index.js +1 -0
- package/Header/index.d.ts +1 -1
- package/Header/index.js +1 -0
- package/Header/useHeader.d.ts +0 -4
- package/Header/useHeader.js +31 -0
- package/Hidden/Hidden.d.ts +1 -1
- package/Hidden/Hidden.js +10 -0
- package/Hidden/index.d.ts +1 -1
- package/Hidden/index.js +1 -0
- package/Img/index.d.ts +1 -1
- package/Img/index.js +1 -0
- package/Img/sc/bare.js +4 -0
- package/Img/types.js +1 -0
- package/Link/Link.js +4 -0
- package/Link/LinkBlank.js +15 -0
- package/Link/index.d.ts +2 -2
- package/Link/index.js +2 -0
- package/Menu/Menu.js +4 -0
- package/Menu/MenuMui.js +1 -0
- package/Menu/index.d.ts +1 -1
- package/Menu/index.js +1 -0
- package/MenuItem/MenuItem.js +4 -0
- package/MenuItem/MenuItemMui.js +1 -0
- package/MenuItem/index.d.ts +1 -1
- package/MenuItem/index.js +1 -0
- package/MenuItem/useMenuItem.js +42 -0
- package/Meta/Meta.d.ts +0 -10
- package/Meta/Meta.js +6 -0
- package/Meta/index.d.ts +2 -2
- package/Meta/index.js +2 -0
- package/NoJs/NoJs.js +7 -0
- package/NoJs/index.d.ts +2 -2
- package/NoJs/index.js +2 -0
- package/Pagination/PaginationNav.d.ts +1 -9
- package/Pagination/PaginationNav.js +48 -0
- package/Pagination/PaginationResults.js +11 -0
- package/Pagination/index.d.ts +2 -2
- package/Pagination/index.js +2 -0
- package/Pill/Pill.js +7 -0
- package/Pill/index.d.ts +1 -1
- package/Pill/index.js +1 -0
- package/Progress/ProgressCircular.d.ts +1 -7
- package/Progress/ProgressCircular.js +12 -0
- package/Progress/ProgressLinear.d.ts +1 -8
- package/Progress/ProgressLinear.js +21 -0
- package/Progress/ProgressOverlay.js +23 -0
- package/Progress/index.d.ts +3 -3
- package/Progress/index.js +3 -0
- package/Rating/Rating.d.ts +0 -8
- package/Rating/Rating.js +43 -0
- package/Rating/index.d.ts +1 -4
- package/Rating/index.js +45 -0
- package/Select/SelectDownshift.d.ts +1 -1
- package/Select/SelectDownshift.js +1 -0
- package/Select/components.js +12 -0
- package/Select/index.d.ts +2 -2
- package/Select/index.js +1 -0
- package/Sidebar/Sidebar.js +23 -0
- package/Sidebar/index.d.ts +1 -1
- package/Sidebar/index.js +1 -0
- package/Spacing/Spacing.d.ts +1 -14
- package/Spacing/Spacing.js +32 -0
- package/Spacing/index.d.ts +1 -1
- package/Spacing/index.js +1 -0
- package/Sticky/Sticky.js +1 -0
- package/Sticky/StickyCss.js +6 -0
- package/Sticky/index.d.ts +1 -1
- package/Sticky/index.js +1 -0
- package/Tabs/TabsMui.d.ts +2 -3
- package/Tabs/TabsMui.js +30 -0
- package/Tabs/index.d.ts +1 -1
- package/Tabs/index.js +1 -0
- package/Tabs/sc/bare.d.ts +0 -5
- package/Tabs/sc/bare.js +1 -0
- package/Tabs/tw/bare.d.ts +1 -2
- package/Tabs/tw/bare.js +16 -0
- package/Tabs/tw/material.d.ts +1 -2
- package/Tabs/tw/material.js +18 -0
- package/Tabs/useTabs.d.ts +0 -22
- package/Tabs/useTabs.js +43 -0
- package/Typography/CopyPasteVisible.js +4 -0
- package/Typography/Native.js +14 -0
- package/Typography/ReadMore.d.ts +0 -2
- package/Typography/ReadMore.js +42 -0
- package/Typography/TextLoop.js +45 -0
- package/Typography/TypeStairs.js +42 -0
- package/Typography/index.d.ts +5 -5
- package/Typography/index.js +5 -0
- package/css/index.d.ts +2 -2
- package/css/index.js +2 -0
- package/helpers/classed.d.ts +0 -19
- package/helpers/classed.js +43 -0
- package/helpers/createUseMediaQueryWidth.d.ts +0 -6
- package/helpers/createUseMediaQueryWidth.js +39 -0
- package/helpers/extend-component.d.ts +0 -11
- package/helpers/extend-component.js +9 -0
- package/helpers/index.d.ts +4 -4
- package/helpers/index.js +4 -0
- package/helpers/{mergeRefs.mjs → mergeRefs.js} +4 -3
- package/hooks/index.d.ts +20 -20
- package/hooks/index.js +20 -0
- package/hooks/types.d.ts +0 -6
- package/hooks/types.js +1 -0
- package/hooks/useAsyncFn.d.ts +1 -4
- package/hooks/useAsyncFn.js +33 -0
- package/hooks/useDateLocale.d.ts +0 -6
- package/hooks/useDateLocale.js +28 -0
- package/hooks/useFirstMountState.d.ts +0 -3
- package/hooks/useFirstMountState.js +10 -0
- package/hooks/useFixedOffset.d.ts +0 -9
- package/hooks/useFixedOffset.js +45 -0
- package/hooks/useFocus.d.ts +0 -3
- package/hooks/useFocus.js +9 -0
- package/hooks/useInterval.d.ts +0 -5
- package/hooks/useInterval.js +22 -0
- package/hooks/useIsomorphicLayoutEffect.d.ts +0 -3
- package/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/hooks/useKeyUp.js +18 -0
- package/hooks/useMeasure.d.ts +0 -5
- package/hooks/useMeasure.js +134 -0
- package/hooks/useMountedState.d.ts +0 -3
- package/hooks/useMountedState.js +13 -0
- package/hooks/useNavigateAway.d.ts +0 -29
- package/hooks/useNavigateAway.js +25 -0
- package/hooks/usePrevious.d.ts +0 -3
- package/hooks/usePrevious.js +9 -0
- package/hooks/{usePreviousRef.mjs → usePreviousRef.js} +2 -2
- package/hooks/useScrollPosition.d.ts +0 -7
- package/hooks/useScrollPosition.js +61 -0
- package/hooks/useScrollThreshold.js +26 -0
- package/hooks/useScrollTo.js +22 -0
- package/hooks/useSmoothScroll.d.ts +0 -6
- package/hooks/useSmoothScroll.js +33 -0
- package/hooks/useSpinDelay.d.ts +0 -12
- package/hooks/useSpinDelay.js +38 -0
- package/hooks/useTraceUpdate.d.ts +0 -3
- package/hooks/useTraceUpdate.js +18 -0
- package/hooks/useUpdateEffect.d.ts +0 -3
- package/hooks/useUpdateEffect.js +11 -0
- package/hooks/useWindowSize.d.ts +0 -9
- package/hooks/useWindowSize.js +20 -0
- package/index.d.ts +1 -1
- package/index.js +1 -0
- package/m/MotionProvider.d.ts +0 -32
- package/m/MotionProvider.js +7 -0
- package/m/index.d.ts +1 -6
- package/m/index.js +1 -0
- package/package.json +624 -22
- package/sc/index.d.ts +30 -30
- package/sc/index.js +30 -0
- package/scm/index.d.ts +29 -29
- package/scm/index.js +29 -0
- package/shared/index.d.ts +8 -8
- package/shared/index.js +8 -0
- package/styles/Body.d.ts +0 -8
- package/styles/Body.js +5 -0
- package/styles/Global.d.ts +0 -13
- package/styles/Global.js +5 -0
- package/styles/index.d.ts +7 -7
- package/styles/index.js +7 -0
- package/styles/media.d.ts +1 -50
- package/styles/media.js +74 -0
- package/styles/spacing.d.ts +1 -2
- package/styles/spacing.js +45 -0
- package/styles/styled.d.ts +0 -4
- package/styles/styled.js +9 -0
- package/styles/theme--vanilla.js +46 -0
- package/styles/theme.d.ts +0 -29
- package/styles/theme.js +30 -0
- package/tw/index.d.ts +2 -2
- package/tw/index.js +2 -0
- package/twm/index.d.ts +2 -2
- package/twm/index.js +2 -0
- package/types.d.ts +1 -2
- package/types.js +1 -0
- package/Alert/Alert.mjs +0 -22
- package/Alert/Alert.stories.mjs +0 -18
- package/Alert/index.mjs +0 -1
- package/Animations/Reveal.mjs +0 -43
- package/Animations/Underline.mjs +0 -15
- package/Animations/index.mjs +0 -3
- package/Animations/useReveal.mjs +0 -73
- package/Autocomplete/AutocompleteDownshift.mjs +0 -157
- package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
- package/Autocomplete/AutocompleteMui.mjs +0 -219
- package/Autocomplete/AutocompleteReach.mjs +0 -111
- package/Autocomplete/components.mjs +0 -87
- package/Autocomplete/helpers.mjs +0 -35
- package/Autocomplete/index.mjs +0 -4
- package/Bg/BgColor.mjs +0 -42
- package/Bg/BgPhoto.mjs +0 -71
- package/Bg/BgSvg.mjs +0 -22
- package/Bg/index.mjs +0 -3
- package/Breadcrumbs/Breadcrumbs.mjs +0 -91
- package/Breadcrumbs/index.mjs +0 -1
- package/Buttons/Button.mjs +0 -78
- package/Buttons/ButtonComposite.mjs +0 -105
- package/Buttons/ButtonFab.mjs +0 -8
- package/Buttons/ButtonLink.mjs +0 -18
- package/Buttons/IconButton.mjs +0 -19
- package/Buttons/index.mjs +0 -5
- package/Calendar/CalendarDaygridCell.mjs +0 -95
- package/Calendar/CalendarDaygridNav.mjs +0 -52
- package/Calendar/CalendarDaygridTable.mjs +0 -115
- package/Calendar/CalendarLegend.mjs +0 -29
- package/Calendar/calendar-api-google.mjs +0 -99
- package/Calendar/index.mjs +0 -6
- package/Calendar/types.mjs +0 -1
- package/Calendar/useCalendar.mjs +0 -225
- package/Calendar/utils.mjs +0 -209
- package/Carousel/Carousel.mjs +0 -377
- package/Carousel/CarouselCss.mjs +0 -44
- package/Carousel/index.mjs +0 -1
- package/Collapsable/Collapsable.mjs +0 -1
- package/Collapsable/CollapsableReach.mjs +0 -250
- package/Collapsable/index.mjs +0 -1
- package/Debug/Debug.mjs +0 -23
- package/Debug/index.mjs +0 -1
- package/Details/Details.mjs +0 -90
- package/Details/Details.stories.mjs +0 -21
- package/Details/index.mjs +0 -1
- package/Dialog/DialogMui.mjs +0 -105
- package/Dialog/DialogMui.stories.mjs +0 -20
- package/Dialog/css/bare.mjs +0 -19
- package/Dialog/css/index.stories.mjs +0 -75
- package/Dialog/index.mjs +0 -1
- package/Dialog/m/bare.mjs +0 -115
- package/Dialog/m/basic.mjs +0 -31
- package/Dialog/m/index.mjs +0 -4
- package/Dialog/sc/bare.mjs +0 -54
- package/Dialog/sc/framer.mjs +0 -16
- package/Dialog/sc/framerMaterial.mjs +0 -16
- package/Dialog/sc/index.stories.mjs +0 -48
- package/Dialog/sc/material.mjs +0 -41
- package/Dialog/tw/bare.mjs +0 -29
- package/Dialog/tw/elegant.mjs +0 -18
- package/Dialog/tw/framer.mjs +0 -16
- package/Dialog/tw/framerMaterial.mjs +0 -16
- package/Dialog/tw/index.stories.mjs +0 -83
- package/Dialog/tw/material.mjs +0 -18
- package/Editor/Editor--tiptap.mjs +0 -53
- package/Editor/components.mjs +0 -28
- package/Editor/index.mjs +0 -1
- package/FaviconTags.mjs +0 -64
- package/Form/Form.mjs +0 -95
- package/Form/index.mjs +0 -1
- package/Form/sc/bare.mjs +0 -29
- package/Forms/Checkbox/Checkbox.mjs +0 -36
- package/Forms/Checkbox/index.mjs +0 -1
- package/Forms/Feedback/Feedback.mjs +0 -14
- package/Forms/Feedback/index.mjs +0 -1
- package/Forms/Field/Field.mjs +0 -50
- package/Forms/Field/FieldControl.mjs +0 -67
- package/Forms/Field/FieldHint.mjs +0 -6
- package/Forms/Field/index.mjs +0 -2
- package/Forms/Input/Input.mjs +0 -36
- package/Forms/Input/index.mjs +0 -1
- package/Forms/InputGroup/InputGroup.mjs +0 -57
- package/Forms/InputGroup/index.mjs +0 -1
- package/Forms/Label/Label.mjs +0 -24
- package/Forms/Label/index.mjs +0 -1
- package/Forms/Password/Password.mjs +0 -53
- package/Forms/Password/index.mjs +0 -1
- package/Forms/Radio/Radio.mjs +0 -57
- package/Forms/Radio/index.mjs +0 -1
- package/Forms/Switch/Switch.mjs +0 -60
- package/Forms/Switch/index.mjs +0 -1
- package/Forms/Textarea/Textarea.mjs +0 -26
- package/Forms/Textarea/TextareaRich.mjs +0 -48
- package/Forms/Textarea/index.mjs +0 -2
- package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
- package/Forms/Toggle/Toggle.mjs +0 -123
- package/Forms/Toggle/index.mjs +0 -1
- package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
- package/Forms/Toggle/useToggle.mjs +0 -163
- package/Forms/antispam.mjs +0 -58
- package/Forms/helpers.mjs +0 -52
- package/Forms/index.mjs +0 -16
- package/Forms/styles.mjs +0 -61
- package/Gauge/Gauge.mjs +0 -101
- package/Grid/Grid.mjs +0 -75
- package/Grid/index.mjs +0 -1
- package/Hamburger/Hamburger.mjs +0 -79
- package/Hamburger/index.mjs +0 -1
- package/Header/index.mjs +0 -1
- package/Header/useHeader.mjs +0 -36
- package/Hidden/Hidden.mjs +0 -10
- package/Hidden/index.mjs +0 -1
- package/Img/index.mjs +0 -1
- package/Img/sc/bare.mjs +0 -36
- package/Img/types.mjs +0 -1
- package/Link/Link.mjs +0 -2
- package/Link/LinkBlank.mjs +0 -32
- package/Link/index.mjs +0 -2
- package/Menu/Menu.mjs +0 -11
- package/Menu/MenuMui.mjs +0 -164
- package/Menu/index.mjs +0 -1
- package/MenuItem/MenuItem.mjs +0 -20
- package/MenuItem/MenuItemMui.mjs +0 -31
- package/MenuItem/index.mjs +0 -1
- package/MenuItem/useMenuItem.mjs +0 -78
- package/Meta/Meta.mjs +0 -8
- package/Meta/index.mjs +0 -2
- package/NoJs/NoJs.mjs +0 -10
- package/NoJs/index.mjs +0 -2
- package/Pagination/PaginationNav.mjs +0 -122
- package/Pagination/PaginationResults.mjs +0 -34
- package/Pagination/index.mjs +0 -2
- package/Pill/Pill.mjs +0 -37
- package/Pill/index.mjs +0 -1
- package/Progress/ProgressCircular.mjs +0 -53
- package/Progress/ProgressLinear.mjs +0 -44
- package/Progress/ProgressOverlay.mjs +0 -64
- package/Progress/index.mjs +0 -3
- package/README.md +0 -1
- package/Rating/Rating.mjs +0 -154
- package/Rating/index.mjs +0 -62
- package/Select/SelectDownshift.mjs +0 -37
- package/Select/components.mjs +0 -25
- package/Select/index.mjs +0 -2
- package/Sidebar/Sidebar.mjs +0 -63
- package/Sidebar/index.mjs +0 -1
- package/Spacing/Spacing.mjs +0 -55
- package/Spacing/index.mjs +0 -1
- package/Sticky/Sticky.mjs +0 -218
- package/Sticky/StickyCss.mjs +0 -10
- package/Sticky/index.mjs +0 -1
- package/Tabs/TabsMui.mjs +0 -61
- package/Tabs/TabsMui.stories.mjs +0 -20
- package/Tabs/index.mjs +0 -1
- package/Tabs/sc/bare.mjs +0 -85
- package/Tabs/sc/index.stories.mjs +0 -0
- package/Tabs/tw/bare.mjs +0 -15
- package/Tabs/tw/index.stories.mjs +0 -25
- package/Tabs/tw/material.mjs +0 -14
- package/Tabs/useTabs.mjs +0 -46
- package/Typography/CopyPasteVisible.mjs +0 -6
- package/Typography/Native.mjs +0 -47
- package/Typography/ReadMore.mjs +0 -114
- package/Typography/TextLoop.mjs +0 -90
- package/Typography/TypeStairs.mjs +0 -61
- package/Typography/index.mjs +0 -5
- package/css/index.mjs +0 -30
- package/helpers/classed.mjs +0 -65
- package/helpers/classed.stories.mjs +0 -121
- package/helpers/createUseMediaQueryWidth.mjs +0 -178
- package/helpers/extend-component.mjs +0 -13
- package/helpers/index.mjs +0 -4
- package/hooks/index.mjs +0 -21
- package/hooks/types.mjs +0 -3
- package/hooks/useAsyncFn.mjs +0 -39
- package/hooks/useDateLocale.mjs +0 -37
- package/hooks/useFirstMountState.mjs +0 -12
- package/hooks/useFixedOffset.mjs +0 -56
- package/hooks/useFocus.mjs +0 -14
- package/hooks/useInterval.mjs +0 -29
- package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
- package/hooks/useKeyUp.mjs +0 -21
- package/hooks/useMeasure.mjs +0 -174
- package/hooks/useMountedState.mjs +0 -15
- package/hooks/useNavigateAway.mjs +0 -69
- package/hooks/usePrevious.mjs +0 -17
- package/hooks/useScrollPosition.mjs +0 -70
- package/hooks/useScrollThreshold.mjs +0 -33
- package/hooks/useScrollTo.mjs +0 -20
- package/hooks/useSmoothScroll.mjs +0 -35
- package/hooks/useSpinDelay.mjs +0 -52
- package/hooks/useTraceUpdate.mjs +0 -23
- package/hooks/useUpdateEffect.mjs +0 -14
- package/hooks/useWindowSize.mjs +0 -32
- package/index.mjs +0 -4
- package/m/MotionProvider.mjs +0 -40
- package/m/index.mjs +0 -5
- package/sc/index.mjs +0 -31
- package/scm/index.mjs +0 -31
- package/shared/index.mjs +0 -43
- package/styles/Body.mjs +0 -16
- package/styles/Global.mjs +0 -49
- package/styles/index.mjs +0 -7
- package/styles/media.mjs +0 -151
- package/styles/spacing.mjs +0 -46
- package/styles/styled.mjs +0 -26
- package/styles/theme--vanilla.mjs +0 -65
- package/styles/theme.mjs +0 -38
- package/tw/index.mjs +0 -30
- package/twm/index.mjs +0 -30
- package/types.mjs +0 -1
- /package/m/{lite.mjs → lite.js} +0 -0
- /package/m/{max.mjs → max.js} +0 -0
package/hooks/useTraceUpdate.mjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { useEffect, useRef } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* @see https://stackoverflow.com/a/51082563/9122820
|
|
4
|
-
*/ export function useTraceUpdate(props) {
|
|
5
|
-
const prev = useRef(props);
|
|
6
|
-
useEffect(()=>{
|
|
7
|
-
const changedProps = Object.entries(props).reduce((ps, [k, v])=>{
|
|
8
|
-
if (prev.current[k] !== v) {
|
|
9
|
-
// @ts-expect-error Does not matter here...
|
|
10
|
-
ps[k] = [
|
|
11
|
-
prev.current[k],
|
|
12
|
-
v
|
|
13
|
-
];
|
|
14
|
-
}
|
|
15
|
-
return ps;
|
|
16
|
-
}, {});
|
|
17
|
-
if (Object.keys(changedProps).length > 0) {
|
|
18
|
-
console.info("[@koine/react:useTraceUpdate] changed props:", changedProps);
|
|
19
|
-
}
|
|
20
|
-
prev.current = props;
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
export default useTraceUpdate;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
2
|
-
import { useFirstMountState } from "./useFirstMountState";
|
|
3
|
-
/**
|
|
4
|
-
* @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts)
|
|
5
|
-
*/ export const useUpdateEffect = (effect, deps)=>{
|
|
6
|
-
const isFirstMount = useFirstMountState();
|
|
7
|
-
useEffect(()=>{
|
|
8
|
-
if (!isFirstMount) {
|
|
9
|
-
return effect();
|
|
10
|
-
}
|
|
11
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12
|
-
}, deps);
|
|
13
|
-
};
|
|
14
|
-
export default useUpdateEffect;
|
package/hooks/useWindowSize.mjs
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
2
|
-
import listenResize from "@koine/dom/listenResize";
|
|
3
|
-
import listenResizeDebounced from "@koine/dom/listenResizeDebounced";
|
|
4
|
-
/**
|
|
5
|
-
* # Use `window` size
|
|
6
|
-
*
|
|
7
|
-
* @param args Optionally pass {@link debounce} arguments (`wait` and `immediate`)
|
|
8
|
-
*
|
|
9
|
-
* @returns An array with:
|
|
10
|
-
* 1) _width_: using `window.innerWidth`
|
|
11
|
-
* 2) _height_: using `window.innerHeight`
|
|
12
|
-
*/ export function useWindowSize(wait, immediate) {
|
|
13
|
-
const [width, widthSet] = useState(0);
|
|
14
|
-
const [height, heightSet] = useState(0);
|
|
15
|
-
useEffect(()=>{
|
|
16
|
-
function updateSize() {
|
|
17
|
-
widthSet(window.innerWidth);
|
|
18
|
-
heightSet(window.innerHeight);
|
|
19
|
-
}
|
|
20
|
-
const listener = wait ? listenResizeDebounced(0, updateSize, wait, immediate) : listenResize(updateSize);
|
|
21
|
-
updateSize();
|
|
22
|
-
return listener;
|
|
23
|
-
}, [
|
|
24
|
-
wait,
|
|
25
|
-
immediate
|
|
26
|
-
]);
|
|
27
|
-
return [
|
|
28
|
-
width,
|
|
29
|
-
height
|
|
30
|
-
];
|
|
31
|
-
}
|
|
32
|
-
export default useWindowSize;
|
package/index.mjs
DELETED
package/m/MotionProvider.mjs
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { LazyMotion } from "framer-motion";
|
|
3
|
-
/**
|
|
4
|
-
* `<LazyMotion />` provider wrapper from `framer-motion`
|
|
5
|
-
*
|
|
6
|
-
* @see https://www.framer.com/docs/guide-reduce-bundle-size/
|
|
7
|
-
*
|
|
8
|
-
* About the difference between `lite` and `max`
|
|
9
|
-
* @see https://www.framer.com/docs/guide-reduce-bundle-size/#available-features
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
*
|
|
13
|
-
* `lite` version:
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { MotionProvider } from "@koine/react/m";
|
|
16
|
-
*
|
|
17
|
-
* const features = () => import("@koine/react/m/lite").then((m) => m.default);
|
|
18
|
-
*
|
|
19
|
-
* <MotionProvider features={features}>
|
|
20
|
-
* <App />
|
|
21
|
-
* </MotionProvider>
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* ### `max` version
|
|
25
|
-
* ```tsx
|
|
26
|
-
* import { MotionProvider } from "@koine/react/m";
|
|
27
|
-
*
|
|
28
|
-
* const features = () => import("@koine/react/m/max").then((m) => m.default);
|
|
29
|
-
*
|
|
30
|
-
* <MotionProvider features={features}>
|
|
31
|
-
* <App />
|
|
32
|
-
* </MotionProvider>
|
|
33
|
-
* ```
|
|
34
|
-
*/ export const MotionProvider = ({ features, children })=>{
|
|
35
|
-
return /*#__PURE__*/ _jsx(LazyMotion, {
|
|
36
|
-
features: features,
|
|
37
|
-
children: children
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
export default MotionProvider;
|
package/m/index.mjs
DELETED
package/sc/index.mjs
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export * from "../shared";
|
|
2
|
-
export * from "../Alert";
|
|
3
|
-
export * from "../Animations";
|
|
4
|
-
export * from "../Autocomplete";
|
|
5
|
-
export * from "../Bg";
|
|
6
|
-
export * from "../Breadcrumbs";
|
|
7
|
-
export * from "../Buttons";
|
|
8
|
-
export * from "../Carousel";
|
|
9
|
-
export * from "../Collapsable";
|
|
10
|
-
export * from "../Debug";
|
|
11
|
-
export { KoineDialog } from "../Dialog/sc/bare";
|
|
12
|
-
export { KoineForm } from "../Form/sc/bare";
|
|
13
|
-
export * from "../Forms";
|
|
14
|
-
export * from "../Grid";
|
|
15
|
-
export * from "../Hamburger";
|
|
16
|
-
export * from "../Header";
|
|
17
|
-
export * from "../Hidden";
|
|
18
|
-
export * from "../Img";
|
|
19
|
-
export * from "../Link";
|
|
20
|
-
export * from "../MenuItem";
|
|
21
|
-
export * from "../Pagination";
|
|
22
|
-
export * from "../Pill";
|
|
23
|
-
export * from "../Progress";
|
|
24
|
-
export * from "../Rating";
|
|
25
|
-
// export * from "../Select";
|
|
26
|
-
export * from "../Sidebar";
|
|
27
|
-
export * from "../Spacing";
|
|
28
|
-
export * from "../Sticky";
|
|
29
|
-
export * from "../styles";
|
|
30
|
-
export * from "../Tabs";
|
|
31
|
-
export * from "../Typography";
|
package/scm/index.mjs
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export * from "../shared";
|
|
2
|
-
export * from "../Alert";
|
|
3
|
-
export * from "../Animations";
|
|
4
|
-
export * from "../Autocomplete";
|
|
5
|
-
export * from "../Bg";
|
|
6
|
-
export * from "../Breadcrumbs";
|
|
7
|
-
export * from "../Buttons";
|
|
8
|
-
export * from "../Carousel";
|
|
9
|
-
export * from "../Collapsable";
|
|
10
|
-
export * from "../Debug";
|
|
11
|
-
export { KoineDialog } from "../Dialog/sc/framer";
|
|
12
|
-
// export { KoineForm, type KoineFormProps} from "../Form/sc/framer";
|
|
13
|
-
export * from "../Forms";
|
|
14
|
-
export * from "../Grid";
|
|
15
|
-
export * from "../Hamburger";
|
|
16
|
-
export * from "../Header";
|
|
17
|
-
export * from "../Hidden";
|
|
18
|
-
export * from "../Img";
|
|
19
|
-
export * from "../Link";
|
|
20
|
-
export * from "../MenuItem";
|
|
21
|
-
export * from "../Pagination";
|
|
22
|
-
export * from "../Pill";
|
|
23
|
-
export * from "../Progress";
|
|
24
|
-
export * from "../Rating";
|
|
25
|
-
// export * from "../Select";
|
|
26
|
-
export * from "../Sidebar";
|
|
27
|
-
export * from "../Spacing";
|
|
28
|
-
export * from "../Sticky";
|
|
29
|
-
export * from "../styles";
|
|
30
|
-
export * from "../Tabs";
|
|
31
|
-
export * from "../Typography";
|
package/shared/index.mjs
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export * from "../Calendar";
|
|
2
|
-
// export {
|
|
3
|
-
// Calendar,
|
|
4
|
-
// CalendarDaygridCell,
|
|
5
|
-
// CalendarDaygridCellComponents,
|
|
6
|
-
// CalendarDaygridCellEventBtnProps,
|
|
7
|
-
// CalendarDaygridCellEventProps,
|
|
8
|
-
// CalendarDaygridCellProps,
|
|
9
|
-
// CalendarDaygridCellStyledProps,
|
|
10
|
-
// CalendarDaygridNavProps,
|
|
11
|
-
// CalendarDaygridNavTitleProps,
|
|
12
|
-
// CalendarDaygridTableBodyCellDateProps,
|
|
13
|
-
// CalendarDaygridTableBodyCellProps,
|
|
14
|
-
// CalendarDaygridTableProps,
|
|
15
|
-
// CalendarEvent,
|
|
16
|
-
// CalendarEventsByTimestamp,
|
|
17
|
-
// CalendarEventsMap,
|
|
18
|
-
// CalendarLegendItemProps,
|
|
19
|
-
// CalendarLegendProps,
|
|
20
|
-
// CalendarRange,
|
|
21
|
-
// CalendarView,
|
|
22
|
-
// CalendarViewDay,
|
|
23
|
-
// CalendarViewDayProps,
|
|
24
|
-
// CalendarViewEvent,
|
|
25
|
-
// CalendarViewWeek,
|
|
26
|
-
// CalendarViewWeeks,
|
|
27
|
-
// Calendars
|
|
28
|
-
// } from "../Calendar";
|
|
29
|
-
export * from "../Dialog";
|
|
30
|
-
// export {
|
|
31
|
-
// KoineDialog,
|
|
32
|
-
// type KoineDialogProps
|
|
33
|
-
// } from "../Dialog";
|
|
34
|
-
export * from "../FaviconTags";
|
|
35
|
-
// export {
|
|
36
|
-
// FaviconTags,
|
|
37
|
-
// type FaviconTagsProps
|
|
38
|
-
// } from "../FaviconTags";
|
|
39
|
-
export * from "../helpers";
|
|
40
|
-
export * from "../hooks";
|
|
41
|
-
export * from "../Meta";
|
|
42
|
-
export * from "../NoJs";
|
|
43
|
-
export * from "../types";
|
package/styles/Body.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import styled from "styled-components";
|
|
2
|
-
export const BodyRoot = styled.div`
|
|
3
|
-
display: flex;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
min-height: 100vh;
|
|
6
|
-
`;
|
|
7
|
-
/**
|
|
8
|
-
* If you have background graphics to overlap you might need to add:
|
|
9
|
-
*
|
|
10
|
-
* ```css
|
|
11
|
-
* z-index: 1;
|
|
12
|
-
* position: relative;
|
|
13
|
-
* ```
|
|
14
|
-
*/ export const BodyMain = styled.main`
|
|
15
|
-
flex: 1;
|
|
16
|
-
`;
|
package/styles/Global.mjs
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { createGlobalStyle } from "styled-components";
|
|
2
|
-
/**
|
|
3
|
-
* App global style
|
|
4
|
-
*
|
|
5
|
-
* For examples of what to do here take a look at [Bootstrap's reset](https://github.com/twbs/bootstrap/blob/main/scss/_reboot.scss)
|
|
6
|
-
* and similar.
|
|
7
|
-
*
|
|
8
|
-
* What we do here:
|
|
9
|
-
* - set the base font family on all possible elements including placeholders prevent Chrome showing a standard font when using the autofill feature
|
|
10
|
-
* - @see https://stackoverflow.com/a/60987373/1938970
|
|
11
|
-
* - set the base font size on all possible elements to prevent weird zooming on input fields on iPhone iOS devices.
|
|
12
|
-
* - @see https://www.warrenchandler.com/2019/04/02/stop-iphones-from-zooming-in-on-form-fields/
|
|
13
|
-
* - @see https://css-tricks.com/16px-or-larger-text-prevents-ios-form-zoom/
|
|
14
|
-
*/ export const stylesGlobal = `
|
|
15
|
-
body {
|
|
16
|
-
margin: 0;
|
|
17
|
-
padding: 0;
|
|
18
|
-
overflow-x: hidden;
|
|
19
|
-
overflow-y: scroll;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
body,
|
|
23
|
-
button,
|
|
24
|
-
input,
|
|
25
|
-
textarea,
|
|
26
|
-
select,
|
|
27
|
-
select:-webkit-autofill::first-line,
|
|
28
|
-
input:-webkit-autofill::first-line {
|
|
29
|
-
font-family: var(--font), -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
30
|
-
Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue",
|
|
31
|
-
sans-serif;
|
|
32
|
-
font-size: var(--fontSize);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
html {
|
|
36
|
-
box-sizing: border-box;
|
|
37
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
38
|
-
scroll-behavior: smooth;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
*,
|
|
43
|
-
*:before,
|
|
44
|
-
*:after {
|
|
45
|
-
box-sizing: inherit;
|
|
46
|
-
-webkit-tap-highlight-color: transparent;
|
|
47
|
-
}
|
|
48
|
-
`;
|
|
49
|
-
export const StylesGlobal = createGlobalStyle`${stylesGlobal}`;
|
package/styles/index.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { BodyMain, BodyRoot } from "./Body";
|
|
2
|
-
export { StylesGlobal, stylesGlobal } from "./Global";
|
|
3
|
-
export { MediaDirection, MediaQuery, MediaQueryFunction, between, down, generateMediaQueries, max, min, only, up, useMedia } from "./media";
|
|
4
|
-
export { SpacingArgs, SpacingDevices, SpacingDirection, SpacingDirectionAxis, SpacingFactor, SpacingProperty, SpacingSize, spacing, spacingBottom, spacingTop, spacingVertical } from "./spacing";
|
|
5
|
-
export { colStretch, centered, ellipsis, inset0, invisible, overlay, stateFocus } from "./styled";
|
|
6
|
-
export { breakpoints, createTheme, useTheme } from "./theme";
|
|
7
|
-
export { THEME_DEFAULT, THEME_KEY, ThemeVanillaContext, ThemeVanillaProvider, getInitialThemeFromClient } from "./theme--vanilla";
|
package/styles/media.mjs
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/// TODO:FIXME: this should use code from `useMqWidthCreator`
|
|
2
|
-
import { useEffect, useState } from "react";
|
|
3
|
-
import { breakpoints, useTheme } from "./theme";
|
|
4
|
-
export const { min, max, up, down, between, only } = generateMediaQueries(breakpoints);
|
|
5
|
-
export function useMedia(media) {
|
|
6
|
-
const { breakpoints } = useTheme();
|
|
7
|
-
const [matches, setMatches] = useState(false);
|
|
8
|
-
const [direction = "min", breakpoint] = media.split(":");
|
|
9
|
-
let px = breakpoints[breakpoint];
|
|
10
|
-
if (direction === "max") {
|
|
11
|
-
px = px - 0.02;
|
|
12
|
-
}
|
|
13
|
-
const query = `(${direction}-width: ${px}px)`;
|
|
14
|
-
useEffect(()=>{
|
|
15
|
-
const mq = window.matchMedia(query);
|
|
16
|
-
const handleChange = (event)=>{
|
|
17
|
-
setMatches(event.matches);
|
|
18
|
-
};
|
|
19
|
-
setMatches(mq.matches);
|
|
20
|
-
// Safari < 14 can't use addEventListener on a MediaQueryList
|
|
21
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList#Browser_compatibility
|
|
22
|
-
if (!mq.addEventListener) {
|
|
23
|
-
// Update the state whenever the media query match state changes
|
|
24
|
-
mq.addListener(handleChange);
|
|
25
|
-
// Clean up on unmount and if the query changes
|
|
26
|
-
return ()=>{
|
|
27
|
-
mq.removeListener(handleChange);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
mq.addEventListener("change", handleChange);
|
|
31
|
-
return ()=>{
|
|
32
|
-
mq.removeEventListener("change", handleChange);
|
|
33
|
-
};
|
|
34
|
-
}, [
|
|
35
|
-
query
|
|
36
|
-
]);
|
|
37
|
-
return matches;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Generate media queries helpers
|
|
41
|
-
*
|
|
42
|
-
* Usage:
|
|
43
|
-
* ```jsx
|
|
44
|
-
* import { generateMediaQueries } from "@koine/react";
|
|
45
|
-
*
|
|
46
|
-
* export const breakpoints = {
|
|
47
|
-
* xs: 0,
|
|
48
|
-
* sm: 440,
|
|
49
|
-
* md: 768,
|
|
50
|
-
* lg: 1024,
|
|
51
|
-
* xl: 1368,
|
|
52
|
-
* xxl: 1690,
|
|
53
|
-
* } as const;
|
|
54
|
-
*
|
|
55
|
-
* export const { min, max, up, down, between, only } = generateMediaQueries(breakpoints);
|
|
56
|
-
* ```
|
|
57
|
-
*
|
|
58
|
-
* Consider the following syntaxes, using normal CSS is just slightly
|
|
59
|
-
* longer but it aovid js imports, reduce the js overhead and improve CSS
|
|
60
|
-
* highlighting in the editor.
|
|
61
|
-
*
|
|
62
|
-
* Even if we would reduce the function signature to the bare minimum the advantage
|
|
63
|
-
* in terms of typing would not be much, also loosing in readability.
|
|
64
|
-
*
|
|
65
|
-
* ```css
|
|
66
|
-
* // but unfortunately this does not work
|
|
67
|
-
* @media (min-width: var(--b-sm)) {}
|
|
68
|
-
* @media (min-width: 480px) {}
|
|
69
|
-
*
|
|
70
|
-
* ${media("min", "sm")} {}
|
|
71
|
-
* ${mediaMin("sm")} {}
|
|
72
|
-
* ${min.sm} {}
|
|
73
|
-
* ${p => p.theme.min.sm}``
|
|
74
|
-
* ```
|
|
75
|
-
*
|
|
76
|
-
* Related projects:
|
|
77
|
-
* @see https://github.com/mg901/styled-breakpoints
|
|
78
|
-
* @see https://github.com/morajabi/styled-media-query
|
|
79
|
-
*
|
|
80
|
-
* @see https://www.w3.org/TR/mediaqueries-5/#custom-mq The spec would allow for
|
|
81
|
-
* something like this syntax
|
|
82
|
-
*
|
|
83
|
-
* ```css
|
|
84
|
-
* @custom-media --narrow-window (max-width: 30em);
|
|
85
|
-
* @media (--narrow-window) {}
|
|
86
|
-
* ```
|
|
87
|
-
*/ export function generateMediaQueries(breakpoints) {
|
|
88
|
-
const temp = Object.keys(breakpoints).map((key)=>{
|
|
89
|
-
const br = key;
|
|
90
|
-
return [
|
|
91
|
-
br,
|
|
92
|
-
breakpoints[br]
|
|
93
|
-
];
|
|
94
|
-
});
|
|
95
|
-
const sortedKeys = temp.sort((a, b)=>a[1] - b[1]).map((item)=>item[0]);
|
|
96
|
-
const getNext = (breakpoint)=>{
|
|
97
|
-
const index = sortedKeys.indexOf(breakpoint);
|
|
98
|
-
return sortedKeys[index + 1];
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* It behaves the same as `@media (min-width: ${value}px)`
|
|
102
|
-
* where value is the given breakpoint value.
|
|
103
|
-
* For ease of use this can be used both as a function `min("md")` and as an
|
|
104
|
-
* object literal `min.md`.
|
|
105
|
-
*/ // @ts-expect-error FIXME: at some point
|
|
106
|
-
const min = (br)=>`@media (min-width: ${breakpoints[br]}px)`;
|
|
107
|
-
/**
|
|
108
|
-
* It behaves the same as `@media (max-width: ${value}px)`
|
|
109
|
-
* where value is the given breakpoint value.
|
|
110
|
-
* For ease of use this can be used both as a function `max("md")` and as an
|
|
111
|
-
* object literal `max.md`.
|
|
112
|
-
*/ // @ts-expect-error FIXME: at some point
|
|
113
|
-
const max = (br)=>`@media (max-width: ${breakpoints[br] - 0.02}px)`;
|
|
114
|
-
for(const br in breakpoints){
|
|
115
|
-
const _br = br;
|
|
116
|
-
min[_br] = `@media (min-width: ${breakpoints[_br]}px)`;
|
|
117
|
-
max[_br] = `@media (max-width: ${breakpoints[_br] - 0.02}px)`;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* It behaves the same as `min`
|
|
121
|
-
* @inheritdoc {max}
|
|
122
|
-
*/ const up = min;
|
|
123
|
-
/**
|
|
124
|
-
* It behaves similarly to `max` but you will use the "next" breakpoint,
|
|
125
|
-
* specifying CSS that will apply from the given breakpoint and down.
|
|
126
|
-
*/ const down = (br)=>{
|
|
127
|
-
const brNext = getNext(br);
|
|
128
|
-
// TODO: if br does not exists otherwise throw Error
|
|
129
|
-
return brNext && `@media (max-width: ${breakpoints[brNext] - 0.02}px)`;
|
|
130
|
-
};
|
|
131
|
-
/**
|
|
132
|
-
* Media query between the two given breakpoints
|
|
133
|
-
*/ const between = (br1, br2)=>{
|
|
134
|
-
return `@media (min-width: ${breakpoints[br1]}px) and (max-width: ${breakpoints[br2] - 0.02}px)`;
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* Media query to apply from the given breakpoint until the next, just for its
|
|
138
|
-
* full range
|
|
139
|
-
*/ const only = (br)=>{
|
|
140
|
-
const brNext = getNext(br);
|
|
141
|
-
return brNext ? between(br, brNext) : min(br);
|
|
142
|
-
};
|
|
143
|
-
return {
|
|
144
|
-
min,
|
|
145
|
-
max,
|
|
146
|
-
up,
|
|
147
|
-
down,
|
|
148
|
-
between,
|
|
149
|
-
only
|
|
150
|
-
};
|
|
151
|
-
}
|
package/styles/spacing.mjs
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// import type { DefaultTheme } from "styled-components";
|
|
2
|
-
function _spacing(theme, size = "md", factor = 1, property = "padding", direction = "top", devices = [
|
|
3
|
-
"mobile",
|
|
4
|
-
"tablet",
|
|
5
|
-
"desktop"
|
|
6
|
-
]) {
|
|
7
|
-
const { breakpoints, devices: DEVICES, spaces: SPACES } = theme;
|
|
8
|
-
let css = "";
|
|
9
|
-
const prop = `${property}-${direction}`;
|
|
10
|
-
if (!devices.length || devices[0] === "mobile") {
|
|
11
|
-
css += `@media(max-width: ${breakpoints[DEVICES.mobile]}px){
|
|
12
|
-
${prop}: ${SPACES["mobile"][size] * factor}px;
|
|
13
|
-
}`;
|
|
14
|
-
} else {
|
|
15
|
-
for(let index = 0; index < devices.length; index++){
|
|
16
|
-
const device = devices[index];
|
|
17
|
-
if (device === "mobile") {
|
|
18
|
-
css += `${prop}: ${SPACES[device][size] * factor}px;`;
|
|
19
|
-
} else if (device === "tablet") {
|
|
20
|
-
css += `@media(min-width: ${breakpoints[DEVICES.tablet]}px){
|
|
21
|
-
${prop}: ${SPACES["tablet"][size] * factor}px;
|
|
22
|
-
}`;
|
|
23
|
-
} else if (device === "desktop") {
|
|
24
|
-
css += `@media(min-width: ${breakpoints[DEVICES.desktop]}px){
|
|
25
|
-
${prop}: ${SPACES["desktop"][size] * factor}px;
|
|
26
|
-
}`;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return css;
|
|
31
|
-
}
|
|
32
|
-
export function spacing(size, factor, property, direction, devices) {
|
|
33
|
-
if (direction === "vertical") {
|
|
34
|
-
return _spacing(this, size, factor, property, "top", devices) + _spacing(this, size, factor, property, "bottom", devices);
|
|
35
|
-
}
|
|
36
|
-
return _spacing(this, size, factor, property, direction, devices);
|
|
37
|
-
}
|
|
38
|
-
export function spacingTop(size, factor, property, devices) {
|
|
39
|
-
return _spacing(this, size, factor, property, "top", devices);
|
|
40
|
-
}
|
|
41
|
-
export function spacingBottom(size, factor, property, devices) {
|
|
42
|
-
return _spacing(this, size, factor, property, "bottom", devices);
|
|
43
|
-
}
|
|
44
|
-
export function spacingVertical(size, factor, property, devices) {
|
|
45
|
-
return _spacing(this, size, factor, property, "top", devices) + _spacing(this, size, factor, property, "bottom", devices);
|
|
46
|
-
}
|
package/styles/styled.mjs
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export const colStretch = (direction, bg)=>{
|
|
3
|
-
return `
|
|
4
|
-
background: ${bg};
|
|
5
|
-
position: relative;
|
|
6
|
-
|
|
7
|
-
&:before{
|
|
8
|
-
z-index: -1;
|
|
9
|
-
content: '';
|
|
10
|
-
position: absolute;
|
|
11
|
-
right: ${direction === "left" ? "100%" : "-100vw"};
|
|
12
|
-
left: ${direction === "right" ? "100%" : "-100vw"};
|
|
13
|
-
top: 0;
|
|
14
|
-
bottom: 0;
|
|
15
|
-
background: ${bg};
|
|
16
|
-
}
|
|
17
|
-
`;
|
|
18
|
-
};
|
|
19
|
-
/** @see https://caniuse.com/?search=inset */ export const inset0 = `top:0;left:0;right:0;bottom:0;`;
|
|
20
|
-
export const overlay = `position: absolute;${inset0}`;
|
|
21
|
-
export const centered = `display: flex;align-items: center;justify-content: center;`;
|
|
22
|
-
export const ellipsis = `overflow: hidden;text-overflow: ellipsis;white-space: nowrap;`;
|
|
23
|
-
/**
|
|
24
|
-
* @see import("@mui/utils").visuallyHidden https://github.com/mui-org/material-ui/blob/master/packages/mui-utils/src/visuallyHidden.ts
|
|
25
|
-
*/ export const invisible = `border: 0;clip: rect(0 0 0 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;white-space: nowrap;width: 1px;`;
|
|
26
|
-
export const stateFocus = `outline: 0px;box-shadow: 0 0 0 0.2rem rgba(200, 200, 200, 0.25);`;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useEffect, useState } from "react";
|
|
3
|
-
import isBrowser from "@koine/utils/isBrowser";
|
|
4
|
-
// import setCookie from "@koine/utils/setCookie";
|
|
5
|
-
// import parseCookie from "@koine/utils/parseCookie";
|
|
6
|
-
import useUpdateEffect from "../hooks/useUpdateEffect";
|
|
7
|
-
export const THEME_KEY = "theme";
|
|
8
|
-
export const THEME_DEFAULT = "light";
|
|
9
|
-
// export const getInitialThemeFromRequest = (
|
|
10
|
-
// cookie?: string
|
|
11
|
-
// ): ThemeVanillaValue => {
|
|
12
|
-
// if (cookie) {
|
|
13
|
-
// const parsed = parseCookie<ThemeCookie>(cookie);
|
|
14
|
-
// return parsed?.theme;
|
|
15
|
-
// }
|
|
16
|
-
// return THEME_DEFAULT;
|
|
17
|
-
// };
|
|
18
|
-
export const getInitialThemeFromClient = ()=>{
|
|
19
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
20
|
-
const storedPrefs = window.localStorage.getItem(THEME_KEY);
|
|
21
|
-
if (typeof storedPrefs === "string") {
|
|
22
|
-
return storedPrefs;
|
|
23
|
-
}
|
|
24
|
-
const userMedia = window.matchMedia("(prefers-color-scheme: dark)");
|
|
25
|
-
if (userMedia.matches) {
|
|
26
|
-
return "dark";
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return THEME_DEFAULT;
|
|
30
|
-
};
|
|
31
|
-
export const ThemeVanillaContext = /*#__PURE__*/ createContext({
|
|
32
|
-
theme: "light",
|
|
33
|
-
setTheme: undefined
|
|
34
|
-
});
|
|
35
|
-
export const ThemeVanillaProvider = ({ initialTheme, children })=>{
|
|
36
|
-
const [theme, setTheme] = useState(initialTheme);
|
|
37
|
-
const rawSetTheme = (rawTheme)=>{
|
|
38
|
-
if (!rawTheme || !isBrowser) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
const root = window.document.documentElement;
|
|
42
|
-
const isDark = rawTheme === "dark";
|
|
43
|
-
root.classList.remove(isDark ? "light" : "dark");
|
|
44
|
-
root.classList.add(rawTheme);
|
|
45
|
-
localStorage.setItem(THEME_KEY, rawTheme);
|
|
46
|
-
// setCookie(THEME_KEY, rawTheme);
|
|
47
|
-
};
|
|
48
|
-
useEffect(()=>{
|
|
49
|
-
const theme = getInitialThemeFromClient();
|
|
50
|
-
setTheme(theme);
|
|
51
|
-
rawSetTheme(theme);
|
|
52
|
-
}, []);
|
|
53
|
-
useUpdateEffect(()=>{
|
|
54
|
-
rawSetTheme(theme);
|
|
55
|
-
}, [
|
|
56
|
-
theme
|
|
57
|
-
]);
|
|
58
|
-
return /*#__PURE__*/ _jsx(ThemeVanillaContext.Provider, {
|
|
59
|
-
value: {
|
|
60
|
-
theme,
|
|
61
|
-
setTheme
|
|
62
|
-
},
|
|
63
|
-
children: children
|
|
64
|
-
});
|
|
65
|
-
};
|
package/styles/theme.mjs
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { useTheme as _useTheme } from "styled-components";
|
|
2
|
-
const DEFAULT_BREAKPOINTS = {
|
|
3
|
-
xs: 0,
|
|
4
|
-
sm: 440,
|
|
5
|
-
md: 768,
|
|
6
|
-
lg: 1024,
|
|
7
|
-
xl: 1368,
|
|
8
|
-
xxl: 1690
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* You can override the default breakpoints through the .env variable
|
|
12
|
-
*
|
|
13
|
-
* FIXME: find a better way to configure it, the problem is that we use the media
|
|
14
|
-
* queries within this pre-compiled library and thrught it was better to avoid
|
|
15
|
-
* using theming props for a more ergonomic usage.
|
|
16
|
-
*
|
|
17
|
-
* ```.env
|
|
18
|
-
* BREAKPOINTS=xs:0,sm:440,md:768,lg:1024,xl:1368,xxl:1690
|
|
19
|
-
* ```
|
|
20
|
-
*/ export const breakpoints = process.env["BREAKPOINTS"] ? process.env["BREAKPOINTS"].split(",").reduce((map, pair)=>{
|
|
21
|
-
const [key, value] = pair.split(":");
|
|
22
|
-
map[key] = parseFloat(value);
|
|
23
|
-
return map;
|
|
24
|
-
}, {}) : DEFAULT_BREAKPOINTS;
|
|
25
|
-
const themeDefault = {
|
|
26
|
-
maxWidth: breakpoints.xxl,
|
|
27
|
-
breakpoints,
|
|
28
|
-
devices: {
|
|
29
|
-
mobile: "sm",
|
|
30
|
-
tablet: "md",
|
|
31
|
-
desktop: "lg"
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
export const createTheme = (options)=>({
|
|
35
|
-
...themeDefault,
|
|
36
|
-
...options
|
|
37
|
-
});
|
|
38
|
-
export const useTheme = _useTheme;
|
package/tw/index.mjs
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export * from "../shared";
|
|
2
|
-
// export * from "../Alert";
|
|
3
|
-
// export * from "../Animations";
|
|
4
|
-
// export * from "../Autocomplete";
|
|
5
|
-
// export * from "../Bg";
|
|
6
|
-
// export * from "../Breadcrumbs";
|
|
7
|
-
// export * from "../Buttons";
|
|
8
|
-
// export * from "../Carousel";
|
|
9
|
-
// export * from "../Collapsable";
|
|
10
|
-
// export * from "../Debug";
|
|
11
|
-
export { KoineDialog } from "../Dialog/tw/bare"; // export * from "../Form";
|
|
12
|
-
// export * from "../Forms";
|
|
13
|
-
// export * from "../Grid";
|
|
14
|
-
// export * from "../Hamburger";
|
|
15
|
-
// export * from "../Header";
|
|
16
|
-
// export * from "../Hidden";
|
|
17
|
-
// export * from "../Img";
|
|
18
|
-
// export * from "../Link";
|
|
19
|
-
// export * from "../MenuItem";
|
|
20
|
-
// export * from "../Pagination";
|
|
21
|
-
// export * from "../Pill";
|
|
22
|
-
// export * from "../Progress";
|
|
23
|
-
// export * from "../Rating";
|
|
24
|
-
// // export * from "../Select";
|
|
25
|
-
// export * from "../Sidebar";
|
|
26
|
-
// export * from "../Spacing";
|
|
27
|
-
// export * from "../Sticky";
|
|
28
|
-
// export * from "../styles";
|
|
29
|
-
// export * from "../Tabs";
|
|
30
|
-
// export * from "../Typography";
|