@koine/react 1.0.12 → 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/Forms/Toggle/useToggle.d.ts +1 -1
- package/Forms/Toggle/useToggle.js +1 -1
- package/package.json +6 -7
- package/node/Alert/Alert.js +0 -14
- package/node/Alert/index.js +0 -4
- package/node/Animations/Reveal.js +0 -21
- package/node/Animations/Underline.js +0 -8
- package/node/Animations/index.js +0 -6
- package/node/Animations/useReveal.js +0 -75
- package/node/Autocomplete/AutocompleteDownshift.js +0 -161
- package/node/Autocomplete/AutocompleteDownshiftMultiselect.js +0 -356
- package/node/Autocomplete/AutocompleteMui.js +0 -180
- package/node/Autocomplete/AutocompleteReach.js +0 -115
- package/node/Autocomplete/components.js +0 -37
- package/node/Autocomplete/helpers.js +0 -32
- package/node/Autocomplete/index.js +0 -7
- package/node/Bg/BgColor.js +0 -25
- package/node/Bg/BgPhoto.js +0 -20
- package/node/Bg/BgSvg.js +0 -16
- package/node/Bg/index.js +0 -6
- package/node/Breadcrumbs/Breadcrumbs.js +0 -31
- package/node/Breadcrumbs/index.js +0 -4
- package/node/Buttons/Button.js +0 -17
- package/node/Buttons/ButtonComposite.js +0 -32
- package/node/Buttons/ButtonFab.js +0 -9
- package/node/Buttons/ButtonLink.js +0 -15
- package/node/Buttons/IconButton.js +0 -10
- package/node/Buttons/index.js +0 -8
- package/node/Calendar/CalendarDaygridCell.js +0 -61
- package/node/Calendar/CalendarDaygridNav.js +0 -28
- package/node/Calendar/CalendarDaygridTable.js +0 -61
- package/node/Calendar/CalendarLegend.js +0 -20
- package/node/Calendar/calendar-api-google.js +0 -131
- package/node/Calendar/index.js +0 -9
- package/node/Calendar/types.js +0 -2
- package/node/Calendar/useCalendar.js +0 -187
- package/node/Calendar/utils.js +0 -215
- package/node/Carousel/Carousel.js +0 -381
- package/node/Carousel/CarouselCss.js +0 -27
- package/node/Carousel/index.js +0 -4
- package/node/Collapsable/Collapsable.js +0 -4
- package/node/Collapsable/CollapsableReach.js +0 -253
- package/node/Collapsable/index.js +0 -5
- package/node/Debug/Debug.js +0 -13
- package/node/Debug/index.js +0 -4
- package/node/Details/Details.js +0 -67
- package/node/Details/index.js +0 -4
- package/node/Dialog/DialogMui.js +0 -83
- package/node/Dialog/css/bare.js +0 -24
- package/node/Dialog/index.js +0 -5
- package/node/Dialog/m/bare.js +0 -55
- package/node/Dialog/m/basic.js +0 -35
- package/node/Dialog/m/index.js +0 -8
- package/node/Dialog/sc/bare.js +0 -46
- package/node/Dialog/sc/framer.js +0 -19
- package/node/Dialog/sc/framerMaterial.js +0 -19
- package/node/Dialog/sc/material.js +0 -24
- package/node/Dialog/tw/bare.js +0 -45
- package/node/Dialog/tw/elegant.js +0 -23
- package/node/Dialog/tw/framer.js +0 -19
- package/node/Dialog/tw/framerMaterial.js +0 -19
- package/node/Dialog/tw/material.js +0 -23
- package/node/Editor/Editor--tiptap.js +0 -31
- package/node/Editor/components.js +0 -15
- package/node/Editor/index.js +0 -4
- package/node/Favicon/FaviconTags.js +0 -19
- package/node/Favicon/index.js +0 -4
- package/node/Form/Form.js +0 -65
- package/node/Form/index.js +0 -4
- package/node/Form/sc/bare.js +0 -23
- package/node/Forms/Checkbox/Checkbox.js +0 -21
- package/node/Forms/Checkbox/index.js +0 -4
- package/node/Forms/Feedback/Feedback.js +0 -13
- package/node/Forms/Feedback/index.js +0 -4
- package/node/Forms/Field/Field.js +0 -52
- package/node/Forms/Field/FieldControl.js +0 -51
- package/node/Forms/Field/FieldHint.js +0 -7
- package/node/Forms/Field/index.js +0 -5
- package/node/Forms/Input/Input.js +0 -20
- package/node/Forms/Input/index.js +0 -4
- package/node/Forms/InputGroup/InputGroup.js +0 -19
- package/node/Forms/InputGroup/index.js +0 -4
- package/node/Forms/Label/Label.js +0 -9
- package/node/Forms/Label/index.js +0 -4
- package/node/Forms/Password/Password.js +0 -20
- package/node/Forms/Password/index.js +0 -4
- package/node/Forms/Radio/Radio.js +0 -28
- package/node/Forms/Radio/index.js +0 -4
- package/node/Forms/Switch/Switch.js +0 -23
- package/node/Forms/Switch/index.js +0 -4
- package/node/Forms/Textarea/Textarea.js +0 -15
- package/node/Forms/Textarea/TextareaRich.js +0 -31
- package/node/Forms/Textarea/index.js +0 -5
- package/node/Forms/Toggle/Toggle.js +0 -37
- package/node/Forms/Toggle/index.js +0 -4
- package/node/Forms/Toggle/useToggle.js +0 -149
- package/node/Forms/antispam.js +0 -61
- package/node/Forms/helpers.js +0 -52
- package/node/Forms/index.js +0 -19
- package/node/Forms/styles.js +0 -32
- package/node/Gauge/Gauge.js +0 -106
- package/node/Grid/Grid.js +0 -56
- package/node/Grid/index.js +0 -4
- package/node/Hamburger/Hamburger.js +0 -56
- package/node/Hamburger/index.js +0 -4
- package/node/Header/index.js +0 -4
- package/node/Header/useHeader.js +0 -34
- package/node/Hidden/Hidden.js +0 -13
- package/node/Hidden/index.js +0 -4
- package/node/Img/index.js +0 -4
- package/node/Img/sc/bare.js +0 -42
- package/node/Img/types.js +0 -2
- package/node/Link/Link.js +0 -7
- package/node/Link/LinkBlank.js +0 -21
- package/node/Link/index.js +0 -5
- package/node/Menu/Menu.js +0 -7
- package/node/Menu/index.js +0 -4
- package/node/MenuItem/MenuItem.js +0 -7
- package/node/MenuItem/index.js +0 -4
- package/node/Meta/Meta.js +0 -9
- package/node/Meta/index.js +0 -4
- package/node/NoJs/NoJs.js +0 -10
- package/node/NoJs/index.js +0 -4
- package/node/Pagination/PaginationNav.js +0 -65
- package/node/Pagination/PaginationResults.js +0 -15
- package/node/Pagination/index.js +0 -5
- package/node/Pill/Pill.js +0 -10
- package/node/Pill/index.js +0 -4
- package/node/Progress/ProgressCircular.js +0 -19
- package/node/Progress/ProgressLinear.js +0 -28
- package/node/Progress/ProgressOverlay.js +0 -28
- package/node/Progress/index.js +0 -6
- package/node/Rating/Rating.js +0 -76
- package/node/Rating/index.js +0 -57
- package/node/Select/SelectDownshift.js +0 -41
- package/node/Select/components.js +0 -15
- package/node/Select/index.js +0 -7
- package/node/Sidebar/Sidebar.js +0 -27
- package/node/Sidebar/index.js +0 -4
- package/node/Spacing/Spacing.js +0 -49
- package/node/Spacing/index.js +0 -4
- package/node/Sticky/Sticky.js +0 -222
- package/node/Sticky/StickyCss.js +0 -10
- package/node/Sticky/index.js +0 -4
- package/node/Tabs/TabsMui.js +0 -49
- package/node/Tabs/index.js +0 -4
- package/node/Tabs/sc/bare.js +0 -87
- package/node/Tabs/tw/bare.js +0 -20
- package/node/Tabs/tw/material.js +0 -21
- package/node/Tabs/useTabs.js +0 -48
- package/node/Typography/CopyPasteVisible.js +0 -7
- package/node/Typography/Native.js +0 -17
- package/node/Typography/ReadMore.js +0 -47
- package/node/Typography/TextLoop.js +0 -51
- package/node/Typography/TypeStairs.js +0 -53
- package/node/Typography/index.js +0 -8
- package/node/css/index.js +0 -36
- package/node/helpers/classed.js +0 -72
- package/node/helpers/extend-component.js +0 -16
- package/node/helpers/index.js +0 -5
- package/node/hooks/index.js +0 -18
- package/node/hooks/types.js +0 -2
- package/node/hooks/useAsyncFn.js +0 -40
- package/node/hooks/useDateLocale.js +0 -42
- package/node/hooks/useEffectOnce.js +0 -12
- package/node/hooks/useFirstMountState.js +0 -16
- package/node/hooks/useFocus.js +0 -15
- package/node/hooks/useId.js +0 -12
- package/node/hooks/useIsomorphicLayoutEffect.js +0 -11
- package/node/hooks/useMount.js +0 -13
- package/node/hooks/useMountedState.js +0 -19
- package/node/hooks/usePrevious.js +0 -12
- package/node/hooks/useScrollPosition.js +0 -84
- package/node/hooks/useScrollTo.js +0 -25
- package/node/hooks/useTraceUpdate.js +0 -25
- package/node/hooks/useUpdateEffect.js +0 -18
- package/node/hooks/useWindowSize.js +0 -17
- package/node/index.js +0 -8
- package/node/m/MotionProvider.js +0 -43
- package/node/m/index.js +0 -9
- package/node/m/lite.js +0 -4
- package/node/m/max.js +0 -4
- package/node/sc/index.js +0 -37
- package/node/scm/index.js +0 -36
- package/node/shared/index.js +0 -11
- package/node/styles/Body.js +0 -16
- package/node/styles/Global.js +0 -21
- package/node/styles/index.js +0 -10
- package/node/styles/media.js +0 -160
- package/node/styles/spacing.js +0 -52
- package/node/styles/styled.js +0 -17
- package/node/styles/theme--vanilla.js +0 -61
- package/node/styles/theme.js +0 -45
- package/node/tw/index.js +0 -36
- package/node/twm/index.js +0 -36
- package/node/types.js +0 -2
|
@@ -8,7 +8,7 @@ export declare type UseToggleProps = Omit<FormControl, "value"> & {
|
|
|
8
8
|
options?: Option[];
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
|
-
* This hook is meant to
|
|
11
|
+
* This hook is meant to power Checkboxes, Switches and checkbox-like Radios
|
|
12
12
|
* components, it works in fact in two modes:
|
|
13
13
|
*
|
|
14
14
|
* 1: behaviour as standard checkbox
|
|
@@ -4,7 +4,7 @@ import { useCallback, useMemo } from "react";
|
|
|
4
4
|
import { useWatch } from "react-hook-form";
|
|
5
5
|
import { InputInvisible } from "../styles";
|
|
6
6
|
/**
|
|
7
|
-
* This hook is meant to
|
|
7
|
+
* This hook is meant to power Checkboxes, Switches and checkbox-like Radios
|
|
8
8
|
* components, it works in fact in two modes:
|
|
9
9
|
*
|
|
10
10
|
* 1: behaviour as standard checkbox
|
package/package.json
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koine/react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"main": "./node/index.js",
|
|
6
6
|
"typings": "./index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"styled-components": "^5.3.5",
|
|
9
|
-
"framer-motion": "^6.3.
|
|
9
|
+
"framer-motion": "^6.3.4",
|
|
10
10
|
"react": "^16.8 || ^17 || ^18",
|
|
11
|
-
"
|
|
12
|
-
"@mui/base": "^5.0.0-alpha.81",
|
|
11
|
+
"@mui/base": "^5.0.0-alpha.82",
|
|
13
12
|
"react-icons": "^4.3.1",
|
|
14
13
|
"date-fns": "^2.28.0",
|
|
15
14
|
"react-swipeable": "^7.0.0",
|
|
16
15
|
"@tiptap/react": "^2.0.0-beta.109",
|
|
17
|
-
"@tiptap/starter-kit": "^2.0.0-beta.
|
|
16
|
+
"@tiptap/starter-kit": "^2.0.0-beta.185",
|
|
18
17
|
"yup": "^0.32.11",
|
|
19
|
-
"react-hook-form": "^7.31.
|
|
20
|
-
"type-fest": "^2.
|
|
18
|
+
"react-hook-form": "^7.31.2",
|
|
19
|
+
"type-fest": "^2.13.0",
|
|
21
20
|
"tslib": "^2.4.0"
|
|
22
21
|
},
|
|
23
22
|
"peerDependencies": {},
|
package/node/Alert/Alert.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Alert = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
|
|
7
|
-
var AlertRoot = styled_components_1.default.div(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n font-size: 12px;\n ", "\n"], ["\n font-size: 12px;\n ", "\n"])), function (p) { return (p.$danger ? "color: var(--danger)" : ""); });
|
|
8
|
-
var AlertInner = styled_components_1.default.div(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n padding: 1em;\n background-color: rgba(0, 0, 0, 0.05);\n /* border: 1px solid var(--grey700); */\n /* background: pink; */\n /* color: red; */\n"], ["\n padding: 1em;\n background-color: rgba(0, 0, 0, 0.05);\n /* border: 1px solid var(--grey700); */\n /* background: pink; */\n /* color: red; */\n"])));
|
|
9
|
-
var Alert = function (_a) {
|
|
10
|
-
var $danger = _a.$danger, children = _a.children, props = tslib_1.__rest(_a, ["$danger", "children"]);
|
|
11
|
-
return ((0, jsx_runtime_1.jsx)(AlertRoot, tslib_1.__assign({ "$danger": $danger }, props, { children: (0, jsx_runtime_1.jsx)(AlertInner, { children: children }) })));
|
|
12
|
-
};
|
|
13
|
-
exports.Alert = Alert;
|
|
14
|
-
var templateObject_1, templateObject_2;
|
package/node/Alert/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Reveal = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
var framer_motion_1 = require("framer-motion");
|
|
7
|
-
var useReveal_1 = require("./useReveal");
|
|
8
|
-
var Reveal = function (_a) {
|
|
9
|
-
var children = _a.children, direction = _a.direction, offsetStartY = _a.offsetStartY, offsetEndY = _a.offsetEndY, offsetStartX = _a.offsetStartX, props = tslib_1.__rest(_a, ["children", "direction", "offsetStartY", "offsetEndY", "offsetStartX"]);
|
|
10
|
-
var effectOptions = { direction: direction, offsetStartY: offsetStartY, offsetEndY: offsetEndY, offsetStartX: offsetStartX };
|
|
11
|
-
var prefersReducedMotion = (0, framer_motion_1.useReducedMotion)();
|
|
12
|
-
var _b = (0, useReveal_1.useReveal)(effectOptions), ref = _b.ref, startY = _b.startY, endY = _b.endY, startX = _b.startX;
|
|
13
|
-
var scrollYProgress = (0, framer_motion_1.useViewportScroll)().scrollYProgress;
|
|
14
|
-
var xRange = (0, framer_motion_1.useTransform)(scrollYProgress, [startY, endY], [startX, 0]);
|
|
15
|
-
var opacityRange = (0, framer_motion_1.useTransform)(scrollYProgress, [startY, endY], [0, 1]);
|
|
16
|
-
var x = (0, framer_motion_1.useSpring)(xRange, { stiffness: 400, damping: 90 });
|
|
17
|
-
var opacity = (0, framer_motion_1.useSpring)(opacityRange);
|
|
18
|
-
// console.log("start, end", startY, endY)
|
|
19
|
-
return ((0, jsx_runtime_1.jsx)(framer_motion_1.motion.div, tslib_1.__assign({}, props, { ref: ref, style: prefersReducedMotion ? {} : { x: x, opacity: opacity } }, { children: children })));
|
|
20
|
-
};
|
|
21
|
-
exports.Reveal = Reveal;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnderlineSkewed = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
|
|
6
|
-
var framer_motion_1 = require("framer-motion");
|
|
7
|
-
exports.UnderlineSkewed = (0, styled_components_1.default)(framer_motion_1.m.i)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n display: block;\n position: absolute;\n top: 50%;\n left: 15%;\n right: 15%;\n height: 20px;\n margin-top: -10px;\n z-index: 0;\n pointer-events: none;\n background: var(--accent400);\n transform: skewY(-5deg);\n"], ["\n display: block;\n position: absolute;\n top: 50%;\n left: 15%;\n right: 15%;\n height: 20px;\n margin-top: -10px;\n z-index: 0;\n pointer-events: none;\n background: var(--accent400);\n transform: skewY(-5deg);\n"])));
|
|
8
|
-
var templateObject_1;
|
package/node/Animations/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./Reveal"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./Underline"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./useReveal"), exports);
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useReveal = void 0;
|
|
4
|
-
var react_1 = require("react");
|
|
5
|
-
function useReveal(_a) {
|
|
6
|
-
var _b = _a.direction, direction = _b === void 0 ? "left" : _b, _c = _a.offsetStartY, offsetStartY = _c === void 0 ? -2 : _c, _d = _a.offsetEndY, offsetEndY = _d === void 0 ? 0 : _d, _e = _a.offsetStartX, offsetStartX = _e === void 0 ? "all" : _e;
|
|
7
|
-
var ref = (0, react_1.useRef)(null);
|
|
8
|
-
var _f = (0, react_1.useState)(0), startY = _f[0], setStartY = _f[1];
|
|
9
|
-
var _g = (0, react_1.useState)(0), endY = _g[0], setEndY = _g[1];
|
|
10
|
-
var _h = (0, react_1.useState)(0), startX = _h[0], setStartX = _h[1];
|
|
11
|
-
(0, react_1.useEffect)(function () {
|
|
12
|
-
if (!ref.current) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
var rect = ref.current.getBoundingClientRect();
|
|
16
|
-
// scroll position from top of the window
|
|
17
|
-
var scrollTop = window.scrollY || document.documentElement.scrollTop;
|
|
18
|
-
var elementHeight = rect.height;
|
|
19
|
-
// rect.top is the distance from the currently visible viewport to the top
|
|
20
|
-
// of the given element
|
|
21
|
-
// so distanceTop is the distance between the top edge of the window and the
|
|
22
|
-
// top edge of the given element
|
|
23
|
-
var elementTop = rect.top;
|
|
24
|
-
var distanceTop = elementTop + scrollTop;
|
|
25
|
-
var offsetTop = offsetStartY ? elementHeight * offsetStartY : 0;
|
|
26
|
-
var offsetBottom = offsetEndY ? elementHeight * offsetEndY : offsetTop;
|
|
27
|
-
// the distance of the element from the top divided by the full height
|
|
28
|
-
// of the window gives back the start position of the given element in
|
|
29
|
-
// a scale from 0 to 1
|
|
30
|
-
var startY = (distanceTop + offsetTop) / document.body.clientHeight;
|
|
31
|
-
// same for the end, we just add the given element height to the first value
|
|
32
|
-
var endY = (distanceTop + elementHeight + offsetBottom) / document.body.clientHeight;
|
|
33
|
-
var startX;
|
|
34
|
-
if (offsetStartX === "all") {
|
|
35
|
-
startX = direction === "left" ? -rect.right : rect.left;
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
startX = rect.width * offsetStartX;
|
|
39
|
-
startX = direction === "left" ? -startX : startX;
|
|
40
|
-
}
|
|
41
|
-
// addMarker(startY + "px");
|
|
42
|
-
// addMarker(endY + "px");
|
|
43
|
-
// console.log("start", startY, "end", endY, "startX", startX)
|
|
44
|
-
setStartY(startY);
|
|
45
|
-
setEndY(endY);
|
|
46
|
-
setStartX(startX);
|
|
47
|
-
// addMarker(startY * 100 + "%", "blue", "fixed");
|
|
48
|
-
// addMarker(endY * 100 + "%", "blue", "fixed");
|
|
49
|
-
}, [
|
|
50
|
-
setStartY,
|
|
51
|
-
setEndY,
|
|
52
|
-
setStartX,
|
|
53
|
-
offsetStartY,
|
|
54
|
-
offsetEndY,
|
|
55
|
-
offsetStartX,
|
|
56
|
-
direction,
|
|
57
|
-
]);
|
|
58
|
-
return { ref: ref, startY: startY, endY: endY, startX: startX };
|
|
59
|
-
}
|
|
60
|
-
exports.useReveal = useReveal;
|
|
61
|
-
// function addMarker(top: string, color = "red", position = "absolute") {
|
|
62
|
-
// const div = document.createElement("div");
|
|
63
|
-
// div.setAttribute(
|
|
64
|
-
// "style",
|
|
65
|
-
// `
|
|
66
|
-
// position: ${position};
|
|
67
|
-
// top: ${top};
|
|
68
|
-
// left: 0;
|
|
69
|
-
// right: 0;
|
|
70
|
-
// height: 1px;
|
|
71
|
-
// background: ${color};
|
|
72
|
-
// `
|
|
73
|
-
// );
|
|
74
|
-
// document.body.appendChild(div);
|
|
75
|
-
// }
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Autocomplete = void 0;
|
|
4
|
-
// TODO: remove, just use mui version...
|
|
5
|
-
exports.Autocomplete = null;
|
|
6
|
-
// import {
|
|
7
|
-
// forwardRef,
|
|
8
|
-
// useCallback,
|
|
9
|
-
// useState,
|
|
10
|
-
// ForwardedRef,
|
|
11
|
-
// ReactNode,
|
|
12
|
-
// ComponentPropsWithRef,
|
|
13
|
-
// CSSProperties,
|
|
14
|
-
// } from "react";
|
|
15
|
-
// import { useCombobox } from "downshift";
|
|
16
|
-
// import { SetRequired } from "@koine/utils";
|
|
17
|
-
// // import debounce from "lodash.debounce";
|
|
18
|
-
// import {
|
|
19
|
-
// AutocompleteRoot,
|
|
20
|
-
// AutocompleteLabel,
|
|
21
|
-
// AutocompleteInputWrap,
|
|
22
|
-
// AutocompleteInput,
|
|
23
|
-
// AutocompleteInputArrow,
|
|
24
|
-
// AutocompleteMenu,
|
|
25
|
-
// AutocompleteMenuItem,
|
|
26
|
-
// } from "./components";
|
|
27
|
-
// import { defaultOptionsFilterFn, triggerOnChange } from "../Forms/helpers";
|
|
28
|
-
// import { InputProgress } from "../Forms/styles";
|
|
29
|
-
// export type AutocompleteOption = Option;
|
|
30
|
-
// export type AutocompleteValue = null | AutocompleteOption;
|
|
31
|
-
// export type AutocompleteProps = SetRequired<
|
|
32
|
-
// Omit<ComponentPropsWithRef<"input">, "onSelect">,
|
|
33
|
-
// "onChange" | "name"
|
|
34
|
-
// > & {
|
|
35
|
-
// freeSolo?: boolean;
|
|
36
|
-
// onSelect?: (option?: AutocompleteValue) => any;
|
|
37
|
-
// options?: AutocompleteOption[];
|
|
38
|
-
// loadOptions: (query?: string) => Promise<AutocompleteOption[]>;
|
|
39
|
-
// label?: string | ReactNode;
|
|
40
|
-
// className?: string;
|
|
41
|
-
// style?: CSSProperties;
|
|
42
|
-
// $ref: ForwardedRef<HTMLInputElement>;
|
|
43
|
-
// };
|
|
44
|
-
// export const Autocomplete = forwardRef<HTMLInputElement, AutocompleteProps>(
|
|
45
|
-
// function Autocomplete(
|
|
46
|
-
// {
|
|
47
|
-
// freeSolo,
|
|
48
|
-
// onSelect,
|
|
49
|
-
// options = [],
|
|
50
|
-
// label,
|
|
51
|
-
// name,
|
|
52
|
-
// value,
|
|
53
|
-
// onChange,
|
|
54
|
-
// loadOptions,
|
|
55
|
-
// className,
|
|
56
|
-
// style,
|
|
57
|
-
// $ref,
|
|
58
|
-
// ...props
|
|
59
|
-
// },
|
|
60
|
-
// ref
|
|
61
|
-
// ) {
|
|
62
|
-
// const [items, setItems] = useState(options);
|
|
63
|
-
// const [loading, setLoading] = useState(false);
|
|
64
|
-
// const triggerChange = useCallback(
|
|
65
|
-
// (selectedItem?: AutocompleteValue, inputValue?: string) => {
|
|
66
|
-
// const value = freeSolo ? inputValue : selectedItem?.value;
|
|
67
|
-
// triggerOnChange(onChange, name, value || "");
|
|
68
|
-
// if (onSelect) onSelect(selectedItem);
|
|
69
|
-
// },
|
|
70
|
-
// [onChange, onSelect, name, freeSolo]
|
|
71
|
-
// );
|
|
72
|
-
// const handleInputValueChange = useCallback(
|
|
73
|
-
// async ({ inputValue }) => {
|
|
74
|
-
// if (inputValue) {
|
|
75
|
-
// if (loadOptions) {
|
|
76
|
-
// setLoading(true);
|
|
77
|
-
// try {
|
|
78
|
-
// const newOptions = await loadOptions(inputValue);
|
|
79
|
-
// setItems(newOptions);
|
|
80
|
-
// } catch (e) {}
|
|
81
|
-
// setLoading(false);
|
|
82
|
-
// } else {
|
|
83
|
-
// setItems(defaultOptionsFilterFn(options, inputValue));
|
|
84
|
-
// }
|
|
85
|
-
// } else {
|
|
86
|
-
// setItems(options);
|
|
87
|
-
// // clear like behaviour
|
|
88
|
-
// triggerChange({ value: "", label: "" });
|
|
89
|
-
// }
|
|
90
|
-
// },
|
|
91
|
-
// [loadOptions, triggerChange]
|
|
92
|
-
// );
|
|
93
|
-
// const {
|
|
94
|
-
// isOpen,
|
|
95
|
-
// // selectedItem,
|
|
96
|
-
// getToggleButtonProps,
|
|
97
|
-
// getLabelProps,
|
|
98
|
-
// getMenuProps,
|
|
99
|
-
// getInputProps,
|
|
100
|
-
// getComboboxProps,
|
|
101
|
-
// highlightedIndex,
|
|
102
|
-
// getItemProps,
|
|
103
|
-
// openMenu,
|
|
104
|
-
// } = useCombobox<null | AutocompleteOption>({
|
|
105
|
-
// id: `Autocomplete-${name}`,
|
|
106
|
-
// items,
|
|
107
|
-
// // initialInputValue: value,
|
|
108
|
-
// onSelectedItemChange: ({ selectedItem, inputValue }) => {
|
|
109
|
-
// triggerChange(selectedItem, inputValue);
|
|
110
|
-
// },
|
|
111
|
-
// // itemToString: (item) => (item ? item.label || item.value : ""),
|
|
112
|
-
// onInputValueChange: handleInputValueChange,
|
|
113
|
-
// });
|
|
114
|
-
// // const debouncedInputValueChangeHandler = useCallback(
|
|
115
|
-
// // debounce(handleInputValueChange, 200),
|
|
116
|
-
// // [handleInputValueChange]
|
|
117
|
-
// // );
|
|
118
|
-
// return (
|
|
119
|
-
// <AutocompleteRoot className={className} style={style}>
|
|
120
|
-
// {label && (
|
|
121
|
-
// <AutocompleteLabel {...getLabelProps()}>{label}</AutocompleteLabel>
|
|
122
|
-
// )}
|
|
123
|
-
// <AutocompleteInputWrap {...getComboboxProps()}>
|
|
124
|
-
// <AutocompleteInput
|
|
125
|
-
// {...getInputProps({
|
|
126
|
-
// onFocus: openMenu,
|
|
127
|
-
// onClick: openMenu,
|
|
128
|
-
// ref: $ref || ref,
|
|
129
|
-
// // itemRef: ref,
|
|
130
|
-
// })}
|
|
131
|
-
// {...props}
|
|
132
|
-
// />
|
|
133
|
-
// {!!items.length && (
|
|
134
|
-
// <AutocompleteInputArrow
|
|
135
|
-
// {...getToggleButtonProps()}
|
|
136
|
-
// aria-label={"toggle menu"}
|
|
137
|
-
// />
|
|
138
|
-
// )}
|
|
139
|
-
// {loading && <InputProgress />}
|
|
140
|
-
// </AutocompleteInputWrap>
|
|
141
|
-
// <AutocompleteMenu {...getMenuProps()}>
|
|
142
|
-
// {isOpen &&
|
|
143
|
-
// items
|
|
144
|
-
// // .filter(item => !inputValue || item.includes(inputValue))
|
|
145
|
-
// .map(
|
|
146
|
-
// (item, index) =>
|
|
147
|
-
// item && (
|
|
148
|
-
// <AutocompleteMenuItem
|
|
149
|
-
// $active={highlightedIndex === index}
|
|
150
|
-
// key={`${item.value}${index}`}
|
|
151
|
-
// {...getItemProps({ item, index })}
|
|
152
|
-
// >
|
|
153
|
-
// {item.label}
|
|
154
|
-
// </AutocompleteMenuItem>
|
|
155
|
-
// )
|
|
156
|
-
// )}
|
|
157
|
-
// </AutocompleteMenu>
|
|
158
|
-
// </AutocompleteRoot>
|
|
159
|
-
// );
|
|
160
|
-
// }
|
|
161
|
-
// );
|