@koine/react 1.0.10 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Alert/Alert.d.ts +5 -0
- package/Alert/Alert.js +10 -0
- package/Alert/index.d.ts +1 -0
- package/Alert/index.js +1 -0
- package/Alert/package.json +6 -0
- package/Animations/Reveal.d.ts +4 -0
- package/Animations/Reveal.js +17 -0
- package/Animations/Underline.d.ts +1 -0
- package/Animations/Underline.js +5 -0
- package/Animations/index.d.ts +3 -0
- package/Animations/index.js +3 -0
- package/Animations/package.json +6 -0
- package/Animations/useReveal.d.ts +33 -0
- package/Animations/useReveal.js +71 -0
- package/Autocomplete/AutocompleteDownshift.d.ts +1 -0
- package/Autocomplete/AutocompleteDownshift.js +158 -0
- package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +1 -0
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +353 -0
- package/Autocomplete/AutocompleteMui.d.ts +47 -0
- package/Autocomplete/AutocompleteMui.js +182 -0
- package/Autocomplete/AutocompleteReach.d.ts +1 -0
- package/Autocomplete/AutocompleteReach.js +112 -0
- package/Autocomplete/components.d.ts +21 -0
- package/Autocomplete/components.js +34 -0
- package/Autocomplete/helpers.d.ts +3 -0
- package/Autocomplete/helpers.js +28 -0
- package/Autocomplete/index.d.ts +2 -0
- package/Autocomplete/index.js +3 -0
- package/Autocomplete/package.json +6 -0
- package/Bg/BgColor.d.ts +36 -0
- package/Bg/BgColor.js +21 -0
- package/Bg/BgPhoto.d.ts +13 -0
- package/Bg/BgPhoto.js +16 -0
- package/Bg/BgSvg.d.ts +7 -0
- package/Bg/BgSvg.js +12 -0
- package/Bg/index.d.ts +3 -0
- package/Bg/index.js +3 -0
- package/Bg/package.json +6 -0
- package/Breadcrumbs/Breadcrumbs.d.ts +13 -0
- package/Breadcrumbs/Breadcrumbs.js +27 -0
- package/Breadcrumbs/index.d.ts +1 -0
- package/Breadcrumbs/index.js +1 -0
- package/Breadcrumbs/package.json +6 -0
- package/Buttons/Button.d.ts +18 -0
- package/Buttons/Button.js +14 -0
- package/Buttons/ButtonComposite.d.ts +23 -0
- package/Buttons/ButtonComposite.js +28 -0
- package/Buttons/ButtonFab.d.ts +7 -0
- package/Buttons/ButtonFab.js +6 -0
- package/Buttons/ButtonLink.d.ts +8 -0
- package/Buttons/ButtonLink.js +11 -0
- package/Buttons/IconButton.d.ts +11 -0
- package/Buttons/IconButton.js +7 -0
- package/Buttons/index.d.ts +5 -0
- package/Buttons/index.js +5 -0
- package/Buttons/package.json +6 -0
- package/Calendar/CalendarDaygridCell.d.ts +36 -0
- package/Calendar/CalendarDaygridCell.js +57 -0
- package/Calendar/CalendarDaygridNav.d.ts +27 -0
- package/Calendar/CalendarDaygridNav.js +23 -0
- package/Calendar/CalendarDaygridTable.d.ts +25 -0
- package/Calendar/CalendarDaygridTable.js +57 -0
- package/Calendar/CalendarLegend.d.ts +19 -0
- package/Calendar/CalendarLegend.js +16 -0
- package/Calendar/calendar-api-google.d.ts +18 -0
- package/Calendar/calendar-api-google.js +127 -0
- package/Calendar/index.d.ts +6 -0
- package/Calendar/index.js +6 -0
- package/Calendar/package.json +6 -0
- package/Calendar/types.d.ts +81 -0
- package/Calendar/types.js +1 -0
- package/Calendar/useCalendar.d.ts +49 -0
- package/Calendar/useCalendar.js +183 -0
- package/Calendar/utils.d.ts +11 -0
- package/Calendar/utils.js +202 -0
- package/Carousel/Carousel.d.ts +1 -0
- package/Carousel/Carousel.js +378 -0
- package/Carousel/CarouselCss.d.ts +47 -0
- package/Carousel/CarouselCss.js +23 -0
- package/Carousel/index.d.ts +1 -0
- package/Carousel/index.js +1 -0
- package/Carousel/package.json +6 -0
- package/Collapsable/Collapsable.d.ts +1 -0
- package/Collapsable/Collapsable.js +1 -0
- package/Collapsable/CollapsableReach.d.ts +6 -0
- package/Collapsable/CollapsableReach.js +253 -0
- package/Collapsable/index.d.ts +1 -0
- package/Collapsable/index.js +2 -0
- package/Collapsable/package.json +6 -0
- package/Debug/Debug.d.ts +4 -0
- package/Debug/Debug.js +9 -0
- package/Debug/index.d.ts +1 -0
- package/Debug/index.js +1 -0
- package/Debug/package.json +6 -0
- package/Details/Details.d.ts +114 -0
- package/Details/Details.js +65 -0
- package/Details/index.d.ts +1 -0
- package/Details/index.js +1 -0
- package/Details/package.json +6 -0
- package/Dialog/DialogMui.d.ts +139 -0
- package/Dialog/DialogMui.js +80 -0
- package/Dialog/css/bare.d.ts +145 -0
- package/Dialog/css/bare.js +21 -0
- package/Dialog/index.d.ts +2 -0
- package/Dialog/index.js +1 -0
- package/Dialog/m/bare.d.ts +56 -0
- package/Dialog/m/bare.js +52 -0
- package/Dialog/m/basic.d.ts +4 -0
- package/Dialog/m/basic.js +31 -0
- package/Dialog/m/index.d.ts +2 -0
- package/Dialog/m/index.js +4 -0
- package/Dialog/m/package.json +6 -0
- package/Dialog/package.json +6 -0
- package/Dialog/sc/bare.d.ts +105 -0
- package/Dialog/sc/bare.js +43 -0
- package/Dialog/sc/framer.d.ts +80 -0
- package/Dialog/sc/framer.js +16 -0
- package/Dialog/sc/framerMaterial.d.ts +79 -0
- package/Dialog/sc/framerMaterial.js +16 -0
- package/Dialog/sc/material.d.ts +94 -0
- package/Dialog/sc/material.js +21 -0
- package/Dialog/tw/bare.d.ts +196 -0
- package/Dialog/tw/bare.js +42 -0
- package/Dialog/tw/elegant.d.ts +244 -0
- package/Dialog/tw/elegant.js +20 -0
- package/Dialog/tw/framer.d.ts +112 -0
- package/Dialog/tw/framer.js +16 -0
- package/Dialog/tw/framerMaterial.d.ts +167 -0
- package/Dialog/tw/framerMaterial.js +16 -0
- package/Dialog/tw/material.d.ts +244 -0
- package/Dialog/tw/material.js +20 -0
- package/Editor/Editor--tiptap.d.ts +9 -0
- package/Editor/Editor--tiptap.js +26 -0
- package/Editor/components.d.ts +7 -0
- package/Editor/components.js +10 -0
- package/Editor/index.d.ts +1 -0
- package/Editor/index.js +1 -0
- package/Editor/package.json +6 -0
- package/Favicon/FaviconTags.d.ts +18 -0
- package/Favicon/FaviconTags.js +15 -0
- package/Favicon/index.d.ts +1 -0
- package/Favicon/index.js +1 -0
- package/Favicon/package.json +6 -0
- package/Form/Form.d.ts +111 -0
- package/Form/Form.js +61 -0
- package/Form/index.d.ts +1 -0
- package/Form/index.js +1 -0
- package/Form/package.json +6 -0
- package/Form/sc/bare.d.ts +33 -0
- package/Form/sc/bare.js +20 -0
- package/Forms/Checkbox/Checkbox.d.ts +11 -0
- package/Forms/Checkbox/Checkbox.js +18 -0
- package/Forms/Checkbox/index.d.ts +1 -0
- package/Forms/Checkbox/index.js +1 -0
- package/Forms/Checkbox/package.json +6 -0
- package/Forms/Feedback/Feedback.d.ts +5 -0
- package/Forms/Feedback/Feedback.js +9 -0
- package/Forms/Feedback/index.d.ts +1 -0
- package/Forms/Feedback/index.js +1 -0
- package/Forms/Feedback/package.json +6 -0
- package/Forms/Field/Field.d.ts +15 -0
- package/Forms/Field/Field.js +48 -0
- package/Forms/Field/FieldControl.d.ts +26 -0
- package/Forms/Field/FieldControl.js +47 -0
- package/Forms/Field/FieldHint.d.ts +1 -0
- package/Forms/Field/FieldHint.js +4 -0
- package/Forms/Field/index.d.ts +2 -0
- package/Forms/Field/index.js +2 -0
- package/Forms/Field/package.json +6 -0
- package/Forms/Input/Input.d.ts +9 -0
- package/Forms/Input/Input.js +17 -0
- package/Forms/Input/index.d.ts +1 -0
- package/Forms/Input/index.js +1 -0
- package/Forms/Input/package.json +6 -0
- package/Forms/InputGroup/InputGroup.d.ts +13 -0
- package/Forms/InputGroup/InputGroup.js +15 -0
- package/Forms/InputGroup/index.d.ts +1 -0
- package/Forms/InputGroup/index.js +1 -0
- package/Forms/InputGroup/package.json +6 -0
- package/Forms/Label/Label.d.ts +3 -0
- package/Forms/Label/Label.js +6 -0
- package/Forms/Label/index.d.ts +1 -0
- package/Forms/Label/index.js +1 -0
- package/Forms/Label/package.json +6 -0
- package/Forms/Password/Password.d.ts +5 -0
- package/Forms/Password/Password.js +17 -0
- package/Forms/Password/index.d.ts +1 -0
- package/Forms/Password/index.js +1 -0
- package/Forms/Password/package.json +6 -0
- package/Forms/Radio/Radio.d.ts +12 -0
- package/Forms/Radio/Radio.js +25 -0
- package/Forms/Radio/index.d.ts +1 -0
- package/Forms/Radio/index.js +1 -0
- package/Forms/Radio/package.json +6 -0
- package/Forms/Switch/Switch.d.ts +9 -0
- package/Forms/Switch/Switch.js +20 -0
- package/Forms/Switch/index.d.ts +1 -0
- package/Forms/Switch/index.js +1 -0
- package/Forms/Switch/package.json +6 -0
- package/Forms/Textarea/Textarea.d.ts +5 -0
- package/Forms/Textarea/Textarea.js +12 -0
- package/Forms/Textarea/TextareaRich.d.ts +6 -0
- package/Forms/Textarea/TextareaRich.js +28 -0
- package/Forms/Textarea/index.d.ts +2 -0
- package/Forms/Textarea/index.js +2 -0
- package/Forms/Textarea/package.json +6 -0
- package/Forms/Toggle/Toggle.d.ts +19 -0
- package/Forms/Toggle/Toggle.js +32 -0
- package/Forms/Toggle/index.d.ts +1 -0
- package/Forms/Toggle/index.js +1 -0
- package/Forms/Toggle/package.json +6 -0
- package/Forms/Toggle/useToggle.d.ts +46 -0
- package/Forms/Toggle/useToggle.js +145 -0
- package/Forms/antispam.d.ts +24 -0
- package/Forms/antispam.js +56 -0
- package/Forms/helpers.d.ts +26 -0
- package/Forms/helpers.js +45 -0
- package/Forms/index.d.ts +15 -0
- package/Forms/index.js +16 -0
- package/Forms/package.json +6 -0
- package/Forms/styles.d.ts +19 -0
- package/Forms/styles.js +29 -0
- package/Gauge/Gauge.d.ts +5 -0
- package/Gauge/Gauge.js +102 -0
- package/Grid/Grid.d.ts +64 -0
- package/Grid/Grid.js +53 -0
- package/Grid/index.d.ts +1 -0
- package/Grid/index.js +1 -0
- package/Grid/package.json +6 -0
- package/Hamburger/Hamburger.d.ts +6 -0
- package/Hamburger/Hamburger.js +52 -0
- package/Hamburger/index.d.ts +1 -0
- package/Hamburger/index.js +1 -0
- package/Hamburger/package.json +6 -0
- package/Header/index.d.ts +1 -0
- package/Header/index.js +1 -0
- package/Header/package.json +6 -0
- package/Header/useHeader.d.ts +24 -0
- package/Header/useHeader.js +30 -0
- package/Hidden/Hidden.d.ts +6 -0
- package/Hidden/Hidden.js +10 -0
- package/Hidden/index.d.ts +1 -0
- package/Hidden/index.js +1 -0
- package/Hidden/package.json +6 -0
- package/Img/index.d.ts +1 -0
- package/Img/index.js +1 -0
- package/Img/package.json +6 -0
- package/Img/sc/bare.d.ts +2 -0
- package/Img/sc/bare.js +39 -0
- package/Img/types.d.ts +9 -0
- package/Img/types.js +1 -0
- package/Link/Link.d.ts +5 -0
- package/Link/Link.js +4 -0
- package/Link/LinkBlank.d.ts +8 -0
- package/Link/LinkBlank.js +17 -0
- package/Link/index.d.ts +2 -0
- package/Link/index.js +2 -0
- package/Link/package.json +6 -0
- package/Menu/Menu.d.ts +1 -0
- package/Menu/Menu.js +4 -0
- package/Menu/index.d.ts +1 -0
- package/Menu/index.js +1 -0
- package/Menu/package.json +6 -0
- package/MenuItem/MenuItem.d.ts +4 -0
- package/MenuItem/MenuItem.js +4 -0
- package/MenuItem/index.d.ts +1 -0
- package/MenuItem/index.js +1 -0
- package/MenuItem/package.json +6 -0
- package/Meta/Meta.d.ts +14 -0
- package/Meta/Meta.js +5 -0
- package/Meta/index.d.ts +1 -0
- package/Meta/index.js +1 -0
- package/Meta/package.json +6 -0
- package/NoJs/NoJs.d.ts +2 -0
- package/NoJs/NoJs.js +6 -0
- package/NoJs/index.d.ts +1 -0
- package/NoJs/index.js +1 -0
- package/NoJs/package.json +6 -0
- package/Pagination/PaginationNav.d.ts +22 -0
- package/Pagination/PaginationNav.js +61 -0
- package/Pagination/PaginationResults.d.ts +3 -0
- package/Pagination/PaginationResults.js +11 -0
- package/Pagination/index.d.ts +2 -0
- package/Pagination/index.js +2 -0
- package/Pagination/package.json +6 -0
- package/Pill/Pill.d.ts +5 -0
- package/Pill/Pill.js +7 -0
- package/Pill/index.d.ts +1 -0
- package/Pill/index.js +1 -0
- package/Pill/package.json +6 -0
- package/Progress/ProgressCircular.d.ts +19 -0
- package/Progress/ProgressCircular.js +15 -0
- package/Progress/ProgressLinear.d.ts +22 -0
- package/Progress/ProgressLinear.js +24 -0
- package/Progress/ProgressOverlay.d.ts +4 -0
- package/Progress/ProgressOverlay.js +24 -0
- package/Progress/index.d.ts +3 -0
- package/Progress/index.js +3 -0
- package/Progress/package.json +6 -0
- package/Rating/Rating.d.ts +35 -0
- package/Rating/Rating.js +71 -0
- package/Rating/index.d.ts +11 -0
- package/Rating/index.js +49 -0
- package/Rating/package.json +6 -0
- package/Select/SelectDownshift.d.ts +5 -0
- package/Select/SelectDownshift.js +38 -0
- package/Select/components.d.ts +6 -0
- package/Select/components.js +12 -0
- package/Select/index.d.ts +2 -0
- package/Select/index.js +3 -0
- package/Select/package.json +6 -0
- package/Sidebar/Sidebar.d.ts +3 -0
- package/Sidebar/Sidebar.js +23 -0
- package/Sidebar/index.d.ts +1 -0
- package/Sidebar/index.js +1 -0
- package/Sidebar/package.json +6 -0
- package/Spacing/Spacing.d.ts +30 -0
- package/Spacing/Spacing.js +45 -0
- package/Spacing/index.d.ts +1 -0
- package/Spacing/index.js +1 -0
- package/Spacing/package.json +6 -0
- package/Sticky/Sticky.d.ts +2 -0
- package/Sticky/Sticky.js +219 -0
- package/Sticky/StickyCss.d.ts +5 -0
- package/Sticky/StickyCss.js +6 -0
- package/Sticky/index.d.ts +1 -0
- package/Sticky/index.js +1 -0
- package/Sticky/package.json +6 -0
- package/Tabs/TabsMui.d.ts +244 -0
- package/Tabs/TabsMui.js +46 -0
- package/Tabs/index.d.ts +1 -0
- package/Tabs/index.js +1 -0
- package/Tabs/package.json +6 -0
- package/Tabs/sc/bare.d.ts +5 -0
- package/Tabs/sc/bare.js +87 -0
- package/Tabs/tw/bare.d.ts +248 -0
- package/Tabs/tw/bare.js +17 -0
- package/Tabs/tw/material.d.ts +472 -0
- package/Tabs/tw/material.js +18 -0
- package/Tabs/useTabs.d.ts +43 -0
- package/Tabs/useTabs.js +44 -0
- package/Typography/CopyPasteVisible.d.ts +1 -0
- package/Typography/CopyPasteVisible.js +4 -0
- package/Typography/Native.d.ts +10 -0
- package/Typography/Native.js +14 -0
- package/Typography/ReadMore.d.ts +12 -0
- package/Typography/ReadMore.js +43 -0
- package/Typography/TextLoop.d.ts +16 -0
- package/Typography/TextLoop.js +46 -0
- package/Typography/TypeStairs.d.ts +6 -0
- package/Typography/TypeStairs.js +50 -0
- package/Typography/index.d.ts +5 -0
- package/Typography/index.js +5 -0
- package/Typography/package.json +6 -0
- package/css/index.d.ts +2 -0
- package/css/index.js +31 -0
- package/css/package.json +6 -0
- package/helpers/classed.d.ts +22 -0
- package/helpers/classed.js +68 -0
- package/helpers/extend-component.d.ts +28 -0
- package/helpers/extend-component.js +12 -0
- package/helpers/index.d.ts +3 -0
- package/helpers/index.js +2 -0
- package/helpers/package.json +6 -0
- package/hooks/index.d.ts +14 -0
- package/hooks/index.js +15 -0
- package/hooks/package.json +6 -0
- package/hooks/types.d.ts +8 -0
- package/hooks/types.js +1 -0
- package/hooks/useAsyncFn.d.ts +26 -0
- package/hooks/useAsyncFn.js +36 -0
- package/hooks/useDateLocale.d.ts +7 -0
- package/hooks/useDateLocale.js +38 -0
- package/hooks/useEffectOnce.d.ts +5 -0
- package/hooks/useEffectOnce.js +8 -0
- package/hooks/useFirstMountState.d.ts +4 -0
- package/hooks/useFirstMountState.js +12 -0
- package/hooks/useFocus.d.ts +4 -0
- package/hooks/useFocus.js +11 -0
- package/hooks/useId.d.ts +4 -0
- package/hooks/useId.js +8 -0
- package/hooks/useIsomorphicLayoutEffect.d.ts +5 -0
- package/hooks/useIsomorphicLayoutEffect.js +8 -0
- package/hooks/useMount.d.ts +4 -0
- package/hooks/useMount.js +9 -0
- package/hooks/useMountedState.d.ts +4 -0
- package/hooks/useMountedState.js +15 -0
- package/hooks/usePrevious.d.ts +1 -0
- package/hooks/usePrevious.js +8 -0
- package/hooks/useScrollPosition.d.ts +15 -0
- package/hooks/useScrollPosition.js +80 -0
- package/hooks/useScrollTo.d.ts +1 -0
- package/hooks/useScrollTo.js +21 -0
- package/hooks/useTraceUpdate.d.ts +4 -0
- package/hooks/useTraceUpdate.js +21 -0
- package/hooks/useUpdateEffect.d.ts +5 -0
- package/hooks/useUpdateEffect.js +14 -0
- package/hooks/useWindowSize.d.ts +1 -0
- package/hooks/useWindowSize.js +13 -0
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/m/MotionProvider.d.ts +37 -0
- package/m/MotionProvider.js +39 -0
- package/m/index.d.ts +6 -0
- package/m/index.js +6 -0
- package/m/lite.d.ts +2 -0
- package/m/lite.js +2 -0
- package/m/max.d.ts +2 -0
- package/m/max.js +2 -0
- package/m/package.json +6 -0
- package/package.json +6 -9
- package/sc/index.d.ts +30 -0
- package/sc/index.js +31 -0
- package/sc/package.json +6 -0
- package/scm/index.d.ts +29 -0
- package/scm/index.js +31 -0
- package/scm/package.json +6 -0
- package/shared/index.d.ts +8 -0
- package/shared/index.js +8 -0
- package/shared/package.json +6 -0
- package/styles/Body.d.ts +10 -0
- package/styles/Body.js +13 -0
- package/styles/Global.d.ts +15 -0
- package/styles/Global.js +18 -0
- package/styles/index.d.ts +7 -0
- package/styles/index.js +7 -0
- package/styles/media.d.ts +67 -0
- package/styles/media.js +155 -0
- package/styles/package.json +6 -0
- package/styles/spacing.d.ts +13 -0
- package/styles/spacing.js +45 -0
- package/styles/styled.d.ts +12 -0
- package/styles/styled.js +13 -0
- package/styles/theme--vanilla.d.ts +18 -0
- package/styles/theme--vanilla.js +55 -0
- package/styles/theme.d.ts +82 -0
- package/styles/theme.js +41 -0
- package/tw/index.d.ts +2 -0
- package/tw/index.js +31 -0
- package/tw/package.json +6 -0
- package/twm/index.d.ts +2 -0
- package/twm/index.js +31 -0
- package/twm/package.json +6 -0
- package/types.d.ts +10 -0
- package/types.js +1 -0
package/Rating/Rating.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { __assign, __makeTemplateObject, __rest } from "tslib";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useEffect, /* useId, */ useState } from "react";
|
|
4
|
+
import styled from "styled-components";
|
|
5
|
+
import { useId } from "../hooks/useId";
|
|
6
|
+
export var RatingStarRoot = styled.svg(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: inline-block;\n vertical-align: middle;\n margin-right: 1px;\n"], ["\n display: inline-block;\n vertical-align: middle;\n margin-right: 1px;\n"])));
|
|
7
|
+
export var RatingStar = function (_a) {
|
|
8
|
+
var value = _a.value, _b = _a.colorBg, colorBg = _b === void 0 ? "#FFD84C" : _b, _c = _a.colorStroke, colorStroke = _c === void 0 ? "#947813" : _c, size = _a.size, props = __rest(_a, ["value", "colorBg", "colorStroke", "size"]);
|
|
9
|
+
var id = useId();
|
|
10
|
+
return (_jsxs(RatingStarRoot, __assign({ viewBox: "0 0 16 16", "data-value": value, width: size + "px", height: size + "px" }, props, { children: [_jsx("defs", { children: _jsxs("linearGradient", __assign({ id: id, x1: "0", y1: "0", x2: "1", y2: "0" }, { children: [_jsx("stop", { offset: "0", stopColor: colorBg }), _jsx("stop", { offset: value, stopColor: colorBg }), _jsx("stop", { offset: value, stopColor: "rgba(255, 255, 255, 0)" })] })) }), _jsx("path", { stroke: colorStroke, strokeWidth: "0.5", fill: "url(#".concat(id, ")"), d: "M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.283.95l-3.523 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z" })] })));
|
|
11
|
+
};
|
|
12
|
+
export var RatingDetails = styled.span(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding-left: 0.5em;\n font-size: 12px;\n color: var(--grey100);\n\n &:before {\n content: \"(\";\n }\n &:after {\n content: \")\";\n }\n"], ["\n padding-left: 0.5em;\n font-size: 12px;\n color: var(--grey100);\n\n &:before {\n content: \"(\";\n }\n &:after {\n content: \")\";\n }\n"])));
|
|
13
|
+
export var RatingCount = styled.span(templateObject_3 || (templateObject_3 = __makeTemplateObject([""], [""])));
|
|
14
|
+
export var RatingValue = styled.span(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
|
|
15
|
+
export var RatingRoot = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n\n &:hover ", " {\n display: inline-block;\n }\n"], ["\n display: flex;\n align-items: center;\n\n &:hover ", " {\n display: inline-block;\n }\n"])), RatingValue);
|
|
16
|
+
export var Rating = function (_a) {
|
|
17
|
+
var _b = _a.value, value = _b === void 0 ? 0 : _b, count = _a.count, _c = _a.min, min = _c === void 0 ? 0 : _c, _d = _a.max, max = _d === void 0 ? 5 : _d, _e = _a.showDetails, showDetails = _e === void 0 ? true : _e, colorBg = _a.colorBg, colorStroke = _a.colorStroke, _f = _a.starSize, starSize = _f === void 0 ? 16 : _f;
|
|
18
|
+
var id = useId();
|
|
19
|
+
var currentValue = useState(value)[0] /* , _setCurrentValue */;
|
|
20
|
+
var _g = useState([]), stars = _g[0], setStars = _g[1];
|
|
21
|
+
var getStars = useCallback(function (activeCount) {
|
|
22
|
+
var stars = [];
|
|
23
|
+
for (var currentStar = min + 1; currentStar < max + 1; currentStar++) {
|
|
24
|
+
var starValue = void 0;
|
|
25
|
+
var roundedActiveCount = Math.floor(activeCount);
|
|
26
|
+
// we have a rating of 3.4, when we get to the 4th star:
|
|
27
|
+
if (roundedActiveCount === currentStar - 1) {
|
|
28
|
+
starValue = 1 - (currentStar - activeCount);
|
|
29
|
+
}
|
|
30
|
+
else if (roundedActiveCount >= currentStar) {
|
|
31
|
+
starValue = 1;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
starValue = 0;
|
|
35
|
+
}
|
|
36
|
+
stars.push({ value: starValue });
|
|
37
|
+
}
|
|
38
|
+
return stars;
|
|
39
|
+
}, [min, max]);
|
|
40
|
+
useEffect(function () {
|
|
41
|
+
setStars(getStars(currentValue));
|
|
42
|
+
}, [currentValue, getStars]);
|
|
43
|
+
// function updateStars(index) {
|
|
44
|
+
// var currentActive = stars.filter((x) => x.active);
|
|
45
|
+
// if (index !== currentActive.length) {
|
|
46
|
+
// setStars(getStars(index));
|
|
47
|
+
// }
|
|
48
|
+
// }
|
|
49
|
+
// function handleMouseOver(event) {
|
|
50
|
+
// let index = Number(event.currentTarget.getAttribute("data-idx")) + 1;
|
|
51
|
+
// updateStars(index);
|
|
52
|
+
// }
|
|
53
|
+
// function handleMouseLeave() {
|
|
54
|
+
// setStars(getStars());
|
|
55
|
+
// }
|
|
56
|
+
// const handleClick = useCallback((event) => {
|
|
57
|
+
// let index = Number(event.currentTarget.getAttribute("data-idx"));
|
|
58
|
+
// let value = index = index + 1;
|
|
59
|
+
// if (value !== currentValue) {
|
|
60
|
+
// setStars(getStars(value));
|
|
61
|
+
// setCurrentValue(value);
|
|
62
|
+
// onChange(value);
|
|
63
|
+
// }
|
|
64
|
+
// }, [onChange];
|
|
65
|
+
return (_jsxs(RatingRoot, { children: [stars.map(function (star, idx) { return (_jsx(RatingStar, { idx: idx, dataIdx: idx, size: starSize,
|
|
66
|
+
// onMouseOver={handleMouseOver}
|
|
67
|
+
// onMouseLeave={handleMouseLeave}
|
|
68
|
+
// onClick={handleClick}
|
|
69
|
+
value: star.value, colorBg: colorBg, colorStroke: colorStroke }, id + idx)); }), " ", showDetails && count && (_jsxs(RatingDetails, { children: [_jsx(RatingCount, { children: count }), _jsx(RatingValue, { children: " - ".concat(value) })] }))] }));
|
|
70
|
+
};
|
|
71
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./Rating";
|
|
2
|
+
export declare const getRatingWord: (value: number, precision?: number) => any;
|
|
3
|
+
export declare const getRatingValue: (value: number) => string | number;
|
|
4
|
+
/**
|
|
5
|
+
* @see https://stackoverflow.com/a/14224813
|
|
6
|
+
*/
|
|
7
|
+
export declare function convertRange(value: number, r1: number[], r2: number[]): number;
|
|
8
|
+
export declare const deriveRating: (title: string, date: Date, minValue?: number, maxValue?: number, minQuantity?: number) => {
|
|
9
|
+
value: number;
|
|
10
|
+
count: number;
|
|
11
|
+
};
|
package/Rating/index.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export * from "./Rating";
|
|
2
|
+
var RATING_WORDS = {
|
|
3
|
+
0: "Worst",
|
|
4
|
+
1: "Bad",
|
|
5
|
+
2: "Mediocre",
|
|
6
|
+
3: "Good",
|
|
7
|
+
4: "Great",
|
|
8
|
+
4.5: "Excellent",
|
|
9
|
+
5: "Best",
|
|
10
|
+
};
|
|
11
|
+
export var getRatingWord = function (value, precision) {
|
|
12
|
+
if (precision === void 0) { precision = 0.5; }
|
|
13
|
+
var buffer = 0;
|
|
14
|
+
var word;
|
|
15
|
+
while (buffer < value) {
|
|
16
|
+
// @ts-expect-error can't remember
|
|
17
|
+
word = RATING_WORDS[buffer];
|
|
18
|
+
buffer += precision;
|
|
19
|
+
}
|
|
20
|
+
return word;
|
|
21
|
+
};
|
|
22
|
+
export var getRatingValue = function (value) {
|
|
23
|
+
var converted = convertRange(value, [0, 5], [0, 10]);
|
|
24
|
+
if (converted % 1 === 0) {
|
|
25
|
+
return converted;
|
|
26
|
+
}
|
|
27
|
+
return converted.toFixed(1);
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @see https://stackoverflow.com/a/14224813
|
|
31
|
+
*/
|
|
32
|
+
export function convertRange(value, r1, r2) {
|
|
33
|
+
return ((value - r1[0]) * (r2[1] - r2[0])) / (r1[1] - r1[0]) + r2[0];
|
|
34
|
+
}
|
|
35
|
+
export var deriveRating = function (title, date, minValue, maxValue, minQuantity) {
|
|
36
|
+
if (minValue === void 0) { minValue = 3.8; }
|
|
37
|
+
if (maxValue === void 0) { maxValue = 5; }
|
|
38
|
+
if (minQuantity === void 0) { minQuantity = 9; }
|
|
39
|
+
var entityTime = date.getTime();
|
|
40
|
+
var nowTime = new Date().getTime();
|
|
41
|
+
var length = title.length;
|
|
42
|
+
var value = Number(convertRange(length, [0, 90], [minValue, maxValue]).toFixed(2));
|
|
43
|
+
var timeDifference = convertRange(nowTime - entityTime, [0, 10000000000000], [minQuantity, 999999]);
|
|
44
|
+
var count = Math.round(timeDifference / length);
|
|
45
|
+
return {
|
|
46
|
+
value: value,
|
|
47
|
+
count: count,
|
|
48
|
+
};
|
|
49
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export var Select = null;
|
|
2
|
+
// import { useSelect } from "downshift";
|
|
3
|
+
// export type SelectProps = {
|
|
4
|
+
// options?: Option[];
|
|
5
|
+
// };
|
|
6
|
+
// export const Select = ({ options = [] }: SelectProps) => {
|
|
7
|
+
// const {
|
|
8
|
+
// isOpen,
|
|
9
|
+
// selectedItem,
|
|
10
|
+
// getToggleButtonProps,
|
|
11
|
+
// getLabelProps,
|
|
12
|
+
// getMenuProps,
|
|
13
|
+
// highlightedIndex,
|
|
14
|
+
// getItemProps,
|
|
15
|
+
// } = useSelect({ items: options });
|
|
16
|
+
// return (
|
|
17
|
+
// <div>
|
|
18
|
+
// <label {...getLabelProps()}>Choose an element:</label>
|
|
19
|
+
// <button type="button" {...getToggleButtonProps()}>
|
|
20
|
+
// {selectedItem || "Elements"}
|
|
21
|
+
// </button>
|
|
22
|
+
// <ul {...getMenuProps()}>
|
|
23
|
+
// {isOpen &&
|
|
24
|
+
// options.map((item, index) => (
|
|
25
|
+
// <li
|
|
26
|
+
// style={
|
|
27
|
+
// highlightedIndex === index ? { backgroundColor: "#bde4ff" } : {}
|
|
28
|
+
// }
|
|
29
|
+
// key={`${item.value}${index}`}
|
|
30
|
+
// {...getItemProps({ item, index })}
|
|
31
|
+
// >
|
|
32
|
+
// {item.label}
|
|
33
|
+
// </li>
|
|
34
|
+
// ))}
|
|
35
|
+
// </ul>
|
|
36
|
+
// </div>
|
|
37
|
+
// );
|
|
38
|
+
// };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const SelectArrowStyled: import("styled-components").StyledComponent<import("framer-motion").ForwardRefComponent<HTMLSpanElement, import("framer-motion").HTMLMotionProps<"span">>, import("styled-components").DefaultTheme, {}, never>;
|
|
3
|
+
export declare type SelectArrowProps = {
|
|
4
|
+
isOpen?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const SelectArrow: import("react").ForwardRefExoticComponent<SelectArrowProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __assign, __makeTemplateObject, __rest } from "tslib";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import styled from "styled-components";
|
|
5
|
+
import { m } from "framer-motion";
|
|
6
|
+
import { BsBoxArrowInDown as IconCollapse } from "react-icons/bs";
|
|
7
|
+
export var SelectArrowStyled = styled(m.span)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2em;\n\n &:not([disabled]) {\n cursor: pointer;\n }\n"], ["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2em;\n\n &:not([disabled]) {\n cursor: pointer;\n }\n"])));
|
|
8
|
+
export var SelectArrow = forwardRef(function SelectArrow(_a, ref) {
|
|
9
|
+
var isOpen = _a.isOpen, props = __rest(_a, ["isOpen"]);
|
|
10
|
+
return (_jsx(SelectArrowStyled, __assign({ animate: { rotate: isOpen ? 180 : 0 }, ref: ref }, props, { children: _jsx(IconCollapse, {}) })));
|
|
11
|
+
});
|
|
12
|
+
var templateObject_1;
|
package/Select/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { __assign, __makeTemplateObject } from "tslib";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import styled from "styled-components";
|
|
5
|
+
import { GrFolderOpen as IconOpen } from "react-icons/gr";
|
|
6
|
+
import { CgCloseR as IconClose } from "react-icons/cg";
|
|
7
|
+
import { max, min } from "../styles/media";
|
|
8
|
+
import { IconButtonFab } from "../Buttons";
|
|
9
|
+
import { useHeader } from "../Header";
|
|
10
|
+
var SidebarWrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (p) {
|
|
11
|
+
return "".concat(max.md, " {\n z-index: 20;\n display: flex;\n flex-direction: column;\n position: fixed;\n right: 0;\n left: var(--gutter-half);\n top: ").concat(p.$top || 0, "px;\n bottom: 0;\n padding: var(--gutter-half);\n transform: ").concat(p.$open ? "translateX(0)" : "translateX(100%)", ";\n transition: transform .18s ease-in-out, box-shadow .18s ease-in-out;\n background: white;\n box-shadow: ").concat(p.$open ? "0 0 0 100vh rgba(0, 0, 0, .3)" : "0 0 100vh rgba(0, 0, 0, 0)", ";\n will-change: transform, box-shadow;\n pointer-events: ").concat(p.$open ? "all" : "none", "\n }");
|
|
12
|
+
});
|
|
13
|
+
var SidebarToggle = styled.span(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n z-index: 21;\n position: fixed;\n right: var(--gutter-half);\n bottom: var(--gutter-half);\n ", " {\n display: none;\n }\n\n path {\n stroke: currentColor;\n }\n"], ["\n z-index: 21;\n position: fixed;\n right: var(--gutter-half);\n bottom: var(--gutter-half);\n ", " {\n display: none;\n }\n\n path {\n stroke: currentColor;\n }\n"])), min.md);
|
|
14
|
+
export var Sidebar = function (_a) {
|
|
15
|
+
var children = _a.children;
|
|
16
|
+
var _b = useState(false), open = _b[0], setOpen = _b[1];
|
|
17
|
+
var _c = useHeader(), headerHeight = _c[2];
|
|
18
|
+
var handleClickToggle = useCallback(function () {
|
|
19
|
+
setOpen(function (prevOpen) { return !prevOpen; });
|
|
20
|
+
}, []);
|
|
21
|
+
return (_jsxs(_Fragment, { children: [_jsx(SidebarToggle, __assign({ onClick: handleClickToggle }, { children: _jsx(IconButtonFab, __assign({ "$variant": "contained" }, { children: open ? _jsx(IconClose, {}) : _jsx(IconOpen, {}) })) })), _jsx(SidebarWrapper, __assign({ "$open": open, "$top": headerHeight }, { children: children }))] }));
|
|
22
|
+
};
|
|
23
|
+
var templateObject_1, templateObject_2;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Sidebar";
|
package/Sidebar/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Sidebar";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SpacingSize, SpacingFactor, SpacingProperty, SpacingDirectionAxis, SpacingDevices } from "../styles/spacing";
|
|
3
|
+
export declare type SpacingPropsStyled = {
|
|
4
|
+
$top?: SpacingFnArgs;
|
|
5
|
+
$bottom?: SpacingFnArgs;
|
|
6
|
+
};
|
|
7
|
+
declare type SpacingFnArgs = [
|
|
8
|
+
SpacingSize,
|
|
9
|
+
SpacingFactor,
|
|
10
|
+
SpacingProperty,
|
|
11
|
+
SpacingDevices[]
|
|
12
|
+
];
|
|
13
|
+
declare type SpacingSyntaxFactor = string;
|
|
14
|
+
declare type SpacingSyntaxDevices = `${SpacingDevices}` | `${SpacingDevices},${SpacingDevices}` | `${SpacingDevices},${SpacingDevices},${SpacingDevices}`;
|
|
15
|
+
declare type SpacingSyntax = `${SpacingSize}` | `${SpacingSize}:${SpacingSyntaxFactor}` | `${SpacingSize}:${SpacingSyntaxFactor}:${SpacingProperty}` | `${SpacingSize}:${SpacingSyntaxFactor}:${SpacingProperty}:${SpacingSyntaxDevices}`;
|
|
16
|
+
export declare type SpacingProps = React.ComponentPropsWithoutRef<"div"> & Partial<Record<SpacingDirectionAxis, SpacingSyntax>>;
|
|
17
|
+
/**
|
|
18
|
+
* Usage:
|
|
19
|
+
*
|
|
20
|
+
* ```jsx
|
|
21
|
+
* <Spacing top="sm" />
|
|
22
|
+
* <Spacing top="sm:1.5" />
|
|
23
|
+
* <Spacing top="sm:1.5" bottom="lg" />
|
|
24
|
+
* <Spacing vertical="sm:1.5:margin:mobile" />
|
|
25
|
+
* <Spacing top="sm:1.5:padding:mobile" />
|
|
26
|
+
* <Spacing top="sm:2:padding:tablet,desktop" />
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const Spacing: ({ top, bottom, vertical, ...props }: SpacingProps) => JSX.Element;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { __assign, __makeTemplateObject, __rest, __spreadArray } from "tslib";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { isUndefined } from "@koine/utils";
|
|
5
|
+
import { spacingTop, spacingBottom, } from "../styles/spacing";
|
|
6
|
+
var Root = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n ", "\n"], ["\n ", "\n ", "\n"])), function (p) { return p.$top && spacingTop.call.apply(spacingTop, __spreadArray([p.theme], p.$top, false)); }, function (p) { return p.$bottom && spacingBottom.call.apply(spacingBottom, __spreadArray([p.theme], p.$bottom, false)); });
|
|
7
|
+
var extractDirectionArgs = function (raw) {
|
|
8
|
+
var _a = raw.split(":"), size = _a[0], factor = _a[1], property = _a[2], devices = _a[3];
|
|
9
|
+
var factorArg = isUndefined(factor) ? undefined : parseFloat(factor);
|
|
10
|
+
var devicesArg = devices === null || devices === void 0 ? void 0 : devices.split(",");
|
|
11
|
+
return [size, factorArg, property, devicesArg];
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Usage:
|
|
15
|
+
*
|
|
16
|
+
* ```jsx
|
|
17
|
+
* <Spacing top="sm" />
|
|
18
|
+
* <Spacing top="sm:1.5" />
|
|
19
|
+
* <Spacing top="sm:1.5" bottom="lg" />
|
|
20
|
+
* <Spacing vertical="sm:1.5:margin:mobile" />
|
|
21
|
+
* <Spacing top="sm:1.5:padding:mobile" />
|
|
22
|
+
* <Spacing top="sm:2:padding:tablet,desktop" />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export var Spacing = function (_a) {
|
|
26
|
+
var top = _a.top, bottom = _a.bottom, vertical = _a.vertical, props = __rest(_a, ["top", "bottom", "vertical"]);
|
|
27
|
+
var $top;
|
|
28
|
+
var $bottom;
|
|
29
|
+
if (top) {
|
|
30
|
+
$top = extractDirectionArgs(top);
|
|
31
|
+
}
|
|
32
|
+
if (bottom) {
|
|
33
|
+
$bottom = extractDirectionArgs(bottom);
|
|
34
|
+
}
|
|
35
|
+
if (vertical) {
|
|
36
|
+
$top = extractDirectionArgs(vertical);
|
|
37
|
+
$bottom = $top;
|
|
38
|
+
}
|
|
39
|
+
if (!$top && !$bottom && !vertical) {
|
|
40
|
+
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
41
|
+
return _jsx(_Fragment, { children: props.children });
|
|
42
|
+
}
|
|
43
|
+
return _jsx(Root, __assign({ "$top": $top, "$bottom": $bottom }, props));
|
|
44
|
+
};
|
|
45
|
+
var templateObject_1;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Spacing";
|
package/Spacing/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Spacing";
|
package/Sticky/Sticky.js
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
export var Sticky = null;
|
|
2
|
+
// import {
|
|
3
|
+
// Ref,
|
|
4
|
+
// CSSProperties,
|
|
5
|
+
// useState,
|
|
6
|
+
// useCallback,
|
|
7
|
+
// useEffect,
|
|
8
|
+
// useRef,
|
|
9
|
+
// } from "react";
|
|
10
|
+
// /**
|
|
11
|
+
// * Get current coordinates `left` and `top` of specific element.
|
|
12
|
+
// */
|
|
13
|
+
// const offsetRelative = (element: HTMLElement) => {
|
|
14
|
+
// var result = { l: 0, t: 0 };
|
|
15
|
+
// do {
|
|
16
|
+
// let offsetTop = element.offsetTop;
|
|
17
|
+
// let offsetLeft = element.offsetLeft;
|
|
18
|
+
// if (!isNaN(offsetTop)) result.t += offsetTop;
|
|
19
|
+
// if (!isNaN(offsetLeft)) result.l += offsetLeft;
|
|
20
|
+
// // @ts-expect-error just rething everyhting in this file
|
|
21
|
+
// element =
|
|
22
|
+
// "BODY" === element.tagName ? element.parentElement : element.offsetParent;
|
|
23
|
+
// } while (element);
|
|
24
|
+
// return result;
|
|
25
|
+
// };
|
|
26
|
+
// export type StickyElementProps = {
|
|
27
|
+
// ref: Ref<HTMLDivElement>;
|
|
28
|
+
// sticky?: boolean;
|
|
29
|
+
// style: CSSProperties;
|
|
30
|
+
// };
|
|
31
|
+
// /**
|
|
32
|
+
// * - `0`: "STATIC": Static position as nothing happened
|
|
33
|
+
// * - `1`: "VIEWPORT-TOP": Sticked to the top screen edge
|
|
34
|
+
// * - `2`: "VIEWPORT-BOTTOM": Sticked to the bottom screen edge
|
|
35
|
+
// * - `4`: "VIEWPORT-UNBOTTOM": ? Scrolling in the middle of the element, neither sticked nor static
|
|
36
|
+
// * - `3`: "CONTAINER-BOTTOM": ?
|
|
37
|
+
// */
|
|
38
|
+
// export type StickyStatus = 0 | 1 | 2 | 3;
|
|
39
|
+
// type DimensionsBasic = [
|
|
40
|
+
// /** containerTop */
|
|
41
|
+
// number,
|
|
42
|
+
// /** containerHeight */
|
|
43
|
+
// number,
|
|
44
|
+
// /** containerBottom */
|
|
45
|
+
// number,
|
|
46
|
+
// /** elementHeight */
|
|
47
|
+
// number,
|
|
48
|
+
// /** elementWidth */
|
|
49
|
+
// number,
|
|
50
|
+
// /** viewportHeight */
|
|
51
|
+
// number,
|
|
52
|
+
// /** maxTranslateY */
|
|
53
|
+
// number
|
|
54
|
+
// ];
|
|
55
|
+
// type DimensionsOnScroll = [
|
|
56
|
+
// /** elementLeft */
|
|
57
|
+
// number,
|
|
58
|
+
// /** viewportTop */
|
|
59
|
+
// number,
|
|
60
|
+
// /** viewportBottom */
|
|
61
|
+
// number,
|
|
62
|
+
// /** viewportLeft */
|
|
63
|
+
// number,
|
|
64
|
+
// /** topSpacing */
|
|
65
|
+
// number,
|
|
66
|
+
// /** bottomSpacing */
|
|
67
|
+
// number
|
|
68
|
+
// /** translateY */
|
|
69
|
+
// // number,
|
|
70
|
+
// /** lastTopSpacing */
|
|
71
|
+
// // number,
|
|
72
|
+
// /** lastBottomSpacing */
|
|
73
|
+
// // number,
|
|
74
|
+
// /** lastViewportTop */
|
|
75
|
+
// // number,
|
|
76
|
+
// ];
|
|
77
|
+
// type Dimensions = DimensionsBasic & DimensionsOnScroll;
|
|
78
|
+
// const getDimensionsBasic = (container: HTMLElement, inner: HTMLElement) => {
|
|
79
|
+
// const containerTop = offsetRelative(container).t;
|
|
80
|
+
// const containerHeight = container.clientHeight;
|
|
81
|
+
// const containerBottom = containerTop + containerHeight;
|
|
82
|
+
// const elementHeight = inner.offsetHeight;
|
|
83
|
+
// const elementWidth = inner.offsetWidth;
|
|
84
|
+
// const viewportHeight = window.innerHeight;
|
|
85
|
+
// const maxTranslateY = containerHeight - elementHeight;
|
|
86
|
+
// return [
|
|
87
|
+
// containerTop,
|
|
88
|
+
// containerHeight,
|
|
89
|
+
// containerBottom,
|
|
90
|
+
// elementHeight,
|
|
91
|
+
// elementWidth,
|
|
92
|
+
// viewportHeight,
|
|
93
|
+
// maxTranslateY,
|
|
94
|
+
// ] as DimensionsBasic;
|
|
95
|
+
// };
|
|
96
|
+
// const getDimensionsOnScroll = (
|
|
97
|
+
// wrapper: HTMLElement,
|
|
98
|
+
// container: HTMLElement,
|
|
99
|
+
// inner: HTMLElement
|
|
100
|
+
// ) => {
|
|
101
|
+
// const elementLeft = offsetRelative(wrapper).l;
|
|
102
|
+
// const viewportTop =
|
|
103
|
+
// document.documentElement.scrollTop || document.body.scrollTop;
|
|
104
|
+
// const viewportBottom = viewportTop + window.innerHeight;
|
|
105
|
+
// const viewportLeft =
|
|
106
|
+
// document.documentElement.scrollLeft || document.body.scrollLeft;
|
|
107
|
+
// const topSpacing = 0; // TODO: make it a prop?
|
|
108
|
+
// const bottomSpacing = 0; // TODO: make it a prop?
|
|
109
|
+
// // const lastTopSpacing = topSpacing;
|
|
110
|
+
// // const lastBottomSpacing = bottomSpacing;
|
|
111
|
+
// return [
|
|
112
|
+
// elementLeft,
|
|
113
|
+
// viewportTop,
|
|
114
|
+
// viewportBottom,
|
|
115
|
+
// viewportLeft,
|
|
116
|
+
// topSpacing,
|
|
117
|
+
// bottomSpacing,
|
|
118
|
+
// ] as DimensionsOnScroll;
|
|
119
|
+
// };
|
|
120
|
+
// // const getTranslateYonScroll = (dimensions: DimensionsOnScroll, status: StickyStatus) => {
|
|
121
|
+
// // if (status === 1) {
|
|
122
|
+
// // // Adjust translate Y in the case decrease top spacing value.
|
|
123
|
+
// // if (dimensions[5] < dims.lastTopSpacing) {
|
|
124
|
+
// // dims.translateY += dims.lastTopSpacing - dims.topSpacing;
|
|
125
|
+
// // this._reStyle = true;
|
|
126
|
+
// // }
|
|
127
|
+
// // } else if (status === 2) {
|
|
128
|
+
// // // Adjust translate Y in the case decrease bottom spacing value.
|
|
129
|
+
// // if (dims.bottomSpacing < dims.lastBottomSpacing) {
|
|
130
|
+
// // dims.translateY += dims.lastBottomSpacing - dims.bottomSpacing;
|
|
131
|
+
// // this._reStyle = true;
|
|
132
|
+
// // }
|
|
133
|
+
// // }
|
|
134
|
+
// // }
|
|
135
|
+
// export type StickyProps = {
|
|
136
|
+
// /** @default "div" */
|
|
137
|
+
// Wrapper?: FC<StickyElementProps>;
|
|
138
|
+
// /** @default "div" */
|
|
139
|
+
// Inner?: FC<StickyElementProps>;
|
|
140
|
+
// top: number;
|
|
141
|
+
// };
|
|
142
|
+
// export const Sticky: FC<StickyProps> = ({
|
|
143
|
+
// Wrapper = "div",
|
|
144
|
+
// Inner = "div",
|
|
145
|
+
// children,
|
|
146
|
+
// top,
|
|
147
|
+
// ...props
|
|
148
|
+
// }) => {
|
|
149
|
+
// const [sticky, setSticky] = useState(false);
|
|
150
|
+
// const [shouldRestyle, setShouldRestyle] = useState<boolean>();
|
|
151
|
+
// const stickyStatus = useRef<StickyStatus>(0);
|
|
152
|
+
// const [dimensionsBasic, setDimensionsBasic] = useState<DimensionsBasic>();
|
|
153
|
+
// const [dimensionsOnScroll, setDimensionsOnScroll] =
|
|
154
|
+
// useState<DimensionsOnScroll>();
|
|
155
|
+
// const [translateY, setTranslateY] = useState<number>(0);
|
|
156
|
+
// const [styleWrapper, setStyleWrapper] = useState({});
|
|
157
|
+
// const [styleInner, setStyleInner] = useState({});
|
|
158
|
+
// const [innerWidth, setInnerWidth] = useState<string>();
|
|
159
|
+
// const wrapperRef = useRef<HTMLDivElement>(null);
|
|
160
|
+
// const innerRef = useRef<HTMLDivElement>(null);
|
|
161
|
+
// const handleScroll = useCallback(() => {
|
|
162
|
+
// const wrapper = wrapperRef?.current;
|
|
163
|
+
// const container = wrapper?.parentElement || null;
|
|
164
|
+
// const inner = innerRef?.current;
|
|
165
|
+
// if (wrapper && inner && container) {
|
|
166
|
+
// const dimensions = getDimensionsOnScroll(wrapper, container, inner);
|
|
167
|
+
// setDimensionsOnScroll(dimensions);
|
|
168
|
+
// }
|
|
169
|
+
// }, []);
|
|
170
|
+
// const handleResize = useCallback(() => {
|
|
171
|
+
// const container = wrapperRef?.current?.parentElement || null;
|
|
172
|
+
// const inner = innerRef?.current;
|
|
173
|
+
// if (inner && container) {
|
|
174
|
+
// setDimensionsBasic(getDimensionsBasic(container, inner));
|
|
175
|
+
// // if (innerRef?.current) {
|
|
176
|
+
// // setInnerWidth(window.getComputedStyle(innerRef.current).width);
|
|
177
|
+
// // }
|
|
178
|
+
// // setSticky(wrapperRef.current.getBoundingClientRect().top <= top);
|
|
179
|
+
// }
|
|
180
|
+
// }, []);
|
|
181
|
+
// useEffect(() => {
|
|
182
|
+
// const container = wrapperRef?.current?.parentElement || null;
|
|
183
|
+
// const inner = innerRef?.current;
|
|
184
|
+
// if (inner && container) {
|
|
185
|
+
// setDimensionsBasic(getDimensionsBasic(container, inner));
|
|
186
|
+
// }
|
|
187
|
+
// window.addEventListener("scroll", handleScroll, { passive: true });
|
|
188
|
+
// window.addEventListener("resize", handleResize, { passive: true });
|
|
189
|
+
// return () => {
|
|
190
|
+
// window.removeEventListener("scroll", () => handleScroll);
|
|
191
|
+
// window.removeEventListener("resize", () => handleResize);
|
|
192
|
+
// };
|
|
193
|
+
// }, [wrapperRef, innerRef, handleScroll, handleResize]);
|
|
194
|
+
// // useEffect(() => {
|
|
195
|
+
// // if (sticky) {
|
|
196
|
+
// // setStyleInner({
|
|
197
|
+
// // position: "fixed",
|
|
198
|
+
// // zIndex: 1,
|
|
199
|
+
// // top,
|
|
200
|
+
// // width: innerWidth,
|
|
201
|
+
// // });
|
|
202
|
+
// // } else {
|
|
203
|
+
// // setStyleInner({});
|
|
204
|
+
// // }
|
|
205
|
+
// // }, [sticky, top, innerWidth]);
|
|
206
|
+
// return (
|
|
207
|
+
// <Wrapper
|
|
208
|
+
// ref={wrapperRef}
|
|
209
|
+
// sticky={Wrapper === "div" ? undefined : sticky}
|
|
210
|
+
// style={{
|
|
211
|
+
// position: "relative",
|
|
212
|
+
// }}
|
|
213
|
+
// >
|
|
214
|
+
// <Inner ref={innerRef} style={styleInner}>
|
|
215
|
+
// {children}
|
|
216
|
+
// </Inner>
|
|
217
|
+
// </Wrapper>
|
|
218
|
+
// );
|
|
219
|
+
// };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
export var StickyCss = function (_a) {
|
|
4
|
+
var top = _a.top, props = __rest(_a, ["top"]);
|
|
5
|
+
return _jsx("div", __assign({ style: { position: "sticky", top: 100 } }, props));
|
|
6
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./StickyCss";
|
package/Sticky/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./StickyCss";
|