@choc-ui/chakra-autocomplete 5.8.2 → 5.8.3

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 CHANGED
@@ -244,7 +244,7 @@ function Qt(e) {
244
244
  defaultValue: I.map((s) => s == null ? void 0 : s.toString()),
245
245
  value: J,
246
246
  onChange: (s) => {
247
- const a = y.find((F) => F.value === s[0]);
247
+ const a = y.find((F) => F.value === s.at(-1));
248
248
  if (!a) return;
249
249
  const d = s.map(
250
250
  (F) => y.find((L) => L.value === F)
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),f=require("react"),a=require("@chakra-ui/react");function st(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 ue=st(f),[Qe,_]=$e();function $e(){const e=ue.createContext(void 0);e.displayName="AutoCompleteContext";function t(){var o;const n=ue.useContext(e),r="useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`";if(!n){const l=new Error(r);throw l.name="ContextError",(o=Error.captureStackTrace)==null||o.call(Error,l,t),l}return n}return[e.Provider,t,e]}function lt(e){return e==null?void 0:e[0]}function we(e){return e!=null&&e.length?e[e.length-1]:void 0}function Ke(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 ut(e,t,n=!0){return Ke(e,t,-1,n)}function it(e,t,n=!0){const r=Ke(e,t.length,1,n);return t[r]}function at(e,t,n=!0){const r=ut(e,t.length,n);return t[r]}function Ie(e){return Array.isArray(e)}function ct(e){return Ie(e)&&e.length===0}function je(e){return e!==null&&typeof e=="object"&&!Ie(e)}function ft(e){return je(e)&&Object.keys(e).length===0}function Ee(e){return Ie(e)?ct(e):je(e)?ft(e):e==null||e===""}function le(e){return typeof e>"u"}function Ve(e){return typeof e<"u"}function pt(e,t){const n={};return t.forEach(r=>{r in e&&(n[r]=e[r])}),n}function Oe(e,t){const n={...e};return t.forEach(r=>{delete n[r]}),n}function dt(e){return typeof e=="function"}function h(e,...t){return dt(e)?e(...t):e}var ie=function(e,t){for(var n,r=ue.Children.toArray(e),o=0,l=r;o<l.length;o++){var u=l[o];if(t(u))return u;if(!((n=u.props)===null||n===void 0)&&n.children){var i=ie(u.props.children,t);if(i)return i}}},se=function(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e},Ye=function(e,t){for(var n,r=ue.Children.toArray(e),o=[],l=0,u=r;l<u.length;l++){var i=u[l];t(i)&&(o=se(se([],o),[i])),!((n=i.props)===null||n===void 0)&&n.children&&(o=se(se([],o),Ye(i.props.children,t)))}return o};function ze(e,t,n=2){function r(d,O){d=" ".repeat(O-1)+d.toLowerCase()+" ".repeat(O-1);let S=new Array(d.length-O+1);for(let j=0;j<S.length;j++)S[j]=d.slice(j,j+O);return S}if(!(e!=null&&e.length)||!(t!=null&&t.length))return 0;let o=e.length<t.length?e:t,l=e.length<t.length?t:e,u=r(o,n),i=r(l,n),y=new Set(u),C=i.length,b=0;for(let d of i)y.delete(d)&&b++;return b/C}const Re=e=>{var t;return(t=typeof e=="string"||typeof e=="number"?e:e[Object.keys(e)[0]])==null?void 0:t.toString()},gt=(e,t)=>typeof e!="string"||Ee(t)?e:e.toString().replace(new RegExp(yt(t),"gi"),r=>`<mark>${r}</mark>`),mt=e=>Ye(e,n=>{var r;return((r=n==null?void 0:n.type)==null?void 0:r.displayName)==="AutoCompleteItem"}).map(n=>{const r=pt(n.props,["value","label","fixed","disabled"]),{getValue:o=Re}=n.props,l=o(r.value);return{...Ve(r.label)?r:{...r,label:l},value:l,originalValue:r.value}}),vt=()=>({bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),ht=(e,t,n)=>(t==null?void 0:t.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||(n==null?void 0:n.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||ze(e,t)>=.5||ze(e,n)>=.5;function yt(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const Ct=(e,t)=>ie(e,r=>{var o;return((o=r==null?void 0:r.type)==null?void 0:o.displayName)==="AutoCompleteItem"&&r.props.value===(t==null?void 0:t.value)}),xt=(e,t)=>ie(e,r=>{var o;return((o=r==null?void 0:r.type)==null?void 0:o.displayName)==="AutoCompleteItem"&&r.props.value===(t==null?void 0:t.value)}),bt=(e,t)=>Ve(ie(e,n=>{var o,l;const r=h(((o=n.props)==null?void 0:o.getValue)||Re,((l=n.props)==null?void 0:l.value)||{});return t.some(u=>u.value===r)})),St=(e,t)=>{const n={},r={},{field:o}=e;return o&&Object.keys(o).forEach(l=>{if(l.startsWith("--input")===!1)n[l]=o[l];else{let u=o[l];const y=l.replace("--input-","").replace(/-([a-z])/g,function(C){return C[1].toUpperCase()});u.indexOf(".")!==-1&&(u=u.substring(u.indexOf(".")+1)),r[y]=u}}),{...t&&{...n,...r,_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3},cursor:"text",h:"fit-content"}};function Je(e){var Ge;let{prefocusFirstItem:t=!0,closeOnBlur:n=!0,creatable:r,emphasize:o,emptyState:l=!0,defaultEmptyStateProps:u={},freeSolo:i,isReadOnly:y,listAllValuesOnFocus:C,maxSuggestions:b,multiple:d,closeOnSelect:O=!d,defaultValue:S,defaultValues:j=S?[S]:[],onReady:U,defaultIsOpen:z,disableFilter:q,isLoading:ae=!1,placement:ee="bottom",restoreOnBlurIfEmpty:V=!i,shouldRenderSuggestions:ce=()=>!0,submitKeys:fe=[],suggestWhenEmpty:te,value:B,values:Y=B?typeof B=="string"?[B]:[...B]:void 0}=e;i=i||(d?!0:e.freeSolo);const{isOpen:E,onClose:G,onOpen:Q}=a.useDisclosure({defaultIsOpen:z}),pe=f.useMemo(()=>h(e.children,{isOpen:E,onClose:G,onOpen:Q}),[e.children,E]),R=f.useMemo(()=>mt(pe),[pe]),N=f.useRef(null),Ne=f.useRef(null),J=f.useRef(null),$=f.useRef(null),[Pe,ne]=f.useState(!1);let oe="";d?oe="":le(j)?le(Y)||(oe=Y[0]):oe=j[0];const[D,X]=f.useState(oe??""),de=f.useMemo(()=>q?R:R.filter(s=>s.fixed||h(e.filter||ht,D,s.value,s.label)||Pe).filter((s,c)=>b?s.fixed||c<b:!0),[D,R,Pe,b,q]),De=r?[{value:D,noFilter:!0,creatable:!0}]:[],x=f.useMemo(()=>[...de,...De],[de,De]),[M,ge]=a.useControllableState({defaultValue:j.map(s=>s==null?void 0:s.toString()),value:Y,onChange:s=>{const c=x.find(F=>F.value===s[0]);if(!c)return;const m=s.map(F=>x.find(L=>L.value===F));h(e.onChange,d?s:s[0],d?m:c)}});f.useEffect(()=>{x.length===0&&!l&&E&&G()},[x.length,l,E]);const[K,W]=f.useState(t?(Ge=R[0])==null?void 0:Ge.value:null),ot=e.maxSelections||M.length+1,me=x.findIndex(s=>s.value===K),ve=it(me,x,!!e.rollNavigation),he=at(me,x,!!e.rollNavigation),P=lt(x),ye=we(x),Me=!x.some(s=>s.value===K);f.useEffect(()=>{var s;Me&&W(t?(s=R[0])==null?void 0:s.value:null)},[Me]),a.useUpdateEffect(()=>{t&&W(P==null?void 0:P.value)},[D,P==null?void 0:P.value]),f.useEffect(()=>{var s;!E&&t&&W((s=R[0])==null?void 0:s.value)},[E]),f.useEffect(()=>{E&&C&&ne(!0)},[E,C,ne]),f.useEffect(()=>{const s=R.find(c=>c.value===K);h(e.onOptionFocus,{item:s,focusMethod:$.current,isNewInput:s==null?void 0:s.creatable})},[K,e.onOptionFocus]);const Ce=s=>{var F,L;const c=x.find(w=>w.value===s),m=(c==null?void 0:c.label)||(c==null?void 0:c.value);X(()=>d?"":m??""),!M.includes(s)&&M.length<ot&&ge(w=>d?[...w,s]:[s]),d&&((F=N.current)==null||F.focus()),e.focusInputOnSelect&&((L=N.current)==null||L.focus()),h(e.onSelectOption,{item:c,selectMethod:$.current,isNewInput:c==null?void 0:c.creatable}),c!=null&&c.creatable&&h(e.onCreateOption,{item:Oe(c,["noFilter"]),selectMethod:$.current}),O&&G()},Te=(s,c)=>{var L;ge(w=>{let k=R.find(T=>T.value===s);return!k&&r===!0&&(k={label:s,value:s}),k?(h(e.onTagRemoved,s,k,w),w.filter(T=>T!==s)):w});const m=R.find(w=>w.value===s),F=(m==null?void 0:m.label)||(m==null?void 0:m.value);D===F&&X(""),c&&((L=N.current)==null||L.focus())},rt=s=>{var c;ge([]),s&&((c=N.current)==null||c.focus())},_e=d?M.map(s=>{var c;return{label:((c=R.find(m=>m.value===(s==null?void 0:s.toString())))==null?void 0:c.label)||s,onRemove:()=>Te(s)}}):[];return f.useEffect(()=>{h(U,{tags:_e})},[M]),{autoCompleteProps:e,children:pe,filteredList:x,filteredResults:de,focusedValue:K,defaultEmptyStateProps:u,getEmptyStateProps:s=>{if(x.every(m=>m.noFilter)&&l&&!r)return typeof l=="boolean"?s:h(l,{query:D})},getGroupProps:s=>{const c=bt(s.children,x);return{divider:{hasFirstChild:Ct(s.children,P),hasLastChild:xt(s.children,we(x.filter(m=>le(m==null?void 0:m.noFilter))))},group:{display:c?"initial":"none"}}},getInputProps:(s,c)=>{const{onBlur:m,onChange:F,onFocus:L,onKeyDown:w,variant:k,...T}=s;return{wrapper:{ref:Ne,onClick:()=>{var g;(g=N==null?void 0:N.current)==null||g.focus()},...St(c,d),...T},input:{isReadOnly:y,onFocus:g=>{h(L,g),e.openOnFocus&&!y&&Q(),e.selectOnFocus&&g.target.select(),C&&ne(!0)},onBlur:g=>{var H,re;h(m,g);const A=g.relatedTarget===(J==null?void 0:J.current)||((H=J.current)==null?void 0:H.contains(g.relatedTarget)),v=(re=Ne.current)==null?void 0:re.contains(g.relatedTarget);if(!A&&!v&&(n&&G(),!M.includes(g.target.value)&&V)){const xe=we(M),I=R.find(Se=>Se.value===xe),be=(I==null?void 0:I.label)||(I==null?void 0:I.value)||"";X(be)}},onChange:g=>{const A=g.target.value;h(F,g),X(A);const v=Ee(A);h(ce,A)&&(!v||te)?Q():G(),ne(!1)},onKeyDown:g=>{var H;h(w,g),$.current="keyboard";const{key:A}=g,v=x[me];if(["Enter",...fe].includes(A)){v&&!(v!=null&&v.disabled)&&E?Ce(v==null?void 0:v.value):(H=N.current)==null||H.focus(),g.preventDefault();return}if(A==="ArrowDown"){E?W(ve==null?void 0:ve.value):Q(),g.preventDefault();return}if(A==="ArrowUp"){E?W(he==null?void 0:he.value):Q(),g.preventDefault();return}if(A==="Tab"){E&&v&&!(v!=null&&v.disabled)?Ce(v==null?void 0:v.value):G();return}if(A==="Home"){W(P==null?void 0:P.value),g.preventDefault();return}if(A==="End"){W(ye==null?void 0:ye.value),g.preventDefault();return}A==="Escape"&&(G(),g.preventDefault())},value:D,variant:d?"unstyled":k,...T}}},getItemProps:(s,c)=>{var We;const{_fixed:m,_focus:F,children:L,disabled:w,label:k,value:T,fixed:g,getValue:A=Re,onClick:v,onMouseOver:H,sx:re,...xe}=s,I=c?T:(We=A(T))==null?void 0:We.toString(),be=I===K,Se=x.findIndex(Z=>Z.value===I)>=0,Ae=L||k||I;return{item:{...typeof Ae!="string"||!o?{children:Ae}:{dangerouslySetInnerHTML:{__html:gt(Ae,D)}},"aria-selected":M.includes(I),"aria-disabled":w,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:Z=>{var ke;h(v,Z),w?(ke=N.current)==null||ke.focus():Ce(I)},onMouseOver:Z=>{h(H,Z),W(I),$.current="mouse"},sx:{...re,mark:{color:"inherit",bg:"transparent",...je(o)?o:{fontWeight:o?"extrabold":"inherit"}}},...be&&(F||vt()),...g&&m,...xe},root:{isValidSuggestion:Se,value:I}}},inputRef:N,interactionRef:$,isLoading:ae,isOpen:E,itemList:R,listRef:J,onClose:G,onOpen:Q,placement:ee,query:D,removeItem:Te,resetItems:rt,setQuery:X,tags:_e,value:B,values:M}}const Xe=a.forwardRef((e,t)=>{const n=Je(e),{children:r,isOpen:o,onClose:l,onOpen:u,placement:i,resetItems:y,removeItem:C}=n;f.useImperativeHandle(t,()=>({resetItems:y,removeItem:C}));const{matchWidth:b=!0}=n.autoCompleteProps;return p.jsx(Qe,{value:n,children:p.jsx(a.Popover,{isLazy:!0,isOpen:o,autoFocus:!1,placement:i,closeOnBlur:!0,matchWidth:b,children:p.jsx(a.chakra.div,{w:"full",ref:t,children:r})})})});Xe.displayName="AutoComplete";const Ze=a.forwardRef((e,t)=>{const{focusedValue:n,getItemProps:r,interactionRef:o}=_(),l=f.useRef(),u=a.useMergeRefs(t,l),i=r(e),{isValidSuggestion:y,value:C}=i.root,b=n===C;f.useEffect(()=>{var U;b&&o.current==="keyboard"&&((U=l==null?void 0:l.current)==null||U.scrollIntoView({behavior:"smooth",block:"nearest"}))},[b,o]),f.useEffect(()=>{typeof C!="string"&&console.warn("wow"),typeof C!="string"&&le(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")},[]);const{children:d,dangerouslySetInnerHTML:O,...S}=i.item,j=Oe(S,["groupId"]);return y?p.jsx(a.Flex,{ref:u,...Fe,...j,children:d||p.jsx("span",{dangerouslySetInnerHTML:O})}):null});Ze.displayName="AutoCompleteItem";const Fe={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"};function qe(e){const{alwaysDisplay:t,children:n,...r}=e,{autoCompleteProps:o,getItemProps:l,query:u,filteredResults:i}=_(),{children:y,...C}=l({...e,value:u,children:h(n,{value:u})},!0).item,b=i.some(S=>S.value===u),d=Ee(u)?t:!0;return o.creatable&&d&&!b?p.jsx(a.Flex,{...Fe,...C,...r,children:y||`Add ${u}`}):null}qe.displayName="AutoCompleteCreatable";const et=a.forwardRef((e,t)=>{const{children:n,showDivider:r,...o}=e,l=Oe(o,["groupSibling"]),{getGroupProps:u}=_(),{group:i}=u(e),y=wt(e);return p.jsxs(a.Box,{ref:t,...i,...l,children:[p.jsx(a.Divider,{...y.top}),n,p.jsx(a.Divider,{...y.bottom})]})}),tt=a.forwardRef((e,t)=>p.jsx(a.Flex,{...At,...e,ref:t}));et.displayName="AutoCompleteGroup";tt.displayName="AutoCompleteGroupTitle";const At={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},wt=e=>{const{getGroupProps:t}=_(),n=e.groupSibling,{divider:{hasFirstChild:r,hasLastChild:o}}=t(e),l={my:2,borderColor:e.dividerColor},u={...l,mb:4,display:!e.showDivider||r?"none":""},i={...l,display:!e.showDivider||o||n?"none":""};return{top:u,bottom:i}},Be=a.forwardRef((e,t)=>{const{isLoading:n}=_(),{loadingIcon:r,...o}=e;return p.jsxs(a.InputGroup,{children:[p.jsx(a.Input,{...o,ref:t}),n&&p.jsx(a.InputRightElement,{children:r||p.jsx(a.Spinner,{})})]})}),Le=a.forwardRef((e,t)=>{const{autoCompleteProps:n,inputRef:r,getInputProps:o,tags:l,setQuery:u,value:i,itemList:y}=_(),{children:C,isInvalid:b,hidePlaceholder:d,...O}=e,{value:S}=O;f.useEffect(()=>{if(i!==void 0&&(typeof i=="string"||i instanceof String)){const te=y.find(Y=>Y.value===i),B=te===void 0?i:te.label;u(B)}},[i]),f.useEffect(()=>{S!==void 0&&(typeof S=="string"||S instanceof String)&&u(S)},[S]);const j=a.useMultiStyleConfig("Input",e);let{wrapper:U,input:z}=o(O,j);const{ref:q,...ae}=U,ee=a.useMergeRefs(t,r),V=h(C,{tags:l});d&&(z={...z,placeholder:Array.isArray(V)&&V.length?void 0:z.placeholder});const ce=p.jsx(Be,{isInvalid:b,...z,ref:ee}),fe=p.jsxs(a.Wrap,{"aria-invalid":b,...ae,ref:q,children:[V,p.jsx(a.WrapItem,{as:Be,...z,ref:ee})]});return p.jsx(a.PopoverAnchor,{children:n.multiple?fe:ce})});Le.displayName="Input";Le.id="Input";const It=e=>{const{getEmptyStateProps:t,defaultEmptyStateProps:n}=_(),r=t(p.jsx(a.Flex,{...jt,...n,children:"No options found!"}));return p.jsx(a.Box,{...e,children:r})},jt={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},He=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"],Et=e=>{const t=f.Children.map(e,(o,l)=>{var u;if(((u=o==null?void 0:o.type)==null?void 0:u.displayName)==="AutoCompleteGroup"){const i=f.Children.toArray(e)[l+1];return f.cloneElement(o,{groupSibling:i?i.type.displayName==="AutoCompleteGroup":!1})}return o}),n=f.Children.toArray(t).filter(o=>{var l;return!He.includes((l=o==null?void 0:o.type)==null?void 0:l.displayName)});return[f.Children.toArray(t).filter(o=>{var l;return He.includes((l=o==null?void 0:o.type)==null?void 0:l.displayName)}),n]},nt=a.forwardRef((e,t)=>{const{children:n,loadingState:r,...o}=e,{listRef:l,isLoading:u}=_(),i=a.useMergeRefs(t,l),[y,C]=Et(n);return p.jsxs(a.PopoverContent,{ref:i,w:"inherit",...Ot,...o,children:[u&&p.jsx(a.Center,{children:r||p.jsx(a.Spinner,{size:"md"})}),!u&&p.jsxs(p.Fragment,{children:[y,p.jsx(It,{}),C]})]})});nt.displayName="AutoCompleteList";const Ot={py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},Rt=f.memo(e=>{const{label:t,onRemove:n,disabled:r,...o}=e;return p.jsx(a.WrapItem,{children:p.jsxs(a.Tag,{borderRadius:"md",fontWeight:"normal",...r&&Ue,...o,children:[p.jsx(a.TagLabel,{children:t}),p.jsx(a.TagCloseButton,{onClick:()=>!r&&h(n),cursor:"pointer",...r&&Ue})]})})}),Ue={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=Xe;exports.AutoCompleteCreatable=qe;exports.AutoCompleteGroup=et;exports.AutoCompleteGroupTitle=tt;exports.AutoCompleteInput=Le;exports.AutoCompleteItem=Ze;exports.AutoCompleteList=nt;exports.AutoCompleteProvider=Qe;exports.AutoCompleteTag=Rt;exports.baseItemStyles=Fe;exports.createContext=$e;exports.useAutoComplete=Je;exports.useAutoCompleteContext=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),f=require("react"),a=require("@chakra-ui/react");function st(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 ue=st(f),[Qe,_]=$e();function $e(){const e=ue.createContext(void 0);e.displayName="AutoCompleteContext";function t(){var o;const n=ue.useContext(e),r="useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`";if(!n){const l=new Error(r);throw l.name="ContextError",(o=Error.captureStackTrace)==null||o.call(Error,l,t),l}return n}return[e.Provider,t,e]}function lt(e){return e==null?void 0:e[0]}function we(e){return e!=null&&e.length?e[e.length-1]:void 0}function Ke(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 ut(e,t,n=!0){return Ke(e,t,-1,n)}function it(e,t,n=!0){const r=Ke(e,t.length,1,n);return t[r]}function at(e,t,n=!0){const r=ut(e,t.length,n);return t[r]}function Ie(e){return Array.isArray(e)}function ct(e){return Ie(e)&&e.length===0}function je(e){return e!==null&&typeof e=="object"&&!Ie(e)}function ft(e){return je(e)&&Object.keys(e).length===0}function Ee(e){return Ie(e)?ct(e):je(e)?ft(e):e==null||e===""}function le(e){return typeof e>"u"}function Ve(e){return typeof e<"u"}function pt(e,t){const n={};return t.forEach(r=>{r in e&&(n[r]=e[r])}),n}function Oe(e,t){const n={...e};return t.forEach(r=>{delete n[r]}),n}function dt(e){return typeof e=="function"}function h(e,...t){return dt(e)?e(...t):e}var ie=function(e,t){for(var n,r=ue.Children.toArray(e),o=0,l=r;o<l.length;o++){var u=l[o];if(t(u))return u;if(!((n=u.props)===null||n===void 0)&&n.children){var i=ie(u.props.children,t);if(i)return i}}},se=function(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e},Ye=function(e,t){for(var n,r=ue.Children.toArray(e),o=[],l=0,u=r;l<u.length;l++){var i=u[l];t(i)&&(o=se(se([],o),[i])),!((n=i.props)===null||n===void 0)&&n.children&&(o=se(se([],o),Ye(i.props.children,t)))}return o};function ze(e,t,n=2){function r(d,O){d=" ".repeat(O-1)+d.toLowerCase()+" ".repeat(O-1);let S=new Array(d.length-O+1);for(let j=0;j<S.length;j++)S[j]=d.slice(j,j+O);return S}if(!(e!=null&&e.length)||!(t!=null&&t.length))return 0;let o=e.length<t.length?e:t,l=e.length<t.length?t:e,u=r(o,n),i=r(l,n),y=new Set(u),C=i.length,b=0;for(let d of i)y.delete(d)&&b++;return b/C}const Re=e=>{var t;return(t=typeof e=="string"||typeof e=="number"?e:e[Object.keys(e)[0]])==null?void 0:t.toString()},gt=(e,t)=>typeof e!="string"||Ee(t)?e:e.toString().replace(new RegExp(yt(t),"gi"),r=>`<mark>${r}</mark>`),mt=e=>Ye(e,n=>{var r;return((r=n==null?void 0:n.type)==null?void 0:r.displayName)==="AutoCompleteItem"}).map(n=>{const r=pt(n.props,["value","label","fixed","disabled"]),{getValue:o=Re}=n.props,l=o(r.value);return{...Ve(r.label)?r:{...r,label:l},value:l,originalValue:r.value}}),vt=()=>({bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),ht=(e,t,n)=>(t==null?void 0:t.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||(n==null?void 0:n.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||ze(e,t)>=.5||ze(e,n)>=.5;function yt(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const Ct=(e,t)=>ie(e,r=>{var o;return((o=r==null?void 0:r.type)==null?void 0:o.displayName)==="AutoCompleteItem"&&r.props.value===(t==null?void 0:t.value)}),xt=(e,t)=>ie(e,r=>{var o;return((o=r==null?void 0:r.type)==null?void 0:o.displayName)==="AutoCompleteItem"&&r.props.value===(t==null?void 0:t.value)}),bt=(e,t)=>Ve(ie(e,n=>{var o,l;const r=h(((o=n.props)==null?void 0:o.getValue)||Re,((l=n.props)==null?void 0:l.value)||{});return t.some(u=>u.value===r)})),St=(e,t)=>{const n={},r={},{field:o}=e;return o&&Object.keys(o).forEach(l=>{if(l.startsWith("--input")===!1)n[l]=o[l];else{let u=o[l];const y=l.replace("--input-","").replace(/-([a-z])/g,function(C){return C[1].toUpperCase()});u.indexOf(".")!==-1&&(u=u.substring(u.indexOf(".")+1)),r[y]=u}}),{...t&&{...n,...r,_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3},cursor:"text",h:"fit-content"}};function Je(e){var Ge;let{prefocusFirstItem:t=!0,closeOnBlur:n=!0,creatable:r,emphasize:o,emptyState:l=!0,defaultEmptyStateProps:u={},freeSolo:i,isReadOnly:y,listAllValuesOnFocus:C,maxSuggestions:b,multiple:d,closeOnSelect:O=!d,defaultValue:S,defaultValues:j=S?[S]:[],onReady:U,defaultIsOpen:z,disableFilter:q,isLoading:ae=!1,placement:ee="bottom",restoreOnBlurIfEmpty:V=!i,shouldRenderSuggestions:ce=()=>!0,submitKeys:fe=[],suggestWhenEmpty:te,value:B,values:Y=B?typeof B=="string"?[B]:[...B]:void 0}=e;i=i||(d?!0:e.freeSolo);const{isOpen:E,onClose:G,onOpen:Q}=a.useDisclosure({defaultIsOpen:z}),pe=f.useMemo(()=>h(e.children,{isOpen:E,onClose:G,onOpen:Q}),[e.children,E]),R=f.useMemo(()=>mt(pe),[pe]),N=f.useRef(null),Ne=f.useRef(null),J=f.useRef(null),$=f.useRef(null),[Pe,ne]=f.useState(!1);let oe="";d?oe="":le(j)?le(Y)||(oe=Y[0]):oe=j[0];const[D,X]=f.useState(oe??""),de=f.useMemo(()=>q?R:R.filter(s=>s.fixed||h(e.filter||ht,D,s.value,s.label)||Pe).filter((s,c)=>b?s.fixed||c<b:!0),[D,R,Pe,b,q]),De=r?[{value:D,noFilter:!0,creatable:!0}]:[],x=f.useMemo(()=>[...de,...De],[de,De]),[M,ge]=a.useControllableState({defaultValue:j.map(s=>s==null?void 0:s.toString()),value:Y,onChange:s=>{const c=x.find(F=>F.value===s.at(-1));if(!c)return;const m=s.map(F=>x.find(L=>L.value===F));h(e.onChange,d?s:s[0],d?m:c)}});f.useEffect(()=>{x.length===0&&!l&&E&&G()},[x.length,l,E]);const[K,W]=f.useState(t?(Ge=R[0])==null?void 0:Ge.value:null),ot=e.maxSelections||M.length+1,me=x.findIndex(s=>s.value===K),ve=it(me,x,!!e.rollNavigation),he=at(me,x,!!e.rollNavigation),P=lt(x),ye=we(x),Me=!x.some(s=>s.value===K);f.useEffect(()=>{var s;Me&&W(t?(s=R[0])==null?void 0:s.value:null)},[Me]),a.useUpdateEffect(()=>{t&&W(P==null?void 0:P.value)},[D,P==null?void 0:P.value]),f.useEffect(()=>{var s;!E&&t&&W((s=R[0])==null?void 0:s.value)},[E]),f.useEffect(()=>{E&&C&&ne(!0)},[E,C,ne]),f.useEffect(()=>{const s=R.find(c=>c.value===K);h(e.onOptionFocus,{item:s,focusMethod:$.current,isNewInput:s==null?void 0:s.creatable})},[K,e.onOptionFocus]);const Ce=s=>{var F,L;const c=x.find(w=>w.value===s),m=(c==null?void 0:c.label)||(c==null?void 0:c.value);X(()=>d?"":m??""),!M.includes(s)&&M.length<ot&&ge(w=>d?[...w,s]:[s]),d&&((F=N.current)==null||F.focus()),e.focusInputOnSelect&&((L=N.current)==null||L.focus()),h(e.onSelectOption,{item:c,selectMethod:$.current,isNewInput:c==null?void 0:c.creatable}),c!=null&&c.creatable&&h(e.onCreateOption,{item:Oe(c,["noFilter"]),selectMethod:$.current}),O&&G()},Te=(s,c)=>{var L;ge(w=>{let k=R.find(T=>T.value===s);return!k&&r===!0&&(k={label:s,value:s}),k?(h(e.onTagRemoved,s,k,w),w.filter(T=>T!==s)):w});const m=R.find(w=>w.value===s),F=(m==null?void 0:m.label)||(m==null?void 0:m.value);D===F&&X(""),c&&((L=N.current)==null||L.focus())},rt=s=>{var c;ge([]),s&&((c=N.current)==null||c.focus())},_e=d?M.map(s=>{var c;return{label:((c=R.find(m=>m.value===(s==null?void 0:s.toString())))==null?void 0:c.label)||s,onRemove:()=>Te(s)}}):[];return f.useEffect(()=>{h(U,{tags:_e})},[M]),{autoCompleteProps:e,children:pe,filteredList:x,filteredResults:de,focusedValue:K,defaultEmptyStateProps:u,getEmptyStateProps:s=>{if(x.every(m=>m.noFilter)&&l&&!r)return typeof l=="boolean"?s:h(l,{query:D})},getGroupProps:s=>{const c=bt(s.children,x);return{divider:{hasFirstChild:Ct(s.children,P),hasLastChild:xt(s.children,we(x.filter(m=>le(m==null?void 0:m.noFilter))))},group:{display:c?"initial":"none"}}},getInputProps:(s,c)=>{const{onBlur:m,onChange:F,onFocus:L,onKeyDown:w,variant:k,...T}=s;return{wrapper:{ref:Ne,onClick:()=>{var g;(g=N==null?void 0:N.current)==null||g.focus()},...St(c,d),...T},input:{isReadOnly:y,onFocus:g=>{h(L,g),e.openOnFocus&&!y&&Q(),e.selectOnFocus&&g.target.select(),C&&ne(!0)},onBlur:g=>{var H,re;h(m,g);const A=g.relatedTarget===(J==null?void 0:J.current)||((H=J.current)==null?void 0:H.contains(g.relatedTarget)),v=(re=Ne.current)==null?void 0:re.contains(g.relatedTarget);if(!A&&!v&&(n&&G(),!M.includes(g.target.value)&&V)){const xe=we(M),I=R.find(Se=>Se.value===xe),be=(I==null?void 0:I.label)||(I==null?void 0:I.value)||"";X(be)}},onChange:g=>{const A=g.target.value;h(F,g),X(A);const v=Ee(A);h(ce,A)&&(!v||te)?Q():G(),ne(!1)},onKeyDown:g=>{var H;h(w,g),$.current="keyboard";const{key:A}=g,v=x[me];if(["Enter",...fe].includes(A)){v&&!(v!=null&&v.disabled)&&E?Ce(v==null?void 0:v.value):(H=N.current)==null||H.focus(),g.preventDefault();return}if(A==="ArrowDown"){E?W(ve==null?void 0:ve.value):Q(),g.preventDefault();return}if(A==="ArrowUp"){E?W(he==null?void 0:he.value):Q(),g.preventDefault();return}if(A==="Tab"){E&&v&&!(v!=null&&v.disabled)?Ce(v==null?void 0:v.value):G();return}if(A==="Home"){W(P==null?void 0:P.value),g.preventDefault();return}if(A==="End"){W(ye==null?void 0:ye.value),g.preventDefault();return}A==="Escape"&&(G(),g.preventDefault())},value:D,variant:d?"unstyled":k,...T}}},getItemProps:(s,c)=>{var We;const{_fixed:m,_focus:F,children:L,disabled:w,label:k,value:T,fixed:g,getValue:A=Re,onClick:v,onMouseOver:H,sx:re,...xe}=s,I=c?T:(We=A(T))==null?void 0:We.toString(),be=I===K,Se=x.findIndex(Z=>Z.value===I)>=0,Ae=L||k||I;return{item:{...typeof Ae!="string"||!o?{children:Ae}:{dangerouslySetInnerHTML:{__html:gt(Ae,D)}},"aria-selected":M.includes(I),"aria-disabled":w,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:Z=>{var ke;h(v,Z),w?(ke=N.current)==null||ke.focus():Ce(I)},onMouseOver:Z=>{h(H,Z),W(I),$.current="mouse"},sx:{...re,mark:{color:"inherit",bg:"transparent",...je(o)?o:{fontWeight:o?"extrabold":"inherit"}}},...be&&(F||vt()),...g&&m,...xe},root:{isValidSuggestion:Se,value:I}}},inputRef:N,interactionRef:$,isLoading:ae,isOpen:E,itemList:R,listRef:J,onClose:G,onOpen:Q,placement:ee,query:D,removeItem:Te,resetItems:rt,setQuery:X,tags:_e,value:B,values:M}}const Xe=a.forwardRef((e,t)=>{const n=Je(e),{children:r,isOpen:o,onClose:l,onOpen:u,placement:i,resetItems:y,removeItem:C}=n;f.useImperativeHandle(t,()=>({resetItems:y,removeItem:C}));const{matchWidth:b=!0}=n.autoCompleteProps;return p.jsx(Qe,{value:n,children:p.jsx(a.Popover,{isLazy:!0,isOpen:o,autoFocus:!1,placement:i,closeOnBlur:!0,matchWidth:b,children:p.jsx(a.chakra.div,{w:"full",ref:t,children:r})})})});Xe.displayName="AutoComplete";const Ze=a.forwardRef((e,t)=>{const{focusedValue:n,getItemProps:r,interactionRef:o}=_(),l=f.useRef(),u=a.useMergeRefs(t,l),i=r(e),{isValidSuggestion:y,value:C}=i.root,b=n===C;f.useEffect(()=>{var U;b&&o.current==="keyboard"&&((U=l==null?void 0:l.current)==null||U.scrollIntoView({behavior:"smooth",block:"nearest"}))},[b,o]),f.useEffect(()=>{typeof C!="string"&&console.warn("wow"),typeof C!="string"&&le(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")},[]);const{children:d,dangerouslySetInnerHTML:O,...S}=i.item,j=Oe(S,["groupId"]);return y?p.jsx(a.Flex,{ref:u,...Fe,...j,children:d||p.jsx("span",{dangerouslySetInnerHTML:O})}):null});Ze.displayName="AutoCompleteItem";const Fe={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"};function qe(e){const{alwaysDisplay:t,children:n,...r}=e,{autoCompleteProps:o,getItemProps:l,query:u,filteredResults:i}=_(),{children:y,...C}=l({...e,value:u,children:h(n,{value:u})},!0).item,b=i.some(S=>S.value===u),d=Ee(u)?t:!0;return o.creatable&&d&&!b?p.jsx(a.Flex,{...Fe,...C,...r,children:y||`Add ${u}`}):null}qe.displayName="AutoCompleteCreatable";const et=a.forwardRef((e,t)=>{const{children:n,showDivider:r,...o}=e,l=Oe(o,["groupSibling"]),{getGroupProps:u}=_(),{group:i}=u(e),y=wt(e);return p.jsxs(a.Box,{ref:t,...i,...l,children:[p.jsx(a.Divider,{...y.top}),n,p.jsx(a.Divider,{...y.bottom})]})}),tt=a.forwardRef((e,t)=>p.jsx(a.Flex,{...At,...e,ref:t}));et.displayName="AutoCompleteGroup";tt.displayName="AutoCompleteGroupTitle";const At={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},wt=e=>{const{getGroupProps:t}=_(),n=e.groupSibling,{divider:{hasFirstChild:r,hasLastChild:o}}=t(e),l={my:2,borderColor:e.dividerColor},u={...l,mb:4,display:!e.showDivider||r?"none":""},i={...l,display:!e.showDivider||o||n?"none":""};return{top:u,bottom:i}},Be=a.forwardRef((e,t)=>{const{isLoading:n}=_(),{loadingIcon:r,...o}=e;return p.jsxs(a.InputGroup,{children:[p.jsx(a.Input,{...o,ref:t}),n&&p.jsx(a.InputRightElement,{children:r||p.jsx(a.Spinner,{})})]})}),Le=a.forwardRef((e,t)=>{const{autoCompleteProps:n,inputRef:r,getInputProps:o,tags:l,setQuery:u,value:i,itemList:y}=_(),{children:C,isInvalid:b,hidePlaceholder:d,...O}=e,{value:S}=O;f.useEffect(()=>{if(i!==void 0&&(typeof i=="string"||i instanceof String)){const te=y.find(Y=>Y.value===i),B=te===void 0?i:te.label;u(B)}},[i]),f.useEffect(()=>{S!==void 0&&(typeof S=="string"||S instanceof String)&&u(S)},[S]);const j=a.useMultiStyleConfig("Input",e);let{wrapper:U,input:z}=o(O,j);const{ref:q,...ae}=U,ee=a.useMergeRefs(t,r),V=h(C,{tags:l});d&&(z={...z,placeholder:Array.isArray(V)&&V.length?void 0:z.placeholder});const ce=p.jsx(Be,{isInvalid:b,...z,ref:ee}),fe=p.jsxs(a.Wrap,{"aria-invalid":b,...ae,ref:q,children:[V,p.jsx(a.WrapItem,{as:Be,...z,ref:ee})]});return p.jsx(a.PopoverAnchor,{children:n.multiple?fe:ce})});Le.displayName="Input";Le.id="Input";const It=e=>{const{getEmptyStateProps:t,defaultEmptyStateProps:n}=_(),r=t(p.jsx(a.Flex,{...jt,...n,children:"No options found!"}));return p.jsx(a.Box,{...e,children:r})},jt={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},He=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"],Et=e=>{const t=f.Children.map(e,(o,l)=>{var u;if(((u=o==null?void 0:o.type)==null?void 0:u.displayName)==="AutoCompleteGroup"){const i=f.Children.toArray(e)[l+1];return f.cloneElement(o,{groupSibling:i?i.type.displayName==="AutoCompleteGroup":!1})}return o}),n=f.Children.toArray(t).filter(o=>{var l;return!He.includes((l=o==null?void 0:o.type)==null?void 0:l.displayName)});return[f.Children.toArray(t).filter(o=>{var l;return He.includes((l=o==null?void 0:o.type)==null?void 0:l.displayName)}),n]},nt=a.forwardRef((e,t)=>{const{children:n,loadingState:r,...o}=e,{listRef:l,isLoading:u}=_(),i=a.useMergeRefs(t,l),[y,C]=Et(n);return p.jsxs(a.PopoverContent,{ref:i,w:"inherit",...Ot,...o,children:[u&&p.jsx(a.Center,{children:r||p.jsx(a.Spinner,{size:"md"})}),!u&&p.jsxs(p.Fragment,{children:[y,p.jsx(It,{}),C]})]})});nt.displayName="AutoCompleteList";const Ot={py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},Rt=f.memo(e=>{const{label:t,onRemove:n,disabled:r,...o}=e;return p.jsx(a.WrapItem,{children:p.jsxs(a.Tag,{borderRadius:"md",fontWeight:"normal",...r&&Ue,...o,children:[p.jsx(a.TagLabel,{children:t}),p.jsx(a.TagCloseButton,{onClick:()=>!r&&h(n),cursor:"pointer",...r&&Ue})]})})}),Ue={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=Xe;exports.AutoCompleteCreatable=qe;exports.AutoCompleteGroup=et;exports.AutoCompleteGroupTitle=tt;exports.AutoCompleteInput=Le;exports.AutoCompleteItem=Ze;exports.AutoCompleteList=nt;exports.AutoCompleteProvider=Qe;exports.AutoCompleteTag=Rt;exports.baseItemStyles=Fe;exports.createContext=$e;exports.useAutoComplete=Je;exports.useAutoCompleteContext=_;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.8.2",
2
+ "version": "5.8.3",
3
3
  "license": "MIT",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",