@koine/react 1.0.10 → 1.0.11
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.d.ts +5 -0
- package/Alert/Alert.js +16 -0
- package/Alert/index.d.ts +1 -0
- package/Alert/index.js +1 -0
- package/Alert/package.json +6 -0
- package/Animations/Reveal.d.ts +4 -0
- package/Animations/Reveal.js +15 -0
- package/Animations/Underline.d.ts +1 -0
- package/Animations/Underline.js +15 -0
- package/Animations/index.d.ts +3 -0
- package/Animations/index.js +3 -0
- package/Animations/package.json +6 -0
- package/Animations/useReveal.d.ts +33 -0
- package/Animations/useReveal.js +70 -0
- package/Autocomplete/AutocompleteDownshift.d.ts +1 -0
- package/Autocomplete/AutocompleteDownshift.js +158 -0
- package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +1 -0
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +353 -0
- package/Autocomplete/AutocompleteMui.d.ts +47 -0
- package/Autocomplete/AutocompleteMui.js +177 -0
- package/Autocomplete/AutocompleteReach.d.ts +1 -0
- package/Autocomplete/AutocompleteReach.js +112 -0
- package/Autocomplete/components.d.ts +21 -0
- package/Autocomplete/components.js +89 -0
- package/Autocomplete/helpers.d.ts +3 -0
- package/Autocomplete/helpers.js +28 -0
- package/Autocomplete/index.d.ts +2 -0
- package/Autocomplete/index.js +3 -0
- package/Autocomplete/package.json +6 -0
- package/Bg/BgColor.d.ts +36 -0
- package/Bg/BgColor.js +31 -0
- package/Bg/BgPhoto.d.ts +13 -0
- package/Bg/BgPhoto.js +59 -0
- package/Bg/BgSvg.d.ts +7 -0
- package/Bg/BgSvg.js +15 -0
- package/Bg/index.d.ts +3 -0
- package/Bg/index.js +3 -0
- package/Bg/package.json +6 -0
- package/Breadcrumbs/Breadcrumbs.d.ts +13 -0
- package/Breadcrumbs/Breadcrumbs.js +67 -0
- package/Breadcrumbs/index.d.ts +1 -0
- package/Breadcrumbs/index.js +1 -0
- package/Breadcrumbs/package.json +6 -0
- package/Buttons/Button.d.ts +18 -0
- package/Buttons/Button.js +79 -0
- package/Buttons/ButtonComposite.d.ts +23 -0
- package/Buttons/ButtonComposite.js +49 -0
- package/Buttons/ButtonFab.d.ts +7 -0
- package/Buttons/ButtonFab.js +8 -0
- package/Buttons/ButtonLink.d.ts +8 -0
- package/Buttons/ButtonLink.js +10 -0
- package/Buttons/IconButton.d.ts +11 -0
- package/Buttons/IconButton.js +19 -0
- package/Buttons/index.d.ts +5 -0
- package/Buttons/index.js +5 -0
- package/Buttons/package.json +6 -0
- package/Calendar/CalendarDaygridCell.d.ts +36 -0
- package/Calendar/CalendarDaygridCell.js +51 -0
- package/Calendar/CalendarDaygridNav.d.ts +27 -0
- package/Calendar/CalendarDaygridNav.js +22 -0
- package/Calendar/CalendarDaygridTable.d.ts +25 -0
- package/Calendar/CalendarDaygridTable.js +55 -0
- package/Calendar/CalendarLegend.d.ts +19 -0
- package/Calendar/CalendarLegend.js +11 -0
- package/Calendar/calendar-api-google.d.ts +18 -0
- package/Calendar/calendar-api-google.js +94 -0
- package/Calendar/index.d.ts +6 -0
- package/Calendar/index.js +6 -0
- package/Calendar/package.json +6 -0
- package/Calendar/types.d.ts +81 -0
- package/Calendar/types.js +1 -0
- package/Calendar/useCalendar.d.ts +49 -0
- package/Calendar/useCalendar.js +182 -0
- package/Calendar/utils.d.ts +11 -0
- package/Calendar/utils.js +203 -0
- package/Carousel/Carousel.d.ts +1 -0
- package/Carousel/Carousel.js +378 -0
- package/Carousel/CarouselCss.d.ts +47 -0
- package/Carousel/CarouselCss.js +37 -0
- package/Carousel/index.d.ts +1 -0
- package/Carousel/index.js +1 -0
- package/Carousel/package.json +6 -0
- package/Collapsable/Collapsable.d.ts +1 -0
- package/Collapsable/Collapsable.js +1 -0
- package/Collapsable/CollapsableReach.d.ts +6 -0
- package/Collapsable/CollapsableReach.js +253 -0
- package/Collapsable/index.d.ts +1 -0
- package/Collapsable/index.js +2 -0
- package/Collapsable/package.json +6 -0
- package/Debug/Debug.d.ts +4 -0
- package/Debug/Debug.js +21 -0
- package/Debug/index.d.ts +1 -0
- package/Debug/index.js +1 -0
- package/Debug/package.json +6 -0
- package/Details/Details.d.ts +114 -0
- package/Details/Details.js +62 -0
- package/Details/index.d.ts +1 -0
- package/Details/index.js +1 -0
- package/Details/package.json +6 -0
- package/Dialog/DialogMui.d.ts +139 -0
- package/Dialog/DialogMui.js +78 -0
- package/Dialog/css/bare.d.ts +145 -0
- package/Dialog/css/bare.js +19 -0
- package/Dialog/index.d.ts +2 -0
- package/Dialog/index.js +1 -0
- package/Dialog/m/bare.d.ts +56 -0
- package/Dialog/m/bare.js +48 -0
- package/Dialog/m/basic.d.ts +4 -0
- package/Dialog/m/basic.js +31 -0
- package/Dialog/m/index.d.ts +2 -0
- package/Dialog/m/index.js +4 -0
- package/Dialog/m/package.json +6 -0
- package/Dialog/package.json +6 -0
- package/Dialog/sc/bare.d.ts +105 -0
- package/Dialog/sc/bare.js +61 -0
- package/Dialog/sc/framer.d.ts +80 -0
- package/Dialog/sc/framer.js +16 -0
- package/Dialog/sc/framerMaterial.d.ts +79 -0
- package/Dialog/sc/framerMaterial.js +16 -0
- package/Dialog/sc/material.d.ts +94 -0
- package/Dialog/sc/material.js +41 -0
- package/Dialog/tw/bare.d.ts +196 -0
- package/Dialog/tw/bare.js +36 -0
- package/Dialog/tw/elegant.d.ts +244 -0
- package/Dialog/tw/elegant.js +18 -0
- package/Dialog/tw/framer.d.ts +112 -0
- package/Dialog/tw/framer.js +16 -0
- package/Dialog/tw/framerMaterial.d.ts +167 -0
- package/Dialog/tw/framerMaterial.js +16 -0
- package/Dialog/tw/material.d.ts +244 -0
- package/Dialog/tw/material.js +18 -0
- package/Editor/Editor--tiptap.d.ts +9 -0
- package/Editor/Editor--tiptap.js +23 -0
- package/Editor/components.d.ts +7 -0
- package/Editor/components.js +28 -0
- package/Editor/index.d.ts +1 -0
- package/Editor/index.js +1 -0
- package/Editor/package.json +6 -0
- package/Favicon/FaviconTags.d.ts +18 -0
- package/Favicon/FaviconTags.js +14 -0
- package/Favicon/index.d.ts +1 -0
- package/Favicon/index.js +1 -0
- package/Favicon/package.json +6 -0
- package/Form/Form.d.ts +111 -0
- package/Form/Form.js +59 -0
- package/Form/index.d.ts +1 -0
- package/Form/index.js +1 -0
- package/Form/package.json +6 -0
- package/Form/sc/bare.d.ts +33 -0
- package/Form/sc/bare.js +29 -0
- package/Forms/Checkbox/Checkbox.d.ts +11 -0
- package/Forms/Checkbox/Checkbox.js +24 -0
- package/Forms/Checkbox/index.d.ts +1 -0
- package/Forms/Checkbox/index.js +1 -0
- package/Forms/Checkbox/package.json +6 -0
- package/Forms/Feedback/Feedback.d.ts +5 -0
- package/Forms/Feedback/Feedback.js +10 -0
- package/Forms/Feedback/index.d.ts +1 -0
- package/Forms/Feedback/index.js +1 -0
- package/Forms/Feedback/package.json +6 -0
- package/Forms/Field/Field.d.ts +15 -0
- package/Forms/Field/Field.js +59 -0
- package/Forms/Field/FieldControl.d.ts +26 -0
- package/Forms/Field/FieldControl.js +43 -0
- package/Forms/Field/FieldHint.d.ts +1 -0
- package/Forms/Field/FieldHint.js +6 -0
- package/Forms/Field/index.d.ts +2 -0
- package/Forms/Field/index.js +2 -0
- package/Forms/Field/package.json +6 -0
- package/Forms/Input/Input.d.ts +9 -0
- package/Forms/Input/Input.js +23 -0
- package/Forms/Input/index.d.ts +1 -0
- package/Forms/Input/index.js +1 -0
- package/Forms/Input/package.json +6 -0
- package/Forms/InputGroup/InputGroup.d.ts +13 -0
- package/Forms/InputGroup/InputGroup.js +42 -0
- package/Forms/InputGroup/index.d.ts +1 -0
- package/Forms/InputGroup/index.js +1 -0
- package/Forms/InputGroup/package.json +6 -0
- package/Forms/Label/Label.d.ts +3 -0
- package/Forms/Label/Label.js +24 -0
- package/Forms/Label/index.d.ts +1 -0
- package/Forms/Label/index.js +1 -0
- package/Forms/Label/package.json +6 -0
- package/Forms/Password/Password.d.ts +5 -0
- package/Forms/Password/Password.js +30 -0
- package/Forms/Password/index.d.ts +1 -0
- package/Forms/Password/index.js +1 -0
- package/Forms/Password/package.json +6 -0
- package/Forms/Radio/Radio.d.ts +12 -0
- package/Forms/Radio/Radio.js +28 -0
- package/Forms/Radio/index.d.ts +1 -0
- package/Forms/Radio/index.js +1 -0
- package/Forms/Radio/package.json +6 -0
- package/Forms/Switch/Switch.d.ts +9 -0
- package/Forms/Switch/Switch.js +50 -0
- package/Forms/Switch/index.d.ts +1 -0
- package/Forms/Switch/index.js +1 -0
- package/Forms/Switch/package.json +6 -0
- package/Forms/Textarea/Textarea.d.ts +5 -0
- package/Forms/Textarea/Textarea.js +13 -0
- package/Forms/Textarea/TextareaRich.d.ts +6 -0
- package/Forms/Textarea/TextareaRich.js +42 -0
- package/Forms/Textarea/index.d.ts +2 -0
- package/Forms/Textarea/index.js +2 -0
- package/Forms/Textarea/package.json +6 -0
- package/Forms/Toggle/Toggle.d.ts +19 -0
- package/Forms/Toggle/Toggle.js +80 -0
- package/Forms/Toggle/index.d.ts +1 -0
- package/Forms/Toggle/index.js +1 -0
- package/Forms/Toggle/package.json +6 -0
- package/Forms/Toggle/useToggle.d.ts +46 -0
- package/Forms/Toggle/useToggle.js +145 -0
- package/Forms/antispam.d.ts +24 -0
- package/Forms/antispam.js +56 -0
- package/Forms/helpers.d.ts +26 -0
- package/Forms/helpers.js +44 -0
- package/Forms/index.d.ts +15 -0
- package/Forms/index.js +16 -0
- package/Forms/package.json +6 -0
- package/Forms/styles.d.ts +19 -0
- package/Forms/styles.js +60 -0
- package/Gauge/Gauge.d.ts +5 -0
- package/Gauge/Gauge.js +102 -0
- package/Grid/Grid.d.ts +64 -0
- package/Grid/Grid.js +79 -0
- package/Grid/index.d.ts +1 -0
- package/Grid/index.js +1 -0
- package/Grid/package.json +6 -0
- package/Hamburger/Hamburger.d.ts +6 -0
- package/Hamburger/Hamburger.js +64 -0
- package/Hamburger/index.d.ts +1 -0
- package/Hamburger/index.js +1 -0
- package/Hamburger/package.json +6 -0
- package/Header/index.d.ts +1 -0
- package/Header/index.js +1 -0
- package/Header/package.json +6 -0
- package/Header/useHeader.d.ts +24 -0
- package/Header/useHeader.js +30 -0
- package/Hidden/Hidden.d.ts +6 -0
- package/Hidden/Hidden.js +14 -0
- package/Hidden/index.d.ts +1 -0
- package/Hidden/index.js +1 -0
- package/Hidden/package.json +6 -0
- package/Img/index.d.ts +1 -0
- package/Img/index.js +1 -0
- package/Img/package.json +6 -0
- package/Img/sc/bare.d.ts +2 -0
- package/Img/sc/bare.js +37 -0
- package/Img/types.d.ts +9 -0
- package/Img/types.js +1 -0
- package/Link/Link.d.ts +5 -0
- package/Link/Link.js +2 -0
- package/Link/LinkBlank.d.ts +8 -0
- package/Link/LinkBlank.js +26 -0
- package/Link/index.d.ts +2 -0
- package/Link/index.js +2 -0
- package/Link/package.json +6 -0
- package/Menu/Menu.d.ts +1 -0
- package/Menu/Menu.js +11 -0
- package/Menu/index.d.ts +1 -0
- package/Menu/index.js +1 -0
- package/Menu/package.json +6 -0
- package/MenuItem/MenuItem.d.ts +4 -0
- package/MenuItem/MenuItem.js +20 -0
- package/MenuItem/index.d.ts +1 -0
- package/MenuItem/index.js +1 -0
- package/MenuItem/package.json +6 -0
- package/Meta/Meta.d.ts +14 -0
- package/Meta/Meta.js +4 -0
- package/Meta/index.d.ts +1 -0
- package/Meta/index.js +1 -0
- package/Meta/package.json +6 -0
- package/NoJs/NoJs.d.ts +2 -0
- package/NoJs/NoJs.js +6 -0
- package/NoJs/index.d.ts +1 -0
- package/NoJs/index.js +1 -0
- package/NoJs/package.json +6 -0
- package/Pagination/PaginationNav.d.ts +22 -0
- package/Pagination/PaginationNav.js +83 -0
- package/Pagination/PaginationResults.d.ts +3 -0
- package/Pagination/PaginationResults.js +10 -0
- package/Pagination/index.d.ts +2 -0
- package/Pagination/index.js +2 -0
- package/Pagination/package.json +6 -0
- package/Pill/Pill.d.ts +5 -0
- package/Pill/Pill.js +37 -0
- package/Pill/index.d.ts +1 -0
- package/Pill/index.js +1 -0
- package/Pill/package.json +6 -0
- package/Progress/ProgressCircular.d.ts +19 -0
- package/Progress/ProgressCircular.js +36 -0
- package/Progress/ProgressLinear.d.ts +22 -0
- package/Progress/ProgressLinear.js +32 -0
- package/Progress/ProgressOverlay.d.ts +4 -0
- package/Progress/ProgressOverlay.js +40 -0
- package/Progress/index.d.ts +3 -0
- package/Progress/index.js +3 -0
- package/Progress/package.json +6 -0
- package/Rating/Rating.d.ts +35 -0
- package/Rating/Rating.js +91 -0
- package/Rating/index.d.ts +11 -0
- package/Rating/index.js +45 -0
- package/Rating/package.json +6 -0
- package/Select/SelectDownshift.d.ts +5 -0
- package/Select/SelectDownshift.js +38 -0
- package/Select/components.d.ts +6 -0
- package/Select/components.js +18 -0
- package/Select/index.d.ts +2 -0
- package/Select/index.js +3 -0
- package/Select/package.json +6 -0
- package/Sidebar/Sidebar.d.ts +3 -0
- package/Sidebar/Sidebar.js +48 -0
- package/Sidebar/index.d.ts +1 -0
- package/Sidebar/index.js +1 -0
- package/Sidebar/package.json +6 -0
- package/Spacing/Spacing.d.ts +30 -0
- package/Spacing/Spacing.js +45 -0
- package/Spacing/index.d.ts +1 -0
- package/Spacing/index.js +1 -0
- package/Spacing/package.json +6 -0
- package/Sticky/Sticky.d.ts +2 -0
- package/Sticky/Sticky.js +219 -0
- package/Sticky/StickyCss.d.ts +5 -0
- package/Sticky/StickyCss.js +4 -0
- package/Sticky/index.d.ts +1 -0
- package/Sticky/index.js +1 -0
- package/Sticky/package.json +6 -0
- package/Tabs/TabsMui.d.ts +244 -0
- package/Tabs/TabsMui.js +43 -0
- package/Tabs/index.d.ts +1 -0
- package/Tabs/index.js +1 -0
- package/Tabs/package.json +6 -0
- package/Tabs/sc/bare.d.ts +5 -0
- package/Tabs/sc/bare.js +87 -0
- package/Tabs/tw/bare.d.ts +248 -0
- package/Tabs/tw/bare.js +15 -0
- package/Tabs/tw/material.d.ts +472 -0
- package/Tabs/tw/material.js +14 -0
- package/Tabs/useTabs.d.ts +43 -0
- package/Tabs/useTabs.js +44 -0
- package/Typography/CopyPasteVisible.d.ts +1 -0
- package/Typography/CopyPasteVisible.js +6 -0
- package/Typography/Native.d.ts +10 -0
- package/Typography/Native.js +47 -0
- package/Typography/ReadMore.d.ts +12 -0
- package/Typography/ReadMore.js +69 -0
- package/Typography/TextLoop.d.ts +16 -0
- package/Typography/TextLoop.js +49 -0
- package/Typography/TypeStairs.d.ts +6 -0
- package/Typography/TypeStairs.js +46 -0
- package/Typography/index.d.ts +5 -0
- package/Typography/index.js +5 -0
- package/Typography/package.json +6 -0
- package/css/index.d.ts +2 -0
- package/css/index.js +31 -0
- package/css/package.json +6 -0
- package/helpers/classed.d.ts +22 -0
- package/helpers/classed.js +65 -0
- package/helpers/extend-component.d.ts +28 -0
- package/helpers/extend-component.js +12 -0
- package/helpers/index.d.ts +3 -0
- package/helpers/index.js +2 -0
- package/helpers/package.json +6 -0
- package/hooks/index.d.ts +14 -0
- package/hooks/index.js +15 -0
- package/hooks/package.json +6 -0
- package/hooks/types.d.ts +8 -0
- package/hooks/types.js +1 -0
- package/hooks/useAsyncFn.d.ts +26 -0
- package/hooks/useAsyncFn.js +29 -0
- package/hooks/useDateLocale.d.ts +7 -0
- package/hooks/useDateLocale.js +29 -0
- package/hooks/useEffectOnce.d.ts +5 -0
- package/hooks/useEffectOnce.js +8 -0
- package/hooks/useFirstMountState.d.ts +4 -0
- package/hooks/useFirstMountState.js +12 -0
- package/hooks/useFocus.d.ts +4 -0
- package/hooks/useFocus.js +11 -0
- package/hooks/useId.d.ts +4 -0
- package/hooks/useId.js +7 -0
- package/hooks/useIsomorphicLayoutEffect.d.ts +5 -0
- package/hooks/useIsomorphicLayoutEffect.js +8 -0
- package/hooks/useMount.d.ts +4 -0
- package/hooks/useMount.js +9 -0
- package/hooks/useMountedState.d.ts +4 -0
- package/hooks/useMountedState.js +15 -0
- package/hooks/usePrevious.d.ts +1 -0
- package/hooks/usePrevious.js +8 -0
- package/hooks/useScrollPosition.d.ts +15 -0
- package/hooks/useScrollPosition.js +75 -0
- package/hooks/useScrollTo.d.ts +1 -0
- package/hooks/useScrollTo.js +19 -0
- package/hooks/useTraceUpdate.d.ts +4 -0
- package/hooks/useTraceUpdate.js +20 -0
- package/hooks/useUpdateEffect.d.ts +5 -0
- package/hooks/useUpdateEffect.js +14 -0
- package/hooks/useWindowSize.d.ts +1 -0
- package/hooks/useWindowSize.js +13 -0
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/m/MotionProvider.d.ts +37 -0
- package/m/MotionProvider.js +37 -0
- package/m/index.d.ts +6 -0
- package/m/index.js +6 -0
- package/m/lite.d.ts +2 -0
- package/m/lite.js +2 -0
- package/m/max.d.ts +2 -0
- package/m/max.js +2 -0
- package/m/package.json +6 -0
- package/node/Alert/Alert.js +21 -0
- package/node/Alert/index.js +4 -0
- package/node/Animations/Reveal.js +19 -0
- package/node/Animations/Underline.js +19 -0
- package/node/Animations/index.js +6 -0
- package/node/Animations/useReveal.js +74 -0
- package/node/Autocomplete/AutocompleteDownshift.js +161 -0
- package/node/Autocomplete/AutocompleteDownshiftMultiselect.js +356 -0
- package/node/Autocomplete/AutocompleteMui.js +175 -0
- package/node/Autocomplete/AutocompleteReach.js +115 -0
- package/node/Autocomplete/components.js +93 -0
- package/node/Autocomplete/helpers.js +32 -0
- package/node/Autocomplete/index.js +7 -0
- package/node/Bg/BgColor.js +36 -0
- package/node/Bg/BgPhoto.js +64 -0
- package/node/Bg/BgSvg.js +20 -0
- package/node/Bg/index.js +6 -0
- package/node/Breadcrumbs/Breadcrumbs.js +72 -0
- package/node/Breadcrumbs/index.js +4 -0
- package/node/Buttons/Button.js +83 -0
- package/node/Buttons/ButtonComposite.js +54 -0
- package/node/Buttons/ButtonFab.js +12 -0
- package/node/Buttons/ButtonLink.js +15 -0
- package/node/Buttons/IconButton.js +23 -0
- package/node/Buttons/index.js +8 -0
- package/node/Calendar/CalendarDaygridCell.js +55 -0
- package/node/Calendar/CalendarDaygridNav.js +27 -0
- package/node/Calendar/CalendarDaygridTable.js +60 -0
- package/node/Calendar/CalendarLegend.js +15 -0
- package/node/Calendar/calendar-api-google.js +99 -0
- package/node/Calendar/index.js +9 -0
- package/node/Calendar/types.js +2 -0
- package/node/Calendar/useCalendar.js +186 -0
- package/node/Calendar/utils.js +217 -0
- package/node/Carousel/Carousel.js +381 -0
- package/node/Carousel/CarouselCss.js +42 -0
- package/node/Carousel/index.js +4 -0
- package/node/Collapsable/Collapsable.js +4 -0
- package/node/Collapsable/CollapsableReach.js +253 -0
- package/node/Collapsable/index.js +5 -0
- package/node/Debug/Debug.js +26 -0
- package/node/Debug/index.js +4 -0
- package/node/Details/Details.js +65 -0
- package/node/Details/index.js +4 -0
- package/node/Dialog/DialogMui.js +82 -0
- package/node/Dialog/css/bare.js +23 -0
- package/node/Dialog/index.js +5 -0
- package/node/Dialog/m/bare.js +51 -0
- package/node/Dialog/m/basic.js +35 -0
- package/node/Dialog/m/index.js +8 -0
- package/node/Dialog/sc/bare.js +65 -0
- package/node/Dialog/sc/framer.js +19 -0
- package/node/Dialog/sc/framerMaterial.js +19 -0
- package/node/Dialog/sc/material.js +45 -0
- package/node/Dialog/tw/bare.js +40 -0
- package/node/Dialog/tw/elegant.js +21 -0
- package/node/Dialog/tw/framer.js +19 -0
- package/node/Dialog/tw/framerMaterial.js +19 -0
- package/node/Dialog/tw/material.js +21 -0
- package/node/Editor/Editor--tiptap.js +29 -0
- package/node/Editor/components.js +34 -0
- package/node/Editor/index.js +4 -0
- package/node/Favicon/FaviconTags.js +18 -0
- package/node/Favicon/index.js +4 -0
- package/node/Form/Form.js +63 -0
- package/node/Form/index.js +4 -0
- package/node/Form/sc/bare.js +33 -0
- package/node/Forms/Checkbox/Checkbox.js +28 -0
- package/node/Forms/Checkbox/index.js +4 -0
- package/node/Forms/Feedback/Feedback.js +15 -0
- package/node/Forms/Feedback/index.js +4 -0
- package/node/Forms/Field/Field.js +64 -0
- package/node/Forms/Field/FieldControl.js +47 -0
- package/node/Forms/Field/FieldHint.js +10 -0
- package/node/Forms/Field/index.js +5 -0
- package/node/Forms/Input/Input.js +27 -0
- package/node/Forms/Input/index.js +4 -0
- package/node/Forms/InputGroup/InputGroup.js +47 -0
- package/node/Forms/InputGroup/index.js +4 -0
- package/node/Forms/Label/Label.js +28 -0
- package/node/Forms/Label/index.js +4 -0
- package/node/Forms/Password/Password.js +34 -0
- package/node/Forms/Password/index.js +4 -0
- package/node/Forms/Radio/Radio.js +32 -0
- package/node/Forms/Radio/index.js +4 -0
- package/node/Forms/Switch/Switch.js +54 -0
- package/node/Forms/Switch/index.js +4 -0
- package/node/Forms/Textarea/Textarea.js +17 -0
- package/node/Forms/Textarea/TextareaRich.js +46 -0
- package/node/Forms/Textarea/index.js +5 -0
- package/node/Forms/Toggle/Toggle.js +86 -0
- package/node/Forms/Toggle/index.js +4 -0
- package/node/Forms/Toggle/useToggle.js +149 -0
- package/node/Forms/antispam.js +61 -0
- package/node/Forms/helpers.js +51 -0
- package/node/Forms/index.js +19 -0
- package/node/Forms/styles.js +64 -0
- package/node/Gauge/Gauge.js +106 -0
- package/node/Grid/Grid.js +83 -0
- package/node/Grid/index.js +4 -0
- package/node/Hamburger/Hamburger.js +69 -0
- package/node/Hamburger/index.js +4 -0
- package/node/Header/index.js +4 -0
- package/node/Header/useHeader.js +34 -0
- package/node/Hidden/Hidden.js +18 -0
- package/node/Hidden/index.js +4 -0
- package/node/Img/index.js +4 -0
- package/node/Img/sc/bare.js +41 -0
- package/node/Img/types.js +2 -0
- package/node/Link/Link.js +6 -0
- package/node/Link/LinkBlank.js +31 -0
- package/node/Link/index.js +5 -0
- package/node/Menu/Menu.js +15 -0
- package/node/Menu/index.js +4 -0
- package/node/MenuItem/MenuItem.js +24 -0
- package/node/MenuItem/index.js +4 -0
- package/node/Meta/Meta.js +8 -0
- package/node/Meta/index.js +4 -0
- package/node/NoJs/NoJs.js +10 -0
- package/node/NoJs/index.js +4 -0
- package/node/Pagination/PaginationNav.js +88 -0
- package/node/Pagination/PaginationResults.js +15 -0
- package/node/Pagination/index.js +5 -0
- package/node/Pill/Pill.js +41 -0
- package/node/Pill/index.js +4 -0
- package/node/Progress/ProgressCircular.js +41 -0
- package/node/Progress/ProgressLinear.js +37 -0
- package/node/Progress/ProgressOverlay.js +45 -0
- package/node/Progress/index.js +6 -0
- package/node/Rating/Rating.js +97 -0
- package/node/Rating/index.js +53 -0
- package/node/Select/SelectDownshift.js +41 -0
- package/node/Select/components.js +22 -0
- package/node/Select/index.js +7 -0
- package/node/Sidebar/Sidebar.js +53 -0
- package/node/Sidebar/index.js +4 -0
- package/node/Spacing/Spacing.js +50 -0
- package/node/Spacing/index.js +4 -0
- package/node/Sticky/Sticky.js +222 -0
- package/node/Sticky/StickyCss.js +8 -0
- package/node/Sticky/index.js +4 -0
- package/node/Tabs/TabsMui.js +47 -0
- package/node/Tabs/index.js +4 -0
- package/node/Tabs/sc/bare.js +87 -0
- package/node/Tabs/tw/bare.js +19 -0
- package/node/Tabs/tw/material.js +17 -0
- package/node/Tabs/useTabs.js +48 -0
- package/node/Typography/CopyPasteVisible.js +10 -0
- package/node/Typography/Native.js +51 -0
- package/node/Typography/ReadMore.js +74 -0
- package/node/Typography/TextLoop.js +54 -0
- package/node/Typography/TypeStairs.js +49 -0
- package/node/Typography/index.js +8 -0
- package/node/css/index.js +36 -0
- package/node/helpers/classed.js +69 -0
- package/node/helpers/extend-component.js +16 -0
- package/node/helpers/index.js +5 -0
- package/node/hooks/index.js +18 -0
- package/node/hooks/types.js +2 -0
- package/node/hooks/useAsyncFn.js +33 -0
- package/node/hooks/useDateLocale.js +56 -0
- package/node/hooks/useEffectOnce.js +12 -0
- package/node/hooks/useFirstMountState.js +16 -0
- package/node/hooks/useFocus.js +15 -0
- package/node/hooks/useId.js +11 -0
- package/node/hooks/useIsomorphicLayoutEffect.js +11 -0
- package/node/hooks/useMount.js +13 -0
- package/node/hooks/useMountedState.js +19 -0
- package/node/hooks/usePrevious.js +12 -0
- package/node/hooks/useScrollPosition.js +79 -0
- package/node/hooks/useScrollTo.js +23 -0
- package/node/hooks/useTraceUpdate.js +24 -0
- package/node/hooks/useUpdateEffect.js +18 -0
- package/node/hooks/useWindowSize.js +17 -0
- package/node/index.js +8 -0
- package/node/m/MotionProvider.js +41 -0
- package/node/m/index.js +9 -0
- package/node/m/lite.js +4 -0
- package/node/m/max.js +4 -0
- package/node/sc/index.js +37 -0
- package/node/scm/index.js +36 -0
- package/node/shared/index.js +11 -0
- package/node/styles/Body.js +21 -0
- package/node/styles/Global.js +53 -0
- package/node/styles/index.js +10 -0
- package/node/styles/media.js +156 -0
- package/node/styles/spacing.js +53 -0
- package/node/styles/styled.js +31 -0
- package/node/styles/theme--vanilla.js +59 -0
- package/node/styles/theme.js +45 -0
- package/node/tw/index.js +36 -0
- package/node/twm/index.js +36 -0
- package/node/types.js +2 -0
- package/package.json +3 -6
- package/sc/index.d.ts +30 -0
- package/sc/index.js +31 -0
- package/sc/package.json +6 -0
- package/scm/index.d.ts +29 -0
- package/scm/index.js +31 -0
- package/scm/package.json +6 -0
- package/shared/index.d.ts +8 -0
- package/shared/index.js +8 -0
- package/shared/package.json +6 -0
- package/styles/Body.d.ts +10 -0
- package/styles/Body.js +17 -0
- package/styles/Global.d.ts +15 -0
- package/styles/Global.js +50 -0
- package/styles/index.d.ts +7 -0
- package/styles/index.js +7 -0
- package/styles/media.d.ts +67 -0
- package/styles/media.js +150 -0
- package/styles/package.json +6 -0
- package/styles/spacing.d.ts +13 -0
- package/styles/spacing.js +46 -0
- package/styles/styled.d.ts +12 -0
- package/styles/styled.js +27 -0
- package/styles/theme--vanilla.d.ts +18 -0
- package/styles/theme--vanilla.js +53 -0
- package/styles/theme.d.ts +82 -0
- package/styles/theme.js +41 -0
- package/tw/index.d.ts +2 -0
- package/tw/index.js +31 -0
- package/tw/package.json +6 -0
- package/twm/index.d.ts +2 -0
- package/twm/index.js +31 -0
- package/twm/package.json +6 -0
- package/types.d.ts +10 -0
- package/types.js +1 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { classed, extendComponent } from "../../helpers";
|
|
2
|
+
import { KoineTabs as _ } from "./bare";
|
|
3
|
+
export const Root = classed(_.Root) `< class="`;
|
|
4
|
+
export const List = classed(_.List) `< class="border-b-gray-200 border-b border-solid`;
|
|
5
|
+
export const Tab = classed(_.Tab) `< class="flex-col relative py-3 px-4 uppercase`; // ${p => p.selected ? "text-cyan-600" : ""}
|
|
6
|
+
export const Indicator = classed(_.Indicator) `< class="absolute bottom-0 w-full h-[2px] ${p => p.selected ? "bg-current" : ""}`;
|
|
7
|
+
export const Panel = classed(_.Panel) `< class="tabsPanel`;
|
|
8
|
+
export const KoineTabs = extendComponent(_, {
|
|
9
|
+
Root,
|
|
10
|
+
List,
|
|
11
|
+
Tab,
|
|
12
|
+
Indicator,
|
|
13
|
+
Panel,
|
|
14
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface UseTabsProps {
|
|
3
|
+
/**
|
|
4
|
+
* The value of the currently selected `Tab`.
|
|
5
|
+
* If you don't want any selected `Tab`, you can set this prop to `false`.
|
|
6
|
+
*/
|
|
7
|
+
value?: string | number | false;
|
|
8
|
+
/**
|
|
9
|
+
* The default value. Use when the component is not controlled.
|
|
10
|
+
*/
|
|
11
|
+
defaultValue?: string | number | false;
|
|
12
|
+
/**
|
|
13
|
+
* The component orientation (layout flow direction).
|
|
14
|
+
* @default 'horizontal'
|
|
15
|
+
*/
|
|
16
|
+
orientation?: "horizontal" | "vertical";
|
|
17
|
+
/**
|
|
18
|
+
* The direction of the text.
|
|
19
|
+
* @default 'ltr'
|
|
20
|
+
*/
|
|
21
|
+
direction?: "ltr" | "rtl";
|
|
22
|
+
/**
|
|
23
|
+
* Callback invoked when new value is being set.
|
|
24
|
+
*/
|
|
25
|
+
onChange?: (event: React.SyntheticEvent, value: number | string) => void;
|
|
26
|
+
/**
|
|
27
|
+
* If `true` the selected tab changes on focus. Otherwise it only
|
|
28
|
+
* changes on activation.
|
|
29
|
+
*/
|
|
30
|
+
selectionFollowsFocus?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare const useTabs: (props: UseTabsProps) => {
|
|
33
|
+
getRootProps: () => {};
|
|
34
|
+
tabsContextValue: {
|
|
35
|
+
idPrefix: string;
|
|
36
|
+
value: string | number | false;
|
|
37
|
+
onSelected: (event: React.SyntheticEvent, value: number | string) => void;
|
|
38
|
+
orientation: "horizontal" | "vertical" | undefined;
|
|
39
|
+
direction: "ltr" | "rtl" | undefined;
|
|
40
|
+
selectionFollowsFocus: boolean | undefined;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export default useTabs;
|
package/Tabs/useTabs.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useCallback, /* useId, */ useMemo } from "react";
|
|
2
|
+
import { unstable_useControlled as useControlled } from "@mui/utils";
|
|
3
|
+
import { useId } from "../hooks/useId";
|
|
4
|
+
export const useTabs = (props) => {
|
|
5
|
+
const { value: valueProp, defaultValue, onChange, orientation, direction, selectionFollowsFocus, } = props;
|
|
6
|
+
const [value, setValue] = useControlled({
|
|
7
|
+
controlled: valueProp,
|
|
8
|
+
default: defaultValue,
|
|
9
|
+
name: "Tabs",
|
|
10
|
+
state: "value",
|
|
11
|
+
});
|
|
12
|
+
const idPrefix = useId();
|
|
13
|
+
const onSelected = useCallback((e, newValue) => {
|
|
14
|
+
setValue(newValue);
|
|
15
|
+
if (onChange) {
|
|
16
|
+
onChange(e, newValue);
|
|
17
|
+
}
|
|
18
|
+
}, [onChange, setValue]);
|
|
19
|
+
const getRootProps = () => {
|
|
20
|
+
return {};
|
|
21
|
+
};
|
|
22
|
+
const tabsContextValue = useMemo(() => {
|
|
23
|
+
return {
|
|
24
|
+
idPrefix,
|
|
25
|
+
value,
|
|
26
|
+
onSelected,
|
|
27
|
+
orientation,
|
|
28
|
+
direction,
|
|
29
|
+
selectionFollowsFocus,
|
|
30
|
+
};
|
|
31
|
+
}, [
|
|
32
|
+
idPrefix,
|
|
33
|
+
value,
|
|
34
|
+
onSelected,
|
|
35
|
+
orientation,
|
|
36
|
+
direction,
|
|
37
|
+
selectionFollowsFocus,
|
|
38
|
+
]);
|
|
39
|
+
return {
|
|
40
|
+
getRootProps,
|
|
41
|
+
tabsContextValue,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export default useTabs;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CopyPasteVisible: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const p = "\n margin: 0 0 1em 0;\n";
|
|
2
|
+
export declare const h1: string;
|
|
3
|
+
export declare const h2 = "\n margin: 0 0 1em 0;\n font-size: 24px;\n font-weight: 800;\n line-height: var(--headingsLineHeight);\n";
|
|
4
|
+
export declare const h3 = "\n margin: 0 0 1em 0;\n font-size: 20px;\n font-weight: 600;\n line-height: var(--headingsLineHeight);\n";
|
|
5
|
+
export declare const h4 = "\n margin: 0 0 1em 0;\n font-size: 13px;\n font-weight: 600;\n line-height: var(--headingsLineHeight);\n";
|
|
6
|
+
export declare const P: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
7
|
+
export declare const H1: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
8
|
+
export declare const H2: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
9
|
+
export declare const H3: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
10
|
+
export declare const H4: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import styled from "styled-components";
|
|
2
|
+
import { min } from "../styles/media";
|
|
3
|
+
export const p = `
|
|
4
|
+
margin: 0 0 1em 0;
|
|
5
|
+
`;
|
|
6
|
+
export const h1 = `
|
|
7
|
+
margin: 0 0 10px 0;
|
|
8
|
+
font-size: 30px;
|
|
9
|
+
font-weight: 800;
|
|
10
|
+
line-height: var(--headingsLineHeight);
|
|
11
|
+
${min.md} {
|
|
12
|
+
font-size: 50px;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
export const h2 = `
|
|
16
|
+
margin: 0 0 1em 0;
|
|
17
|
+
font-size: 24px;
|
|
18
|
+
font-weight: 800;
|
|
19
|
+
line-height: var(--headingsLineHeight);
|
|
20
|
+
`;
|
|
21
|
+
export const h3 = `
|
|
22
|
+
margin: 0 0 1em 0;
|
|
23
|
+
font-size: 20px;
|
|
24
|
+
font-weight: 600;
|
|
25
|
+
line-height: var(--headingsLineHeight);
|
|
26
|
+
`;
|
|
27
|
+
export const h4 = `
|
|
28
|
+
margin: 0 0 1em 0;
|
|
29
|
+
font-size: 13px;
|
|
30
|
+
font-weight: 600;
|
|
31
|
+
line-height: var(--headingsLineHeight);
|
|
32
|
+
`;
|
|
33
|
+
export const P = styled.div `
|
|
34
|
+
${p}
|
|
35
|
+
`;
|
|
36
|
+
export const H1 = styled.div `
|
|
37
|
+
${h1}
|
|
38
|
+
`;
|
|
39
|
+
export const H2 = styled.div `
|
|
40
|
+
${h2}
|
|
41
|
+
`;
|
|
42
|
+
export const H3 = styled.div `
|
|
43
|
+
${h3}
|
|
44
|
+
`;
|
|
45
|
+
export const H4 = styled.div `
|
|
46
|
+
${h4}
|
|
47
|
+
`;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare type ReadMoreProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
3
|
+
lines?: number;
|
|
4
|
+
lineHeight?: number;
|
|
5
|
+
fontSize?: number;
|
|
6
|
+
bg?: React.CSSProperties["background"];
|
|
7
|
+
/** @default "Expand" */
|
|
8
|
+
expand?: string;
|
|
9
|
+
/** @default "Collapse" */
|
|
10
|
+
collapse?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const ReadMore: ({ lines, lineHeight, fontSize, bg, expand, collapse, ...props }: ReadMoreProps) => JSX.Element;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useMemo } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { m, useSpring } from "framer-motion";
|
|
5
|
+
// import { CgArrowsExpandDownRight as IconExpand } from "react-icons/cg";
|
|
6
|
+
import { useIsomorphicLayoutEffect } from "../hooks";
|
|
7
|
+
const Root = styled.div ``;
|
|
8
|
+
const Content = styled.div `
|
|
9
|
+
& p:first-child {
|
|
10
|
+
margin-top: 0;
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
const BtnWrap = styled.span `
|
|
14
|
+
display: flex;
|
|
15
|
+
justify-content: flex-end;
|
|
16
|
+
transition: transform 0.18s ease-in-out;
|
|
17
|
+
text-align: right;
|
|
18
|
+
transform: translateY(${(p) => (p.$expanded ? "0" : "-100%")});
|
|
19
|
+
opacity: ${(p) => (p.$expanded ? 0 : 1)};
|
|
20
|
+
`;
|
|
21
|
+
const BtnFader = styled.div `
|
|
22
|
+
width: 30%;
|
|
23
|
+
transition: transform 0.18s ease-in-out;
|
|
24
|
+
background: linear-gradient(45deg, transparent 50%, ${(p) => p.$bg} 70%);
|
|
25
|
+
`;
|
|
26
|
+
const Btn = styled.span `
|
|
27
|
+
padding: 0 10px 0 10px;
|
|
28
|
+
line-height: ${(p) => (p.$lineHeight ? p.$lineHeight : "inherit")};
|
|
29
|
+
background: var(--bodyBg);
|
|
30
|
+
color: var(--grey600);
|
|
31
|
+
white-space: nowrap;
|
|
32
|
+
font-size: ${(p) => p.$fontSize}px;
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
`;
|
|
35
|
+
const BtnIcon = styled.span `
|
|
36
|
+
display: inline-block;
|
|
37
|
+
margin: 0 0 0 4px;
|
|
38
|
+
transition: transform 0.18s ease-in-out;
|
|
39
|
+
${(p) => (p.$expanded ? "transform: rotate(180deg);" : "")};
|
|
40
|
+
font-size: ${(p) => p.$fontSize}px;
|
|
41
|
+
`;
|
|
42
|
+
export const ReadMore = ({ lines = 3, lineHeight = 1.6, fontSize = 14, bg = "var(--bodyBg)", expand = "Expand", collapse = "Collapse", ...props }) => {
|
|
43
|
+
const defaultMaxHeight = lines * (lineHeight * fontSize);
|
|
44
|
+
const [expanded, setExpanded] = useState(false);
|
|
45
|
+
const [maxHeight, setMaxHeight] = useState(defaultMaxHeight);
|
|
46
|
+
const [fullHeight, setFullHeight] = useState(0);
|
|
47
|
+
const [exceeds, setExceeds] = useState(false);
|
|
48
|
+
const content = useRef(null);
|
|
49
|
+
const height = useSpring(defaultMaxHeight);
|
|
50
|
+
const styles = useMemo(() => (exceeds ? { height, overflow: "hidden" } : {}), [exceeds, height]);
|
|
51
|
+
const handleExpandClick = () => {
|
|
52
|
+
setExpanded((prevExpanded) => !prevExpanded);
|
|
53
|
+
};
|
|
54
|
+
useIsomorphicLayoutEffect(() => {
|
|
55
|
+
if (content.current) {
|
|
56
|
+
const elementHeight = content.current.offsetHeight;
|
|
57
|
+
const newExceeds = elementHeight > maxHeight;
|
|
58
|
+
if (!newExceeds) {
|
|
59
|
+
setMaxHeight(elementHeight);
|
|
60
|
+
}
|
|
61
|
+
setExceeds(newExceeds);
|
|
62
|
+
setFullHeight(elementHeight);
|
|
63
|
+
}
|
|
64
|
+
}, [content, maxHeight]);
|
|
65
|
+
useIsomorphicLayoutEffect(() => {
|
|
66
|
+
height.set(expanded ? fullHeight : maxHeight);
|
|
67
|
+
}, [expanded, height, fullHeight, maxHeight]);
|
|
68
|
+
return (_jsxs(Root, { children: [_jsx(m.div, { style: styles, children: _jsx(Content, { ref: content, ...props }) }), exceeds && (_jsxs(BtnWrap, { "$expanded": expanded, children: [_jsx(BtnFader, { "$bg": bg }), _jsxs(Btn, { "$fontSize": fontSize, "$lineHeight": lineHeight, onClick: handleExpandClick, "aria-expanded": expanded, "aria-label": expanded ? collapse : expand, children: [expanded ? collapse : expand, _jsx(BtnIcon, { "$expanded": expanded })] })] }))] }));
|
|
69
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare type TextLoopPieceProps = React.PropsWithChildren<{
|
|
3
|
+
text: string | number;
|
|
4
|
+
direction?: "up" | "down";
|
|
5
|
+
inline?: boolean;
|
|
6
|
+
noOverflow?: boolean;
|
|
7
|
+
delay?: number;
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: React.CSSProperties;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const TextLoopPiece: ({ text, style, className, direction, inline, noOverflow, delay, }: TextLoopPieceProps) => JSX.Element;
|
|
12
|
+
export declare type TextLoopPrpps = Omit<TextLoopPieceProps, "text"> & {
|
|
13
|
+
texts: string[];
|
|
14
|
+
interval?: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const TextLoop: ({ texts, interval, ...props }: TextLoopPrpps) => JSX.Element;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { m, AnimatePresence } from "framer-motion";
|
|
4
|
+
export const TextLoopPiece = ({ text = "", style = {}, className = "", direction = "up", inline = true, noOverflow = true, delay = 400, }) => {
|
|
5
|
+
const placeholderRef = useRef(null);
|
|
6
|
+
const [content, setContent] = useState({ data: "", key: "" });
|
|
7
|
+
const [width, setWidth] = useState(inline ? 0 : "auto");
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
const timeoutId = setTimeout(() => {
|
|
10
|
+
if (!placeholderRef.current)
|
|
11
|
+
return;
|
|
12
|
+
placeholderRef.current.innerHTML = text + "";
|
|
13
|
+
if (inline)
|
|
14
|
+
setWidth(placeholderRef.current.offsetWidth);
|
|
15
|
+
setContent({ data: text + "", key: new Date() + "" });
|
|
16
|
+
}, delay);
|
|
17
|
+
return () => clearTimeout(timeoutId);
|
|
18
|
+
}, [text, delay, inline]);
|
|
19
|
+
return (_jsxs("div", { className: className, style: {
|
|
20
|
+
...style,
|
|
21
|
+
position: "relative",
|
|
22
|
+
display: inline ? "inline-block" : "block",
|
|
23
|
+
width,
|
|
24
|
+
whiteSpace: inline ? "nowrap" : "normal",
|
|
25
|
+
}, children: [_jsx("span", { ref: placeholderRef, style: { visibility: "hidden" } }), _jsx("div", { style: {
|
|
26
|
+
overflow: noOverflow ? "hidden" : "visible",
|
|
27
|
+
display: "block",
|
|
28
|
+
position: "absolute",
|
|
29
|
+
top: 0,
|
|
30
|
+
left: 0,
|
|
31
|
+
height: "100%",
|
|
32
|
+
width: "100%",
|
|
33
|
+
}, children: _jsx(AnimatePresence, { children: _jsx(m.div, { style: { position: "absolute" }, initial: {
|
|
34
|
+
opacity: 0,
|
|
35
|
+
y: direction === "down" ? "-100%" : "100%",
|
|
36
|
+
}, animate: { opacity: 1, y: 0 }, exit: {
|
|
37
|
+
opacity: 0,
|
|
38
|
+
y: direction === "down" ? "100%" : "-100%",
|
|
39
|
+
}, children: content.data }, content.key) }) })] }));
|
|
40
|
+
};
|
|
41
|
+
export const TextLoop = ({ texts, interval = 3000, ...props }) => {
|
|
42
|
+
const [index, setIndex] = useState(0);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
const intervalId = setInterval(() => setIndex((index) => index + 1), interval // every 3 seconds
|
|
45
|
+
);
|
|
46
|
+
return () => clearTimeout(intervalId);
|
|
47
|
+
}, [interval]);
|
|
48
|
+
return _jsx(TextLoopPiece, { ...props, text: texts[index % texts.length] });
|
|
49
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
export const TypeStairs = forwardRef(({ children, limit }, ref) => {
|
|
4
|
+
// split in rows or just use one row if there is no limit
|
|
5
|
+
const rows = limit ? splitTextIntoRows(children, limit) : [children];
|
|
6
|
+
return rows.length > 1 ? (_jsx(_Fragment, { children: rows.map((row, rowIndex) => {
|
|
7
|
+
return (_jsxs("span", { children: [renderRow(row, rowIndex, ref), rowIndex !== rows.length - 1 && _jsx("br", {})] }, `row-${rowIndex}`));
|
|
8
|
+
}) })) : (renderRow(rows[0], 0, ref));
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* every number chars find a space and break, then restart the gradient weight
|
|
12
|
+
* @see https://stackoverflow.com/a/25770787
|
|
13
|
+
*/
|
|
14
|
+
function splitTextIntoRows(input = "", limit = 18) {
|
|
15
|
+
const rows = [];
|
|
16
|
+
const arr = input.split(" ");
|
|
17
|
+
let currow = arr[0];
|
|
18
|
+
let rowlen = currow.length;
|
|
19
|
+
for (let i = 1; i < arr.length; i++) {
|
|
20
|
+
const word = arr[i];
|
|
21
|
+
rowlen += word.length + 1;
|
|
22
|
+
if (rowlen <= limit) {
|
|
23
|
+
currow += " " + word;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
rows.push(currow);
|
|
27
|
+
currow = word;
|
|
28
|
+
rowlen = word.length;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
rows.push(currow);
|
|
32
|
+
return rows;
|
|
33
|
+
}
|
|
34
|
+
function renderRow(row, rowIndex, ref) {
|
|
35
|
+
const letters = row.split("");
|
|
36
|
+
let fontWeightIdx = 1;
|
|
37
|
+
// const fontWeight = Math.min(fontWeightIdx * 100, 800);
|
|
38
|
+
return (_jsx(_Fragment, { children: letters.map((letter, letterIndex) => {
|
|
39
|
+
const fontWeight = Math.min(fontWeightIdx * 100, 800);
|
|
40
|
+
// don't waste a fontWeight for a white space
|
|
41
|
+
if (letter !== " ") {
|
|
42
|
+
fontWeightIdx++;
|
|
43
|
+
}
|
|
44
|
+
return (_jsx("span", { style: { fontWeight }, ref: ref, children: letter }, `letter-${rowIndex}-${letterIndex}`));
|
|
45
|
+
}) }));
|
|
46
|
+
}
|
package/css/index.d.ts
ADDED
package/css/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
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/css/bare";
|
|
12
|
+
// export * from "../Form";
|
|
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/css/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare type ClassedAugmentedProps<Props> = Props & {
|
|
3
|
+
className?: string;
|
|
4
|
+
ref?: React.Ref<any>;
|
|
5
|
+
};
|
|
6
|
+
declare type ClassedFinalProps<Props, Component> = Component extends React.ReactHTML ? React.HTMLProps<Component> & ClassedAugmentedProps<Props> : ClassedAugmentedProps<Props>;
|
|
7
|
+
/**
|
|
8
|
+
* This utility allows to extend a component a là `styled-components` but for
|
|
9
|
+
* a className based styling solution like Tailwind,
|
|
10
|
+
*
|
|
11
|
+
* It also plays nicely with tailwind intellisense @see:
|
|
12
|
+
*
|
|
13
|
+
* - https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssclassattributes
|
|
14
|
+
*
|
|
15
|
+
* For references about tagged functions:
|
|
16
|
+
* - https://javascript.plainenglish.io/how-css-in-js-libraries-work-da4145b1b6c7
|
|
17
|
+
* - https://makersden.io/blog/reverse-engineering-styled-components
|
|
18
|
+
* - https://typesafe.blog/article/the-logic-behind-javascript-tag-functions
|
|
19
|
+
* - https://flaming.codes/posts/typescript-and-javascript-tagged-template-strings
|
|
20
|
+
*/
|
|
21
|
+
export declare function classed<Props, Component extends React.ElementType = any>(component: Component): (strings: TemplateStringsArray, ...args: string[] | ((props: Props) => string)[]) => React.ForwardRefExoticComponent<React.PropsWithoutRef<ClassedFinalProps<Props, Component>> & React.RefAttributes<Component>>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { createElement, forwardRef } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* This utility allows to extend a component a là `styled-components` but for
|
|
4
|
+
* a className based styling solution like Tailwind,
|
|
5
|
+
*
|
|
6
|
+
* It also plays nicely with tailwind intellisense @see:
|
|
7
|
+
*
|
|
8
|
+
* - https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssclassattributes
|
|
9
|
+
*
|
|
10
|
+
* For references about tagged functions:
|
|
11
|
+
* - https://javascript.plainenglish.io/how-css-in-js-libraries-work-da4145b1b6c7
|
|
12
|
+
* - https://makersden.io/blog/reverse-engineering-styled-components
|
|
13
|
+
* - https://typesafe.blog/article/the-logic-behind-javascript-tag-functions
|
|
14
|
+
* - https://flaming.codes/posts/typescript-and-javascript-tagged-template-strings
|
|
15
|
+
*/
|
|
16
|
+
export function classed(component) {
|
|
17
|
+
// @ts-expect-error nevermind for now...
|
|
18
|
+
const type = component.type || component;
|
|
19
|
+
return function (strings, ...args) {
|
|
20
|
+
const WrappedComponent = forwardRef(function (props, ref) {
|
|
21
|
+
const argResolved = args
|
|
22
|
+
.map((arg, index) => {
|
|
23
|
+
let result = "";
|
|
24
|
+
if (typeof arg === "function") {
|
|
25
|
+
result = arg(props);
|
|
26
|
+
}
|
|
27
|
+
else if (typeof arg !== "undefined") {
|
|
28
|
+
result = arg.toString();
|
|
29
|
+
}
|
|
30
|
+
return strings[index] + result;
|
|
31
|
+
})
|
|
32
|
+
.join("");
|
|
33
|
+
const isNativeHtmlElement = typeof type === "string";
|
|
34
|
+
const propsToForward = isNativeHtmlElement
|
|
35
|
+
? {}
|
|
36
|
+
: props;
|
|
37
|
+
if (isNativeHtmlElement) {
|
|
38
|
+
for (const key in props) {
|
|
39
|
+
// like styled-components `transient` props
|
|
40
|
+
if (!key.startsWith("$")) {
|
|
41
|
+
// FIXME: for react 18 we need: @ts-expect-error
|
|
42
|
+
propsToForward[key] = props[key];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// get the tagged function string outcome
|
|
47
|
+
let className = argResolved || strings[0];
|
|
48
|
+
// check if we need to clean it or not from the optional structure `< class="..."`
|
|
49
|
+
className = className.match(/class="([^"]*)/)?.[1] || className;
|
|
50
|
+
// add the custom classes from props
|
|
51
|
+
className += props?.className ? " " + props?.className : "";
|
|
52
|
+
return createElement(type, {
|
|
53
|
+
// ...props,
|
|
54
|
+
...propsToForward,
|
|
55
|
+
// only add ot props if it is not an empty string
|
|
56
|
+
className: className || undefined,
|
|
57
|
+
// add ref to props
|
|
58
|
+
ref,
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
// FIXME: not sure if this is needed
|
|
62
|
+
// WrappedComponent.displayName = type.toString();
|
|
63
|
+
return WrappedComponent; // as unknown as React.ReactElement<typeof props>;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare type ExtendableComponent<Props = any> = React.ForwardRefExoticComponent<Props> | React.ExoticComponent<Props> | React.FC<Props> | ((props: Props) => JSX.Element);
|
|
3
|
+
export declare const extendComponent: <Component extends ExtendableComponent<any>, DefaultProps extends {}>(component: Component, defaultProps: DefaultProps) => ((props: React.ComponentProps<Component>) => React.FunctionComponentElement<any>) & DefaultProps & {
|
|
4
|
+
defaultProps: DefaultProps;
|
|
5
|
+
};
|
|
6
|
+
export interface OverridableComponents {
|
|
7
|
+
[key: string]: {
|
|
8
|
+
type: React.ElementType;
|
|
9
|
+
props: any;
|
|
10
|
+
motionable?: boolean;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Type to define a component that has overridable components.
|
|
15
|
+
*
|
|
16
|
+
* Each of them can define its:
|
|
17
|
+
* - `type`: either as a native HTMLElement (the props for that element will be
|
|
18
|
+
* automatically inferred) or as a custom React component
|
|
19
|
+
* - `props`: any additional custom props
|
|
20
|
+
* - `motionable`: if that component has a possible implementation with `framer-motion`,
|
|
21
|
+
* in that case we remove some HTMLAttributes props which collides with
|
|
22
|
+
* `MotionProps` from framer.
|
|
23
|
+
*/
|
|
24
|
+
export declare type WithComponents<Props, Components extends OverridableComponents> = Props & {
|
|
25
|
+
[Name in keyof Components]: NonNullable<Components[Name]["type"] extends keyof JSX.IntrinsicElements ? React.ElementType<Components[Name]["motionable"] extends true ? Omit<React.ComponentPropsWithoutRef<Components[Name]["type"]>, HtmlAttributesCollidingWithMotionProps> & Components[Name]["props"] : React.ComponentPropsWithoutRef<Components[Name]["type"]> & Components[Name]["props"]> : Components[Name]["type"]>;
|
|
26
|
+
};
|
|
27
|
+
declare type HtmlAttributesCollidingWithMotionProps = "style" | "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart" | "onAnimationEnd";
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
export const extendComponent = (component, defaultProps) => {
|
|
3
|
+
// FIXME: check if we need to forwardRef or not
|
|
4
|
+
const NewComponent = (props) => createElement(component, props);
|
|
5
|
+
// const NewComponent = forwardRef<React.ComponentProps<Component>, Component>(
|
|
6
|
+
// (props, ref) => createElement(component, { ...props, ref })
|
|
7
|
+
// );
|
|
8
|
+
return Object.assign(NewComponent, {
|
|
9
|
+
...defaultProps,
|
|
10
|
+
defaultProps,
|
|
11
|
+
});
|
|
12
|
+
};
|
package/helpers/index.js
ADDED
package/hooks/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from "./useAsyncFn";
|
|
2
|
+
export * from "./useDateLocale";
|
|
3
|
+
export * from "./useEffectOnce";
|
|
4
|
+
export * from "./useFirstMountState";
|
|
5
|
+
export * from "./useFocus";
|
|
6
|
+
export * from "./useId";
|
|
7
|
+
export * from "./useIsomorphicLayoutEffect";
|
|
8
|
+
export * from "./useMount";
|
|
9
|
+
export * from "./useMountedState";
|
|
10
|
+
export * from "./usePrevious";
|
|
11
|
+
export * from "./useScrollPosition";
|
|
12
|
+
export * from "./useTraceUpdate";
|
|
13
|
+
export * from "./useUpdateEffect";
|
|
14
|
+
export * from "./useWindowSize";
|
package/hooks/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./useAsyncFn";
|
|
2
|
+
export * from "./useDateLocale";
|
|
3
|
+
export * from "./useEffectOnce";
|
|
4
|
+
export * from "./useFirstMountState";
|
|
5
|
+
export * from "./useFocus";
|
|
6
|
+
export * from "./useId";
|
|
7
|
+
export * from "./useIsomorphicLayoutEffect";
|
|
8
|
+
export * from "./useMount";
|
|
9
|
+
export * from "./useMountedState";
|
|
10
|
+
export * from "./usePrevious";
|
|
11
|
+
export * from "./useScrollPosition";
|
|
12
|
+
// export * from "./useScrollTo";
|
|
13
|
+
export * from "./useTraceUpdate";
|
|
14
|
+
export * from "./useUpdateEffect";
|
|
15
|
+
export * from "./useWindowSize";
|
package/hooks/types.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/misc/types.ts)
|
|
3
|
+
*/
|
|
4
|
+
export declare type PromiseType<P extends Promise<any>> = P extends Promise<infer T> ? T : never;
|
|
5
|
+
/**
|
|
6
|
+
* @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/misc/types.ts)
|
|
7
|
+
*/
|
|
8
|
+
export declare type FunctionReturningPromise = (...args: any[]) => Promise<any>;
|
package/hooks/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|