@choc-ui/chakra-autocomplete 6.1.5 → 6.1.7
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/dist/index.es.js +40 -39
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as a, jsxs as Y, Fragment as
|
|
1
|
+
import { jsx as a, jsxs as Y, Fragment as Ye } from "react/jsx-runtime";
|
|
2
2
|
import * as N from "react";
|
|
3
3
|
import E, { useMemo as U, useRef as te, useState as Le, useEffect as L, forwardRef as B, useImperativeHandle as ct, memo as ft } from "react";
|
|
4
|
-
import { useDisclosure as dt, useControllableState as pt, IconButton as mt, Portal as gt, Popover as P, chakra as ht, Flex as pe, Box as je, Separator as Ve, Group as vt, InputElement as $e, Input as yt,
|
|
4
|
+
import { useDisclosure as dt, useControllableState as pt, IconButton as mt, Portal as gt, Popover as P, chakra as ht, Flex as pe, Box as je, Separator as Ve, Group as vt, InputElement as $e, Input as yt, PopoverAnchor as bt, Spinner as Xe, Center as Ct, Tag as Q } from "@chakra-ui/react";
|
|
5
5
|
const [It, W] = wt();
|
|
6
6
|
function wt() {
|
|
7
7
|
const e = N.createContext(void 0);
|
|
@@ -22,16 +22,16 @@ function xt(e) {
|
|
|
22
22
|
function Ne(e) {
|
|
23
23
|
return e?.length ? e[e.length - 1] : void 0;
|
|
24
24
|
}
|
|
25
|
-
function
|
|
25
|
+
function qe(e, t, n = 1, r = !0) {
|
|
26
26
|
if (t === 0) return -1;
|
|
27
27
|
let o = e + n;
|
|
28
28
|
return e === -1 && (o = n > 0 ? 0 : t - 1), r ? o = (o % t + t) % t : o = Math.max(0, Math.min(o, t - 1)), o;
|
|
29
29
|
}
|
|
30
30
|
function St(e, t, n = !0) {
|
|
31
|
-
return
|
|
31
|
+
return qe(e, t, -1, n);
|
|
32
32
|
}
|
|
33
33
|
function Ot(e, t, n = !0) {
|
|
34
|
-
const r =
|
|
34
|
+
const r = qe(e, t.length, 1, n);
|
|
35
35
|
return t[r];
|
|
36
36
|
}
|
|
37
37
|
function At(e, t, n = !0) {
|
|
@@ -56,7 +56,7 @@ function Te(e) {
|
|
|
56
56
|
function ce(e) {
|
|
57
57
|
return typeof e > "u";
|
|
58
58
|
}
|
|
59
|
-
function
|
|
59
|
+
function Je(e) {
|
|
60
60
|
return typeof e < "u";
|
|
61
61
|
}
|
|
62
62
|
function Rt(e, t) {
|
|
@@ -115,10 +115,10 @@ var ge = function(e, t) {
|
|
|
115
115
|
for (var n = 0, r = t.length, o = e.length; n < r; n++, o++)
|
|
116
116
|
e[o] = t[n];
|
|
117
117
|
return e;
|
|
118
|
-
},
|
|
118
|
+
}, Ze = function(e, t) {
|
|
119
119
|
for (var n, r = N.Children.toArray(e), o = [], i = 0, l = r; i < l.length; i++) {
|
|
120
120
|
var u = l[i];
|
|
121
|
-
t(u) && (o = ae(ae([], o), [u])), !((n = u.props) === null || n === void 0) && n.children && (o = ae(ae([], o),
|
|
121
|
+
t(u) && (o = ae(ae([], o), [u])), !((n = u.props) === null || n === void 0) && n.children && (o = ae(ae([], o), Ze(u.props.children, t)));
|
|
122
122
|
}
|
|
123
123
|
return o;
|
|
124
124
|
};
|
|
@@ -140,12 +140,12 @@ function He(e, t, n = 2) {
|
|
|
140
140
|
const Ge = (e) => (typeof e == "string" || typeof e == "number" ? e : e[Object.keys(e)[0]])?.toString(), Ft = (e, t) => typeof e != "string" || Te(t) ? e : e.toString().replace(
|
|
141
141
|
new RegExp(Gt(t), "gi"),
|
|
142
142
|
(r) => `<mark>${r}</mark>`
|
|
143
|
-
), Dt = (e) =>
|
|
143
|
+
), Dt = (e) => Ze(
|
|
144
144
|
e,
|
|
145
145
|
(n) => n?.type?.displayName === "AutoCompleteItem"
|
|
146
146
|
).map((n) => {
|
|
147
147
|
const r = Rt(n.props, ["value", "label", "fixed", "disabled"]), { getValue: o = Ge } = n.props, i = o(r.value);
|
|
148
|
-
return { ...
|
|
148
|
+
return { ...Je(r.label) ? r : { ...r, label: i }, value: i, originalValue: r.value };
|
|
149
149
|
}), Tt = () => ({
|
|
150
150
|
bg: "whiteAlpha.100",
|
|
151
151
|
_light: {
|
|
@@ -161,7 +161,7 @@ const Mt = (e, t) => ge(
|
|
|
161
161
|
), Wt = (e, t) => ge(
|
|
162
162
|
e,
|
|
163
163
|
(r) => r?.type?.displayName === "AutoCompleteItem" && r.props.value === t?.value
|
|
164
|
-
), kt = (e, t) =>
|
|
164
|
+
), kt = (e, t) => Je(
|
|
165
165
|
ge(e, (n) => {
|
|
166
166
|
const r = m(
|
|
167
167
|
n.props?.getValue || Ge,
|
|
@@ -221,14 +221,14 @@ function zt(e) {
|
|
|
221
221
|
(s, d) => h ? s.fixed || d < h : !0
|
|
222
222
|
),
|
|
223
223
|
[j, C, We, h, X]
|
|
224
|
-
), se = r ? [{ value: j, noFilter: !0, creatable: !0 }] : [], v = U(() => [...xe, ...se], [xe, se]),
|
|
224
|
+
), se = r ? [{ value: j, noFilter: !0, creatable: !0 }] : [], v = U(() => [...xe, ...se], [xe, se]), rt = U(() => [...C, ...se], [C, se]), [F, Se] = pt({
|
|
225
225
|
defaultValue: w.map((s) => s?.toString()),
|
|
226
226
|
value: Ce,
|
|
227
227
|
onChange: (s) => {
|
|
228
228
|
const d = v.find((S) => S.value === s.at(-1));
|
|
229
229
|
if (!d) return;
|
|
230
230
|
const I = s.map(
|
|
231
|
-
(S) =>
|
|
231
|
+
(S) => rt.find((R) => R.value === S)
|
|
232
232
|
);
|
|
233
233
|
m(
|
|
234
234
|
e.onChange,
|
|
@@ -242,15 +242,15 @@ function zt(e) {
|
|
|
242
242
|
}, [v.length, i, x]);
|
|
243
243
|
const [K, D] = Le(
|
|
244
244
|
t ? C[0]?.value : null
|
|
245
|
-
),
|
|
245
|
+
), ot = e.maxSelections || F.length + 1, Oe = v.findIndex((s) => s.value === K), it = Ot(
|
|
246
246
|
Oe,
|
|
247
247
|
v,
|
|
248
248
|
!!e.rollNavigation
|
|
249
|
-
),
|
|
249
|
+
), st = At(
|
|
250
250
|
Oe,
|
|
251
251
|
v,
|
|
252
252
|
!!e.rollNavigation
|
|
253
|
-
), le = xt(v),
|
|
253
|
+
), le = xt(v), lt = Ne(v), ke = !v.some(
|
|
254
254
|
(s) => s.value === K
|
|
255
255
|
);
|
|
256
256
|
L(() => {
|
|
@@ -271,7 +271,7 @@ function zt(e) {
|
|
|
271
271
|
}, [K, e.onOptionFocus]);
|
|
272
272
|
const Ae = (s) => {
|
|
273
273
|
const d = v.find((S) => S.value === s), I = d?.label || d?.value;
|
|
274
|
-
J(() => f ? "" : I ?? ""), !F.includes(s) && F.length <
|
|
274
|
+
J(() => f ? "" : I ?? ""), !F.includes(s) && F.length < ot && Se((S) => f ? [...S, s] : [s]), f && M.current?.focus(), e.focusInputOnSelect && M.current?.focus(), m(e.onSelectOption, {
|
|
275
275
|
item: d,
|
|
276
276
|
selectMethod: H.current,
|
|
277
277
|
isNewInput: d?.creatable
|
|
@@ -286,7 +286,7 @@ function zt(e) {
|
|
|
286
286
|
});
|
|
287
287
|
const I = C.find((R) => R.value === s), S = I?.label || I?.value;
|
|
288
288
|
j === S && J(""), d && M.current?.focus();
|
|
289
|
-
},
|
|
289
|
+
}, ut = (s) => {
|
|
290
290
|
Se([]), s && M.current?.focus();
|
|
291
291
|
}, Be = f ? F.map((s) => ({
|
|
292
292
|
label: C.find((d) => d.value === s?.toString())?.label || s,
|
|
@@ -332,7 +332,7 @@ function zt(e) {
|
|
|
332
332
|
...Z
|
|
333
333
|
},
|
|
334
334
|
input: {
|
|
335
|
-
|
|
335
|
+
readOnly: c,
|
|
336
336
|
onFocus: (p) => {
|
|
337
337
|
m(R, p), e.openOnFocus && !c && $(), e.selectOnFocus && p.target.select(), g && oe(!0);
|
|
338
338
|
},
|
|
@@ -362,11 +362,11 @@ function zt(e) {
|
|
|
362
362
|
return;
|
|
363
363
|
}
|
|
364
364
|
if (b === "ArrowDown") {
|
|
365
|
-
x ? D(
|
|
365
|
+
x ? D(it?.value) : $(), p.preventDefault();
|
|
366
366
|
return;
|
|
367
367
|
}
|
|
368
368
|
if (b === "ArrowUp") {
|
|
369
|
-
x ? D(
|
|
369
|
+
x ? D(st?.value) : $(), p.preventDefault();
|
|
370
370
|
return;
|
|
371
371
|
}
|
|
372
372
|
if (b === "Tab") {
|
|
@@ -378,7 +378,7 @@ function zt(e) {
|
|
|
378
378
|
return;
|
|
379
379
|
}
|
|
380
380
|
if (b === "End") {
|
|
381
|
-
D(
|
|
381
|
+
D(lt?.value), p.preventDefault();
|
|
382
382
|
return;
|
|
383
383
|
}
|
|
384
384
|
b === "Escape" && (G(), p.preventDefault());
|
|
@@ -404,7 +404,7 @@ function zt(e) {
|
|
|
404
404
|
onMouseOver: Ee,
|
|
405
405
|
//sx,
|
|
406
406
|
...ue
|
|
407
|
-
} = s, _ = d ? Z : b(Z)?.toString(), Pe = _ === K,
|
|
407
|
+
} = s, _ = d ? Z : b(Z)?.toString(), Pe = _ === K, at = v.findIndex((ee) => ee.value === _) >= 0, Re = R || z || _;
|
|
408
408
|
return {
|
|
409
409
|
item: {
|
|
410
410
|
...typeof Re != "string" || !o ? { children: Re } : {
|
|
@@ -436,7 +436,7 @@ function zt(e) {
|
|
|
436
436
|
...ue
|
|
437
437
|
},
|
|
438
438
|
root: {
|
|
439
|
-
isValidSuggestion:
|
|
439
|
+
isValidSuggestion: at,
|
|
440
440
|
value: _
|
|
441
441
|
}
|
|
442
442
|
};
|
|
@@ -452,20 +452,20 @@ function zt(e) {
|
|
|
452
452
|
placement: q,
|
|
453
453
|
query: j,
|
|
454
454
|
removeItem: ze,
|
|
455
|
-
resetItems:
|
|
455
|
+
resetItems: ut,
|
|
456
456
|
setQuery: J,
|
|
457
457
|
tags: Be,
|
|
458
458
|
value: k,
|
|
459
459
|
values: F
|
|
460
460
|
};
|
|
461
461
|
}
|
|
462
|
-
var
|
|
462
|
+
var et = {
|
|
463
463
|
color: void 0,
|
|
464
464
|
size: void 0,
|
|
465
465
|
className: void 0,
|
|
466
466
|
style: void 0,
|
|
467
467
|
attr: void 0
|
|
468
|
-
}, Ke = E.createContext && /* @__PURE__ */ E.createContext(
|
|
468
|
+
}, Ke = E.createContext && /* @__PURE__ */ E.createContext(et), Bt = ["attr", "size", "title"];
|
|
469
469
|
function Vt(e, t) {
|
|
470
470
|
if (e == null) return {};
|
|
471
471
|
var n = $t(e, t), r, o;
|
|
@@ -534,15 +534,15 @@ function Qt(e, t) {
|
|
|
534
534
|
}
|
|
535
535
|
return (t === "string" ? String : Number)(e);
|
|
536
536
|
}
|
|
537
|
-
function
|
|
537
|
+
function tt(e) {
|
|
538
538
|
return e && e.map((t, n) => /* @__PURE__ */ E.createElement(t.tag, de({
|
|
539
539
|
key: n
|
|
540
|
-
}, t.attr),
|
|
540
|
+
}, t.attr), tt(t.child)));
|
|
541
541
|
}
|
|
542
542
|
function Ut(e) {
|
|
543
543
|
return (t) => /* @__PURE__ */ E.createElement(Yt, fe({
|
|
544
544
|
attr: de({}, e.attr)
|
|
545
|
-
}, t),
|
|
545
|
+
}, t), tt(e.child));
|
|
546
546
|
}
|
|
547
547
|
function Yt(e) {
|
|
548
548
|
var t = (n) => {
|
|
@@ -565,7 +565,7 @@ function Yt(e) {
|
|
|
565
565
|
xmlns: "http://www.w3.org/2000/svg"
|
|
566
566
|
}), i && /* @__PURE__ */ E.createElement("title", null, i), e.children);
|
|
567
567
|
};
|
|
568
|
-
return Ke !== void 0 ? /* @__PURE__ */ E.createElement(Ke.Consumer, null, (n) => t(n)) : t(
|
|
568
|
+
return Ke !== void 0 ? /* @__PURE__ */ E.createElement(Ke.Consumer, null, (n) => t(n)) : t(et);
|
|
569
569
|
}
|
|
570
570
|
function Xt(e) {
|
|
571
571
|
return Ut({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M18 6 6 18" }, child: [] }, { tag: "path", attr: { d: "m6 6 12 12" }, child: [] }] })(e);
|
|
@@ -646,11 +646,11 @@ const nn = B(
|
|
|
646
646
|
);
|
|
647
647
|
}, []);
|
|
648
648
|
const { children: f, dangerouslySetInnerHTML: y, ...O } = u.item, w = me(O, ["groupId"]);
|
|
649
|
-
return c ? /* @__PURE__ */ a(pe, { ref: l, ...
|
|
649
|
+
return c ? /* @__PURE__ */ a(pe, { ref: l, ...nt, ...w, children: f || /* @__PURE__ */ a("span", { dangerouslySetInnerHTML: y }) }) : null;
|
|
650
650
|
}
|
|
651
651
|
);
|
|
652
652
|
nn.displayName = "AutoCompleteItem";
|
|
653
|
-
const
|
|
653
|
+
const nt = {
|
|
654
654
|
mx: "2",
|
|
655
655
|
px: "2",
|
|
656
656
|
py: "2",
|
|
@@ -673,7 +673,7 @@ function rn(e) {
|
|
|
673
673
|
},
|
|
674
674
|
!0
|
|
675
675
|
).item, h = u.some((O) => O.value === l), f = Te(l) ? t : !0;
|
|
676
|
-
return o.creatable && f && !h ? /* @__PURE__ */ a(pe, { ...
|
|
676
|
+
return o.creatable && f && !h ? /* @__PURE__ */ a(pe, { ...nt, ...g, ...r, children: c || `Add ${l}` }) : null;
|
|
677
677
|
}
|
|
678
678
|
rn.displayName = "AutoCompleteCreatable";
|
|
679
679
|
const on = B(
|
|
@@ -737,8 +737,9 @@ const ln = {
|
|
|
737
737
|
] });
|
|
738
738
|
}
|
|
739
739
|
), cn = B((e, t) => {
|
|
740
|
-
const { isLoading: n } = W(), { loadingIcon: r, ...o } = e, i = me(o, ["children", "wrapStyles", "hidePlaceholder"])
|
|
741
|
-
|
|
740
|
+
const { isLoading: n } = W(), { loadingIcon: r, ...o } = e, i = me(o, ["children", "wrapStyles", "hidePlaceholder"]);
|
|
741
|
+
let l;
|
|
742
|
+
return n && (l = r || /* @__PURE__ */ a(Xe, {})), /* @__PURE__ */ a(an, { w: "full", endElement: /* @__PURE__ */ a(Ye, { children: l }), children: /* @__PURE__ */ a(yt, { ...i, ref: t }) });
|
|
742
743
|
}), fn = B(
|
|
743
744
|
(e, t) => {
|
|
744
745
|
const {
|
|
@@ -821,8 +822,8 @@ const dn = (e) => {
|
|
|
821
822
|
(e, t) => {
|
|
822
823
|
const { children: n, loadingState: r, ...o } = e, { listRef: i, isLoading: l } = W(), u = _e(t, i), [c, g] = mn(n);
|
|
823
824
|
return /* @__PURE__ */ a(Jt, { width: "auto", children: /* @__PURE__ */ Y(en, { ref: u, w: "inherit", ...hn, ...o, children: [
|
|
824
|
-
l && /* @__PURE__ */ a(Ct, { children: r || /* @__PURE__ */ a(
|
|
825
|
-
!l && /* @__PURE__ */ Y(
|
|
825
|
+
l && /* @__PURE__ */ a(Ct, { children: r || /* @__PURE__ */ a(Xe, { size: "md" }) }),
|
|
826
|
+
!l && /* @__PURE__ */ Y(Ye, { children: [
|
|
826
827
|
c,
|
|
827
828
|
/* @__PURE__ */ a(dn, {}),
|
|
828
829
|
g
|
|
@@ -895,7 +896,7 @@ export {
|
|
|
895
896
|
gn as AutoCompleteList,
|
|
896
897
|
It as AutoCompleteProvider,
|
|
897
898
|
An as AutoCompleteTag,
|
|
898
|
-
|
|
899
|
+
nt as baseItemStyles,
|
|
899
900
|
wt as createContext,
|
|
900
901
|
zt as useAutoComplete,
|
|
901
902
|
W as useAutoCompleteContext
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),i=require("react"),f=require("@chakra-ui/react");function it(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const R=it(i),[ke,M]=Be();function Be(){const e=R.createContext(void 0);e.displayName="AutoCompleteContext";function t(){const n=R.useContext(e),r="useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`";if(!n){const o=new Error(r);throw o.name="ContextError",Error.captureStackTrace?.(o,t),o}return n}return[e.Provider,t,e]}function ut(e){return e?.[0]}function we(e){return e?.length?e[e.length-1]:void 0}function We(e,t,n=1,r=!0){if(t===0)return-1;let o=e+n;return e===-1&&(o=n>0?0:t-1),r?o=(o%t+t)%t:o=Math.max(0,Math.min(o,t-1)),o}function at(e,t,n=!0){return We(e,t,-1,n)}function ct(e,t,n=!0){const r=We(e,t.length,1,n);return t[r]}function ft(e,t,n=!0){const r=at(e,t.length,n);return t[r]}function je(e){return Array.isArray(e)}function pt(e){return je(e)&&e.length===0}function Se(e){return e!==null&&typeof e=="object"&&!je(e)}function dt(e){return Se(e)&&Object.keys(e).length===0}function Ae(e){return je(e)?pt(e):Se(e)?dt(e):e==null||e===""}function oe(e){return typeof e>"u"}function ze(e){return typeof e<"u"}function mt(e,t){const n={};return t.forEach(r=>{r in e&&(n[r]=e[r])}),n}function ie(e,t){const n={...e};return t.forEach(r=>{delete n[r]}),n}function gt(e){return typeof e=="function"}function h(e,...t){return gt(e)?e(...t):e}function ht(e,t){if(e!=null){if(typeof e=="function"){e(t);return}try{e.current=t}catch{throw new Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function vt(...e){return t=>{e.forEach(n=>{ht(n,t)})}}function Ee(...e){return i.useMemo(()=>vt(...e),e)}var ue=function(e,t){for(var n,r=R.Children.toArray(e),o=0,s=r;o<s.length;o++){var a=s[o];if(t(a))return a;if(!((n=a.props)===null||n===void 0)&&n.children){var c=ue(a.props.children,t);if(c)return c}}},re=function(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e},Ve=function(e,t){for(var n,r=R.Children.toArray(e),o=[],s=0,a=r;s<a.length;s++){var c=a[s];t(c)&&(o=re(re([],o),[c])),!((n=c.props)===null||n===void 0)&&n.children&&(o=re(re([],o),Ve(c.props.children,t)))}return o};function De(e,t,n=2){function r(d,x){d=" ".repeat(x-1)+d.toLowerCase()+" ".repeat(x-1);let E=new Array(d.length-x+1);for(let j=0;j<E.length;j++)E[j]=d.slice(j,j+x);return E}if(!e?.length||!t?.length)return 0;let o=e.length<t.length?e:t,s=e.length<t.length?t:e,a=r(o,n),c=r(s,n),p=new Set(a),v=c.length,y=0;for(let d of c)p.delete(d)&&y++;return y/v}const Pe=e=>(typeof e=="string"||typeof e=="number"?e:e[Object.keys(e)[0]])?.toString(),yt=(e,t)=>typeof e!="string"||Ae(t)?e:e.toString().replace(new RegExp(It(t),"gi"),r=>`<mark>${r}</mark>`),bt=e=>Ve(e,n=>n?.type?.displayName==="AutoCompleteItem").map(n=>{const r=mt(n.props,["value","label","fixed","disabled"]),{getValue:o=Pe}=n.props,s=o(r.value);return{...ze(r.label)?r:{...r,label:s},value:s,originalValue:r.value}}),xt=()=>({bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),Ct=(e,t,n)=>t?.toLowerCase().indexOf(e?.toLowerCase())>=0||n?.toLowerCase().indexOf(e?.toLowerCase())>=0||De(e,t)>=.5||De(e,n)>=.5;function It(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const wt=(e,t)=>ue(e,r=>r?.type?.displayName==="AutoCompleteItem"&&r.props.value===t?.value),jt=(e,t)=>ue(e,r=>r?.type?.displayName==="AutoCompleteItem"&&r.props.value===t?.value),St=(e,t)=>ze(ue(e,n=>{const r=h(n.props?.getValue||Pe,n.props?.value||{});return t.some(o=>o.value===r)}));function $e(e){let{prefocusFirstItem:t=!0,closeOnBlur:n=!0,creatable:r,emphasize:o,emptyState:s=!0,defaultEmptyStateProps:a={},freeSolo:c,isReadOnly:p,listAllValuesOnFocus:v,maxSuggestions:y,multiple:d,closeOnSelect:x=!d,defaultValue:E,defaultValues:j=E?[E]:[],onReady:W,defaultIsOpen:ae,disableFilter:H,isLoading:ce=!1,placement:K="bottom",restoreOnBlurIfEmpty:Y=!c,shouldRenderSuggestions:fe=()=>!0,submitKeys:X=[],suggestWhenEmpty:pe,value:k,values:de=k?typeof k=="string"?[k]:[...k]:void 0}=e;c=c||(d?!0:e.freeSolo);const{open:S,onClose:_,onOpen:z}=f.useDisclosure({open:ae}),me=i.useMemo(()=>h(e.children,{isOpen:S,onClose:_,onOpen:z}),[e.children,S]),I=i.useMemo(()=>bt(me),[me]),G=i.useRef(null),Re=i.useRef(null),ge=i.useRef(null),V=i.useRef(null),[Le,J]=i.useState(!1);let Z="";d?Z="":oe(j)?oe(de)||(Z=de[0]):Z=j[0];const[L,Q]=i.useState(Z??""),he=i.useMemo(()=>H?I:I.filter(l=>l.fixed||h(e.filter||Ct,L,l.value,l.label)||Le).filter((l,m)=>y?l.fixed||m<y:!0),[L,I,Le,y,H]),ee=r?[{value:L,noFilter:!0,creatable:!0}]:[],b=i.useMemo(()=>[...he,...ee],[he,ee]),et=i.useMemo(()=>[...I,...ee],[I,ee]),[T,ve]=f.useControllableState({defaultValue:j.map(l=>l?.toString()),value:de,onChange:l=>{const m=b.find(A=>A.value===l.at(-1));if(!m)return;const w=l.map(A=>et.find(O=>O.value===A));h(e.onChange,d?l:l[0],d?w:m)}});i.useEffect(()=>{b.length===0&&!s&&S&&_()},[b.length,s,S]);const[$,N]=i.useState(t?I[0]?.value:null),tt=e.maxSelections||T.length+1,ye=b.findIndex(l=>l.value===$),nt=ct(ye,b,!!e.rollNavigation),rt=ft(ye,b,!!e.rollNavigation),te=ut(b),ot=we(b),Te=!b.some(l=>l.value===$);i.useEffect(()=>{Te&&N(t?I[0]?.value:null)},[Te]),i.useEffect(()=>{t&&N(te?.value)},[t,N,L,te?.value]),i.useEffect(()=>{!S&&t&&N(I[0]?.value)},[S]),i.useEffect(()=>{S&&v&&J(!0)},[S,v,J]),i.useEffect(()=>{const l=I.find(m=>m.value===$);h(e.onOptionFocus,{item:l,focusMethod:V.current,isNewInput:l?.creatable})},[$,e.onOptionFocus]);const be=l=>{const m=b.find(A=>A.value===l),w=m?.label||m?.value;Q(()=>d?"":w??""),!T.includes(l)&&T.length<tt&&ve(A=>d?[...A,l]:[l]),d&&G.current?.focus(),e.focusInputOnSelect&&G.current?.focus(),h(e.onSelectOption,{item:m,selectMethod:V.current,isNewInput:m?.creatable}),m?.creatable&&h(e.onCreateOption,{item:ie(m,["noFilter"]),selectMethod:V.current}),x&&_()},Ne=(l,m)=>{ve(O=>{let F=I.find(B=>B.value===l);return!F&&r===!0&&(F={label:l,value:l}),F?(h(e.onTagRemoved,l,F,O),O.filter(B=>B!==l)):O});const w=I.find(O=>O.value===l),A=w?.label||w?.value;L===A&&Q(""),m&&G.current?.focus()},st=l=>{ve([]),l&&G.current?.focus()},Fe=d?T.map(l=>({label:I.find(m=>m.value===l?.toString())?.label||l,onRemove:()=>Ne(l)})):[];return i.useEffect(()=>{h(W,{tags:Fe})},[T]),{autoCompleteProps:e,children:me,filteredList:b,filteredResults:he,focusedValue:$,defaultEmptyStateProps:a,getEmptyStateProps:l=>{if(b.every(w=>w.noFilter)&&s&&!r)return typeof s=="boolean"?l:h(s,{query:L})},getGroupProps:l=>{const m=St(l.children,b);return{divider:{hasFirstChild:wt(l.children,te),hasLastChild:jt(l.children,we(b.filter(w=>oe(w?.noFilter))))},group:{display:m?"initial":"none"}}},getInputProps:(l,m)=>{const{onBlur:w,onChange:A,onFocus:O,onKeyDown:F,variant:B,...q}=l;return{wrapper:{ref:Re,onClick:()=>{G?.current?.focus()},...q},input:{isReadOnly:p,onFocus:g=>{h(O,g),e.openOnFocus&&!p&&z(),e.selectOnFocus&&g.target.select(),v&&J(!0)},onBlur:g=>{h(w,g);const C=g.relatedTarget===ge?.current||ge.current?.contains(g.relatedTarget),P=Re.current?.contains(g.relatedTarget);if(!C&&!P&&(n&&_(),!T.includes(g.target.value)&&Y)){const xe=we(T),ne=I.find(Ce=>Ce.value===xe),D=ne?.label||ne?.value||"";Q(D)}},onChange:g=>{const C=g.target.value;h(A,g),Q(C);const P=Ae(C);h(fe,C)&&(!P||pe)?z():_(),J(!1)},onKeyDown:g=>{h(F,g),V.current="keyboard";const{key:C}=g,P=b[ye];if(["Enter",...X].includes(C)){P&&!P?.disabled&&S?be(P?.value):G.current?.focus(),g.preventDefault();return}if(C==="ArrowDown"){S?N(nt?.value):z(),g.preventDefault();return}if(C==="ArrowUp"){S?N(rt?.value):z(),g.preventDefault();return}if(C==="Tab"){S&&P&&!P?.disabled?be(P?.value):_();return}if(C==="Home"){N(te?.value),g.preventDefault();return}if(C==="End"){N(ot?.value),g.preventDefault();return}C==="Escape"&&(_(),g.preventDefault())},value:L,variant:B,...q}}},getItemProps:(l,m)=>{const{_fixed:w,_focus:A,children:O,disabled:F,label:B,value:q,fixed:g,getValue:C=Pe,onClick:P,onMouseOver:xe,...ne}=l,D=m?q:C(q)?.toString(),Ce=D===$,lt=b.findIndex(U=>U.value===D)>=0,Ie=O||B||D;return{item:{...typeof Ie!="string"||!o?{children:Ie}:{dangerouslySetInnerHTML:{__html:yt(Ie,L)}},"aria-selected":T.includes(D),"aria-disabled":F,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onMouseDown:U=>{h(P,U),F?G.current?.focus():be(D)},onMouseOver:U=>{h(xe,U),N(D),V.current="mouse"},sx:{mark:{color:"inherit",bg:"transparent",...Se(o)?o:{fontWeight:o?"extrabold":"inherit"}}},...Ce&&(A||xt()),...g&&w,...ne},root:{isValidSuggestion:lt,value:D}}},inputRef:G,interactionRef:V,isLoading:ce,isOpen:S,itemList:I,listRef:ge,onClose:_,onOpen:z,placement:K,query:L,removeItem:Ne,resetItems:st,setQuery:Q,tags:Fe,value:k,values:T}}var He={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Me=i.createContext&&i.createContext(He),At=["attr","size","title"];function Et(e,t){if(e==null)return{};var n=Pt(e,t),r,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pt(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function se(){return se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},se.apply(this,arguments)}function _e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function le(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_e(Object(n),!0).forEach(function(r){Ot(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_e(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Ot(e,t,n){return t=Rt(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rt(e){var t=Lt(e,"string");return typeof t=="symbol"?t:t+""}function Lt(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ke(e){return e&&e.map((t,n)=>i.createElement(t.tag,le({key:n},t.attr),Ke(t.child)))}function Tt(e){return t=>i.createElement(Nt,se({attr:le({},e.attr)},t),Ke(e.child))}function Nt(e){var t=n=>{var{attr:r,size:o,title:s}=e,a=Et(e,At),c=o||n.size||"1em",p;return n.className&&(p=n.className),e.className&&(p=(p?p+" ":"")+e.className),i.createElement("svg",se({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,a,{className:p,style:le(le({color:e.color||n.color},n.style),e.style),height:c,width:c,xmlns:"http://www.w3.org/2000/svg"}),s&&i.createElement("title",null,s),e.children)};return Me!==void 0?i.createElement(Me.Consumer,null,n=>t(n)):t(He)}function Ft(e){return Tt({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18 6 6 18"},child:[]},{tag:"path",attr:{d:"m6 6 12 12"},child:[]}]})(e)}const Dt=R.forwardRef(function(t,n){return u.jsx(f.IconButton,{variant:"ghost","aria-label":"Close",ref:n,...t,children:t.children??u.jsx(Ft,{})})}),Mt=R.forwardRef(function(t,n){const{portalled:r=!0,portalRef:o,...s}=t;return u.jsx(f.Portal,{disabled:!r,container:o,children:u.jsx(f.Popover.Positioner,{children:u.jsx(f.Popover.Content,{ref:n,...s})})})});R.forwardRef(function(t,n){return u.jsx(f.Popover.Arrow,{...t,ref:n,children:u.jsx(f.Popover.ArrowTip,{})})});R.forwardRef(function(t,n){return u.jsx(f.Popover.CloseTrigger,{position:"absolute",top:"1",insetEnd:"1",...t,asChild:!0,ref:n,children:u.jsx(Dt,{size:"sm"})})});f.Popover.Title;f.Popover.Description;f.Popover.Footer;f.Popover.Header;const _t=f.Popover.Root,Gt=f.Popover.Body;f.Popover.Trigger;const Qe=i.forwardRef((e,t)=>{const n=$e(e),{children:r,isOpen:o,onClose:s,onOpen:a,placement:c,resetItems:p,removeItem:v}=n;i.useImperativeHandle(t,()=>({resetItems:p,removeItem:v}));const{matchWidth:y=!0}=n.autoCompleteProps;return u.jsx(ke,{value:n,children:u.jsx(_t,{open:o,autoFocus:!1,positioning:{placement:c,sameWidth:y},present:o,children:u.jsx(f.chakra.div,{w:"full",ref:t,children:r})})})});Qe.displayName="AutoComplete";const qe=i.forwardRef((e,t)=>{const{focusedValue:n,getItemProps:r,interactionRef:o}=M(),s=i.useRef(),a=Ee(t,s),c=r(e),{isValidSuggestion:p,value:v}=c.root,y=n===v;i.useEffect(()=>{y&&o.current==="keyboard"&&s?.current?.scrollIntoView({behavior:"smooth",block:"nearest"})},[y,o]),i.useEffect(()=>{typeof v!="string"&&console.warn("wow"),typeof v!="string"&&oe(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")},[]);const{children:d,dangerouslySetInnerHTML:x,...E}=c.item,j=ie(E,["groupId"]);return p?u.jsx(f.Flex,{ref:a,...Oe,...j,children:d||u.jsx("span",{dangerouslySetInnerHTML:x})}):null});qe.displayName="AutoCompleteItem";const Oe={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"};function Ue(e){const{alwaysDisplay:t,children:n,...r}=e,{autoCompleteProps:o,getItemProps:s,query:a,filteredResults:c}=M(),{children:p,...v}=s({...e,value:a,children:h(n,{value:a})},!0).item,y=c.some(E=>E.value===a),d=Ae(a)?t:!0;return o.creatable&&d&&!y?u.jsx(f.Flex,{...Oe,...v,...r,children:p||`Add ${a}`}):null}Ue.displayName="AutoCompleteCreatable";const Ye=i.forwardRef((e,t)=>{const{children:n,showDivider:r,...o}=e,s=ie(o,["groupSibling"]),{getGroupProps:a}=M(),{group:c}=a(e),p=Bt(e);return u.jsxs(f.Box,{ref:t,...c,...s,children:[u.jsx(f.Separator,{...p.top}),n,u.jsx(f.Separator,{...p.bottom})]})}),Xe=i.forwardRef((e,t)=>u.jsx(f.Flex,{...kt,...e,ref:t}));Ye.displayName="AutoCompleteGroup";Xe.displayName="AutoCompleteGroupTitle";const kt={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},Bt=e=>{const{getGroupProps:t}=M(),n=e.groupSibling,{divider:{hasFirstChild:r,hasLastChild:o}}=t(e),s={my:2,borderColor:e.dividerColor},a={...s,mb:4,display:!e.showDivider||r?"none":""},c={...s,display:!e.showDivider||o||n?"none":""};return{top:a,bottom:c}},Wt=R.forwardRef(function(t,n){const{startElement:r,startElementProps:o,endElement:s,endElementProps:a,children:c,startOffset:p="6px",endOffset:v="6px",...y}=t;return u.jsxs(f.Group,{ref:n,...y,children:[r&&u.jsx(f.InputElement,{pointerEvents:"none",...o,children:r}),R.cloneElement(c,{...r&&{ps:`calc(var(--input-height) - ${p})`},...s&&{pe:`calc(var(--input-height) - ${v})`},...c.props}),s&&u.jsx(f.InputElement,{placement:"end",...a,children:s})]})}),zt=i.forwardRef((e,t)=>{const{isLoading:n}=M(),{loadingIcon:r,...o}=e,s=ie(o,["children","wrapStyles","hidePlaceholder"]),a=u.jsx(f.Input,{...s,ref:t});return n?u.jsx(Wt,{w:"full",endElement:r||u.jsx(f.Spinner,{}),children:a}):a}),Je=i.forwardRef((e,t)=>{const{autoCompleteProps:n,inputRef:r,getInputProps:o,tags:s,setQuery:a,value:c,itemList:p}=M(),{children:v,hidePlaceholder:y,...d}=e,{value:x}=d;i.useEffect(()=>{if(c!==void 0&&(typeof c=="string"||c instanceof String)){const X=p.find(k=>k.value===c),pe=X===void 0?c:X.label;a(pe)}},[c]),i.useEffect(()=>{x!==void 0&&(typeof x=="string"||x instanceof String)&&a(x)},[x]);const E={};let{wrapper:j,input:W}=o(d,E);const{ref:ae,...H}=j,ce=Ee(t,r),K=h(v,{tags:s});y&&(W={...W,placeholder:Array.isArray(K)&&K.length?void 0:W.placeholder});const Y=u.jsx(zt,{...W,ref:ce}),fe=u.jsxs(f.Box,{...H,ref:ae,children:[K,Y]});return u.jsx(f.PopoverAnchor,{w:"full",...H,children:n.multiple?fe:Y})});Je.displayName="Input";const Vt=e=>{const{getEmptyStateProps:t,defaultEmptyStateProps:n}=M(),r=t(u.jsx(f.Flex,{...$t,...n,children:"No options found!"}));return u.jsx(f.Box,{...e,children:r})},$t={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},Ge=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"],Ht=e=>{const t=i.Children.map(e,(o,s)=>{if(o?.type?.displayName==="AutoCompleteGroup"){const a=i.Children.toArray(e)[s+1];return i.cloneElement(o,{groupSibling:a?a.type.displayName==="AutoCompleteGroup":!1})}return o}),n=i.Children.toArray(t).filter(o=>!Ge.includes(o?.type?.displayName));return[i.Children.toArray(t).filter(o=>Ge.includes(o?.type?.displayName)),n]},Ze=i.forwardRef((e,t)=>{const{children:n,loadingState:r,...o}=e,{listRef:s,isLoading:a}=M(),c=Ee(t,s),[p,v]=Ht(n);return u.jsx(Mt,{width:"auto",children:u.jsxs(Gt,{ref:c,w:"inherit",...Kt,...o,children:[a&&u.jsx(f.Center,{children:r||u.jsx(f.Spinner,{size:"md"})}),!a&&u.jsxs(u.Fragment,{children:[p,u.jsx(Vt,{}),v]})]})})});Ze.displayName="AutoCompleteList";const Kt={px:"0px",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},Qt=R.forwardRef(function(t,n){const{startElement:r,endElement:o,onClose:s,closable:a=!!s,children:c,...p}=t;return u.jsxs(f.Tag.Root,{ref:n,...p,children:[r&&u.jsx(f.Tag.StartElement,{children:r}),u.jsx(f.Tag.Label,{children:c}),o&&u.jsx(f.Tag.EndElement,{children:o}),a&&u.jsx(f.Tag.EndElement,{children:u.jsx(f.Tag.CloseTrigger,{onClick:s})})]})}),qt=i.memo(e=>{const{label:t,onRemove:n,disabled:r,...o}=e;return u.jsx(Qt,{borderRadius:"md",fontWeight:"normal",closable:!0,onClose:()=>!r&&h(n),...r&&Ut,...o,children:t})}),Ut={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=Qe;exports.AutoCompleteCreatable=Ue;exports.AutoCompleteGroup=Ye;exports.AutoCompleteGroupTitle=Xe;exports.AutoCompleteInput=Je;exports.AutoCompleteItem=qe;exports.AutoCompleteList=Ze;exports.AutoCompleteProvider=ke;exports.AutoCompleteTag=qt;exports.baseItemStyles=Oe;exports.createContext=Be;exports.useAutoComplete=$e;exports.useAutoCompleteContext=M;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),i=require("react"),f=require("@chakra-ui/react");function it(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const R=it(i),[ke,M]=Be();function Be(){const e=R.createContext(void 0);e.displayName="AutoCompleteContext";function t(){const n=R.useContext(e),r="useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`";if(!n){const o=new Error(r);throw o.name="ContextError",Error.captureStackTrace?.(o,t),o}return n}return[e.Provider,t,e]}function ut(e){return e?.[0]}function we(e){return e?.length?e[e.length-1]:void 0}function We(e,t,n=1,r=!0){if(t===0)return-1;let o=e+n;return e===-1&&(o=n>0?0:t-1),r?o=(o%t+t)%t:o=Math.max(0,Math.min(o,t-1)),o}function at(e,t,n=!0){return We(e,t,-1,n)}function ct(e,t,n=!0){const r=We(e,t.length,1,n);return t[r]}function ft(e,t,n=!0){const r=at(e,t.length,n);return t[r]}function je(e){return Array.isArray(e)}function dt(e){return je(e)&&e.length===0}function Se(e){return e!==null&&typeof e=="object"&&!je(e)}function pt(e){return Se(e)&&Object.keys(e).length===0}function Ae(e){return je(e)?dt(e):Se(e)?pt(e):e==null||e===""}function oe(e){return typeof e>"u"}function ze(e){return typeof e<"u"}function mt(e,t){const n={};return t.forEach(r=>{r in e&&(n[r]=e[r])}),n}function ie(e,t){const n={...e};return t.forEach(r=>{delete n[r]}),n}function gt(e){return typeof e=="function"}function h(e,...t){return gt(e)?e(...t):e}function ht(e,t){if(e!=null){if(typeof e=="function"){e(t);return}try{e.current=t}catch{throw new Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function vt(...e){return t=>{e.forEach(n=>{ht(n,t)})}}function Ee(...e){return i.useMemo(()=>vt(...e),e)}var ue=function(e,t){for(var n,r=R.Children.toArray(e),o=0,s=r;o<s.length;o++){var a=s[o];if(t(a))return a;if(!((n=a.props)===null||n===void 0)&&n.children){var c=ue(a.props.children,t);if(c)return c}}},re=function(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e},Ve=function(e,t){for(var n,r=R.Children.toArray(e),o=[],s=0,a=r;s<a.length;s++){var c=a[s];t(c)&&(o=re(re([],o),[c])),!((n=c.props)===null||n===void 0)&&n.children&&(o=re(re([],o),Ve(c.props.children,t)))}return o};function De(e,t,n=2){function r(p,x){p=" ".repeat(x-1)+p.toLowerCase()+" ".repeat(x-1);let E=new Array(p.length-x+1);for(let j=0;j<E.length;j++)E[j]=p.slice(j,j+x);return E}if(!e?.length||!t?.length)return 0;let o=e.length<t.length?e:t,s=e.length<t.length?t:e,a=r(o,n),c=r(s,n),d=new Set(a),v=c.length,y=0;for(let p of c)d.delete(p)&&y++;return y/v}const Oe=e=>(typeof e=="string"||typeof e=="number"?e:e[Object.keys(e)[0]])?.toString(),yt=(e,t)=>typeof e!="string"||Ae(t)?e:e.toString().replace(new RegExp(It(t),"gi"),r=>`<mark>${r}</mark>`),bt=e=>Ve(e,n=>n?.type?.displayName==="AutoCompleteItem").map(n=>{const r=mt(n.props,["value","label","fixed","disabled"]),{getValue:o=Oe}=n.props,s=o(r.value);return{...ze(r.label)?r:{...r,label:s},value:s,originalValue:r.value}}),xt=()=>({bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),Ct=(e,t,n)=>t?.toLowerCase().indexOf(e?.toLowerCase())>=0||n?.toLowerCase().indexOf(e?.toLowerCase())>=0||De(e,t)>=.5||De(e,n)>=.5;function It(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const wt=(e,t)=>ue(e,r=>r?.type?.displayName==="AutoCompleteItem"&&r.props.value===t?.value),jt=(e,t)=>ue(e,r=>r?.type?.displayName==="AutoCompleteItem"&&r.props.value===t?.value),St=(e,t)=>ze(ue(e,n=>{const r=h(n.props?.getValue||Oe,n.props?.value||{});return t.some(o=>o.value===r)}));function $e(e){let{prefocusFirstItem:t=!0,closeOnBlur:n=!0,creatable:r,emphasize:o,emptyState:s=!0,defaultEmptyStateProps:a={},freeSolo:c,isReadOnly:d,listAllValuesOnFocus:v,maxSuggestions:y,multiple:p,closeOnSelect:x=!p,defaultValue:E,defaultValues:j=E?[E]:[],onReady:W,defaultIsOpen:ae,disableFilter:H,isLoading:ce=!1,placement:K="bottom",restoreOnBlurIfEmpty:Y=!c,shouldRenderSuggestions:fe=()=>!0,submitKeys:X=[],suggestWhenEmpty:de,value:k,values:pe=k?typeof k=="string"?[k]:[...k]:void 0}=e;c=c||(p?!0:e.freeSolo);const{open:S,onClose:_,onOpen:z}=f.useDisclosure({open:ae}),me=i.useMemo(()=>h(e.children,{isOpen:S,onClose:_,onOpen:z}),[e.children,S]),I=i.useMemo(()=>bt(me),[me]),G=i.useRef(null),Re=i.useRef(null),ge=i.useRef(null),V=i.useRef(null),[Le,J]=i.useState(!1);let Z="";p?Z="":oe(j)?oe(pe)||(Z=pe[0]):Z=j[0];const[L,Q]=i.useState(Z??""),he=i.useMemo(()=>H?I:I.filter(l=>l.fixed||h(e.filter||Ct,L,l.value,l.label)||Le).filter((l,m)=>y?l.fixed||m<y:!0),[L,I,Le,y,H]),ee=r?[{value:L,noFilter:!0,creatable:!0}]:[],b=i.useMemo(()=>[...he,...ee],[he,ee]),et=i.useMemo(()=>[...I,...ee],[I,ee]),[T,ve]=f.useControllableState({defaultValue:j.map(l=>l?.toString()),value:pe,onChange:l=>{const m=b.find(A=>A.value===l.at(-1));if(!m)return;const w=l.map(A=>et.find(P=>P.value===A));h(e.onChange,p?l:l[0],p?w:m)}});i.useEffect(()=>{b.length===0&&!s&&S&&_()},[b.length,s,S]);const[$,N]=i.useState(t?I[0]?.value:null),tt=e.maxSelections||T.length+1,ye=b.findIndex(l=>l.value===$),nt=ct(ye,b,!!e.rollNavigation),rt=ft(ye,b,!!e.rollNavigation),te=ut(b),ot=we(b),Te=!b.some(l=>l.value===$);i.useEffect(()=>{Te&&N(t?I[0]?.value:null)},[Te]),i.useEffect(()=>{t&&N(te?.value)},[t,N,L,te?.value]),i.useEffect(()=>{!S&&t&&N(I[0]?.value)},[S]),i.useEffect(()=>{S&&v&&J(!0)},[S,v,J]),i.useEffect(()=>{const l=I.find(m=>m.value===$);h(e.onOptionFocus,{item:l,focusMethod:V.current,isNewInput:l?.creatable})},[$,e.onOptionFocus]);const be=l=>{const m=b.find(A=>A.value===l),w=m?.label||m?.value;Q(()=>p?"":w??""),!T.includes(l)&&T.length<tt&&ve(A=>p?[...A,l]:[l]),p&&G.current?.focus(),e.focusInputOnSelect&&G.current?.focus(),h(e.onSelectOption,{item:m,selectMethod:V.current,isNewInput:m?.creatable}),m?.creatable&&h(e.onCreateOption,{item:ie(m,["noFilter"]),selectMethod:V.current}),x&&_()},Ne=(l,m)=>{ve(P=>{let F=I.find(B=>B.value===l);return!F&&r===!0&&(F={label:l,value:l}),F?(h(e.onTagRemoved,l,F,P),P.filter(B=>B!==l)):P});const w=I.find(P=>P.value===l),A=w?.label||w?.value;L===A&&Q(""),m&&G.current?.focus()},st=l=>{ve([]),l&&G.current?.focus()},Fe=p?T.map(l=>({label:I.find(m=>m.value===l?.toString())?.label||l,onRemove:()=>Ne(l)})):[];return i.useEffect(()=>{h(W,{tags:Fe})},[T]),{autoCompleteProps:e,children:me,filteredList:b,filteredResults:he,focusedValue:$,defaultEmptyStateProps:a,getEmptyStateProps:l=>{if(b.every(w=>w.noFilter)&&s&&!r)return typeof s=="boolean"?l:h(s,{query:L})},getGroupProps:l=>{const m=St(l.children,b);return{divider:{hasFirstChild:wt(l.children,te),hasLastChild:jt(l.children,we(b.filter(w=>oe(w?.noFilter))))},group:{display:m?"initial":"none"}}},getInputProps:(l,m)=>{const{onBlur:w,onChange:A,onFocus:P,onKeyDown:F,variant:B,...q}=l;return{wrapper:{ref:Re,onClick:()=>{G?.current?.focus()},...q},input:{readOnly:d,onFocus:g=>{h(P,g),e.openOnFocus&&!d&&z(),e.selectOnFocus&&g.target.select(),v&&J(!0)},onBlur:g=>{h(w,g);const C=g.relatedTarget===ge?.current||ge.current?.contains(g.relatedTarget),O=Re.current?.contains(g.relatedTarget);if(!C&&!O&&(n&&_(),!T.includes(g.target.value)&&Y)){const xe=we(T),ne=I.find(Ce=>Ce.value===xe),D=ne?.label||ne?.value||"";Q(D)}},onChange:g=>{const C=g.target.value;h(A,g),Q(C);const O=Ae(C);h(fe,C)&&(!O||de)?z():_(),J(!1)},onKeyDown:g=>{h(F,g),V.current="keyboard";const{key:C}=g,O=b[ye];if(["Enter",...X].includes(C)){O&&!O?.disabled&&S?be(O?.value):G.current?.focus(),g.preventDefault();return}if(C==="ArrowDown"){S?N(nt?.value):z(),g.preventDefault();return}if(C==="ArrowUp"){S?N(rt?.value):z(),g.preventDefault();return}if(C==="Tab"){S&&O&&!O?.disabled?be(O?.value):_();return}if(C==="Home"){N(te?.value),g.preventDefault();return}if(C==="End"){N(ot?.value),g.preventDefault();return}C==="Escape"&&(_(),g.preventDefault())},value:L,variant:B,...q}}},getItemProps:(l,m)=>{const{_fixed:w,_focus:A,children:P,disabled:F,label:B,value:q,fixed:g,getValue:C=Oe,onClick:O,onMouseOver:xe,...ne}=l,D=m?q:C(q)?.toString(),Ce=D===$,lt=b.findIndex(U=>U.value===D)>=0,Ie=P||B||D;return{item:{...typeof Ie!="string"||!o?{children:Ie}:{dangerouslySetInnerHTML:{__html:yt(Ie,L)}},"aria-selected":T.includes(D),"aria-disabled":F,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onMouseDown:U=>{h(O,U),F?G.current?.focus():be(D)},onMouseOver:U=>{h(xe,U),N(D),V.current="mouse"},sx:{mark:{color:"inherit",bg:"transparent",...Se(o)?o:{fontWeight:o?"extrabold":"inherit"}}},...Ce&&(A||xt()),...g&&w,...ne},root:{isValidSuggestion:lt,value:D}}},inputRef:G,interactionRef:V,isLoading:ce,isOpen:S,itemList:I,listRef:ge,onClose:_,onOpen:z,placement:K,query:L,removeItem:Ne,resetItems:st,setQuery:Q,tags:Fe,value:k,values:T}}var He={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Me=i.createContext&&i.createContext(He),At=["attr","size","title"];function Et(e,t){if(e==null)return{};var n=Ot(e,t),r,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ot(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function se(){return se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},se.apply(this,arguments)}function _e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function le(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_e(Object(n),!0).forEach(function(r){Pt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_e(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Pt(e,t,n){return t=Rt(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rt(e){var t=Lt(e,"string");return typeof t=="symbol"?t:t+""}function Lt(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ke(e){return e&&e.map((t,n)=>i.createElement(t.tag,le({key:n},t.attr),Ke(t.child)))}function Tt(e){return t=>i.createElement(Nt,se({attr:le({},e.attr)},t),Ke(e.child))}function Nt(e){var t=n=>{var{attr:r,size:o,title:s}=e,a=Et(e,At),c=o||n.size||"1em",d;return n.className&&(d=n.className),e.className&&(d=(d?d+" ":"")+e.className),i.createElement("svg",se({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,a,{className:d,style:le(le({color:e.color||n.color},n.style),e.style),height:c,width:c,xmlns:"http://www.w3.org/2000/svg"}),s&&i.createElement("title",null,s),e.children)};return Me!==void 0?i.createElement(Me.Consumer,null,n=>t(n)):t(He)}function Ft(e){return Tt({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18 6 6 18"},child:[]},{tag:"path",attr:{d:"m6 6 12 12"},child:[]}]})(e)}const Dt=R.forwardRef(function(t,n){return u.jsx(f.IconButton,{variant:"ghost","aria-label":"Close",ref:n,...t,children:t.children??u.jsx(Ft,{})})}),Mt=R.forwardRef(function(t,n){const{portalled:r=!0,portalRef:o,...s}=t;return u.jsx(f.Portal,{disabled:!r,container:o,children:u.jsx(f.Popover.Positioner,{children:u.jsx(f.Popover.Content,{ref:n,...s})})})});R.forwardRef(function(t,n){return u.jsx(f.Popover.Arrow,{...t,ref:n,children:u.jsx(f.Popover.ArrowTip,{})})});R.forwardRef(function(t,n){return u.jsx(f.Popover.CloseTrigger,{position:"absolute",top:"1",insetEnd:"1",...t,asChild:!0,ref:n,children:u.jsx(Dt,{size:"sm"})})});f.Popover.Title;f.Popover.Description;f.Popover.Footer;f.Popover.Header;const _t=f.Popover.Root,Gt=f.Popover.Body;f.Popover.Trigger;const Qe=i.forwardRef((e,t)=>{const n=$e(e),{children:r,isOpen:o,onClose:s,onOpen:a,placement:c,resetItems:d,removeItem:v}=n;i.useImperativeHandle(t,()=>({resetItems:d,removeItem:v}));const{matchWidth:y=!0}=n.autoCompleteProps;return u.jsx(ke,{value:n,children:u.jsx(_t,{open:o,autoFocus:!1,positioning:{placement:c,sameWidth:y},present:o,children:u.jsx(f.chakra.div,{w:"full",ref:t,children:r})})})});Qe.displayName="AutoComplete";const qe=i.forwardRef((e,t)=>{const{focusedValue:n,getItemProps:r,interactionRef:o}=M(),s=i.useRef(),a=Ee(t,s),c=r(e),{isValidSuggestion:d,value:v}=c.root,y=n===v;i.useEffect(()=>{y&&o.current==="keyboard"&&s?.current?.scrollIntoView({behavior:"smooth",block:"nearest"})},[y,o]),i.useEffect(()=>{typeof v!="string"&&console.warn("wow"),typeof v!="string"&&oe(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")},[]);const{children:p,dangerouslySetInnerHTML:x,...E}=c.item,j=ie(E,["groupId"]);return d?u.jsx(f.Flex,{ref:a,...Pe,...j,children:p||u.jsx("span",{dangerouslySetInnerHTML:x})}):null});qe.displayName="AutoCompleteItem";const Pe={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"};function Ue(e){const{alwaysDisplay:t,children:n,...r}=e,{autoCompleteProps:o,getItemProps:s,query:a,filteredResults:c}=M(),{children:d,...v}=s({...e,value:a,children:h(n,{value:a})},!0).item,y=c.some(E=>E.value===a),p=Ae(a)?t:!0;return o.creatable&&p&&!y?u.jsx(f.Flex,{...Pe,...v,...r,children:d||`Add ${a}`}):null}Ue.displayName="AutoCompleteCreatable";const Ye=i.forwardRef((e,t)=>{const{children:n,showDivider:r,...o}=e,s=ie(o,["groupSibling"]),{getGroupProps:a}=M(),{group:c}=a(e),d=Bt(e);return u.jsxs(f.Box,{ref:t,...c,...s,children:[u.jsx(f.Separator,{...d.top}),n,u.jsx(f.Separator,{...d.bottom})]})}),Xe=i.forwardRef((e,t)=>u.jsx(f.Flex,{...kt,...e,ref:t}));Ye.displayName="AutoCompleteGroup";Xe.displayName="AutoCompleteGroupTitle";const kt={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},Bt=e=>{const{getGroupProps:t}=M(),n=e.groupSibling,{divider:{hasFirstChild:r,hasLastChild:o}}=t(e),s={my:2,borderColor:e.dividerColor},a={...s,mb:4,display:!e.showDivider||r?"none":""},c={...s,display:!e.showDivider||o||n?"none":""};return{top:a,bottom:c}},Wt=R.forwardRef(function(t,n){const{startElement:r,startElementProps:o,endElement:s,endElementProps:a,children:c,startOffset:d="6px",endOffset:v="6px",...y}=t;return u.jsxs(f.Group,{ref:n,...y,children:[r&&u.jsx(f.InputElement,{pointerEvents:"none",...o,children:r}),R.cloneElement(c,{...r&&{ps:`calc(var(--input-height) - ${d})`},...s&&{pe:`calc(var(--input-height) - ${v})`},...c.props}),s&&u.jsx(f.InputElement,{placement:"end",...a,children:s})]})}),zt=i.forwardRef((e,t)=>{const{isLoading:n}=M(),{loadingIcon:r,...o}=e,s=ie(o,["children","wrapStyles","hidePlaceholder"]);let a;return n&&(a=r||u.jsx(f.Spinner,{})),u.jsx(Wt,{w:"full",endElement:u.jsx(u.Fragment,{children:a}),children:u.jsx(f.Input,{...s,ref:t})})}),Je=i.forwardRef((e,t)=>{const{autoCompleteProps:n,inputRef:r,getInputProps:o,tags:s,setQuery:a,value:c,itemList:d}=M(),{children:v,hidePlaceholder:y,...p}=e,{value:x}=p;i.useEffect(()=>{if(c!==void 0&&(typeof c=="string"||c instanceof String)){const X=d.find(k=>k.value===c),de=X===void 0?c:X.label;a(de)}},[c]),i.useEffect(()=>{x!==void 0&&(typeof x=="string"||x instanceof String)&&a(x)},[x]);const E={};let{wrapper:j,input:W}=o(p,E);const{ref:ae,...H}=j,ce=Ee(t,r),K=h(v,{tags:s});y&&(W={...W,placeholder:Array.isArray(K)&&K.length?void 0:W.placeholder});const Y=u.jsx(zt,{...W,ref:ce}),fe=u.jsxs(f.Box,{...H,ref:ae,children:[K,Y]});return u.jsx(f.PopoverAnchor,{w:"full",...H,children:n.multiple?fe:Y})});Je.displayName="Input";const Vt=e=>{const{getEmptyStateProps:t,defaultEmptyStateProps:n}=M(),r=t(u.jsx(f.Flex,{...$t,...n,children:"No options found!"}));return u.jsx(f.Box,{...e,children:r})},$t={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},Ge=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"],Ht=e=>{const t=i.Children.map(e,(o,s)=>{if(o?.type?.displayName==="AutoCompleteGroup"){const a=i.Children.toArray(e)[s+1];return i.cloneElement(o,{groupSibling:a?a.type.displayName==="AutoCompleteGroup":!1})}return o}),n=i.Children.toArray(t).filter(o=>!Ge.includes(o?.type?.displayName));return[i.Children.toArray(t).filter(o=>Ge.includes(o?.type?.displayName)),n]},Ze=i.forwardRef((e,t)=>{const{children:n,loadingState:r,...o}=e,{listRef:s,isLoading:a}=M(),c=Ee(t,s),[d,v]=Ht(n);return u.jsx(Mt,{width:"auto",children:u.jsxs(Gt,{ref:c,w:"inherit",...Kt,...o,children:[a&&u.jsx(f.Center,{children:r||u.jsx(f.Spinner,{size:"md"})}),!a&&u.jsxs(u.Fragment,{children:[d,u.jsx(Vt,{}),v]})]})})});Ze.displayName="AutoCompleteList";const Kt={px:"0px",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},Qt=R.forwardRef(function(t,n){const{startElement:r,endElement:o,onClose:s,closable:a=!!s,children:c,...d}=t;return u.jsxs(f.Tag.Root,{ref:n,...d,children:[r&&u.jsx(f.Tag.StartElement,{children:r}),u.jsx(f.Tag.Label,{children:c}),o&&u.jsx(f.Tag.EndElement,{children:o}),a&&u.jsx(f.Tag.EndElement,{children:u.jsx(f.Tag.CloseTrigger,{onClick:s})})]})}),qt=i.memo(e=>{const{label:t,onRemove:n,disabled:r,...o}=e;return u.jsx(Qt,{borderRadius:"md",fontWeight:"normal",closable:!0,onClose:()=>!r&&h(n),...r&&Ut,...o,children:t})}),Ut={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=Qe;exports.AutoCompleteCreatable=Ue;exports.AutoCompleteGroup=Ye;exports.AutoCompleteGroupTitle=Xe;exports.AutoCompleteInput=Je;exports.AutoCompleteItem=qe;exports.AutoCompleteList=Ze;exports.AutoCompleteProvider=ke;exports.AutoCompleteTag=qt;exports.baseItemStyles=Pe;exports.createContext=Be;exports.useAutoComplete=$e;exports.useAutoCompleteContext=M;
|
package/package.json
CHANGED