@koine/react 2.0.0-beta.14 → 2.0.0-beta.140
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FaviconTags.cjs.d.ts +2 -0
- package/FaviconTags.cjs.default.js +1 -0
- package/FaviconTags.cjs.js +10 -0
- package/FaviconTags.cjs.mjs +2 -0
- package/FaviconTags.d.ts +1 -1
- package/FaviconTags.esm.d.ts +2 -0
- package/FaviconTags.esm.js +5 -0
- package/Meta.cjs.d.ts +2 -0
- package/Meta.cjs.default.js +1 -0
- package/Meta.cjs.js +10 -0
- package/Meta.cjs.mjs +2 -0
- package/{Meta/Meta.d.ts → Meta.d.ts} +1 -1
- package/Meta.esm.d.ts +2 -0
- package/Meta.esm.js +5 -0
- package/NoJs.cjs.d.ts +2 -0
- package/NoJs.cjs.default.js +1 -0
- package/NoJs.cjs.js +10 -0
- package/NoJs.cjs.mjs +2 -0
- package/NoJs.d.ts +3 -0
- package/NoJs.esm.d.ts +2 -0
- package/NoJs.esm.js +5 -0
- package/Polymorphic.cjs.d.ts +1 -0
- package/Polymorphic.cjs.default.js +1 -0
- package/Polymorphic.cjs.js +2 -0
- package/Polymorphic.cjs.mjs +2 -0
- package/Polymorphic.d.ts +39 -0
- package/Polymorphic.esm.d.ts +1 -0
- package/Polymorphic.esm.js +1 -0
- package/calendar/CalendarDaygridCell.cjs.js +9 -0
- package/{Calendar → calendar}/CalendarDaygridCell.d.ts +2 -3
- package/calendar/CalendarDaygridCell.esm.js +7 -0
- package/calendar/CalendarDaygridNav.cjs.js +9 -0
- package/{Calendar → calendar}/CalendarDaygridNav.d.ts +1 -1
- package/calendar/CalendarDaygridNav.esm.js +7 -0
- package/calendar/CalendarDaygridTable.cjs.js +13 -0
- package/{Calendar → calendar}/CalendarDaygridTable.d.ts +2 -2
- package/calendar/CalendarDaygridTable.esm.js +11 -0
- package/calendar/CalendarLegend.cjs.js +7 -0
- package/{Calendar → calendar}/CalendarLegend.d.ts +1 -2
- package/calendar/CalendarLegend.esm.js +5 -0
- package/calendar/calendar-api-google.cjs.js +10 -0
- package/{Calendar → calendar}/calendar-api-google.d.ts +1 -1
- package/calendar/calendar-api-google.esm.js +8 -0
- package/{Calendar → calendar}/types.d.ts +0 -0
- package/calendar/useCalendar.cjs.js +9 -0
- package/{Calendar → calendar}/useCalendar.d.ts +1 -2
- package/calendar/useCalendar.esm.js +7 -0
- package/calendar/useDateLocale.cjs.js +7 -0
- package/{hooks → calendar}/useDateLocale.d.ts +2 -2
- package/calendar/useDateLocale.esm.js +5 -0
- package/calendar/utils.cjs.js +23 -0
- package/calendar/utils.d.ts +11 -0
- package/calendar/utils.esm.js +13 -0
- package/calendar.cjs.d.ts +1 -0
- package/calendar.cjs.default.js +1 -0
- package/calendar.cjs.js +17 -0
- package/calendar.cjs.mjs +2 -0
- package/calendar.d.ts +7 -0
- package/calendar.esm.d.ts +1 -0
- package/calendar.esm.js +6 -0
- package/classed.cjs.d.ts +2 -0
- package/classed.cjs.default.js +1 -0
- package/classed.cjs.js +10 -0
- package/classed.cjs.mjs +2 -0
- package/{helpers/classed.d.ts → classed.d.ts} +1 -1
- package/classed.esm.d.ts +2 -0
- package/classed.esm.js +5 -0
- package/createUseMediaQueryWidth.cjs.d.ts +2 -0
- package/createUseMediaQueryWidth.cjs.default.js +1 -0
- package/createUseMediaQueryWidth.cjs.js +12 -0
- package/createUseMediaQueryWidth.cjs.mjs +2 -0
- package/{helpers/createUseMediaQueryWidth.d.ts → createUseMediaQueryWidth.d.ts} +2 -2
- package/createUseMediaQueryWidth.esm.d.ts +2 -0
- package/createUseMediaQueryWidth.esm.js +7 -0
- package/extendComponent.cjs.d.ts +2 -0
- package/extendComponent.cjs.default.js +1 -0
- package/extendComponent.cjs.js +10 -0
- package/extendComponent.cjs.mjs +2 -0
- package/{helpers/extend-component.d.ts → extendComponent.d.ts} +1 -2
- package/extendComponent.esm.d.ts +2 -0
- package/extendComponent.esm.js +5 -0
- package/forms/antispam.cjs.js +9 -0
- package/{Forms → forms}/antispam.d.ts +8 -8
- package/forms/antispam.esm.js +6 -0
- package/forms.cjs.d.ts +1 -0
- package/forms.cjs.default.js +1 -0
- package/forms.cjs.js +8 -0
- package/forms.cjs.mjs +2 -0
- package/forms.d.ts +1 -0
- package/forms.esm.d.ts +1 -0
- package/forms.esm.js +1 -0
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +57 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +28 -1
- package/index.esm.d.ts +1 -0
- package/index.esm.js +26 -0
- package/mergeRefs.cjs.d.ts +2 -0
- package/mergeRefs.cjs.default.js +1 -0
- package/mergeRefs.cjs.js +8 -0
- package/mergeRefs.cjs.mjs +2 -0
- package/mergeRefs.d.ts +2 -0
- package/mergeRefs.esm.d.ts +2 -0
- package/mergeRefs.esm.js +3 -0
- package/package.json +202 -47
- package/{Img/index.d.ts → types.cjs.d.ts} +0 -0
- package/types.cjs.default.js +1 -0
- package/types.cjs.js +2 -0
- package/types.cjs.mjs +2 -0
- package/types.d.ts +0 -8
- package/{Img/index.mjs → types.esm.d.ts} +0 -0
- package/types.esm.js +1 -0
- package/useAsyncFn.cjs.d.ts +2 -0
- package/useAsyncFn.cjs.default.js +1 -0
- package/useAsyncFn.cjs.js +11 -0
- package/useAsyncFn.cjs.mjs +2 -0
- package/{hooks/useAsyncFn.d.ts → useAsyncFn.d.ts} +3 -2
- package/useAsyncFn.esm.d.ts +2 -0
- package/useAsyncFn.esm.js +6 -0
- package/useFirstMountState.cjs.d.ts +2 -0
- package/useFirstMountState.cjs.default.js +1 -0
- package/useFirstMountState.cjs.js +10 -0
- package/useFirstMountState.cjs.mjs +2 -0
- package/{hooks/useFirstMountState.d.ts → useFirstMountState.d.ts} +1 -1
- package/useFirstMountState.esm.d.ts +2 -0
- package/useFirstMountState.esm.js +5 -0
- package/useFixedOffset.cjs.d.ts +2 -0
- package/useFixedOffset.cjs.default.js +1 -0
- package/useFixedOffset.cjs.js +13 -0
- package/useFixedOffset.cjs.mjs +2 -0
- package/{hooks/useFixedOffset.d.ts → useFixedOffset.d.ts} +1 -2
- package/useFixedOffset.esm.d.ts +2 -0
- package/useFixedOffset.esm.js +8 -0
- package/useFocus.cjs.d.ts +2 -0
- package/useFocus.cjs.default.js +1 -0
- package/useFocus.cjs.js +10 -0
- package/useFocus.cjs.mjs +2 -0
- package/useFocus.d.ts +5 -0
- package/useFocus.esm.d.ts +2 -0
- package/useFocus.esm.js +5 -0
- package/useInterval.cjs.d.ts +2 -0
- package/useInterval.cjs.default.js +1 -0
- package/useInterval.cjs.js +11 -0
- package/useInterval.cjs.mjs +2 -0
- package/{hooks/useInterval.d.ts → useInterval.d.ts} +1 -1
- package/useInterval.esm.d.ts +2 -0
- package/useInterval.esm.js +6 -0
- package/useIsomorphicLayoutEffect.cjs.d.ts +2 -0
- package/useIsomorphicLayoutEffect.cjs.default.js +1 -0
- package/useIsomorphicLayoutEffect.cjs.js +11 -0
- package/useIsomorphicLayoutEffect.cjs.mjs +2 -0
- package/{hooks/useIsomorphicLayoutEffect.d.ts → useIsomorphicLayoutEffect.d.ts} +2 -2
- package/useIsomorphicLayoutEffect.esm.d.ts +2 -0
- package/useIsomorphicLayoutEffect.esm.js +6 -0
- package/useKeyUp.cjs.d.ts +2 -0
- package/useKeyUp.cjs.default.js +1 -0
- package/useKeyUp.cjs.js +11 -0
- package/useKeyUp.cjs.mjs +2 -0
- package/useKeyUp.d.ts +2 -0
- package/useKeyUp.esm.d.ts +2 -0
- package/useKeyUp.esm.js +6 -0
- package/useMeasure.cjs.d.ts +2 -0
- package/useMeasure.cjs.default.js +1 -0
- package/useMeasure.cjs.js +12 -0
- package/useMeasure.cjs.mjs +2 -0
- package/{hooks/useMeasure.d.ts → useMeasure.d.ts} +1 -1
- package/useMeasure.esm.d.ts +2 -0
- package/useMeasure.esm.js +7 -0
- package/useMountedState.cjs.d.ts +2 -0
- package/useMountedState.cjs.default.js +1 -0
- package/useMountedState.cjs.js +10 -0
- package/useMountedState.cjs.mjs +2 -0
- package/{hooks/useMountedState.d.ts → useMountedState.d.ts} +1 -1
- package/useMountedState.esm.d.ts +2 -0
- package/useMountedState.esm.js +5 -0
- package/useNavigateAway.cjs.d.ts +2 -0
- package/useNavigateAway.cjs.default.js +1 -0
- package/useNavigateAway.cjs.js +11 -0
- package/useNavigateAway.cjs.mjs +2 -0
- package/{hooks/useNavigateAway.d.ts → useNavigateAway.d.ts} +1 -1
- package/useNavigateAway.esm.d.ts +2 -0
- package/useNavigateAway.esm.js +6 -0
- package/usePrevious.cjs.d.ts +2 -0
- package/usePrevious.cjs.default.js +1 -0
- package/usePrevious.cjs.js +10 -0
- package/usePrevious.cjs.mjs +2 -0
- package/{hooks/usePrevious.d.ts → usePrevious.d.ts} +1 -1
- package/usePrevious.esm.d.ts +2 -0
- package/usePrevious.esm.js +5 -0
- package/usePreviousRef.cjs.d.ts +2 -0
- package/usePreviousRef.cjs.default.js +1 -0
- package/usePreviousRef.cjs.js +10 -0
- package/usePreviousRef.cjs.mjs +2 -0
- package/usePreviousRef.d.ts +2 -0
- package/usePreviousRef.esm.d.ts +2 -0
- package/usePreviousRef.esm.js +5 -0
- package/{Animations/useReveal.d.ts → useReveal.d.ts} +2 -2
- package/useScrollPosition.cjs.d.ts +2 -0
- package/useScrollPosition.cjs.default.js +1 -0
- package/useScrollPosition.cjs.js +13 -0
- package/useScrollPosition.cjs.mjs +2 -0
- package/{hooks/useScrollPosition.d.ts → useScrollPosition.d.ts} +1 -2
- package/useScrollPosition.esm.d.ts +2 -0
- package/useScrollPosition.esm.js +8 -0
- package/useScrollThreshold.cjs.d.ts +2 -0
- package/useScrollThreshold.cjs.default.js +1 -0
- package/useScrollThreshold.cjs.js +12 -0
- package/useScrollThreshold.cjs.mjs +2 -0
- package/useScrollThreshold.d.ts +2 -0
- package/useScrollThreshold.esm.d.ts +2 -0
- package/useScrollThreshold.esm.js +7 -0
- package/useScrollTo.cjs.d.ts +2 -0
- package/useScrollTo.cjs.default.js +1 -0
- package/useScrollTo.cjs.js +10 -0
- package/useScrollTo.cjs.mjs +2 -0
- package/useScrollTo.d.ts +2 -0
- package/useScrollTo.esm.d.ts +2 -0
- package/useScrollTo.esm.js +5 -0
- package/useSmoothScroll.cjs.d.ts +2 -0
- package/useSmoothScroll.cjs.default.js +1 -0
- package/useSmoothScroll.cjs.js +13 -0
- package/useSmoothScroll.cjs.mjs +2 -0
- package/useSmoothScroll.d.ts +8 -0
- package/useSmoothScroll.esm.d.ts +2 -0
- package/useSmoothScroll.esm.js +8 -0
- package/useSpinDelay.cjs.d.ts +2 -0
- package/useSpinDelay.cjs.default.js +1 -0
- package/useSpinDelay.cjs.js +10 -0
- package/useSpinDelay.cjs.mjs +2 -0
- package/{hooks/useSpinDelay.d.ts → useSpinDelay.d.ts} +1 -1
- package/useSpinDelay.esm.d.ts +2 -0
- package/useSpinDelay.esm.js +5 -0
- package/useTraceUpdate.cjs.d.ts +2 -0
- package/useTraceUpdate.cjs.default.js +1 -0
- package/useTraceUpdate.cjs.js +10 -0
- package/useTraceUpdate.cjs.mjs +2 -0
- package/{hooks/useTraceUpdate.d.ts → useTraceUpdate.d.ts} +1 -1
- package/useTraceUpdate.esm.d.ts +2 -0
- package/useTraceUpdate.esm.js +5 -0
- package/useUpdateEffect.cjs.d.ts +2 -0
- package/useUpdateEffect.cjs.default.js +1 -0
- package/useUpdateEffect.cjs.js +11 -0
- package/useUpdateEffect.cjs.mjs +2 -0
- package/{hooks/useUpdateEffect.d.ts → useUpdateEffect.d.ts} +1 -1
- package/useUpdateEffect.esm.d.ts +2 -0
- package/useUpdateEffect.esm.js +6 -0
- package/useWindowSize.cjs.d.ts +2 -0
- package/useWindowSize.cjs.default.js +1 -0
- package/useWindowSize.cjs.js +11 -0
- package/useWindowSize.cjs.mjs +2 -0
- package/useWindowSize.d.ts +12 -0
- package/useWindowSize.esm.d.ts +2 -0
- package/useWindowSize.esm.js +6 -0
- package/Alert/Alert.d.ts +0 -5
- package/Alert/Alert.mjs +0 -22
- package/Alert/Alert.stories.mjs +0 -18
- package/Alert/index.d.ts +0 -1
- package/Alert/index.mjs +0 -1
- package/Animations/Reveal.d.ts +0 -4
- package/Animations/Reveal.mjs +0 -43
- package/Animations/Underline.d.ts +0 -1
- package/Animations/Underline.mjs +0 -15
- package/Animations/index.d.ts +0 -3
- package/Animations/index.mjs +0 -3
- package/Animations/useReveal.mjs +0 -73
- package/Autocomplete/AutocompleteDownshift.d.ts +0 -1
- package/Autocomplete/AutocompleteDownshift.mjs +0 -157
- package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +0 -1
- package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
- package/Autocomplete/AutocompleteMui.d.ts +0 -47
- package/Autocomplete/AutocompleteMui.mjs +0 -219
- package/Autocomplete/AutocompleteReach.d.ts +0 -1
- package/Autocomplete/AutocompleteReach.mjs +0 -111
- package/Autocomplete/components.d.ts +0 -17
- package/Autocomplete/components.mjs +0 -87
- package/Autocomplete/helpers.d.ts +0 -3
- package/Autocomplete/helpers.mjs +0 -35
- package/Autocomplete/index.d.ts +0 -2
- package/Autocomplete/index.mjs +0 -4
- package/Bg/BgColor.d.ts +0 -31
- package/Bg/BgColor.mjs +0 -42
- package/Bg/BgPhoto.d.ts +0 -13
- package/Bg/BgPhoto.mjs +0 -71
- package/Bg/BgSvg.d.ts +0 -7
- package/Bg/BgSvg.mjs +0 -22
- package/Bg/index.d.ts +0 -3
- package/Bg/index.mjs +0 -3
- package/Breadcrumbs/Breadcrumbs.d.ts +0 -13
- package/Breadcrumbs/Breadcrumbs.mjs +0 -91
- package/Breadcrumbs/index.d.ts +0 -1
- package/Breadcrumbs/index.mjs +0 -1
- package/Buttons/Button.d.ts +0 -18
- package/Buttons/Button.mjs +0 -78
- package/Buttons/ButtonComposite.d.ts +0 -23
- package/Buttons/ButtonComposite.mjs +0 -105
- package/Buttons/ButtonFab.d.ts +0 -5
- package/Buttons/ButtonFab.mjs +0 -8
- package/Buttons/ButtonLink.d.ts +0 -8
- package/Buttons/ButtonLink.mjs +0 -18
- package/Buttons/IconButton.d.ts +0 -9
- package/Buttons/IconButton.mjs +0 -19
- package/Buttons/index.d.ts +0 -5
- 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.d.ts +0 -6
- package/Calendar/index.mjs +0 -6
- package/Calendar/types.mjs +0 -1
- package/Calendar/useCalendar.mjs +0 -225
- package/Calendar/utils.d.ts +0 -11
- package/Calendar/utils.mjs +0 -209
- package/Carousel/Carousel.d.ts +0 -1
- package/Carousel/Carousel.mjs +0 -377
- package/Carousel/CarouselCss.d.ts +0 -35
- package/Carousel/CarouselCss.mjs +0 -44
- package/Carousel/index.d.ts +0 -1
- package/Carousel/index.mjs +0 -1
- package/Collapsable/Collapsable.d.ts +0 -1
- package/Collapsable/Collapsable.mjs +0 -1
- package/Collapsable/CollapsableReach.d.ts +0 -6
- package/Collapsable/CollapsableReach.mjs +0 -250
- package/Collapsable/index.d.ts +0 -1
- package/Collapsable/index.mjs +0 -1
- package/Debug/Debug.d.ts +0 -4
- package/Debug/Debug.mjs +0 -23
- package/Debug/index.d.ts +0 -1
- package/Debug/index.mjs +0 -1
- package/Details/Details.d.ts +0 -404
- package/Details/Details.mjs +0 -90
- package/Details/Details.stories.mjs +0 -21
- package/Details/index.d.ts +0 -1
- package/Details/index.mjs +0 -1
- package/Dialog/DialogMui.d.ts +0 -167
- package/Dialog/DialogMui.mjs +0 -105
- package/Dialog/DialogMui.stories.mjs +0 -20
- package/Dialog/css/bare.d.ts +0 -172
- package/Dialog/css/bare.mjs +0 -19
- package/Dialog/css/index.stories.mjs +0 -75
- package/Dialog/index.d.ts +0 -2
- package/Dialog/index.mjs +0 -1
- package/Dialog/m/bare.d.ts +0 -4
- package/Dialog/m/bare.mjs +0 -115
- package/Dialog/m/basic.d.ts +0 -4
- package/Dialog/m/basic.mjs +0 -31
- package/Dialog/m/index.d.ts +0 -3
- package/Dialog/m/index.mjs +0 -4
- package/Dialog/sc/bare.d.ts +0 -71
- package/Dialog/sc/bare.mjs +0 -54
- package/Dialog/sc/framer.d.ts +0 -25
- package/Dialog/sc/framer.mjs +0 -16
- package/Dialog/sc/framerMaterial.d.ts +0 -24
- package/Dialog/sc/framerMaterial.mjs +0 -16
- package/Dialog/sc/index.stories.mjs +0 -48
- package/Dialog/sc/material.d.ts +0 -61
- package/Dialog/sc/material.mjs +0 -41
- package/Dialog/tw/bare.d.ts +0 -223
- package/Dialog/tw/bare.mjs +0 -29
- package/Dialog/tw/elegant.d.ts +0 -271
- package/Dialog/tw/elegant.mjs +0 -18
- package/Dialog/tw/framer.d.ts +0 -109
- package/Dialog/tw/framer.mjs +0 -16
- package/Dialog/tw/framerMaterial.d.ts +0 -164
- package/Dialog/tw/framerMaterial.mjs +0 -16
- package/Dialog/tw/index.stories.mjs +0 -83
- package/Dialog/tw/material.d.ts +0 -271
- package/Dialog/tw/material.mjs +0 -18
- package/Editor/Editor--tiptap.d.ts +0 -9
- package/Editor/Editor--tiptap.mjs +0 -53
- package/Editor/components.d.ts +0 -5
- package/Editor/components.mjs +0 -28
- package/Editor/index.d.ts +0 -1
- package/Editor/index.mjs +0 -1
- package/FaviconTags.mjs +0 -64
- package/Form/Form.d.ts +0 -138
- package/Form/Form.mjs +0 -95
- package/Form/index.d.ts +0 -1
- package/Form/index.mjs +0 -1
- package/Form/sc/bare.d.ts +0 -58
- package/Form/sc/bare.mjs +0 -29
- package/Forms/Checkbox/Checkbox.d.ts +0 -11
- package/Forms/Checkbox/Checkbox.mjs +0 -36
- package/Forms/Checkbox/index.d.ts +0 -1
- package/Forms/Checkbox/index.mjs +0 -1
- package/Forms/Feedback/Feedback.d.ts +0 -5
- package/Forms/Feedback/Feedback.mjs +0 -14
- package/Forms/Feedback/index.d.ts +0 -1
- package/Forms/Feedback/index.mjs +0 -1
- package/Forms/Field/Field.d.ts +0 -36
- package/Forms/Field/Field.mjs +0 -50
- package/Forms/Field/FieldControl.d.ts +0 -26
- package/Forms/Field/FieldControl.mjs +0 -67
- package/Forms/Field/FieldHint.d.ts +0 -1
- package/Forms/Field/FieldHint.mjs +0 -6
- package/Forms/Field/index.d.ts +0 -2
- package/Forms/Field/index.mjs +0 -2
- package/Forms/Input/Input.d.ts +0 -9
- package/Forms/Input/Input.mjs +0 -36
- package/Forms/Input/index.d.ts +0 -1
- package/Forms/Input/index.mjs +0 -1
- package/Forms/InputGroup/InputGroup.d.ts +0 -13
- package/Forms/InputGroup/InputGroup.mjs +0 -57
- package/Forms/InputGroup/index.d.ts +0 -1
- package/Forms/InputGroup/index.mjs +0 -1
- package/Forms/Label/Label.d.ts +0 -3
- package/Forms/Label/Label.mjs +0 -24
- package/Forms/Label/index.d.ts +0 -1
- package/Forms/Label/index.mjs +0 -1
- package/Forms/Password/Password.d.ts +0 -5
- package/Forms/Password/Password.mjs +0 -53
- package/Forms/Password/index.d.ts +0 -1
- package/Forms/Password/index.mjs +0 -1
- package/Forms/Radio/Radio.d.ts +0 -12
- package/Forms/Radio/Radio.mjs +0 -57
- package/Forms/Radio/index.d.ts +0 -1
- package/Forms/Radio/index.mjs +0 -1
- package/Forms/Switch/Switch.d.ts +0 -9
- package/Forms/Switch/Switch.mjs +0 -60
- package/Forms/Switch/index.d.ts +0 -1
- package/Forms/Switch/index.mjs +0 -1
- package/Forms/Textarea/Textarea.d.ts +0 -5
- package/Forms/Textarea/Textarea.mjs +0 -26
- package/Forms/Textarea/TextareaRich.d.ts +0 -6
- package/Forms/Textarea/TextareaRich.mjs +0 -48
- package/Forms/Textarea/index.d.ts +0 -2
- package/Forms/Textarea/index.mjs +0 -2
- package/Forms/Toggle/Toggle-tailwind.d.ts +0 -0
- package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
- package/Forms/Toggle/Toggle.d.ts +0 -19
- package/Forms/Toggle/Toggle.mjs +0 -123
- package/Forms/Toggle/index.d.ts +0 -1
- package/Forms/Toggle/index.mjs +0 -1
- package/Forms/Toggle/useToggle-tailwind.d.ts +0 -0
- package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
- package/Forms/Toggle/useToggle.d.ts +0 -46
- package/Forms/Toggle/useToggle.mjs +0 -163
- package/Forms/antispam.mjs +0 -58
- package/Forms/helpers.d.ts +0 -26
- package/Forms/helpers.mjs +0 -52
- package/Forms/index.d.ts +0 -15
- package/Forms/index.mjs +0 -16
- package/Forms/styles.d.ts +0 -15
- package/Forms/styles.mjs +0 -61
- package/Gauge/Gauge.d.ts +0 -5
- package/Gauge/Gauge.mjs +0 -101
- package/Grid/Grid.d.ts +0 -41
- package/Grid/Grid.mjs +0 -75
- package/Grid/index.d.ts +0 -1
- package/Grid/index.mjs +0 -1
- package/Hamburger/Hamburger.d.ts +0 -6
- package/Hamburger/Hamburger.mjs +0 -79
- package/Hamburger/index.d.ts +0 -1
- package/Hamburger/index.mjs +0 -1
- package/Header/index.d.ts +0 -1
- package/Header/index.mjs +0 -1
- package/Header/useHeader.d.ts +0 -24
- package/Header/useHeader.mjs +0 -36
- package/Hidden/Hidden.d.ts +0 -6
- package/Hidden/Hidden.mjs +0 -10
- package/Hidden/index.d.ts +0 -1
- package/Hidden/index.mjs +0 -1
- package/Img/sc/bare.d.ts +0 -2
- package/Img/sc/bare.mjs +0 -36
- package/Img/types.d.ts +0 -9
- package/Img/types.mjs +0 -1
- package/Link/Link.d.ts +0 -3
- package/Link/Link.mjs +0 -2
- package/Link/LinkBlank.d.ts +0 -5
- package/Link/LinkBlank.mjs +0 -32
- package/Link/index.d.ts +0 -2
- package/Link/index.mjs +0 -2
- package/Menu/Menu.d.ts +0 -1
- package/Menu/Menu.mjs +0 -11
- package/Menu/MenuMui.d.ts +0 -0
- package/Menu/MenuMui.mjs +0 -164
- package/Menu/index.d.ts +0 -1
- package/Menu/index.mjs +0 -1
- package/MenuItem/MenuItem.d.ts +0 -1
- package/MenuItem/MenuItem.mjs +0 -20
- package/MenuItem/MenuItemMui.d.ts +0 -0
- package/MenuItem/MenuItemMui.mjs +0 -31
- package/MenuItem/index.d.ts +0 -1
- package/MenuItem/index.mjs +0 -1
- package/MenuItem/useMenuItem.d.ts +0 -9
- package/MenuItem/useMenuItem.mjs +0 -78
- package/Meta/Meta.mjs +0 -8
- package/Meta/index.d.ts +0 -2
- package/Meta/index.mjs +0 -2
- package/NoJs/NoJs.d.ts +0 -3
- package/NoJs/NoJs.mjs +0 -10
- package/NoJs/index.d.ts +0 -2
- package/NoJs/index.mjs +0 -2
- package/Pagination/PaginationNav.d.ts +0 -22
- package/Pagination/PaginationNav.mjs +0 -122
- package/Pagination/PaginationResults.d.ts +0 -3
- package/Pagination/PaginationResults.mjs +0 -34
- package/Pagination/index.d.ts +0 -2
- package/Pagination/index.mjs +0 -2
- package/Pill/Pill.d.ts +0 -5
- package/Pill/Pill.mjs +0 -37
- package/Pill/index.d.ts +0 -1
- package/Pill/index.mjs +0 -1
- package/Progress/ProgressCircular.d.ts +0 -19
- package/Progress/ProgressCircular.mjs +0 -53
- package/Progress/ProgressLinear.d.ts +0 -22
- package/Progress/ProgressLinear.mjs +0 -44
- package/Progress/ProgressOverlay.d.ts +0 -4
- package/Progress/ProgressOverlay.mjs +0 -64
- package/Progress/index.d.ts +0 -3
- package/Progress/index.mjs +0 -3
- package/Rating/Rating.d.ts +0 -35
- package/Rating/Rating.mjs +0 -154
- package/Rating/index.d.ts +0 -11
- package/Rating/index.mjs +0 -62
- package/Select/SelectDownshift.d.ts +0 -5
- package/Select/SelectDownshift.mjs +0 -37
- package/Select/components.d.ts +0 -6
- package/Select/components.mjs +0 -25
- package/Select/index.d.ts +0 -2
- package/Select/index.mjs +0 -2
- package/Sidebar/Sidebar.d.ts +0 -3
- package/Sidebar/Sidebar.mjs +0 -63
- package/Sidebar/index.d.ts +0 -1
- package/Sidebar/index.mjs +0 -1
- package/Spacing/Spacing.d.ts +0 -30
- package/Spacing/Spacing.mjs +0 -55
- package/Spacing/index.d.ts +0 -1
- package/Spacing/index.mjs +0 -1
- package/Sticky/Sticky.d.ts +0 -2
- package/Sticky/Sticky.mjs +0 -218
- package/Sticky/StickyCss.d.ts +0 -5
- package/Sticky/StickyCss.mjs +0 -10
- package/Sticky/index.d.ts +0 -1
- package/Sticky/index.mjs +0 -1
- package/Tabs/TabsMui.d.ts +0 -85
- package/Tabs/TabsMui.mjs +0 -61
- package/Tabs/TabsMui.stories.mjs +0 -20
- package/Tabs/index.d.ts +0 -1
- package/Tabs/index.mjs +0 -1
- package/Tabs/sc/bare.d.ts +0 -5
- package/Tabs/sc/bare.mjs +0 -85
- package/Tabs/sc/index.stories.mjs +0 -0
- package/Tabs/tw/bare.d.ts +0 -86
- package/Tabs/tw/bare.mjs +0 -15
- package/Tabs/tw/index.stories.mjs +0 -25
- package/Tabs/tw/material.d.ts +0 -119
- package/Tabs/tw/material.mjs +0 -14
- package/Tabs/useTabs.d.ts +0 -43
- package/Tabs/useTabs.mjs +0 -46
- package/Typography/CopyPasteVisible.d.ts +0 -1
- package/Typography/CopyPasteVisible.mjs +0 -6
- package/Typography/Native.d.ts +0 -10
- package/Typography/Native.mjs +0 -47
- package/Typography/ReadMore.d.ts +0 -12
- package/Typography/ReadMore.mjs +0 -114
- package/Typography/TextLoop.d.ts +0 -16
- package/Typography/TextLoop.mjs +0 -90
- package/Typography/TypeStairs.d.ts +0 -6
- package/Typography/TypeStairs.mjs +0 -61
- package/Typography/index.d.ts +0 -5
- package/Typography/index.mjs +0 -5
- package/css/index.d.ts +0 -2
- 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.d.ts +0 -4
- package/helpers/index.mjs +0 -4
- package/helpers/mergeRefs.d.ts +0 -3
- package/helpers/mergeRefs.mjs +0 -12
- package/hooks/index.d.ts +0 -20
- package/hooks/index.mjs +0 -21
- package/hooks/types.d.ts +0 -8
- 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.d.ts +0 -6
- package/hooks/useFocus.mjs +0 -14
- package/hooks/useInterval.mjs +0 -29
- package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
- package/hooks/useKeyUp.d.ts +0 -2
- 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/usePreviousRef.d.ts +0 -2
- package/hooks/usePreviousRef.mjs +0 -9
- package/hooks/useScrollPosition.mjs +0 -70
- package/hooks/useScrollThreshold.d.ts +0 -2
- package/hooks/useScrollThreshold.mjs +0 -33
- package/hooks/useScrollTo.d.ts +0 -2
- package/hooks/useScrollTo.mjs +0 -20
- package/hooks/useSmoothScroll.d.ts +0 -8
- 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.d.ts +0 -12
- package/hooks/useWindowSize.mjs +0 -32
- package/index.mjs +0 -4
- package/m/MotionProvider.d.ts +0 -38
- package/m/MotionProvider.mjs +0 -40
- package/m/index.d.ts +0 -6
- package/m/index.mjs +0 -5
- package/m/lite.d.ts +0 -2
- package/m/lite.mjs +0 -2
- package/m/max.d.ts +0 -2
- package/m/max.mjs +0 -2
- package/sc/index.d.ts +0 -30
- package/sc/index.mjs +0 -31
- package/scm/index.d.ts +0 -29
- package/scm/index.mjs +0 -31
- package/shared/index.d.ts +0 -8
- package/shared/index.mjs +0 -43
- package/styles/Body.d.ts +0 -10
- package/styles/Body.mjs +0 -16
- package/styles/Global.d.ts +0 -15
- package/styles/Global.mjs +0 -49
- package/styles/index.d.ts +0 -7
- package/styles/index.mjs +0 -7
- package/styles/media.d.ts +0 -67
- package/styles/media.mjs +0 -151
- package/styles/spacing.d.ts +0 -13
- package/styles/spacing.mjs +0 -46
- package/styles/styled.d.ts +0 -12
- package/styles/styled.mjs +0 -26
- package/styles/theme--vanilla.d.ts +0 -17
- package/styles/theme--vanilla.mjs +0 -65
- package/styles/theme.d.ts +0 -82
- package/styles/theme.mjs +0 -38
- package/tw/index.d.ts +0 -2
- package/tw/index.mjs +0 -30
- package/twm/index.d.ts +0 -2
- package/twm/index.mjs +0 -30
- package/types.mjs +0 -1
- package/typings.d.ts +0 -99
|
@@ -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,46 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { Option } from "../../types";
|
|
3
|
-
import { FormControl } from "../helpers";
|
|
4
|
-
export type UseToggleProps = Omit<FormControl, "value"> & {
|
|
5
|
-
value?: boolean;
|
|
6
|
-
valueTrue?: string;
|
|
7
|
-
valueFalse?: string;
|
|
8
|
-
options?: Option[];
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* This hook is meant to power Checkboxes, Switches and checkbox-like Radios
|
|
12
|
-
* components, it works in fact in two modes:
|
|
13
|
-
*
|
|
14
|
-
* 1: behaviour as standard checkbox
|
|
15
|
-
* yup validation would simply look like:
|
|
16
|
-
*
|
|
17
|
-
* ```ts
|
|
18
|
-
* privacy: boolean().required(),
|
|
19
|
-
* // add `.nullable()` if you do not provide a boolean `defaultValue`
|
|
20
|
-
* ```
|
|
21
|
-
*
|
|
22
|
-
* 2: beahviour as two radio for checkbox with custom true/false values as
|
|
23
|
-
* strings yup validation would look like:
|
|
24
|
-
*
|
|
25
|
-
* ```ts
|
|
26
|
-
* newsletter: string().oneOf(["yes", "no"]).required(),
|
|
27
|
-
* // add `.nullable()` if you do not provide a string `defaultValue`
|
|
28
|
-
*
|
|
29
|
-
* // to do not make it required and avoid triggering an error when the input is
|
|
30
|
-
* // untouched you need to set the default value of the input in the form
|
|
31
|
-
* // initialization's `defaultValues` as such:
|
|
32
|
-
*
|
|
33
|
-
* useForm({ defaultValues: { newsletter: "no" }})
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
* To enable this mode either pass the props `valueTrue` and `valueFalse` or
|
|
37
|
-
* an array of options with the shape of `Option`
|
|
38
|
-
*/
|
|
39
|
-
export declare function useToggle(props: UseToggleProps, ref: React.ForwardedRef<HTMLInputElement>): {
|
|
40
|
-
Inputs: import("react/jsx-runtime").JSX.Element;
|
|
41
|
-
rootProps: {
|
|
42
|
-
htmlFor: string | undefined;
|
|
43
|
-
};
|
|
44
|
-
label: any;
|
|
45
|
-
value: any;
|
|
46
|
-
};
|
|
@@ -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
|
-
}
|
package/Forms/antispam.mjs
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { object } from "@kuus/yup";
|
|
2
|
-
import decode from "@koine/utils/decode";
|
|
3
|
-
import encode from "@koine/utils/encode";
|
|
4
|
-
import isUndefined from "@koine/utils/isUndefined";
|
|
5
|
-
/**
|
|
6
|
-
* Encode form
|
|
7
|
-
*
|
|
8
|
-
* Takes a record of yup validations and outputs a `yup` schema with encoded
|
|
9
|
-
* names (antispam technique) and a record of the encoded/decoded input `name`s.
|
|
10
|
-
*
|
|
11
|
-
* We skip the names prefixed wth an underscore which are considered programmatic
|
|
12
|
-
* form data not created by user input.
|
|
13
|
-
*
|
|
14
|
-
* FIXME: types https://github.com/jquense/yup/issues/1700
|
|
15
|
-
*/ export function encodeForm(validationRules) {
|
|
16
|
-
const encoded = {};
|
|
17
|
-
const encodedNames = {};
|
|
18
|
-
for(const name in validationRules){
|
|
19
|
-
if (!name.startsWith("_")) {
|
|
20
|
-
const encodedName = encode(name);
|
|
21
|
-
encoded[encodedName] = validationRules[name];
|
|
22
|
-
encodedNames[name] = encodedName;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// we need `.required()` to correctly infer the type @see
|
|
26
|
-
// https://github.com/jquense/yup/issues/946
|
|
27
|
-
const encodedSchema = object(encoded).required();
|
|
28
|
-
return {
|
|
29
|
-
encodedSchema,
|
|
30
|
-
encodedNames
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Decode form data
|
|
35
|
-
*
|
|
36
|
-
* This function is meant to be used inside an api endpoint to gather an encoded
|
|
37
|
-
* form submit data and transform it to the decoded desired json data.
|
|
38
|
-
*
|
|
39
|
-
* Here too we skip encoding/decoding process for names prefixed wth an underscore
|
|
40
|
-
* which are considered programmatic form data not created by user input.
|
|
41
|
-
*/ export function decodeForm(formData) {
|
|
42
|
-
const json = {};
|
|
43
|
-
for(const encodedName in formData){
|
|
44
|
-
const decodedName = decode(encodedName);
|
|
45
|
-
// always add underscore prefixed names as they are treated as internal
|
|
46
|
-
// private inputs outside of the honeypot system, normalise them here removing
|
|
47
|
-
// the underscore prefix
|
|
48
|
-
if (encodedName.startsWith("_")) {
|
|
49
|
-
// @ts-expect-error nevermind
|
|
50
|
-
json[encodedName.substring(1)] = formData[encodedName];
|
|
51
|
-
} else if (!isUndefined(formData[encodedName]) && formData[decodedName] === "") {
|
|
52
|
-
// @ts-expect-error nevermind
|
|
53
|
-
json[decodedName] = formData[encodedName];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// console.log(formData, decoded, json);
|
|
57
|
-
return json;
|
|
58
|
-
}
|
package/Forms/helpers.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { Control, UseFormRegister, UseFormSetValue } from "react-hook-form";
|
|
3
|
-
import type { Option } from "../types";
|
|
4
|
-
type FormControlNativeType = "input" | "select" | "textarea";
|
|
5
|
-
type FormControlFieldValues = Record<string, any>;
|
|
6
|
-
export type FormControlNative<T extends FormControlNativeType = "input"> = Omit<React.ComponentPropsWithRef<T>, "name">;
|
|
7
|
-
export type FormControlProps<T extends FormControlFieldValues = any> = {
|
|
8
|
-
label?: React.ReactNode;
|
|
9
|
-
name: string;
|
|
10
|
-
control?: Control<T>;
|
|
11
|
-
register?: UseFormRegister<T>;
|
|
12
|
-
setValue?: UseFormSetValue<T>;
|
|
13
|
-
};
|
|
14
|
-
export type FormControl<TControlType extends FormControlNativeType = "input", TFieldValues extends FormControlFieldValues = any> = FormControlNative<TControlType> & FormControlProps<TFieldValues>;
|
|
15
|
-
export declare const normaliseOptions: (options?: (string | Option)[]) => Option[];
|
|
16
|
-
export declare function defaultOptionsFilterFn(options: Option[], inputValue?: string): Option[];
|
|
17
|
-
/**
|
|
18
|
-
* We are faking the native input `onChange` event
|
|
19
|
-
*/
|
|
20
|
-
export declare function triggerOnChange<T extends HTMLElement = HTMLInputElement>(onChange?: React.ChangeEventHandler<T>, name?: string, value?: any): void;
|
|
21
|
-
/**
|
|
22
|
-
* @see https://hustle.bizongo.in/simulate-react-on-change-on-controlled-components-baa336920e04
|
|
23
|
-
* @deprecated
|
|
24
|
-
*/
|
|
25
|
-
export declare function triggerChange(input: HTMLInputElement, value?: string): void;
|
|
26
|
-
export {};
|
package/Forms/helpers.mjs
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import isString from "@koine/utils/isString";
|
|
2
|
-
import matchSorter from "@koine/utils/matchSorter";
|
|
3
|
-
export const normaliseOptions = (options = [])=>{
|
|
4
|
-
return options.map((option)=>{
|
|
5
|
-
return isString(option) ? {
|
|
6
|
-
label: option,
|
|
7
|
-
value: option
|
|
8
|
-
} : option;
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
export function defaultOptionsFilterFn(options, inputValue) {
|
|
12
|
-
if (!inputValue) {
|
|
13
|
-
return options;
|
|
14
|
-
}
|
|
15
|
-
return matchSorter(options, inputValue, {
|
|
16
|
-
keys: [
|
|
17
|
-
"value",
|
|
18
|
-
"label"
|
|
19
|
-
]
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* We are faking the native input `onChange` event
|
|
24
|
-
*/ export function triggerOnChange(onChange, name, value) {
|
|
25
|
-
// @ts-expect-error nevermind
|
|
26
|
-
if (onChange) onChange({
|
|
27
|
-
target: {
|
|
28
|
-
name,
|
|
29
|
-
value
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* @see https://hustle.bizongo.in/simulate-react-on-change-on-controlled-components-baa336920e04
|
|
35
|
-
* @deprecated
|
|
36
|
-
*/ export function triggerChange(input, value) {
|
|
37
|
-
const obj = window.Object;
|
|
38
|
-
if (!obj) {
|
|
39
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
40
|
-
console.warn("[@koine/react:Forms:triggerChange] window.Object does not exists, bailing.");
|
|
41
|
-
}
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
// @ts-expect-error nevermind
|
|
45
|
-
const nativeInputValueSetter = obj.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;
|
|
46
|
-
// @ts-expect-error nevermind
|
|
47
|
-
nativeInputValueSetter.call(input, value);
|
|
48
|
-
const inputEvent = new Event("input", {
|
|
49
|
-
bubbles: true
|
|
50
|
-
});
|
|
51
|
-
input.dispatchEvent(inputEvent);
|
|
52
|
-
}
|
package/Forms/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export * from "./antispam";
|
|
2
|
-
export * from "./Checkbox";
|
|
3
|
-
export * from "./Input";
|
|
4
|
-
export * from "./InputGroup";
|
|
5
|
-
export * from "./Feedback";
|
|
6
|
-
export * from "./Field";
|
|
7
|
-
export * from "./InputGroup";
|
|
8
|
-
export * from "./Label";
|
|
9
|
-
export * from "./Password";
|
|
10
|
-
export * from "./Radio";
|
|
11
|
-
export * from "./Switch";
|
|
12
|
-
export * from "./Textarea";
|
|
13
|
-
export * from "./Toggle";
|
|
14
|
-
export * from "./helpers";
|
|
15
|
-
export * from "./styles";
|
package/Forms/index.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export * from "./antispam";
|
|
2
|
-
export * from "./Checkbox";
|
|
3
|
-
export * from "./Input";
|
|
4
|
-
export * from "./InputGroup";
|
|
5
|
-
export * from "./Feedback";
|
|
6
|
-
export * from "./Field";
|
|
7
|
-
export * from "./InputGroup";
|
|
8
|
-
export * from "./Label";
|
|
9
|
-
export * from "./Password";
|
|
10
|
-
export * from "./Radio";
|
|
11
|
-
// export * from "./Select";
|
|
12
|
-
export * from "./Switch";
|
|
13
|
-
export * from "./Textarea";
|
|
14
|
-
export * from "./Toggle";
|
|
15
|
-
export * from "./helpers";
|
|
16
|
-
export * from "./styles";
|
package/Forms/styles.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare const InputInvisible: any;
|
|
2
|
-
export declare const InputHoneypot: any;
|
|
3
|
-
export declare const InputProgress: any;
|
|
4
|
-
/**
|
|
5
|
-
* Remove the default light blue background on autofilled inputs. To be used as
|
|
6
|
-
* a function that outputs a CSS string.
|
|
7
|
-
*
|
|
8
|
-
* @see https://stackoverflow.com/a/62624824/1938970
|
|
9
|
-
*/
|
|
10
|
-
export declare const inputResetAutofill = "\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-background-clip: text;\n }\n";
|
|
11
|
-
export declare const inputBorder = "\n border: 1px solid var(--forms-border-color);\n";
|
|
12
|
-
export declare const inputPadding = "\n padding: var(--forms-gutter-y) var(--forms-gutter-x);\n";
|
|
13
|
-
export declare const inputReset: string;
|
|
14
|
-
export declare const inputBase: string;
|
|
15
|
-
export declare const inputFocus: string;
|
package/Forms/styles.mjs
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import styled from "styled-components";
|
|
3
|
-
import { ProgressLinear } from "../Progress/ProgressLinear";
|
|
4
|
-
import { invisible, stateFocus } from "../styles/styled";
|
|
5
|
-
export const InputInvisible = styled.input`
|
|
6
|
-
${invisible}
|
|
7
|
-
`;
|
|
8
|
-
export const InputHoneypot = styled(InputInvisible).attrs({
|
|
9
|
-
type: "text",
|
|
10
|
-
autoComplete: "new-password",
|
|
11
|
-
tabIndex: -1
|
|
12
|
-
})``;
|
|
13
|
-
export const InputProgress = styled((p)=>/*#__PURE__*/ _jsx(ProgressLinear, {
|
|
14
|
-
fg: "var(--accent300)",
|
|
15
|
-
bg: "var(--accent400)",
|
|
16
|
-
...p
|
|
17
|
-
}))`
|
|
18
|
-
position: absolute;
|
|
19
|
-
bottom: 0;
|
|
20
|
-
left: 0;
|
|
21
|
-
width: 100%;
|
|
22
|
-
`;
|
|
23
|
-
/**
|
|
24
|
-
* Remove the default light blue background on autofilled inputs. To be used as
|
|
25
|
-
* a function that outputs a CSS string.
|
|
26
|
-
*
|
|
27
|
-
* @see https://stackoverflow.com/a/62624824/1938970
|
|
28
|
-
*/ export const inputResetAutofill = `
|
|
29
|
-
&:-webkit-autofill,
|
|
30
|
-
&:-webkit-autofill:hover,
|
|
31
|
-
&:-webkit-autofill:focus,
|
|
32
|
-
&:-webkit-autofill:active {
|
|
33
|
-
-webkit-background-clip: text;
|
|
34
|
-
}
|
|
35
|
-
`;
|
|
36
|
-
/* FIXME: find a nice way to override this styling from implementation */ // border-bottom: 1px solid var(--forms-border-color);
|
|
37
|
-
// border: 0;
|
|
38
|
-
export const inputBorder = `
|
|
39
|
-
border: 1px solid var(--forms-border-color);
|
|
40
|
-
`;
|
|
41
|
-
export const inputPadding = `
|
|
42
|
-
padding: var(--forms-gutter-y) var(--forms-gutter-x);
|
|
43
|
-
`;
|
|
44
|
-
export const inputReset = `
|
|
45
|
-
width: 100%;
|
|
46
|
-
min-height: 44px;
|
|
47
|
-
${inputBorder}
|
|
48
|
-
${inputPadding}
|
|
49
|
-
`;
|
|
50
|
-
export const inputBase = `
|
|
51
|
-
${inputReset}
|
|
52
|
-
${inputResetAutofill}
|
|
53
|
-
background: transparent;
|
|
54
|
-
`;
|
|
55
|
-
export const inputFocus = `
|
|
56
|
-
&:focus {
|
|
57
|
-
outline: 0px;
|
|
58
|
-
appearance: none;
|
|
59
|
-
${stateFocus}
|
|
60
|
-
}
|
|
61
|
-
`;
|