@koine/react 2.0.0-beta.2 → 2.0.0-beta.5
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 +27 -12
- package/Alert/Alert.mjs +16 -8
- package/Alert/Alert.stories.js +36 -0
- package/Alert/Alert.stories.mjs +15 -0
- package/Alert/index.js +5 -3
- package/Animations/Reveal.js +48 -18
- package/Animations/Reveal.mjs +38 -14
- package/Animations/Underline.js +25 -7
- package/Animations/Underline.mjs +14 -4
- package/Animations/index.js +7 -5
- package/Animations/useReveal.js +51 -43
- package/Animations/useReveal.mjs +42 -40
- package/Autocomplete/AutocompleteDownshift.js +166 -160
- package/Autocomplete/AutocompleteDownshift.mjs +156 -157
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +361 -355
- package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +351 -352
- package/Autocomplete/AutocompleteMui.d.ts +1 -1
- package/Autocomplete/AutocompleteMui.js +111 -137
- package/Autocomplete/AutocompleteMui.mjs +98 -90
- package/Autocomplete/AutocompleteReach.js +120 -114
- package/Autocomplete/AutocompleteReach.mjs +110 -111
- package/Autocomplete/components.js +129 -34
- package/Autocomplete/components.mjs +76 -23
- package/Autocomplete/helpers.js +25 -25
- package/Autocomplete/helpers.mjs +11 -5
- package/Autocomplete/index.js +14 -6
- package/Autocomplete/index.mjs +4 -3
- package/Bg/BgColor.js +55 -21
- package/Bg/BgColor.mjs +32 -16
- package/Bg/BgPhoto.js +78 -18
- package/Bg/BgPhoto.mjs +65 -12
- package/Bg/BgSvg.js +27 -14
- package/Bg/BgSvg.mjs +16 -8
- package/Bg/index.js +7 -5
- package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/Breadcrumbs/Breadcrumbs.js +85 -26
- package/Breadcrumbs/Breadcrumbs.mjs +70 -19
- package/Breadcrumbs/index.js +5 -3
- package/Buttons/Button.js +105 -16
- package/Buttons/Button.mjs +73 -9
- package/Buttons/ButtonComposite.d.ts +1 -1
- package/Buttons/ButtonComposite.js +76 -25
- package/Buttons/ButtonComposite.mjs +66 -22
- package/Buttons/ButtonFab.js +26 -8
- package/Buttons/ButtonFab.mjs +6 -4
- package/Buttons/ButtonLink.d.ts +1 -1
- package/Buttons/ButtonLink.js +26 -13
- package/Buttons/ButtonLink.mjs +14 -8
- package/Buttons/IconButton.js +40 -9
- package/Buttons/IconButton.mjs +18 -6
- package/Buttons/index.js +9 -7
- package/Calendar/CalendarDaygridCell.d.ts +2 -2
- package/Calendar/CalendarDaygridCell.js +70 -49
- package/Calendar/CalendarDaygridCell.mjs +58 -43
- package/Calendar/CalendarDaygridNav.d.ts +1 -1
- package/Calendar/CalendarDaygridNav.js +41 -20
- package/Calendar/CalendarDaygridNav.mjs +28 -13
- package/Calendar/CalendarDaygridTable.d.ts +3 -3
- package/Calendar/CalendarDaygridTable.js +88 -39
- package/Calendar/CalendarDaygridTable.mjs +73 -31
- package/Calendar/CalendarLegend.d.ts +1 -1
- package/Calendar/CalendarLegend.js +17 -10
- package/Calendar/CalendarLegend.mjs +8 -7
- package/Calendar/calendar-api-google.d.ts +1 -1
- package/Calendar/calendar-api-google.js +90 -113
- package/Calendar/calendar-api-google.mjs +75 -105
- package/Calendar/index.js +10 -8
- package/Calendar/types.js +3 -1
- package/Calendar/types.mjs +1 -1
- package/Calendar/useCalendar.d.ts +2 -2
- package/Calendar/useCalendar.js +196 -148
- package/Calendar/useCalendar.mjs +184 -142
- package/Calendar/utils.js +152 -115
- package/Calendar/utils.mjs +101 -94
- package/Carousel/Carousel.js +386 -380
- package/Carousel/Carousel.mjs +377 -378
- package/Carousel/CarouselCss.d.ts +1 -1
- package/Carousel/CarouselCss.js +59 -23
- package/Carousel/CarouselCss.mjs +37 -17
- package/Carousel/index.js +5 -3
- package/Collapsable/Collapsable.js +10 -3
- package/Collapsable/Collapsable.mjs +1 -1
- package/Collapsable/CollapsableReach.js +2 -3
- package/Collapsable/CollapsableReach.mjs +1 -3
- package/Collapsable/index.js +6 -4
- package/Collapsable/index.mjs +1 -2
- package/Debug/Debug.js +29 -11
- package/Debug/Debug.mjs +18 -7
- package/Debug/index.js +5 -3
- package/Details/Details.d.ts +5 -5
- package/Details/Details.js +87 -44
- package/Details/Details.mjs +60 -41
- package/Details/Details.stories.js +38 -0
- package/Details/Details.stories.mjs +20 -0
- package/Details/index.js +5 -3
- package/Dialog/DialogMui.d.ts +7 -7
- package/Dialog/DialogMui.js +78 -31
- package/Dialog/DialogMui.mjs +38 -26
- package/Dialog/DialogMui.stories.js +37 -0
- package/Dialog/DialogMui.stories.mjs +19 -0
- package/Dialog/css/bare.d.ts +6 -6
- package/Dialog/css/bare.js +53 -22
- package/Dialog/css/bare.mjs +15 -17
- package/Dialog/css/index.stories.js +85 -0
- package/Dialog/css/index.stories.mjs +67 -0
- package/Dialog/index.js +10 -4
- package/Dialog/m/bare.d.ts +6 -6
- package/Dialog/m/bare.js +55 -30
- package/Dialog/m/bare.mjs +40 -22
- package/Dialog/m/basic.js +29 -14
- package/Dialog/m/basic.mjs +10 -10
- package/Dialog/m/index.js +13 -7
- package/Dialog/m/index.mjs +4 -4
- package/Dialog/sc/bare.d.ts +6 -6
- package/Dialog/sc/bare.js +79 -42
- package/Dialog/sc/bare.mjs +40 -29
- package/Dialog/sc/framer.d.ts +6 -6
- package/Dialog/sc/framer.js +24 -17
- package/Dialog/sc/framer.mjs +9 -9
- package/Dialog/sc/framerMaterial.d.ts +6 -6
- package/Dialog/sc/framerMaterial.js +24 -17
- package/Dialog/sc/framerMaterial.mjs +9 -9
- package/Dialog/sc/index.stories.js +74 -0
- package/Dialog/sc/index.stories.mjs +47 -0
- package/Dialog/sc/material.d.ts +6 -6
- package/Dialog/sc/material.js +76 -22
- package/Dialog/sc/material.mjs +37 -17
- package/Dialog/tw/bare.d.ts +6 -6
- package/Dialog/tw/bare.js +51 -41
- package/Dialog/tw/bare.mjs +15 -28
- package/Dialog/tw/elegant.d.ts +6 -6
- package/Dialog/tw/elegant.js +52 -21
- package/Dialog/tw/elegant.mjs +15 -17
- package/Dialog/tw/framer.d.ts +6 -6
- package/Dialog/tw/framer.js +24 -17
- package/Dialog/tw/framer.mjs +9 -9
- package/Dialog/tw/framerMaterial.d.ts +6 -6
- package/Dialog/tw/framerMaterial.js +24 -17
- package/Dialog/tw/framerMaterial.mjs +9 -9
- package/Dialog/tw/index.stories.js +112 -0
- package/Dialog/tw/index.stories.mjs +82 -0
- package/Dialog/tw/material.d.ts +6 -6
- package/Dialog/tw/material.js +52 -21
- package/Dialog/tw/material.mjs +15 -17
- package/Editor/Editor--tiptap.d.ts +1 -1
- package/Editor/Editor--tiptap.js +50 -24
- package/Editor/Editor--tiptap.mjs +31 -19
- package/Editor/components.js +58 -14
- package/Editor/components.mjs +26 -8
- package/Editor/index.js +5 -3
- package/FaviconTags.js +59 -0
- package/FaviconTags.mjs +50 -0
- package/Form/Form.js +100 -52
- package/Form/Form.mjs +64 -47
- package/Form/index.js +5 -3
- package/Form/sc/bare.js +53 -21
- package/Form/sc/bare.mjs +21 -12
- package/Forms/Checkbox/Checkbox.js +46 -19
- package/Forms/Checkbox/Checkbox.mjs +16 -12
- package/Forms/Checkbox/index.js +5 -3
- package/Forms/Feedback/Feedback.js +21 -11
- package/Forms/Feedback/Feedback.mjs +10 -7
- package/Forms/Feedback/index.js +5 -3
- package/Forms/Field/Field.js +55 -21
- package/Forms/Field/Field.mjs +30 -17
- package/Forms/Field/FieldControl.js +41 -37
- package/Forms/Field/FieldControl.mjs +26 -20
- package/Forms/Field/FieldHint.js +16 -6
- package/Forms/Field/FieldHint.mjs +5 -3
- package/Forms/Field/index.js +6 -4
- package/Forms/Input/Input.js +56 -17
- package/Forms/Input/Input.mjs +22 -11
- package/Forms/Input/index.js +5 -3
- package/Forms/InputGroup/InputGroup.js +73 -17
- package/Forms/InputGroup/InputGroup.mjs +43 -11
- package/Forms/InputGroup/index.js +5 -3
- package/Forms/Label/Label.js +45 -8
- package/Forms/Label/Label.mjs +23 -5
- package/Forms/Label/index.js +5 -3
- package/Forms/Password/Password.js +56 -18
- package/Forms/Password/Password.mjs +35 -13
- package/Forms/Password/index.js +5 -3
- package/Forms/Radio/Radio.js +46 -25
- package/Forms/Radio/Radio.mjs +32 -19
- package/Forms/Radio/index.js +5 -3
- package/Forms/Switch/Switch.js +66 -21
- package/Forms/Switch/Switch.mjs +41 -13
- package/Forms/Switch/index.js +5 -3
- package/Forms/Textarea/Textarea.js +35 -13
- package/Forms/Textarea/Textarea.mjs +13 -7
- package/Forms/Textarea/TextareaRich.js +48 -29
- package/Forms/Textarea/TextareaRich.mjs +34 -22
- package/Forms/Textarea/index.js +6 -4
- package/Forms/Toggle/Toggle-tailwind.js +1 -1
- package/Forms/Toggle/Toggle-tailwind.mjs +0 -1
- package/Forms/Toggle/Toggle.js +149 -29
- package/Forms/Toggle/Toggle.mjs +95 -22
- package/Forms/Toggle/index.js +5 -3
- package/Forms/Toggle/useToggle-tailwind.js +1 -1
- package/Forms/Toggle/useToggle-tailwind.mjs +0 -1
- package/Forms/Toggle/useToggle.js +91 -101
- package/Forms/Toggle/useToggle.mjs +80 -68
- package/Forms/antispam.js +38 -45
- package/Forms/antispam.mjs +19 -21
- package/Forms/helpers.js +49 -31
- package/Forms/helpers.mjs +25 -19
- package/Forms/index.js +18 -18
- package/Forms/styles.js +90 -29
- package/Forms/styles.mjs +50 -19
- package/Gauge/Gauge.js +109 -104
- package/Gauge/Gauge.mjs +99 -100
- package/Grid/Grid.d.ts +4 -3
- package/Grid/Grid.js +84 -34
- package/Grid/Grid.mjs +54 -32
- package/Grid/index.js +5 -3
- package/Hamburger/Hamburger.js +68 -41
- package/Hamburger/Hamburger.mjs +58 -38
- package/Hamburger/index.js +5 -3
- package/Header/index.js +5 -3
- package/Header/useHeader.js +44 -25
- package/Header/useHeader.mjs +23 -18
- package/Hidden/Hidden.js +19 -11
- package/Hidden/Hidden.mjs +9 -9
- package/Hidden/index.js +5 -3
- package/Img/index.js +5 -3
- package/Img/sc/bare.js +42 -41
- package/Img/sc/bare.mjs +31 -34
- package/Img/types.js +5 -1
- package/Img/types.mjs +1 -1
- package/Link/Link.js +12 -6
- package/Link/Link.mjs +1 -3
- package/Link/LinkBlank.js +42 -18
- package/Link/LinkBlank.mjs +19 -11
- package/Link/index.js +6 -4
- package/Menu/Menu.js +21 -6
- package/Menu/Menu.mjs +10 -3
- package/Menu/MenuMui.js +2 -2
- package/Menu/MenuMui.mjs +1 -2
- package/Menu/index.js +5 -3
- package/MenuItem/MenuItem.js +30 -6
- package/MenuItem/MenuItem.mjs +19 -3
- package/MenuItem/MenuItemMui.js +1 -1
- package/MenuItem/MenuItemMui.mjs +0 -1
- package/MenuItem/index.js +5 -3
- package/MenuItem/useMenuItem.js +65 -33
- package/MenuItem/useMenuItem.mjs +45 -27
- package/Meta/Meta.js +23 -8
- package/Meta/Meta.mjs +5 -4
- package/Meta/index.js +11 -6
- package/NoJs/NoJs.js +25 -9
- package/NoJs/NoJs.mjs +7 -5
- package/NoJs/index.js +11 -6
- package/Pagination/PaginationNav.d.ts +1 -1
- package/Pagination/PaginationNav.js +86 -44
- package/Pagination/PaginationNav.mjs +72 -30
- package/Pagination/PaginationResults.js +38 -13
- package/Pagination/PaginationResults.mjs +27 -9
- package/Pagination/index.js +6 -4
- package/Pill/Pill.js +61 -9
- package/Pill/Pill.mjs +36 -6
- package/Pill/index.js +5 -3
- package/Progress/ProgressCircular.js +58 -17
- package/Progress/ProgressCircular.mjs +47 -11
- package/Progress/ProgressLinear.js +49 -26
- package/Progress/ProgressLinear.mjs +38 -20
- package/Progress/ProgressOverlay.js +65 -24
- package/Progress/ProgressOverlay.mjs +51 -17
- package/Progress/index.js +7 -5
- package/Rating/Rating.js +128 -41
- package/Rating/Rating.mjs +93 -35
- package/Rating/index.js +61 -33
- package/Rating/index.mjs +37 -24
- package/Select/SelectDownshift.js +46 -40
- package/Select/SelectDownshift.mjs +37 -38
- package/Select/components.js +40 -13
- package/Select/components.mjs +20 -9
- package/Select/index.js +12 -6
- package/Select/index.mjs +2 -3
- package/Sidebar/Sidebar.js +61 -23
- package/Sidebar/Sidebar.mjs +48 -17
- package/Sidebar/index.js +5 -3
- package/Spacing/Spacing.d.ts +1 -1
- package/Spacing/Spacing.js +36 -33
- package/Spacing/Spacing.mjs +24 -17
- package/Spacing/index.js +5 -3
- package/Sticky/Sticky.js +227 -221
- package/Sticky/Sticky.mjs +218 -219
- package/Sticky/StickyCss.js +17 -8
- package/Sticky/StickyCss.mjs +8 -5
- package/Sticky/index.js +18 -4
- package/Sticky/index.mjs +1 -1
- package/Tabs/TabsMui.d.ts +8 -8
- package/Tabs/TabsMui.js +64 -34
- package/Tabs/TabsMui.mjs +31 -28
- package/Tabs/TabsMui.stories.js +37 -0
- package/Tabs/TabsMui.stories.mjs +19 -0
- package/Tabs/index.js +5 -3
- package/Tabs/sc/bare.js +2 -3
- package/Tabs/sc/bare.mjs +1 -3
- package/Tabs/sc/index.stories.js +1 -0
- package/Tabs/sc/index.stories.mjs +0 -0
- package/Tabs/tw/bare.d.ts +6 -6
- package/Tabs/tw/bare.js +43 -18
- package/Tabs/tw/bare.mjs +11 -13
- package/Tabs/tw/index.stories.js +45 -0
- package/Tabs/tw/index.stories.mjs +24 -0
- package/Tabs/tw/material.d.ts +6 -6
- package/Tabs/tw/material.js +41 -18
- package/Tabs/tw/material.mjs +11 -15
- package/Tabs/useTabs.js +44 -25
- package/Tabs/useTabs.mjs +24 -21
- package/Typography/CopyPasteVisible.js +16 -6
- package/Typography/CopyPasteVisible.mjs +5 -3
- package/Typography/Native.js +89 -16
- package/Typography/Native.mjs +45 -12
- package/Typography/ReadMore.js +99 -36
- package/Typography/ReadMore.mjs +86 -30
- package/Typography/TextLoop.js +94 -45
- package/Typography/TextLoop.mjs +76 -40
- package/Typography/TypeStairs.js +43 -32
- package/Typography/TypeStairs.mjs +33 -29
- package/Typography/index.js +9 -7
- package/css/index.js +32 -35
- package/css/index.mjs +20 -21
- package/helpers/classed.js +39 -51
- package/helpers/classed.mjs +21 -30
- package/helpers/classed.stories.js +122 -0
- package/helpers/classed.stories.mjs +103 -0
- package/helpers/createUseMediaQueryWidth.js +163 -153
- package/helpers/createUseMediaQueryWidth.mjs +140 -140
- package/helpers/extend-component.js +26 -11
- package/helpers/extend-component.mjs +7 -7
- package/helpers/index.js +8 -6
- package/helpers/mergeRefs.js +21 -8
- package/helpers/mergeRefs.mjs +3 -4
- package/hooks/index.js +91 -43
- package/hooks/index.mjs +3 -3
- package/hooks/types.js +6 -2
- package/hooks/types.mjs +3 -1
- package/hooks/useAsyncFn.js +48 -33
- package/hooks/useAsyncFn.mjs +28 -26
- package/hooks/useDateLocale.js +42 -32
- package/hooks/useDateLocale.mjs +22 -22
- package/hooks/useFirstMountState.js +20 -9
- package/hooks/useFirstMountState.mjs +2 -3
- package/hooks/useFixedOffset.js +45 -40
- package/hooks/useFixedOffset.mjs +23 -24
- package/hooks/useFocus.js +26 -12
- package/hooks/useFocus.mjs +7 -5
- package/hooks/useInterval.js +37 -25
- package/hooks/useInterval.mjs +15 -14
- package/hooks/useIsomorphicLayoutEffect.js +22 -12
- package/hooks/useIsomorphicLayoutEffect.mjs +1 -4
- package/hooks/useKeyUp.js +30 -17
- package/hooks/useKeyUp.mjs +9 -11
- package/hooks/useMeasure.js +98 -80
- package/hooks/useMeasure.mjs +74 -67
- package/hooks/useMountedState.js +23 -12
- package/hooks/useMountedState.mjs +5 -6
- package/hooks/useNavigateAway.js +47 -51
- package/hooks/useNavigateAway.mjs +26 -25
- package/hooks/usePrevious.js +27 -10
- package/hooks/usePrevious.mjs +9 -4
- package/hooks/usePreviousRef.js +21 -7
- package/hooks/usePreviousRef.mjs +2 -2
- package/hooks/useScrollPosition.js +53 -43
- package/hooks/useScrollPosition.mjs +28 -26
- package/hooks/useScrollThreshold.js +41 -22
- package/hooks/useScrollThreshold.mjs +18 -13
- package/hooks/useScrollTo.js +28 -16
- package/hooks/useScrollTo.mjs +6 -8
- package/hooks/useSmoothScroll.js +39 -34
- package/hooks/useSmoothScroll.mjs +12 -16
- package/hooks/useSpinDelay.js +42 -37
- package/hooks/useSpinDelay.mjs +24 -22
- package/hooks/useTraceUpdate.js +26 -13
- package/hooks/useTraceUpdate.mjs +8 -7
- package/hooks/useUpdateEffect.js +24 -13
- package/hooks/useUpdateEffect.mjs +4 -5
- package/hooks/useWindowSize.js +34 -25
- package/hooks/useWindowSize.mjs +13 -10
- package/index.js +9 -7
- package/index.mjs +4 -5
- package/m/MotionProvider.js +23 -41
- package/m/MotionProvider.mjs +4 -5
- package/m/index.js +6 -5
- package/m/index.mjs +1 -2
- package/m/lite.js +11 -3
- package/m/max.js +11 -3
- package/package.json +16 -13
- package/sc/index.js +48 -36
- package/scm/index.js +39 -35
- package/shared/index.js +12 -10
- package/shared/index.mjs +35 -0
- package/styles/Body.js +27 -15
- package/styles/Body.mjs +8 -5
- package/styles/Global.js +54 -20
- package/styles/Global.mjs +36 -5
- package/styles/index.js +141 -40
- package/styles/index.mjs +5 -5
- package/styles/media.js +98 -120
- package/styles/media.mjs +63 -68
- package/styles/spacing.js +49 -31
- package/styles/spacing.mjs +26 -25
- package/styles/styled.js +56 -15
- package/styles/styled.mjs +23 -10
- package/styles/theme--vanilla.js +58 -42
- package/styles/theme--vanilla.mjs +25 -20
- package/styles/theme.js +38 -34
- package/styles/theme.mjs +16 -19
- package/tw/index.js +32 -35
- package/tw/index.mjs +20 -21
- package/twm/index.js +32 -35
- package/twm/index.mjs +20 -21
- package/types.js +3 -1
- package/types.mjs +1 -1
- package/typings.d.ts +1 -0
- package/Alert/package.json +0 -6
- package/Animations/package.json +0 -6
- package/Autocomplete/package.json +0 -6
- package/Bg/package.json +0 -6
- package/Breadcrumbs/package.json +0 -6
- package/Buttons/package.json +0 -6
- package/Calendar/package.json +0 -6
- package/Carousel/package.json +0 -6
- package/Collapsable/package.json +0 -6
- package/Debug/package.json +0 -6
- package/Details/package.json +0 -6
- package/Dialog/m/package.json +0 -6
- package/Dialog/package.json +0 -6
- package/Editor/package.json +0 -6
- package/FaviconTags/FaviconTags.js +0 -20
- package/FaviconTags/FaviconTags.mjs +0 -16
- package/FaviconTags/index.d.ts +0 -2
- package/FaviconTags/index.js +0 -7
- package/FaviconTags/index.mjs +0 -2
- package/FaviconTags/package.json +0 -6
- package/Form/package.json +0 -6
- package/Forms/Checkbox/package.json +0 -6
- package/Forms/Feedback/package.json +0 -6
- package/Forms/Field/package.json +0 -6
- package/Forms/Input/package.json +0 -6
- package/Forms/InputGroup/package.json +0 -6
- package/Forms/Label/package.json +0 -6
- package/Forms/Password/package.json +0 -6
- package/Forms/Radio/package.json +0 -6
- package/Forms/Switch/package.json +0 -6
- package/Forms/Textarea/package.json +0 -6
- package/Forms/Toggle/package.json +0 -6
- package/Forms/package.json +0 -6
- package/Grid/package.json +0 -6
- package/Hamburger/package.json +0 -6
- package/Header/package.json +0 -6
- package/Hidden/package.json +0 -6
- package/Img/package.json +0 -6
- package/Link/package.json +0 -6
- package/Menu/package.json +0 -6
- package/MenuItem/package.json +0 -6
- package/Meta/package.json +0 -6
- package/NoJs/package.json +0 -6
- package/Pagination/package.json +0 -6
- package/Pill/package.json +0 -6
- package/Progress/package.json +0 -6
- package/Rating/package.json +0 -6
- package/Select/package.json +0 -6
- package/Sidebar/package.json +0 -6
- package/Spacing/package.json +0 -6
- package/Sticky/package.json +0 -6
- package/Tabs/package.json +0 -6
- package/Typography/package.json +0 -6
- package/css/package.json +0 -6
- package/helpers/package.json +0 -6
- package/hooks/package.json +0 -6
- package/m/package.json +0 -6
- package/sc/package.json +0 -6
- package/scm/package.json +0 -6
- package/shared/package.json +0 -6
- package/styles/package.json +0 -6
- package/tw/package.json +0 -6
- package/twm/package.json +0 -6
- /package/{FaviconTags/FaviconTags.d.ts → FaviconTags.d.ts} +0 -0
package/helpers/classed.js
CHANGED
|
@@ -1,55 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
*
|
|
22
|
-
* Discussions and Q/A:
|
|
23
|
-
* - https://stackoverflow.com/q/73055695/1938970
|
|
24
|
-
*/
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
classed: function() {
|
|
13
|
+
return classed;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
20
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
25
21
|
function classed(component) {
|
|
26
22
|
// @ts-expect-error nevermind for now...
|
|
27
|
-
|
|
28
|
-
return function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
var WrappedComponent = (0, react_1.forwardRef)(function (props, ref) {
|
|
34
|
-
var _a;
|
|
35
|
-
var argResolved = args
|
|
36
|
-
.map(function (arg, index) {
|
|
37
|
-
var result = "";
|
|
23
|
+
const type = component.type || component;
|
|
24
|
+
return function(strings, ...args) {
|
|
25
|
+
const WrappedComponent = /*#__PURE__*/ (0, _react.forwardRef)(function(props, ref) {
|
|
26
|
+
const argResolved = args.map((arg, index)=>{
|
|
27
|
+
let result = "";
|
|
38
28
|
if (typeof arg === "function") {
|
|
39
29
|
result = arg(props);
|
|
40
|
-
}
|
|
41
|
-
else if (typeof arg !== "undefined") {
|
|
30
|
+
} else if (typeof arg !== "undefined") {
|
|
42
31
|
result = arg.toString();
|
|
43
32
|
}
|
|
44
33
|
return strings[index] + result;
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var propsToForward = isNativeHtmlElement
|
|
49
|
-
? {}
|
|
50
|
-
: props;
|
|
34
|
+
}).join("");
|
|
35
|
+
const isNativeHtmlElement = typeof type === "string";
|
|
36
|
+
const propsToForward = isNativeHtmlElement ? {} : props;
|
|
51
37
|
if (isNativeHtmlElement) {
|
|
52
|
-
for
|
|
38
|
+
for(const key in props){
|
|
53
39
|
// like styled-components `transient` props
|
|
54
40
|
if (!key.startsWith("$")) {
|
|
55
41
|
// FIXME: for react 18 we need: @ts-expect-error
|
|
@@ -58,21 +44,23 @@ function classed(component) {
|
|
|
58
44
|
}
|
|
59
45
|
}
|
|
60
46
|
// get the tagged function string outcome
|
|
61
|
-
|
|
47
|
+
let className = argResolved || strings[0];
|
|
62
48
|
// check if we need to clean it or not from the optional structure `< class="..."`
|
|
63
|
-
className =
|
|
49
|
+
className = className.match(/class="([^"]*)/)?.[1] || className;
|
|
64
50
|
// add the custom classes from props
|
|
65
|
-
className +=
|
|
66
|
-
return (0,
|
|
51
|
+
className += props?.className ? " " + props?.className : "";
|
|
52
|
+
return /*#__PURE__*/ (0, _react.createElement)(type, {
|
|
53
|
+
// ...props,
|
|
54
|
+
...propsToForward,
|
|
67
55
|
// only add ot props if it is not an empty string
|
|
68
|
-
className: className || undefined,
|
|
56
|
+
className: className || undefined,
|
|
69
57
|
// add ref to props
|
|
70
|
-
ref
|
|
58
|
+
ref
|
|
59
|
+
});
|
|
71
60
|
});
|
|
72
61
|
// FIXME: not sure if this is needed
|
|
73
62
|
// WrappedComponent.displayName = type.toString();
|
|
74
63
|
return WrappedComponent; // as unknown as React.ReactElement<typeof props>;
|
|
75
64
|
};
|
|
76
65
|
}
|
|
77
|
-
|
|
78
|
-
exports.default = classed;
|
|
66
|
+
const _default = classed;
|
package/helpers/classed.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createElement, forwardRef } from "react";
|
|
1
|
+
import React, { createElement, forwardRef } from "react";
|
|
3
2
|
/**
|
|
4
3
|
* This utility allows to extend a component a là `styled-components` but for
|
|
5
4
|
* a className based styling solution like Tailwind,
|
|
@@ -18,35 +17,24 @@ import { createElement, forwardRef } from "react";
|
|
|
18
17
|
*
|
|
19
18
|
* Discussions and Q/A:
|
|
20
19
|
* - https://stackoverflow.com/q/73055695/1938970
|
|
21
|
-
*/
|
|
22
|
-
export function classed(component) {
|
|
20
|
+
*/ export function classed(component) {
|
|
23
21
|
// @ts-expect-error nevermind for now...
|
|
24
|
-
|
|
25
|
-
return function
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
var WrappedComponent = forwardRef(function (props, ref) {
|
|
31
|
-
var _a;
|
|
32
|
-
var argResolved = args
|
|
33
|
-
.map(function (arg, index) {
|
|
34
|
-
var result = "";
|
|
22
|
+
const type = component.type || component;
|
|
23
|
+
return function(strings, ...args) {
|
|
24
|
+
const WrappedComponent = /*#__PURE__*/ forwardRef(function(props, ref) {
|
|
25
|
+
const argResolved = args.map((arg, index)=>{
|
|
26
|
+
let result = "";
|
|
35
27
|
if (typeof arg === "function") {
|
|
36
28
|
result = arg(props);
|
|
37
|
-
}
|
|
38
|
-
else if (typeof arg !== "undefined") {
|
|
29
|
+
} else if (typeof arg !== "undefined") {
|
|
39
30
|
result = arg.toString();
|
|
40
31
|
}
|
|
41
32
|
return strings[index] + result;
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
var propsToForward = isNativeHtmlElement
|
|
46
|
-
? {}
|
|
47
|
-
: props;
|
|
33
|
+
}).join("");
|
|
34
|
+
const isNativeHtmlElement = typeof type === "string";
|
|
35
|
+
const propsToForward = isNativeHtmlElement ? {} : props;
|
|
48
36
|
if (isNativeHtmlElement) {
|
|
49
|
-
for
|
|
37
|
+
for(const key in props){
|
|
50
38
|
// like styled-components `transient` props
|
|
51
39
|
if (!key.startsWith("$")) {
|
|
52
40
|
// FIXME: for react 18 we need: @ts-expect-error
|
|
@@ -55,16 +43,19 @@ export function classed(component) {
|
|
|
55
43
|
}
|
|
56
44
|
}
|
|
57
45
|
// get the tagged function string outcome
|
|
58
|
-
|
|
46
|
+
let className = argResolved || strings[0];
|
|
59
47
|
// check if we need to clean it or not from the optional structure `< class="..."`
|
|
60
|
-
className =
|
|
48
|
+
className = className.match(/class="([^"]*)/)?.[1] || className;
|
|
61
49
|
// add the custom classes from props
|
|
62
|
-
className +=
|
|
63
|
-
return createElement(type,
|
|
50
|
+
className += props?.className ? " " + props?.className : "";
|
|
51
|
+
return /*#__PURE__*/ createElement(type, {
|
|
52
|
+
// ...props,
|
|
53
|
+
...propsToForward,
|
|
64
54
|
// only add ot props if it is not an empty string
|
|
65
|
-
className: className || undefined,
|
|
55
|
+
className: className || undefined,
|
|
66
56
|
// add ref to props
|
|
67
|
-
ref
|
|
57
|
+
ref
|
|
58
|
+
});
|
|
68
59
|
});
|
|
69
60
|
// FIXME: not sure if this is needed
|
|
70
61
|
// WrappedComponent.displayName = type.toString();
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2
|
+
// @ts-nocheck These are just wip experiments, we stick to just `./classed.tsx`
|
|
3
|
+
"use strict";
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
function _export(target, all) {
|
|
8
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: all[name]
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
_export(exports, {
|
|
14
|
+
default: function() {
|
|
15
|
+
return _default;
|
|
16
|
+
},
|
|
17
|
+
Playground: function() {
|
|
18
|
+
return Playground;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
22
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
23
|
+
const _classed = require("./classed");
|
|
24
|
+
const Classed = (0, _classed.classed)("div")`< class="bg-red-400 ${(p)=>p.test === "0a" ? "py-3" : "px-3"}`;
|
|
25
|
+
/**
|
|
26
|
+
* Adapted (removed `classnames` dependency) from:
|
|
27
|
+
* @see https://daily.dev/blog/my-tailwind-css-utility-function-for-creating-reusable-react-components-typescript-support
|
|
28
|
+
*
|
|
29
|
+
* See also [classname-hoc](https://www.npmjs.com/package/classname-hoc)
|
|
30
|
+
*/ function classedOriginal(type, ...className) {
|
|
31
|
+
return function(props) {
|
|
32
|
+
return /*#__PURE__*/ (0, _react.createElement)(type, {
|
|
33
|
+
...props,
|
|
34
|
+
className: [
|
|
35
|
+
props?.className || ""
|
|
36
|
+
].concat(className).join(" ")
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const ClassedOriginal = classedOriginal("div", "bg-slate-800");
|
|
41
|
+
function classedBind(props) {
|
|
42
|
+
// @ts-expect-error no time now
|
|
43
|
+
const classNameImpl = props.className ? " " + props.className : "";
|
|
44
|
+
// return <this className={this.props.className + classNameImpl} {...props} />;
|
|
45
|
+
return /*#__PURE__*/ (0, _react.createElement)(this.props.as || this.type, {
|
|
46
|
+
...props,
|
|
47
|
+
className: this.props.className + classNameImpl
|
|
48
|
+
}, // @ts-expect-error no time now
|
|
49
|
+
props.children);
|
|
50
|
+
}
|
|
51
|
+
const ClassedBind = classedBind.bind(/*#__PURE__*/ _react.default.createElement("div", {
|
|
52
|
+
as: "h2",
|
|
53
|
+
className: "bg-slate-800"
|
|
54
|
+
}));
|
|
55
|
+
function classedDynamic(ComponentFn) {
|
|
56
|
+
return function(propsImplementation) {
|
|
57
|
+
const { props, type } = ComponentFn(propsImplementation);
|
|
58
|
+
const classNameDefault = props.className ? " " + props.className : "";
|
|
59
|
+
return /*#__PURE__*/ (0, _react.createElement)(props.as || type, {
|
|
60
|
+
...props,
|
|
61
|
+
...propsImplementation,
|
|
62
|
+
className: propsImplementation?.className + classNameDefault
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const ClassedDynamicIgnoringProps = classedDynamic(()=>/*#__PURE__*/ _react.default.createElement("div", {
|
|
67
|
+
as: "h2",
|
|
68
|
+
className: "bg-slate-800"
|
|
69
|
+
}));
|
|
70
|
+
const ClassedDynamicUsingProps = classedDynamic((p)=>{
|
|
71
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
72
|
+
as: "h2",
|
|
73
|
+
className: `bg-slate-800 ${p?.test === "3" ? "py-3" : "px-3"}`
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
// type ExtractComponent<ComponentString extends string> =
|
|
77
|
+
// ComponentString extends `<${infer ComponentName} class="${infer ClassNames}`
|
|
78
|
+
// ? { name: ComponentName; className: ClassNames }
|
|
79
|
+
// : { error: "Cannot parse Component string" };
|
|
80
|
+
// type ExtractedComponent<T extends string> = ExtractComponent<T>;
|
|
81
|
+
function classedTaggedStatic(value = "") {
|
|
82
|
+
// @ts-expect-error we rely on correct implementation and assume it always matches
|
|
83
|
+
const componentName = value.match(/<(.*?)\s/)[1];
|
|
84
|
+
// @ts-expect-error we rely on correct implementation and assume it always matches
|
|
85
|
+
const classDefault = value.match(/class="(.+)/)[1];
|
|
86
|
+
return function(props) {
|
|
87
|
+
// @ts-expect-error no time now
|
|
88
|
+
const classCustom = props?.className ? " " + props?.className : "";
|
|
89
|
+
return /*#__PURE__*/ (0, _react.createElement)(componentName, {
|
|
90
|
+
...props,
|
|
91
|
+
className: classDefault + classCustom
|
|
92
|
+
});
|
|
93
|
+
}; /* as Component; */
|
|
94
|
+
}
|
|
95
|
+
const ClassedTaggedStatic = classedTaggedStatic(`<div class="bg-teal-400`);
|
|
96
|
+
const _default = {
|
|
97
|
+
// component: KoineDialog,
|
|
98
|
+
title: "Helpers/classed"
|
|
99
|
+
};
|
|
100
|
+
const Template = (args)=>{
|
|
101
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Classed, {
|
|
102
|
+
className: "text-yellow-200",
|
|
103
|
+
test: "0a"
|
|
104
|
+
}, "Classed taller"), /*#__PURE__*/ _react.default.createElement(Classed, {
|
|
105
|
+
className: "text-yellow-200",
|
|
106
|
+
test: "0b"
|
|
107
|
+
}, "Classed wider"), /*#__PURE__*/ _react.default.createElement(ClassedOriginal, {
|
|
108
|
+
className: "text-white"
|
|
109
|
+
}, "ClassedOriginal"), /*#__PURE__*/ _react.default.createElement(ClassedBind, {
|
|
110
|
+
className: "text-white"
|
|
111
|
+
}, "ClassedBind"), /*#__PURE__*/ _react.default.createElement(ClassedDynamicIgnoringProps, {
|
|
112
|
+
className: "text-gray-300",
|
|
113
|
+
test: "2"
|
|
114
|
+
}, "ClassedDynamicIgnoringProps"), /*#__PURE__*/ _react.default.createElement(ClassedDynamicUsingProps, {
|
|
115
|
+
className: "text-gray-600",
|
|
116
|
+
test: "3"
|
|
117
|
+
}, "ClassedDynamicUsingProps"), /*#__PURE__*/ _react.default.createElement(ClassedTaggedStatic, {
|
|
118
|
+
className: "text-gray-600"
|
|
119
|
+
}, "ClassedTaggedStatic"));
|
|
120
|
+
};
|
|
121
|
+
const Playground = Template.bind({});
|
|
122
|
+
Playground.args = {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2
|
+
// @ts-nocheck These are just wip experiments, we stick to just `./classed.tsx`
|
|
3
|
+
import React, { createElement } from "react";
|
|
4
|
+
import { classed } from "./classed";
|
|
5
|
+
const Classed = classed("div")`< class="bg-red-400 ${(p)=>p.test === "0a" ? "py-3" : "px-3"}`;
|
|
6
|
+
/**
|
|
7
|
+
* Adapted (removed `classnames` dependency) from:
|
|
8
|
+
* @see https://daily.dev/blog/my-tailwind-css-utility-function-for-creating-reusable-react-components-typescript-support
|
|
9
|
+
*
|
|
10
|
+
* See also [classname-hoc](https://www.npmjs.com/package/classname-hoc)
|
|
11
|
+
*/ function classedOriginal(type, ...className) {
|
|
12
|
+
return function(props) {
|
|
13
|
+
return /*#__PURE__*/ createElement(type, {
|
|
14
|
+
...props,
|
|
15
|
+
className: [
|
|
16
|
+
props?.className || ""
|
|
17
|
+
].concat(className).join(" ")
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const ClassedOriginal = classedOriginal("div", "bg-slate-800");
|
|
22
|
+
function classedBind(props) {
|
|
23
|
+
// @ts-expect-error no time now
|
|
24
|
+
const classNameImpl = props.className ? " " + props.className : "";
|
|
25
|
+
// return <this className={this.props.className + classNameImpl} {...props} />;
|
|
26
|
+
return /*#__PURE__*/ createElement(this.props.as || this.type, {
|
|
27
|
+
...props,
|
|
28
|
+
className: this.props.className + classNameImpl
|
|
29
|
+
}, // @ts-expect-error no time now
|
|
30
|
+
props.children);
|
|
31
|
+
}
|
|
32
|
+
const ClassedBind = classedBind.bind(/*#__PURE__*/ React.createElement("div", {
|
|
33
|
+
as: "h2",
|
|
34
|
+
className: "bg-slate-800"
|
|
35
|
+
}));
|
|
36
|
+
function classedDynamic(ComponentFn) {
|
|
37
|
+
return function(propsImplementation) {
|
|
38
|
+
const { props, type } = ComponentFn(propsImplementation);
|
|
39
|
+
const classNameDefault = props.className ? " " + props.className : "";
|
|
40
|
+
return /*#__PURE__*/ createElement(props.as || type, {
|
|
41
|
+
...props,
|
|
42
|
+
...propsImplementation,
|
|
43
|
+
className: propsImplementation?.className + classNameDefault
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const ClassedDynamicIgnoringProps = classedDynamic(()=>/*#__PURE__*/ React.createElement("div", {
|
|
48
|
+
as: "h2",
|
|
49
|
+
className: "bg-slate-800"
|
|
50
|
+
}));
|
|
51
|
+
const ClassedDynamicUsingProps = classedDynamic((p)=>{
|
|
52
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
53
|
+
as: "h2",
|
|
54
|
+
className: `bg-slate-800 ${p?.test === "3" ? "py-3" : "px-3"}`
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
// type ExtractComponent<ComponentString extends string> =
|
|
58
|
+
// ComponentString extends `<${infer ComponentName} class="${infer ClassNames}`
|
|
59
|
+
// ? { name: ComponentName; className: ClassNames }
|
|
60
|
+
// : { error: "Cannot parse Component string" };
|
|
61
|
+
// type ExtractedComponent<T extends string> = ExtractComponent<T>;
|
|
62
|
+
function classedTaggedStatic(value = "") {
|
|
63
|
+
// @ts-expect-error we rely on correct implementation and assume it always matches
|
|
64
|
+
const componentName = value.match(/<(.*?)\s/)[1];
|
|
65
|
+
// @ts-expect-error we rely on correct implementation and assume it always matches
|
|
66
|
+
const classDefault = value.match(/class="(.+)/)[1];
|
|
67
|
+
return function(props) {
|
|
68
|
+
// @ts-expect-error no time now
|
|
69
|
+
const classCustom = props?.className ? " " + props?.className : "";
|
|
70
|
+
return /*#__PURE__*/ createElement(componentName, {
|
|
71
|
+
...props,
|
|
72
|
+
className: classDefault + classCustom
|
|
73
|
+
});
|
|
74
|
+
}; /* as Component; */
|
|
75
|
+
}
|
|
76
|
+
const ClassedTaggedStatic = classedTaggedStatic(`<div class="bg-teal-400`);
|
|
77
|
+
export default {
|
|
78
|
+
// component: KoineDialog,
|
|
79
|
+
title: "Helpers/classed"
|
|
80
|
+
};
|
|
81
|
+
const Template = (args)=>{
|
|
82
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Classed, {
|
|
83
|
+
className: "text-yellow-200",
|
|
84
|
+
test: "0a"
|
|
85
|
+
}, "Classed taller"), /*#__PURE__*/ React.createElement(Classed, {
|
|
86
|
+
className: "text-yellow-200",
|
|
87
|
+
test: "0b"
|
|
88
|
+
}, "Classed wider"), /*#__PURE__*/ React.createElement(ClassedOriginal, {
|
|
89
|
+
className: "text-white"
|
|
90
|
+
}, "ClassedOriginal"), /*#__PURE__*/ React.createElement(ClassedBind, {
|
|
91
|
+
className: "text-white"
|
|
92
|
+
}, "ClassedBind"), /*#__PURE__*/ React.createElement(ClassedDynamicIgnoringProps, {
|
|
93
|
+
className: "text-gray-300",
|
|
94
|
+
test: "2"
|
|
95
|
+
}, "ClassedDynamicIgnoringProps"), /*#__PURE__*/ React.createElement(ClassedDynamicUsingProps, {
|
|
96
|
+
className: "text-gray-600",
|
|
97
|
+
test: "3"
|
|
98
|
+
}, "ClassedDynamicUsingProps"), /*#__PURE__*/ React.createElement(ClassedTaggedStatic, {
|
|
99
|
+
className: "text-gray-600"
|
|
100
|
+
}, "ClassedTaggedStatic"));
|
|
101
|
+
};
|
|
102
|
+
export const Playground = Template.bind({});
|
|
103
|
+
Playground.args = {};
|