@koine/react 2.0.0-beta.12 → 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
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
|
-
import styled from "styled-components";
|
|
4
|
-
import { Editor } from "../../Editor";
|
|
5
|
-
// import TextareaAutosize from "@mui/base/TextareaAutosize";
|
|
6
|
-
import { Label } from "../Label/Label";
|
|
7
|
-
import { triggerOnChange } from "../helpers";
|
|
8
|
-
const Root = styled.div`
|
|
9
|
-
.ProseMirror {
|
|
10
|
-
max-height: 160px;
|
|
11
|
-
overflow: auto;
|
|
12
|
-
}
|
|
13
|
-
.EditorContent {
|
|
14
|
-
position: relative;
|
|
15
|
-
&:after {
|
|
16
|
-
position: absolute;
|
|
17
|
-
content: "";
|
|
18
|
-
bottom: 0;
|
|
19
|
-
left: 0;
|
|
20
|
-
right: 16px; /* scrollbar width? */
|
|
21
|
-
height: 3em;
|
|
22
|
-
background: linear-gradient(0deg, white, white 33%, transparent);
|
|
23
|
-
pointer-events: none;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
`;
|
|
27
|
-
export const TextareaRich = /*#__PURE__*/ forwardRef(function TextareaRich({ register, setValue, name, label, defaultValue = "", onChange, ...props }, ref) {
|
|
28
|
-
if (register) register(name);
|
|
29
|
-
return /*#__PURE__*/ _jsxs(Root, {
|
|
30
|
-
children: [
|
|
31
|
-
label && /*#__PURE__*/ _jsx(Label, {
|
|
32
|
-
children: label
|
|
33
|
-
}),
|
|
34
|
-
/*#__PURE__*/ _jsx(Editor, {
|
|
35
|
-
options: {
|
|
36
|
-
// element: <TextareaAutosize />,
|
|
37
|
-
content: defaultValue,
|
|
38
|
-
onUpdate: (onChange || setValue) && name ? ({ editor })=>{
|
|
39
|
-
const value = editor.getHTML();
|
|
40
|
-
if (setValue) setValue(name, value);
|
|
41
|
-
triggerOnChange(onChange, name, value);
|
|
42
|
-
} : undefined
|
|
43
|
-
},
|
|
44
|
-
...props
|
|
45
|
-
})
|
|
46
|
-
]
|
|
47
|
-
});
|
|
48
|
-
});
|
package/Forms/Textarea/index.mjs
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
// /**
|
|
2
|
-
// * @file
|
|
3
|
-
// *
|
|
4
|
-
// * About accessibility:
|
|
5
|
-
// * - minimum target size of 44px https://www.w3.org/TR/WCAG21/#target-size
|
|
6
|
-
// *
|
|
7
|
-
// * @see tests on tailwind playground:
|
|
8
|
-
// * - https://play.tailwindcss.com/RVldIcmZa5
|
|
9
|
-
// */
|
|
10
|
-
// import { type FormControlState } from "../FormControl";
|
|
11
|
-
// import { FormControlStatefulElement } from "../FormControlStatefulElement";
|
|
12
|
-
// export type ToggleProps = React.ComponentProps<"span">;
|
|
13
|
-
// export const Toggle = ({ className = "", ...props }: ToggleProps) => {
|
|
14
|
-
// return (
|
|
15
|
-
// <span
|
|
16
|
-
// className={`relative my-0 -mx-1 inline-flex h-8 w-8 items-center justify-center p-1 ${className}`}
|
|
17
|
-
// {...props}
|
|
18
|
-
// />
|
|
19
|
-
// );
|
|
20
|
-
// };
|
|
21
|
-
// export type ToggleLabelProps = React.ComponentProps<"span">;
|
|
22
|
-
// export const ToggleLabel = ({ className = "", ...props }: ToggleLabelProps) => {
|
|
23
|
-
// return (
|
|
24
|
-
// <span
|
|
25
|
-
// className={`text-grey-200 ml-3 select-none ${className}`}
|
|
26
|
-
// {...props}
|
|
27
|
-
// />
|
|
28
|
-
// );
|
|
29
|
-
// };
|
|
30
|
-
// export type ToggleLabelSubProps = React.ComponentProps<"small">;
|
|
31
|
-
// export const ToggleLabelSub = ({
|
|
32
|
-
// className = "",
|
|
33
|
-
// ...props
|
|
34
|
-
// }: ToggleLabelSubProps) => {
|
|
35
|
-
// return (
|
|
36
|
-
// <span
|
|
37
|
-
// className={`text-xs opacity-70 ${className}`}
|
|
38
|
-
// {...props}
|
|
39
|
-
// />
|
|
40
|
-
// );
|
|
41
|
-
// };
|
|
42
|
-
// export type ToggleIndicatorProps = FormControlState & {
|
|
43
|
-
// className?: string;
|
|
44
|
-
// };
|
|
45
|
-
// export const ToggleIndicator = ({
|
|
46
|
-
// className,
|
|
47
|
-
// ...props
|
|
48
|
-
// }: ToggleIndicatorProps) => {
|
|
49
|
-
// return (
|
|
50
|
-
// <FormControlStatefulElement
|
|
51
|
-
// as="span"
|
|
52
|
-
// className={`relative flex h-[24px] w-[24px] rounded-md border border-solid ${className}`}
|
|
53
|
-
// {...props}
|
|
54
|
-
// />
|
|
55
|
-
// );
|
|
56
|
-
// };
|
|
57
|
-
// export type ToggleIndicatorFgProps = React.ComponentProps<"svg">;
|
|
58
|
-
// export const ToggleIndicatorFg = ({
|
|
59
|
-
// className = "",
|
|
60
|
-
// ...props
|
|
61
|
-
// }: ToggleIndicatorFgProps) => {
|
|
62
|
-
// return (
|
|
63
|
-
// <svg
|
|
64
|
-
// className={`on-toggle-checked:scale-100 absolute left-0 h-full w-full scale-0 transition-transform ${className}`}
|
|
65
|
-
// {...props}
|
|
66
|
-
// />
|
|
67
|
-
// );
|
|
68
|
-
// };
|
|
69
|
-
// export type ToggleIndicatorSquaredProps = ToggleIndicatorProps;
|
|
70
|
-
// export const ToggleIndicatorSquared = (props: ToggleIndicatorSquaredProps) => {
|
|
71
|
-
// return (
|
|
72
|
-
// <ToggleIndicator {...props}>
|
|
73
|
-
// <ToggleIndicatorFg viewBox="0 0 24 24">
|
|
74
|
-
// <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" />
|
|
75
|
-
// </ToggleIndicatorFg>
|
|
76
|
-
// </ToggleIndicator>
|
|
77
|
-
// );
|
|
78
|
-
// };
|
|
79
|
-
// export type ToggleIndicatorRoundedProps = ToggleIndicatorProps & {
|
|
80
|
-
// /** @default 6 */
|
|
81
|
-
// r?: number;
|
|
82
|
-
// };
|
|
83
|
-
// export const ToggleIndicatorRounded = ({
|
|
84
|
-
// r = 6,
|
|
85
|
-
// ...props
|
|
86
|
-
// }: ToggleIndicatorRoundedProps) => {
|
|
87
|
-
// return (
|
|
88
|
-
// <ToggleIndicator {...props}>
|
|
89
|
-
// <ToggleIndicatorFg viewBox="0 0 24 24">
|
|
90
|
-
// <circle
|
|
91
|
-
// r={r}
|
|
92
|
-
// cx="12"
|
|
93
|
-
// cy="12"
|
|
94
|
-
// />
|
|
95
|
-
// </ToggleIndicatorFg>
|
|
96
|
-
// </ToggleIndicator>
|
|
97
|
-
// );
|
|
98
|
-
// };
|
package/Forms/Toggle/Toggle.mjs
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file
|
|
3
|
-
*
|
|
4
|
-
* About accessibility:
|
|
5
|
-
* - minimum target size of 44px https://www.w3.org/TR/WCAG21/#target-size
|
|
6
|
-
*/ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
import { useId } from "react";
|
|
8
|
-
import styled from "styled-components";
|
|
9
|
-
import { stateFocus } from "../../styles/styled";
|
|
10
|
-
export const toggleBase = `
|
|
11
|
-
border: 1px solid var(--forms-border-color);
|
|
12
|
-
`;
|
|
13
|
-
export const toggleIndicatorBg = `
|
|
14
|
-
display: inline-block;
|
|
15
|
-
flex-shrink: 0;
|
|
16
|
-
width: 100%;
|
|
17
|
-
height: 100%;
|
|
18
|
-
`;
|
|
19
|
-
export const toggleIndicatorBgShape = `
|
|
20
|
-
${toggleIndicatorBg}
|
|
21
|
-
fill: none;
|
|
22
|
-
stroke-width: 2px;
|
|
23
|
-
stroke: var(--forms-border-color);
|
|
24
|
-
`;
|
|
25
|
-
export const toggleIndicatorFg = `
|
|
26
|
-
position: absolute;
|
|
27
|
-
left: 0;
|
|
28
|
-
width: 100%;
|
|
29
|
-
height: 100%;
|
|
30
|
-
fill: currentcolor;
|
|
31
|
-
`;
|
|
32
|
-
export const Toggle = styled.span`
|
|
33
|
-
position: relative;
|
|
34
|
-
display: inline-flex;
|
|
35
|
-
align-items: center;
|
|
36
|
-
justify-content: center;
|
|
37
|
-
width: 2em;
|
|
38
|
-
height: 2em;
|
|
39
|
-
margin: 0 -0.3em; /* rtl */
|
|
40
|
-
padding: 0.3em;
|
|
41
|
-
`;
|
|
42
|
-
export const ToggleLabel = styled.span`
|
|
43
|
-
margin-left: 0.6em; /* rtl */
|
|
44
|
-
`;
|
|
45
|
-
export const ToggleLabelSub = styled.small`
|
|
46
|
-
opacity: 0.7;
|
|
47
|
-
font-size: 0.7em;
|
|
48
|
-
`;
|
|
49
|
-
export const ToggleIndicatorHolder = styled.span`
|
|
50
|
-
position: relative;
|
|
51
|
-
display: flex;
|
|
52
|
-
|
|
53
|
-
input:focus ~ & {
|
|
54
|
-
${stateFocus}
|
|
55
|
-
}
|
|
56
|
-
`;
|
|
57
|
-
export const ToggleIndicatorBgSquare = styled.svg`
|
|
58
|
-
${toggleIndicatorBgShape}
|
|
59
|
-
`;
|
|
60
|
-
export const ToggleIndicatorBgCircle = styled.svg`
|
|
61
|
-
${toggleIndicatorBgShape}
|
|
62
|
-
`;
|
|
63
|
-
export const ToggleIndicatorFg = styled.svg`
|
|
64
|
-
${toggleIndicatorFg}
|
|
65
|
-
transform: scale(0);
|
|
66
|
-
transition: transform 0.18s ease;
|
|
67
|
-
|
|
68
|
-
input:checked + ${ToggleIndicatorHolder} & {
|
|
69
|
-
transform: scale(1);
|
|
70
|
-
}
|
|
71
|
-
`;
|
|
72
|
-
export const ToggleIndicatorSquared = (props)=>{
|
|
73
|
-
return /*#__PURE__*/ _jsxs(ToggleIndicatorHolder, {
|
|
74
|
-
children: [
|
|
75
|
-
/*#__PURE__*/ _jsx(ToggleIndicatorBgSquare, {
|
|
76
|
-
viewBox: "0 0 24 24",
|
|
77
|
-
children: /*#__PURE__*/ _jsx("rect", {
|
|
78
|
-
width: "24",
|
|
79
|
-
height: "24"
|
|
80
|
-
})
|
|
81
|
-
}),
|
|
82
|
-
/*#__PURE__*/ _jsx(ToggleIndicatorFg, {
|
|
83
|
-
viewBox: "0 0 24 24",
|
|
84
|
-
children: /*#__PURE__*/ _jsx("path", {
|
|
85
|
-
d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
|
|
86
|
-
})
|
|
87
|
-
})
|
|
88
|
-
]
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
export const ToggleIndicatorRounded = ({ r = 6 })=>{
|
|
92
|
-
const id = useId();
|
|
93
|
-
return /*#__PURE__*/ _jsxs(ToggleIndicatorHolder, {
|
|
94
|
-
children: [
|
|
95
|
-
/*#__PURE__*/ _jsxs(ToggleIndicatorBgCircle, {
|
|
96
|
-
viewBox: "0 0 24 24",
|
|
97
|
-
children: [
|
|
98
|
-
/*#__PURE__*/ _jsx("circle", {
|
|
99
|
-
cy: "12",
|
|
100
|
-
cx: "12",
|
|
101
|
-
r: "12",
|
|
102
|
-
id: `r_${id}`,
|
|
103
|
-
clipPath: `url(#c_${id})`
|
|
104
|
-
}),
|
|
105
|
-
/*#__PURE__*/ _jsx("clipPath", {
|
|
106
|
-
id: `c_${id}`,
|
|
107
|
-
children: /*#__PURE__*/ _jsx("use", {
|
|
108
|
-
xlinkHref: `#r_${id}`
|
|
109
|
-
})
|
|
110
|
-
})
|
|
111
|
-
]
|
|
112
|
-
}),
|
|
113
|
-
/*#__PURE__*/ _jsx(ToggleIndicatorFg, {
|
|
114
|
-
viewBox: "0 0 24 24",
|
|
115
|
-
children: /*#__PURE__*/ _jsx("circle", {
|
|
116
|
-
r: r,
|
|
117
|
-
cx: "12",
|
|
118
|
-
cy: "12"
|
|
119
|
-
})
|
|
120
|
-
})
|
|
121
|
-
]
|
|
122
|
-
});
|
|
123
|
-
};
|
package/Forms/Toggle/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./Toggle";
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
// import React, { useCallback, useId, useMemo } from "react";
|
|
2
|
-
// import type { Option } from "@koine/react";
|
|
3
|
-
// import type { FormControlElementProps } from "../FormControl";
|
|
4
|
-
// export type UseToggleProps = FormControlElementProps<React.FC> & {
|
|
5
|
-
// // defaultChecked?: boolean;
|
|
6
|
-
// value?: boolean;
|
|
7
|
-
// valueTrue?: string;
|
|
8
|
-
// valueFalse?: string;
|
|
9
|
-
// options?: Option[];
|
|
10
|
-
// };
|
|
11
|
-
// /**
|
|
12
|
-
// * This hook is meant to power Checkboxes, Switches and checkbox-like Radios
|
|
13
|
-
// * components, it works in fact in two modes:
|
|
14
|
-
// *
|
|
15
|
-
// * 1: behaviour as standard checkbox
|
|
16
|
-
// * yup validation would simply look like:
|
|
17
|
-
// *
|
|
18
|
-
// * ```ts
|
|
19
|
-
// * privacy: boolean().required(),
|
|
20
|
-
// * ```
|
|
21
|
-
// *
|
|
22
|
-
// * 1b: to make the checkbox required (either with `true` or `false`):
|
|
23
|
-
// * ```
|
|
24
|
-
// * privacy: boolean().oneOf([true]).required()
|
|
25
|
-
// * ```
|
|
26
|
-
// *
|
|
27
|
-
// * 2: beahviour as two radio for checkbox with custom true/false values as
|
|
28
|
-
// * strings yup validation would look like:
|
|
29
|
-
// *
|
|
30
|
-
// * ```ts
|
|
31
|
-
// * newsletter: string().oneOf(["yes", "no"]).required(),
|
|
32
|
-
// * // add `.nullable()` if you do not provide a string `defaultValue`
|
|
33
|
-
// *
|
|
34
|
-
// * // to do not make it required and avoid triggering an error when the input is
|
|
35
|
-
// * // untouched you need to set the default value of the input in the form
|
|
36
|
-
// * // initialization's `defaultValues` as such:
|
|
37
|
-
// *
|
|
38
|
-
// * useForm({ defaultValues: { newsletter: "no" }})
|
|
39
|
-
// * ```
|
|
40
|
-
// *
|
|
41
|
-
// * To enable this mode either pass the props `valueTrue` and `valueFalse` or
|
|
42
|
-
// * an array of options with the shape of `Option`
|
|
43
|
-
// */
|
|
44
|
-
// export function useToggle(
|
|
45
|
-
// props: UseToggleProps,
|
|
46
|
-
// ref: React.ForwardedRef<HTMLInputElement>
|
|
47
|
-
// ) {
|
|
48
|
-
// const {
|
|
49
|
-
// actions,
|
|
50
|
-
// form: { watch, register },
|
|
51
|
-
// name,
|
|
52
|
-
// state,
|
|
53
|
-
// strings: { label },
|
|
54
|
-
// options,
|
|
55
|
-
// value: propValue,
|
|
56
|
-
// ...restProps
|
|
57
|
-
// } = props;
|
|
58
|
-
// let {
|
|
59
|
-
// valueTrue,
|
|
60
|
-
// valueFalse,
|
|
61
|
-
// // defaultChecked,
|
|
62
|
-
// // defaultValue,
|
|
63
|
-
// // eslint-disable-next-line prefer-const
|
|
64
|
-
// // ...remainingInputProps
|
|
65
|
-
// } = restProps;
|
|
66
|
-
// // use options data convention to pass on the true/false values
|
|
67
|
-
// if (options) {
|
|
68
|
-
// valueTrue = options
|
|
69
|
-
// .filter((opt) => opt.value === "true")[0]
|
|
70
|
-
// .label.toString();
|
|
71
|
-
// valueFalse = options
|
|
72
|
-
// .filter((opt) => opt.value === "false")[0]
|
|
73
|
-
// .label.toString();
|
|
74
|
-
// }
|
|
75
|
-
// const id = useId();
|
|
76
|
-
// const idTrue = `${id}-true`;
|
|
77
|
-
// const idFalse = `${id}-false`;
|
|
78
|
-
// const isRadio = !!(valueTrue && valueFalse);
|
|
79
|
-
// // // manage default values for both toggle modes
|
|
80
|
-
// // defaultChecked = isUndefined(defaultChecked) ? false : defaultChecked;
|
|
81
|
-
// // // TODO: maybe throw an error if the defaultValue that arrives here is not
|
|
82
|
-
// // // a valid value
|
|
83
|
-
// // defaultValue =
|
|
84
|
-
// // defaultValue === valueTrue || defaultValue === valueFalse
|
|
85
|
-
// // ? defaultValue
|
|
86
|
-
// // : valueFalse;
|
|
87
|
-
// // get the value either from the uncontrolled watched input or from the given
|
|
88
|
-
// // prop to control the component
|
|
89
|
-
// let value = watch(name);
|
|
90
|
-
// if (propValue) {
|
|
91
|
-
// value = propValue;
|
|
92
|
-
// }
|
|
93
|
-
// /**
|
|
94
|
-
// * Accessibility.
|
|
95
|
-
// *
|
|
96
|
-
// * Fake the spacebar keyboard behaviour on the radio mode of the checkbox.
|
|
97
|
-
// * Without this *only* the arrow keys would change the checkbox state
|
|
98
|
-
// */
|
|
99
|
-
// const handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> =
|
|
100
|
-
// useCallback(
|
|
101
|
-
// (event) => {
|
|
102
|
-
// if (event.key === " ") {
|
|
103
|
-
// event.preventDefault();
|
|
104
|
-
// event.stopPropagation();
|
|
105
|
-
// const firstInput = event.target as HTMLInputElement;
|
|
106
|
-
// const next = firstInput.nextElementSibling as HTMLInputElement;
|
|
107
|
-
// const prev = firstInput.previousElementSibling as HTMLInputElement;
|
|
108
|
-
// const secondInput = next?.tagName === "INPUT" ? next : prev;
|
|
109
|
-
// let target = firstInput;
|
|
110
|
-
// if (firstInput.checked) {
|
|
111
|
-
// target = secondInput;
|
|
112
|
-
// } else {
|
|
113
|
-
// if (!secondInput.checked) {
|
|
114
|
-
// target =
|
|
115
|
-
// firstInput.value === valueTrue ? firstInput : secondInput;
|
|
116
|
-
// }
|
|
117
|
-
// }
|
|
118
|
-
// if (target) target.click();
|
|
119
|
-
// }
|
|
120
|
-
// },
|
|
121
|
-
// [valueTrue]
|
|
122
|
-
// );
|
|
123
|
-
// // collect all the return values that are dependent on the current value
|
|
124
|
-
// // of the input
|
|
125
|
-
// const valueDependentProps = useMemo(
|
|
126
|
-
// () => ({
|
|
127
|
-
// rootProps: {
|
|
128
|
-
// htmlFor: isRadio
|
|
129
|
-
// ? !value || value === valueFalse
|
|
130
|
-
// ? idTrue
|
|
131
|
-
// : idFalse
|
|
132
|
-
// : id,
|
|
133
|
-
// },
|
|
134
|
-
// label: label ? label : value,
|
|
135
|
-
// value,
|
|
136
|
-
// }),
|
|
137
|
-
// [value, valueFalse, isRadio, id, idTrue, idFalse, label]
|
|
138
|
-
// );
|
|
139
|
-
// const Inputs = useMemo(
|
|
140
|
-
// () =>
|
|
141
|
-
// isRadio ? (
|
|
142
|
-
// <>
|
|
143
|
-
// <input
|
|
144
|
-
// className="peer sr-only"
|
|
145
|
-
// id={idFalse}
|
|
146
|
-
// {...register(name, {
|
|
147
|
-
// onBlur: () => actions.setFocused(false),
|
|
148
|
-
// })}
|
|
149
|
-
// onFocus={() => actions.setFocused(true)}
|
|
150
|
-
// // {...remainingInputProps}
|
|
151
|
-
// onKeyDown={handleKeyDown}
|
|
152
|
-
// type="radio"
|
|
153
|
-
// value={valueFalse}
|
|
154
|
-
// // defaultChecked={defaultValue === valueFalse}
|
|
155
|
-
// />
|
|
156
|
-
// <input
|
|
157
|
-
// className="peer sr-only"
|
|
158
|
-
// id={idTrue}
|
|
159
|
-
// {...register(name, {
|
|
160
|
-
// onBlur: () => actions.setFocused(false),
|
|
161
|
-
// })}
|
|
162
|
-
// onFocus={() => actions.setFocused(true)}
|
|
163
|
-
// // {...remainingInputProps}
|
|
164
|
-
// onKeyDown={handleKeyDown}
|
|
165
|
-
// type="radio"
|
|
166
|
-
// value={valueTrue}
|
|
167
|
-
// // defaultChecked={defaultValue === valueTrue}
|
|
168
|
-
// />
|
|
169
|
-
// </>
|
|
170
|
-
// ) : (
|
|
171
|
-
// <input
|
|
172
|
-
// className="peer sr-only"
|
|
173
|
-
// id={id}
|
|
174
|
-
// type="checkbox"
|
|
175
|
-
// {...register(name, { onBlur: () => actions.setFocused(false) })}
|
|
176
|
-
// onFocus={() => actions.setFocused(true)}
|
|
177
|
-
// // {...remainingInputProps}
|
|
178
|
-
// // defaultChecked={defaultChecked}
|
|
179
|
-
// />
|
|
180
|
-
// ),
|
|
181
|
-
// [
|
|
182
|
-
// name,
|
|
183
|
-
// actions,
|
|
184
|
-
// // remainingInputProps,
|
|
185
|
-
// handleKeyDown,
|
|
186
|
-
// isRadio,
|
|
187
|
-
// idFalse,
|
|
188
|
-
// idTrue,
|
|
189
|
-
// valueFalse,
|
|
190
|
-
// valueTrue,
|
|
191
|
-
// id,
|
|
192
|
-
// // defaultChecked,
|
|
193
|
-
// // defaultValue,
|
|
194
|
-
// ]
|
|
195
|
-
// );
|
|
196
|
-
// // console.log("useToggle: render", value);
|
|
197
|
-
// return {
|
|
198
|
-
// ...valueDependentProps,
|
|
199
|
-
// Inputs,
|
|
200
|
-
// };
|
|
201
|
-
// }
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useMemo } from "react";
|
|
3
|
-
import { useWatch } from "react-hook-form";
|
|
4
|
-
import { InputInvisible } from "../styles";
|
|
5
|
-
/**
|
|
6
|
-
* This hook is meant to power Checkboxes, Switches and checkbox-like Radios
|
|
7
|
-
* components, it works in fact in two modes:
|
|
8
|
-
*
|
|
9
|
-
* 1: behaviour as standard checkbox
|
|
10
|
-
* yup validation would simply look like:
|
|
11
|
-
*
|
|
12
|
-
* ```ts
|
|
13
|
-
* privacy: boolean().required(),
|
|
14
|
-
* // add `.nullable()` if you do not provide a boolean `defaultValue`
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* 2: beahviour as two radio for checkbox with custom true/false values as
|
|
18
|
-
* strings yup validation would look like:
|
|
19
|
-
*
|
|
20
|
-
* ```ts
|
|
21
|
-
* newsletter: string().oneOf(["yes", "no"]).required(),
|
|
22
|
-
* // add `.nullable()` if you do not provide a string `defaultValue`
|
|
23
|
-
*
|
|
24
|
-
* // to do not make it required and avoid triggering an error when the input is
|
|
25
|
-
* // untouched you need to set the default value of the input in the form
|
|
26
|
-
* // initialization's `defaultValues` as such:
|
|
27
|
-
*
|
|
28
|
-
* useForm({ defaultValues: { newsletter: "no" }})
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* To enable this mode either pass the props `valueTrue` and `valueFalse` or
|
|
32
|
-
* an array of options with the shape of `Option`
|
|
33
|
-
*/ export function useToggle(props, ref) {
|
|
34
|
-
const { name, control, register, label, options, value: propValue, ...restProps } = props;
|
|
35
|
-
let { id, valueTrue, valueFalse, // defaultChecked,
|
|
36
|
-
// defaultValue,
|
|
37
|
-
// eslint-disable-next-line prefer-const
|
|
38
|
-
...remainingInputProps } = restProps;
|
|
39
|
-
// use options data convention to pass on the true/false values
|
|
40
|
-
if (options) {
|
|
41
|
-
valueTrue = options.filter((opt)=>opt.value === "true")[0].label.toString();
|
|
42
|
-
valueFalse = options.filter((opt)=>opt.value === "false")[0].label.toString();
|
|
43
|
-
}
|
|
44
|
-
id = `switch-${name}`;
|
|
45
|
-
const idTrue = `${id}-true`;
|
|
46
|
-
const idFalse = `${id}-false`;
|
|
47
|
-
const isRadio = !!(valueTrue && valueFalse);
|
|
48
|
-
// // manage default values for both toggle modes
|
|
49
|
-
// defaultChecked = isUndefined(defaultChecked) ? false : defaultChecked;
|
|
50
|
-
// // TODO: maybe throw an error if the defaultValue that arrives here is not
|
|
51
|
-
// // a valid value
|
|
52
|
-
// defaultValue =
|
|
53
|
-
// defaultValue === valueTrue || defaultValue === valueFalse
|
|
54
|
-
// ? defaultValue
|
|
55
|
-
// : valueFalse;
|
|
56
|
-
// get the value either from the uncontrolled watched input or from the given
|
|
57
|
-
// prop to control the component
|
|
58
|
-
let value = useWatch({
|
|
59
|
-
name,
|
|
60
|
-
control
|
|
61
|
-
});
|
|
62
|
-
if (propValue) {
|
|
63
|
-
value = propValue;
|
|
64
|
-
}
|
|
65
|
-
// get the input props needed by react-hook-form, first check if we have
|
|
66
|
-
// a `register` function, then check if we have a `control` object or just
|
|
67
|
-
// rely on the `name` prop and `ref`, they probably would be passed alongside
|
|
68
|
-
// an `onChange` prop that is spreaded on the inputs
|
|
69
|
-
const inputProps = useMemo(()=>{
|
|
70
|
-
return register ? register(name) : control ? control.register(name) : {
|
|
71
|
-
name,
|
|
72
|
-
ref
|
|
73
|
-
};
|
|
74
|
-
}, [
|
|
75
|
-
register,
|
|
76
|
-
control,
|
|
77
|
-
name,
|
|
78
|
-
ref
|
|
79
|
-
]);
|
|
80
|
-
/**
|
|
81
|
-
* Accessibility.
|
|
82
|
-
*
|
|
83
|
-
* Fake the spacebar keyboard behaviour on the radio mode of the checkbox.
|
|
84
|
-
* Without this *only* the arrow keys would change the checkbox state
|
|
85
|
-
*/ const handleKeyDown = useCallback((event)=>{
|
|
86
|
-
if (event.key === " ") {
|
|
87
|
-
event.preventDefault();
|
|
88
|
-
event.stopPropagation();
|
|
89
|
-
const firstInput = event.target;
|
|
90
|
-
const next = firstInput.nextElementSibling;
|
|
91
|
-
const prev = firstInput.previousElementSibling;
|
|
92
|
-
const secondInput = next?.tagName === "INPUT" ? next : prev;
|
|
93
|
-
let target = firstInput;
|
|
94
|
-
if (firstInput.checked) {
|
|
95
|
-
target = secondInput;
|
|
96
|
-
} else {
|
|
97
|
-
if (!secondInput.checked) {
|
|
98
|
-
target = firstInput.value === valueTrue ? firstInput : secondInput;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (target) target.click();
|
|
102
|
-
}
|
|
103
|
-
}, [
|
|
104
|
-
valueTrue
|
|
105
|
-
]);
|
|
106
|
-
// collect all the return values that are dependent on the current value
|
|
107
|
-
// of the input
|
|
108
|
-
const valueDependentProps = useMemo(()=>({
|
|
109
|
-
rootProps: {
|
|
110
|
-
htmlFor: isRadio ? !value || value === valueFalse ? idTrue : idFalse : id
|
|
111
|
-
},
|
|
112
|
-
label: label ? label : value,
|
|
113
|
-
value
|
|
114
|
-
}), [
|
|
115
|
-
value,
|
|
116
|
-
valueFalse,
|
|
117
|
-
isRadio,
|
|
118
|
-
id,
|
|
119
|
-
idTrue,
|
|
120
|
-
idFalse,
|
|
121
|
-
label
|
|
122
|
-
]);
|
|
123
|
-
const Inputs = useMemo(()=>isRadio ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
124
|
-
children: [
|
|
125
|
-
/*#__PURE__*/ _jsx(InputInvisible, {
|
|
126
|
-
id: idFalse,
|
|
127
|
-
...inputProps,
|
|
128
|
-
...remainingInputProps,
|
|
129
|
-
onKeyDown: handleKeyDown,
|
|
130
|
-
type: "radio",
|
|
131
|
-
value: valueFalse
|
|
132
|
-
}),
|
|
133
|
-
/*#__PURE__*/ _jsx(InputInvisible, {
|
|
134
|
-
id: idTrue,
|
|
135
|
-
...inputProps,
|
|
136
|
-
...remainingInputProps,
|
|
137
|
-
onKeyDown: handleKeyDown,
|
|
138
|
-
type: "radio",
|
|
139
|
-
value: valueTrue
|
|
140
|
-
})
|
|
141
|
-
]
|
|
142
|
-
}) : /*#__PURE__*/ _jsx(InputInvisible, {
|
|
143
|
-
id: id,
|
|
144
|
-
type: "checkbox",
|
|
145
|
-
...inputProps,
|
|
146
|
-
...remainingInputProps
|
|
147
|
-
}), [
|
|
148
|
-
inputProps,
|
|
149
|
-
remainingInputProps,
|
|
150
|
-
handleKeyDown,
|
|
151
|
-
isRadio,
|
|
152
|
-
idFalse,
|
|
153
|
-
idTrue,
|
|
154
|
-
valueFalse,
|
|
155
|
-
valueTrue,
|
|
156
|
-
id
|
|
157
|
-
]);
|
|
158
|
-
// console.log("useToggle: render", value);
|
|
159
|
-
return {
|
|
160
|
-
...valueDependentProps,
|
|
161
|
-
Inputs
|
|
162
|
-
};
|
|
163
|
-
}
|