react-animated-select 0.2.9 → 0.3.6

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.
@@ -0,0 +1,35 @@
1
+ import {CSSTransition} from 'react-transition-group'
2
+ import {useRef} from 'react'
3
+
4
+ function SlideDown({visibility, children, duration = 300}) {
5
+ const nodeRef = useRef(null)
6
+
7
+ return(
8
+ <CSSTransition
9
+ in={visibility}
10
+ timeout={300}
11
+ classNames='slideDown'
12
+ unmountOnExit
13
+ nodeRef={nodeRef}
14
+ onEnter={() => (nodeRef.current.style.height = '0px')}
15
+ onEntering={() => (nodeRef.current.style.height = nodeRef.current.scrollHeight + 'px')}
16
+ onEntered={() => (nodeRef.current.style.height = 'auto')}
17
+ onExit={() => (nodeRef.current.style.height = nodeRef.current.scrollHeight + 'px')}
18
+ onExiting={() => (nodeRef.current.style.height = '0px')}
19
+ >
20
+ <div
21
+ ref={nodeRef}
22
+ style={{
23
+ overflow: 'hidden',
24
+ transition: `height ${duration}ms ease`
25
+ }}
26
+ className='slideDown-enter-done'
27
+ tabIndex={-1}
28
+ >
29
+ {children}
30
+ </div>
31
+ </CSSTransition>
32
+ )
33
+ }
34
+
35
+ export default SlideDown
@@ -0,0 +1,7 @@
1
+ import {defineConfig} from 'vite'
2
+ import react from '@vitejs/plugin-react'
3
+
4
+ export default defineConfig({
5
+ plugins: [react()],
6
+ base: '/react-animated-select/',
7
+ })
package/dist/index.cjs.js CHANGED
@@ -1,13 +1,10 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const o=require("react"),pe=require("react-transition-group");var te={exports:{}},Q={};var ue;function je(){if(ue)return Q;ue=1;var t=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function l(a,b,c){var x=null;if(c!==void 0&&(x=""+c),b.key!==void 0&&(x=""+b.key),"key"in b){c={};for(var _ in b)_!=="key"&&(c[_]=b[_])}else c=b;return b=c.ref,{$$typeof:t,type:a,key:x,ref:b!==void 0?b:null,props:c}}return Q.Fragment=s,Q.jsx=l,Q.jsxs=l,Q}var ee={};var fe;function ke(){return fe||(fe=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===n?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case w:return"Fragment";case F:return"Profiler";case v:return"StrictMode";case k:return"Suspense";case W:return"SuspenseList";case J:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case d:return"Portal";case f:return e.displayName||"Context";case P:return(e._context.displayName||"Context")+".Consumer";case H:var u=e.render;return e=e.displayName,e||(e=u.displayName||u.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case K:return u=e.displayName||null,u!==null?u:t(e.type)||"Memo";case I:u=e._payload,e=e._init;try{return t(e(u))}catch{}}return null}function s(e){return""+e}function l(e){try{s(e);var u=!1}catch{u=!0}if(u){u=console;var y=u.error,T=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return y.call(u,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",T),s(e)}}function a(e){if(e===w)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===I)return"<...>";try{var u=t(e);return u?"<"+u+">":"<...>"}catch{return"<...>"}}function b(){var e=h.A;return e===null?null:e.getOwner()}function c(){return Error("react-stack-top-frame")}function x(e){if($.call(e,"key")){var u=Object.getOwnPropertyDescriptor(e,"key").get;if(u&&u.isReactWarning)return!1}return e.key!==void 0}function _(e,u){function y(){i||(i=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",u))}y.isReactWarning=!0,Object.defineProperty(e,"key",{get:y,configurable:!0})}function m(){var e=t(this.type);return g[e]||(g[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function j(e,u,y,T,q,B){var S=y.ref;return e={$$typeof:N,type:e,key:u,props:y,_owner:T},(S!==void 0?S:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:m}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:q}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function M(e,u,y,T,q,B){var S=u.children;if(S!==void 0)if(T)if(V(S)){for(T=0;T<S.length;T++)O(S[T]);Object.freeze&&Object.freeze(S)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else O(S);if($.call(u,"key")){S=t(e);var z=Object.keys(u).filter(function(re){return re!=="key"});T=0<z.length?"{key: someKey, "+z.join(": ..., ")+": ...}":"{key: someKey}",Y[S+T]||(z=0<z.length?"{"+z.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const n=require("react"),je=require("react-transition-group");var he={exports:{}},de={};var we;function Ve(){if(we)return de;we=1;var t=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function a(i,g,u){var h=null;if(u!==void 0&&(h=""+u),g.key!==void 0&&(h=""+g.key),"key"in g){u={};for(var j in g)j!=="key"&&(u[j]=g[j])}else u=g;return g=u.ref,{$$typeof:t,type:i,key:h,ref:g!==void 0?g:null,props:u}}return de.Fragment=s,de.jsx=a,de.jsxs=a,de}var ge={};var _e;function ze(){return _e||(_e=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===z?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case k:return"Fragment";case D:return"Profiler";case M:return"StrictMode";case J:return"Suspense";case U:return"SuspenseList";case v:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case F:return"Portal";case d:return e.displayName||"Context";case W:return(e._context.displayName||"Context")+".Consumer";case Y:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case V:return r=e.displayName||null,r!==null?r:t(e.type)||"Memo";case p:r=e._payload,e=e._init;try{return t(e(r))}catch{}}return null}function s(e){return""+e}function a(e){try{s(e);var r=!1}catch{r=!0}if(r){r=console;var o=r.error,c=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",c),s(e)}}function i(e){if(e===k)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===p)return"<...>";try{var r=t(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function g(){var e=A.A;return e===null?null:e.getOwner()}function u(){return Error("react-stack-top-frame")}function h(e){if(H.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function j(e,r){function o(){X||(X=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}o.isReactWarning=!0,Object.defineProperty(e,"key",{get:o,configurable:!0})}function b(){var e=t(this.type);return O[e]||(O[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function E(e,r,o,c,S,w){var x=o.ref;return e={$$typeof:$,type:e,key:r,props:o,_owner:c},(x!==void 0?x:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:b}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:S}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:w}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function P(e,r,o,c,S,w){var x=r.children;if(x!==void 0)if(c)if(L(x)){for(c=0;c<x.length;c++)T(x[c]);Object.freeze&&Object.freeze(x)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else T(x);if(H.call(r,"key")){x=t(e);var N=Object.keys(r).filter(function(m){return m!=="key"});c=0<N.length?"{key: someKey, "+N.join(": ..., ")+": ...}":"{key: someKey}",K[x+c]||(N=0<N.length?"{"+N.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,T,S,z,S),Y[S+T]=!0)}if(S=null,y!==void 0&&(l(y),S=""+y),x(u)&&(l(u.key),S=""+u.key),"key"in u){y={};for(var X in u)X!=="key"&&(y[X]=u[X])}else y=u;return S&&_(y,typeof e=="function"?e.displayName||e.name||"Unknown":e),j(e,S,y,b(),q,B)}function O(e){C(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===I&&(e._payload.status==="fulfilled"?C(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function C(e){return typeof e=="object"&&e!==null&&e.$$typeof===N}var A=o,N=Symbol.for("react.transitional.element"),d=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),v=Symbol.for("react.strict_mode"),F=Symbol.for("react.profiler"),P=Symbol.for("react.consumer"),f=Symbol.for("react.context"),H=Symbol.for("react.forward_ref"),k=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),K=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),J=Symbol.for("react.activity"),n=Symbol.for("react.client.reference"),h=A.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,V=Array.isArray,r=console.createTask?console.createTask:function(){return null};A={react_stack_bottom_frame:function(e){return e()}};var i,g={},R=A.react_stack_bottom_frame.bind(A,c)(),L=r(a(c)),Y={};ee.Fragment=w,ee.jsx=function(e,u,y){var T=1e4>h.recentlyCreatedOwnerStacks++;return M(e,u,y,!1,T?Error("react-stack-top-frame"):R,T?r(a(e)):L)},ee.jsxs=function(e,u,y){var T=1e4>h.recentlyCreatedOwnerStacks++;return M(e,u,y,!0,T?Error("react-stack-top-frame"):R,T?r(a(e)):L)}})()),ee}var de;function Te(){return de||(de=1,process.env.NODE_ENV==="production"?te.exports=je():te.exports=ke()),te.exports}var E=Te();const _e=({className:t="",...s})=>E.jsx("svg",{className:t,role:"button","aria-label":"Clear selection",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",width:"1em",height:"1em",fill:"currentColor",...s,children:E.jsx("path",{d:"M310.6 361.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L160 301.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 256 9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 210.7 265.4 105.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L205.3 256l105.3 105.4z"})}),Re=({className:t="",...s})=>E.jsx("svg",{className:t,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",width:"1em",height:"1em",fill:"currentColor",...s,children:E.jsx("path",{d:"M34.9 289.5l175.9-175.8c9.4-9.4 24.6-9.4 33.9 0L420.1 289.5c15.1 15.1 4.4 41-17 41H51.9c-21.4 0-32.1-25.9-17-41z"})}),he=o.createContext(null);function $e({disabled:t,isOpen:s,setIsOpen:l,options:a,selectOption:b,selected:c}){const x=o.useRef(!1),_=o.useRef(0),[m,j]=o.useState(-1);o.useEffect(()=>{const d=()=>{_.current=Date.now()};return window.addEventListener("focus",d),()=>window.removeEventListener("focus",d)},[]),o.useEffect(()=>{if(s){let d=-1;if(c){const w=a.findIndex(v=>v.id===c.id&&!v.disabled);w>=0&&(d=w)}d===-1&&(d=a.findIndex(w=>!w.disabled)),j(d)}else j(-1)},[s,c,a]);const M=o.useCallback(d=>{d.currentTarget.contains(d.relatedTarget)||l(!1)},[l]),O=o.useCallback(()=>{t||document.hidden||Date.now()-_.current<100||s||(l(!0),x.current=!0,setTimeout(()=>{x.current=!1},200))},[t,s,l]),C=o.useCallback(d=>{t||d.target.closest(".rac-select-cancel")||x.current||l(!s)},[t,s,l]),A=(d,w)=>{if(a.every(P=>P.disabled))return-1;let v=d,F=0;do v+=w,v<0&&(v=a.length-1),v>=a.length&&(v=0),F++;while(a[v]?.disabled&&F<=a.length);return v},N=o.useCallback(d=>{if(!t)switch(d.key){case"Enter":case" ":d.preventDefault(),s?m!==-1&&a[m]&&b(a[m],d):l(!0);break;case"Escape":d.preventDefault(),l(!1);break;case"ArrowDown":d.preventDefault(),s?j(w=>A(w,1)):l(!0);break;case"ArrowUp":d.preventDefault(),s?j(w=>A(w,-1)):l(!0);break;case"Tab":s&&l(!1);break}},[t,s,l,m,a,b]);return o.useMemo(()=>({handleBlur:M,handleFocus:O,handleToggle:C,handleKeyDown:N,highlightedIndex:m,setHighlightedIndex:j}),[M,O,C,N,m,j])}function Ae({options:t=[],jsxOptions:s=[],value:l,defaultValue:a=void 0,onChange:b,disabled:c=!1,loading:x=!1,error:_=!1,placeholder:m="Choose option",emptyText:j="No options",disabledText:M="Disabled",loadingText:O="Loading",errorText:C="Failed to load",disabledOption:A="Disabled option",emptyOption:N="Empty option",invalidOption:d="Invalid option",setVisibility:w}){const v=o.useId(),F=l!==void 0,[P,f]=o.useState(null),H=n=>!n||typeof n!="object"||Array.isArray(n)?!1:"id"in n||"value"in n||"name"in n||"label"in n||"disabled"in n,k=o.useMemo(()=>{const n=[],h=(r,i,g)=>{let R=g?.id??g?.value??i??r;if(typeof i=="function"){n.push({key:`invalid-${n.length}`,value:i,userId:null,disabled:!0,isInvalid:!0,label:d,original:g});return}if(i===""){n.push({key:`empty-str-${n.length}`,value:"",userId:null,disabled:!0,label:N,original:g});return}if(i==null){n.push({key:`empty-${n.length}`,value:null,userId:null,disabled:!0,label:N,original:g});return}if(typeof i=="number"||typeof i=="boolean"){n.push({key:`${typeof i}-${i}-${n.length}`,value:i,userId:R,label:String(i),original:g});return}i&&typeof i=="object"&&!Array.isArray(i)?n.push({key:i.id??i.value??i.name??r??`obj-${n.length}`,value:i,userId:R,disabled:!!i.disabled,label:i.name??i.label??String(r),original:g}):n.push({key:r??`opt-${n.length}`,value:i,userId:R,label:String(i??r),original:g})};Array.isArray(t)?t.forEach((r,i)=>{if(r&&typeof r=="object"&&Object.keys(r).length===1&&r.disabled===!0)n.push({key:`dis-${i}`,value:null,userId:null,disabled:!0,label:A,original:r});else if(H(r)){const g=r.id??(typeof r.value!="object"?r.value:r.label??r.name??r.value);n.push({key:r.id??r.value??r.name??`opt-${i}`,value:r.value!==void 0?r.value:r.id!==void 0?r.id:r,userId:g,disabled:!!r.disabled,label:r.name??r.label??String(r.id??r.value),original:r})}else r&&typeof r=="object"&&!Array.isArray(r)?Object.entries(r).forEach(([g,R])=>h(g,R,R)):h(r,r,r)}):typeof t=="object"&&t!==null&&Object.entries(t).forEach(([r,i])=>h(r,i,i));const $=n.map((r,i)=>({id:`${v}-opt-${i}`,userId:r.userId,name:String(r.label),raw:r.value,original:r.original,disabled:r.disabled,isInvalid:r.isInvalid,type:typeof r.value=="boolean"?"boolean":"normal"})),V=s.map((r,i)=>({...r,id:`jsx-${v.replace(/:/g,"")}-${r.id}-${i}`,userId:r.id,raw:r.value,original:r.value,name:r.label,type:typeof r.value=="boolean"?"boolean":"normal"}));return[...$,...V]},[t,s,v,N,A]),W=o.useCallback(n=>{if(n==null)return null;const h=k.find($=>$.original===n||$.raw===n);if(h)return h.id;if(typeof n=="object")try{const $=JSON.stringify(n),V=k.find(r=>r.original&&typeof r.original=="object"&&JSON.stringify(r.original)===$);if(V)return V.id}catch{}return k.find($=>$.userId===n)?.id??null},[k]);o.useEffect(()=>{const n=F?l:a,h=k.find(V=>V.id===P);h&&(h.original===n||h.raw===n||h.userId===n)||f(W(n))},[l,a,F,k,W]);const K=o.useMemo(()=>k.find(n=>n.id===P)??null,[P,k]),I=o.useCallback((n,h)=>{if(n.disabled){h?.stopPropagation(),h?.preventDefault();return}f(n.id),b?.(n.original,n.userId),w(!1)},[b,w]),J=o.useCallback(n=>{n.preventDefault(),n.stopPropagation(),f(null),b?.(null,null)},[b]);return{normalizedOptions:k,selected:K,selectOption:I,clear:J,hasOptions:k.length>0,active:!_&&!x&&!c&&k.length>0,selectedValue:l??a,placeholder:m,emptyText:j,disabledText:M,loadingText:O,errorText:C,disabledOption:A,emptyOption:N,invalidOption:d,disabled:c,loading:x,error:_}}const oe=(t,s="invalid-option",l="")=>{const a=l?l.replace(/:/g,""):"";if(typeof t!="string"||!t.trim())return a?`${s}-${a}`:`${s}-${Math.random().toString(36).slice(2,8)}`;const b=t.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"-").replace(/[^\p{L}\p{N}-]+/gu,"").toLowerCase();return b?b||`${s}-${Math.random().toString(36).slice(2,8)}`:a?`${s}-${a}`:`${s}-${Math.random().toString(36).slice(2,8)}`};function Ce({visibility:t,children:s,selectRef:l,onAnimationDone:a,unmount:b=!0,duration:c,easing:x,offset:_,animateOpacity:m}){const j=o.useRef(null),[M,O]=o.useState(0);o.useEffect(()=>{if(!l?.current)return;O(l.current.offsetHeight);const H=new ResizeObserver(k=>{for(let W of k)O(W.target.offsetHeight)});return H.observe(l.current),()=>H.disconnect()},[l]);const C=`height ${c}ms ${x}${m?`, opacity ${c}ms ${x}`:""}`,A={position:"absolute",top:`calc(100% + ${_}px)`,left:"0",width:"100%",overflow:"hidden",marginTop:"2px",zIndex:"1",height:t?"auto":"0px",opacity:m?t?1:0:1,pointerEvents:t?"all":"none",visibility:M?"visible":"hidden"},N=o.useCallback(()=>{const f=j.current;f&&(f.style.height="0px",m&&(f.style.opacity="0"),f.style.transition="")},[m]),d=o.useCallback(()=>{const f=j.current;f&&(f.style.transition=C,f.style.height=`${f.scrollHeight}px`,m&&(f.style.opacity="1"))},[C,m]),w=o.useCallback(()=>{const f=j.current;f&&(f.style.height="auto",f.style.transition="",a&&a())},[a]),v=o.useCallback(()=>{const f=j.current;f&&(f.style.height=`${f.scrollHeight}px`,m&&(f.style.opacity="1"),f.offsetHeight,f.style.transition=C)},[C,m]),F=o.useCallback(()=>{const f=j.current;f&&(f.style.height="0px",m&&(f.style.opacity="0"))},[m]),P=o.useCallback(()=>{const f=j.current;f&&(f.style.transition="")},[]);return E.jsx(pe.CSSTransition,{in:t,timeout:c,classNames:"rac-options",unmountOnExit:b,nodeRef:j,onEnter:N,onEntering:d,onEntered:w,onExit:v,onExiting:F,onExited:P,children:E.jsx("div",{ref:j,className:"rac-options",style:A,children:s})})}const Ne=o.memo(Ce,(t,s)=>t.visibility===s.visibility&&t.duration===s.duration&&t.easing===s.easing&&t.offset===s.offset&&t.animateOpacity===s.animateOpacity&&t.selectRef===s.selectRef&&t.children===s.children);function ne({visibility:t,children:s,duration:l=300,unmount:a,style:b}){const c=o.useRef(null);return E.jsx(pe.CSSTransition,{in:t,timeout:l,classNames:"rac-slide-left",unmountOnExit:!0,nodeRef:c,onEnter:()=>c.current.style.width="0px",onEntering:()=>c.current.style.width=c.current.scrollWidth+"px",onEntered:()=>c.current.style.width="auto",onExit:()=>c.current.style.width=c.current.scrollWidth+"px",onExiting:()=>c.current.style.width="0px",onExited:()=>a?.(),children:E.jsx("div",{ref:c,style:{...b,overflow:"hidden",transition:`width ${l}ms ease`},children:s})})}const be=(t,s)=>{if(!t)return null;if(typeof t=="string")return E.jsx("img",{src:t,...s,alt:""});if(o.isValidElement(t))return o.cloneElement(t,s);if(typeof t=="function"||typeof t=="object"&&t.$$typeof){const l=t;return E.jsx(l,{...s})}return null},Ie=o.forwardRef(({unmount:t,children:s,renderedDropdown:l,visibility:a,ownBehavior:b=!1,alwaysOpen:c=!1,duration:x=300,easing:_="ease-out",offset:m=2,animateOpacity:j=!0,style:M={},className:O="",ArrowIcon:C=Re,ClearIcon:A=_e,...N},d)=>{const w=o.useId(),v=o.useMemo(()=>w.replace(/:/g,""),[w]),[F,P]=o.useState([]),f=o.useCallback(p=>{P(D=>[...D,p])},[]),H=o.useCallback(p=>{P(D=>D.filter(G=>G.id!==p))},[]),k=o.useRef(null);o.useEffect(()=>{d&&(typeof d=="function"?d(k.current):d.current=k.current)},[d]),o.useImperativeHandle(d,()=>k.current);const[W,K]=o.useState(!1),I=o.useMemo(()=>c?!0:b?!!a:W,[c,b,a,W]),J=o.useCallback(p=>{c||b||K(D=>typeof p=="function"?p(D):p)},[c,b]),{normalizedOptions:n,selected:h,selectOption:$,clear:V,hasOptions:r,active:i,selectedValue:g,disabled:R,loading:L,error:Y,placeholder:e,invalidOption:u,options:y,value:T,defaultValue:q,isControlled:B,emptyText:S,disabledText:z,loadingText:X,errorText:re}=Ae({...N,setVisibility:J,jsxOptions:F}),{handleBlur:ge,handleFocus:ye,handleToggle:Ee,handleKeyDown:xe,highlightedIndex:Z,setHighlightedIndex:ve}=$e({disabled:R,isOpen:I,setIsOpen:J,options:n,selectOption:$,selected:h}),[le,ae]=o.useState(!1);o.useEffect(()=>{I||ae(!1)},[I]),o.useEffect(()=>{(Y||R||L||!r)&&J(!1)},[Y,R,L,r]),o.useEffect(()=>{if(I&&le&&Z!==-1){const p=n[Z];if(p){const D=`opt-${v}-${oe(p.id)}`,G=document.getElementById(D);G&&G.scrollIntoView({block:"nearest"})}}},[Z,I,le,n,v]);const ie=g!=null&&!(Array.isArray(g)&&g.length===0)&&!(typeof g=="object"&&Object.keys(g).length===0),ce=o.useMemo(()=>{if(Y)return re;if(L)return X;if(R)return z;if(h)return h.jsx??h.name;if(ie){const p=n.find(D=>D.raw===g);return p?p.name:typeof g=="object"&&g!==null?g.name??g.label??"Selected Object":String(g)}return r?e:S},[R,L,Y,r,h,g,e,re,X,z,S]),me=`${v}-listbox`,we=o.useMemo(()=>n?.map((p,D)=>{const G=`opt-${v}-${oe(p.id)}`;let U="rac-select-option";return p.className&&(U+=` ${p.className}`),h?.id===p.id&&(U+=" rac-selected"),D===Z&&(U+=" rac-highlighted"),p.disabled&&(U+=" rac-disabled-option"),p.isInvalid&&(U+=" rac-invalid-option"),typeof p.raw=="boolean"&&(U+=p.raw?" rac-true-option":" rac-false-option"),p.name==u&&(U+=" rac-invalid-option"),E.jsx("div",{className:U,onClick:Se=>$(p,Se),onMouseEnter:()=>!p.disabled&&ve(D),id:G,role:"option","aria-selected":h?.id===p.id,"aria-disabled":p.disabled,children:p.jsx??p.name},p.id)}),[n,$,v,h,Z]);return o.useEffect(()=>{process.env.NODE_ENV!=="production"&&(y&&typeof y!="object"&&console.error(`%c[Select Library]:%c Invalid prop %coptions%c.
7
- Expected %cArray%c or %cObject%c, but received %c${typeof y}%c.
8
- `,"color: #ff4d4f; font-weight: bold;","color: default;","color: #1890ff; font-weight: bold;","color: default;","color: #52c41a; font-weight: bold;","color: default;","color: #52c41a; font-weight: bold;","color: default;","color: #ff4d4f; font-weight: bold;","color: default;"),B&&q!==void 0&&console.warn(`%c[Select Library]:%c .
9
- `,"color: #faad14; font-weight: bold;","color: default;"))},[y,T,q,B]),E.jsxs(he.Provider,{value:{registerOption:f,unregisterOption:H},children:[s,l,E.jsxs("div",{style:{"--rac-duration":`${x}ms`,...M},className:`rac-select
10
- ${O}
11
- ${!r||R?"rac-disabled-style":""}
12
- ${L?"rac-loading-style":""}
13
- ${Y?"rac-error-style":""}`,tabIndex:i?0:-1,ref:k,role:"combobox","aria-haspopup":"listbox","aria-expanded":I,"aria-controls":me,"aria-label":e,"aria-disabled":R||!r,...i&&{onBlur:ge,onFocus:ye,onClick:Ee,onKeyDown:xe},children:[E.jsxs("div",{className:`rac-select-title ${!Y&&!L&&h?.type=="boolean"?h.raw?"rac-true-option":"rac-false-option":""}`,children:[E.jsx("span",{className:"rac-title-text",children:ce},ce),E.jsx(ne,{visibility:L&&!Y,duration:x,children:E.jsxs("span",{className:"rac-loading-dots",children:[E.jsx("i",{}),E.jsx("i",{}),E.jsx("i",{})]})})]}),E.jsxs("div",{className:"rac-select-buttons",children:[E.jsx(ne,{visibility:ie&&r&&!R&&!L&&!Y,duration:x,style:{display:"grid"},children:be(A,{className:"rac-select-cancel",onClick:p=>V(p)})}),E.jsx(ne,{visibility:i,duration:x,style:{display:"grid"},children:E.jsx("span",{className:`rac-select-arrow-wrapper ${I?"--open":""}`,children:be(C,{className:"rac-select-arrow-wrapper"})})})]}),E.jsx(Ne,{visibility:I,selectRef:k,onAnimationDone:()=>ae(!0),unmount:t,duration:x,easing:_,offset:m,animateOpacity:j,children:E.jsx("div",{className:"rac-select-list",role:"listbox","aria-label":"Options",children:we})})]})]})}),se=t=>t?typeof t=="string"||typeof t=="number"?String(t):Array.isArray(t)?t.map(se).join(" ").replace(/\s+/g," ").trim():o.isValidElement(t)?se(t.props.children):"":"";function Oe({value:t,id:s,className:l,children:a,disabled:b}){const c=o.useContext(he);return o.useEffect(()=>{if(!c)return;const x=se(a),_={id:String(s??oe(String(x))),value:t!==void 0?t:x,label:typeof a=="string"?a:String(t??s),jsx:a,className:l,disabled:!!b};return c.registerOption(_),()=>c.unregisterOption(_.id)},[s,t,a,l,b]),null}exports.Option=Oe;exports.Select=Ie;
6
+ <%s key={someKey} {...props} />`,c,x,N,x),K[x+c]=!0)}if(x=null,o!==void 0&&(a(o),x=""+o),h(r)&&(a(r.key),x=""+r.key),"key"in r){o={};for(var l in r)l!=="key"&&(o[l]=r[l])}else o=r;return x&&j(o,typeof e=="function"?e.displayName||e.name||"Unknown":e),E(e,x,o,g(),S,w)}function T(e){_(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===p&&(e._payload.status==="fulfilled"?_(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function _(e){return typeof e=="object"&&e!==null&&e.$$typeof===$}var R=n,$=Symbol.for("react.transitional.element"),F=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),M=Symbol.for("react.strict_mode"),D=Symbol.for("react.profiler"),W=Symbol.for("react.consumer"),d=Symbol.for("react.context"),Y=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),U=Symbol.for("react.suspense_list"),V=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),z=Symbol.for("react.client.reference"),A=R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=Object.prototype.hasOwnProperty,L=Array.isArray,B=console.createTask?console.createTask:function(){return null};R={react_stack_bottom_frame:function(e){return e()}};var X,O={},ee=R.react_stack_bottom_frame.bind(R,u)(),se=B(i(u)),K={};ge.Fragment=k,ge.jsx=function(e,r,o){var c=1e4>A.recentlyCreatedOwnerStacks++;return P(e,r,o,!1,c?Error("react-stack-top-frame"):ee,c?B(i(e)):se)},ge.jsxs=function(e,r,o){var c=1e4>A.recentlyCreatedOwnerStacks++;return P(e,r,o,!0,c?Error("react-stack-top-frame"):ee,c?B(i(e)):se)}})()),ge}var $e;function We(){return $e||($e=1,process.env.NODE_ENV==="production"?he.exports=Ve():he.exports=ze()),he.exports}var f=We();const Je=({className:t="",...s})=>f.jsx("svg",{className:t,role:"button","aria-label":"Clear selection",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",width:"1em",height:"1em",fill:"currentColor",...s,children:f.jsx("path",{d:"M310.6 361.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L160 301.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 256 9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 210.7 265.4 105.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L205.3 256l105.3 105.4z"})}),Ue=({className:t="",...s})=>f.jsx("svg",{className:t,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",width:"1em",height:"1em",fill:"currentColor",...s,children:f.jsx("path",{d:"M34.9 289.5l175.9-175.8c9.4-9.4 24.6-9.4 33.9 0L420.1 289.5c15.1 15.1 4.4 41-17 41H51.9c-21.4 0-32.1-25.9-17-41z"})}),ye=(t,s="invalid-option",a="")=>{const i=a?a.replace(/:/g,""):"";if(typeof t!="string"||!t.trim())return i?`${s}-${i}`:`${s}-${Math.random().toString(36).slice(2,8)}`;const g=t.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"-").replace(/[^\p{L}\p{N}-]+/gu,"").toLowerCase();return g?g||`${s}-${Math.random().toString(36).slice(2,8)}`:i?`${s}-${i}`:`${s}-${Math.random().toString(36).slice(2,8)}`},Se=n.createContext(null);function qe({visibility:t,children:s,selectRef:a,onAnimationDone:i,unmount:g=!0,duration:u,easing:h,offset:j,animateOpacity:b}){const E=n.useRef(null),[P,T]=n.useState(0);n.useEffect(()=>{if(!a?.current)return;T(a.current.offsetHeight);const Y=new ResizeObserver(J=>{for(let U of J)T(U.target.offsetHeight)});return Y.observe(a.current),()=>Y.disconnect()},[a]);const _=`height ${u}ms ${h}${b?`, opacity ${u}ms ${h}`:""}`,R={position:"absolute",top:`calc(100% + ${j}px)`,left:"0",width:"100%",overflow:"hidden",marginTop:"2px",zIndex:"1",height:t?"auto":"0px",opacity:b?t?1:0:1,pointerEvents:t?"all":"none",visibility:P?"visible":"hidden"},$=n.useCallback(()=>{const d=E.current;d&&(d.style.height="0px",b&&(d.style.opacity="0"),d.style.transition="")},[b]),F=n.useCallback(()=>{const d=E.current;d&&(d.style.transition=_,d.style.height=`${d.scrollHeight}px`,b&&(d.style.opacity="1"))},[_,b]),k=n.useCallback(()=>{const d=E.current;d&&(d.style.height="auto",d.style.transition="",i&&i())},[i]),M=n.useCallback(()=>{const d=E.current;d&&(d.style.height=`${d.scrollHeight}px`,b&&(d.style.opacity="1"),d.offsetHeight,d.style.transition=_)},[_,b]),D=n.useCallback(()=>{const d=E.current;d&&(d.style.height="0px",b&&(d.style.opacity="0"))},[b]),W=n.useCallback(()=>{const d=E.current;d&&(d.style.transition="")},[]);return f.jsx(je.CSSTransition,{in:t,timeout:u,classNames:"rac-options",unmountOnExit:g,nodeRef:E,onEnter:$,onEntering:F,onEntered:k,onExit:M,onExiting:D,onExited:W,children:f.jsx("div",{ref:E,className:"rac-options",style:R,children:s})})}const Xe=n.memo(qe,(t,s)=>t.visibility===s.visibility&&t.duration===s.duration&&t.easing===s.easing&&t.offset===s.offset&&t.animateOpacity===s.animateOpacity&&t.selectRef===s.selectRef&&t.children===s.children);function be({visibility:t,children:s,duration:a=300,unmount:i,style:g}){const u=n.useRef(null);return f.jsx(je.CSSTransition,{in:t,timeout:a,classNames:"rac-slide-left",unmountOnExit:!0,nodeRef:u,onEnter:()=>u.current.style.width="0px",onEntering:()=>u.current.style.width=u.current.scrollWidth+"px",onEntered:()=>u.current.style.width="auto",onExit:()=>u.current.style.width=u.current.scrollWidth+"px",onExiting:()=>u.current.style.width="0px",onExited:()=>i?.(),children:f.jsx("div",{ref:u,style:{...g,overflow:"hidden",transition:`width ${a}ms ease`},children:s})})}const Ke=n.memo(({selectRef:t,selectId:s,renderOptions:a,selected:i,title:g,visibility:u,active:h,hasOptions:j,hasActualValue:b,disabled:E,loading:P,error:T,registerOption:_,unregisterOption:R,handleBlur:$,handleFocus:F,handleToggle:k,handleKeyDown:M,handleListScroll:D,setAnimationFinished:W,clear:d,children:Y,renderedDropdown:J,placeholder:U,className:V,style:p,duration:v,easing:z,offset:A,animateOpacity:H,unmount:L,ArrowIcon:B,ClearIcon:X,renderIcon:O,hasMore:ee,loadButton:se})=>f.jsxs(Se.Provider,{value:{registerOption:_,unregisterOption:R},children:[Y,J,f.jsxs("div",{ref:t,style:{"--rac-duration":`${v}ms`,...p},className:`rac-select
7
+ ${V}
8
+ ${!j||E?"rac-disabled-style":""}
9
+ ${P?"rac-loading-style":""}
10
+ ${T?"rac-error-style":""}`,tabIndex:h?0:-1,role:"combobox","aria-haspopup":"listbox","aria-expanded":u,"aria-controls":`${s}-listbox`,"aria-label":U,"aria-disabled":E||!j,...h&&{onBlur:$,onFocus:F,onClick:k,onKeyDown:M},children:[f.jsxs("div",{className:`rac-select-title ${!T&&!P&&i?.type==="boolean"?i.raw?"rac-true-option":"rac-false-option":""}`,children:[f.jsx("span",{className:"rac-title-text",children:g},g),f.jsx(be,{visibility:P&&!T,duration:v,children:f.jsxs("span",{className:"rac-loading-dots",children:[f.jsx("i",{}),f.jsx("i",{}),f.jsx("i",{})]})})]}),f.jsxs("div",{className:"rac-select-buttons",children:[f.jsx(be,{visibility:b&&j&&!E&&!P&&!T,duration:v,style:{display:"grid"},children:O(X,{className:"rac-select-cancel",onMouseDown:K=>{K.preventDefault(),K.stopPropagation()},onClick:d})}),f.jsx(be,{visibility:h,duration:v,style:{display:"grid"},children:f.jsx("span",{className:`rac-select-arrow-wrapper ${u?"--open":""}`,children:O(B,{className:"rac-select-arrow-wrapper"})})})]}),f.jsx(Xe,{visibility:u,selectRef:t,onAnimationDone:()=>W(!0),unmount:L,duration:v,easing:z,offset:A,animateOpacity:H,children:f.jsxs("div",{onScroll:D,tabIndex:"-1",className:"rac-select-list",role:"listbox","aria-label":"Options",children:[a,!se&&ee&&f.jsxs("div",{className:"rac-select-option rac-disabled-option rac-loading-option",onClick:K=>K.stopPropagation(),children:[f.jsx("span",{className:"rac-loading-option-title",children:"Loading"}),f.jsxs("span",{className:"rac-loading-dots",children:[f.jsx("i",{}),f.jsx("i",{}),f.jsx("i",{})]})]})]})})]})]}));function Ze({disabled:t,open:s,setOpen:a,options:i=[],selectOption:g,selected:u,hasMore:h,loadMore:j,loadButton:b,loadButtonText:E,setLoadingTitle:P,loadOffset:T,loadAhead:_}){const R=n.useRef(!1),$=n.useRef(0),F=n.useRef(!1),[k,M]=n.useState(-1);n.useEffect(()=>{F.current=!1,b&&P(E)},[i.length,h,b,E,P]);const D=n.useCallback(()=>{!h||F.current||(F.current=!0,j())},[h,j]),W=n.useCallback(p=>{if(b||!h||F.current)return;const{scrollTop:v,scrollHeight:z,clientHeight:A}=p.currentTarget;z-v<=A+T&&D()},[b,h,T,D]);n.useEffect(()=>{!b&&s&&h&&k>=i.length-_&&D()},[k,s,h,i.length,_,b,D]),n.useEffect(()=>{const p=()=>{$.current=Date.now()};return window.addEventListener("focus",p),()=>window.removeEventListener("focus",p)},[]),n.useEffect(()=>{if(!s){M(-1);return}if(k>=0&&k<i.length)return;let p=-1;u&&(p=i.findIndex(v=>v.id===u.id&&!v.disabled)),p===-1&&(p=i.findIndex(v=>!v.disabled)),M(p)},[s,i,u]);const d=n.useCallback((p,v)=>{const z=L=>L&&!L.disabled&&!L.loading,A=i.length;if(A===0)return-1;let H=p;for(let L=0;L<A;L++){if(H=(H+v+A)%A,!b&&h&&(v>0&&H===0||v<0&&H===A-1))return p;if(z(i[H]))return H}return p},[i,h,b]),Y=n.useCallback(p=>{p.currentTarget.contains(p.relatedTarget)||a(!1)},[a]),J=n.useCallback(()=>{t||document.hidden||Date.now()-$.current<100||s||(a(!0),R.current=!0,setTimeout(()=>{R.current=!1},200))},[t,s,a]),U=n.useCallback(p=>{t||p.target.closest(".rac-select-cancel")||R.current||a(!s)},[t,s,a]),V=n.useCallback(p=>{if(!t)switch(p.key){case"Enter":case" ":p.preventDefault(),s?k!==-1&&i[k]&&g(i[k],p):a(!0);break;case"Escape":p.preventDefault(),a(!1);break;case"ArrowDown":p.preventDefault(),s?M(v=>d(v,1)):a(!0);break;case"ArrowUp":p.preventDefault(),s?M(v=>d(v,-1)):a(!0);break;case"Tab":s&&a(!1);break}},[t,s,a,k,i,g,d]);return n.useMemo(()=>({handleBlur:Y,handleFocus:J,handleToggle:U,handleKeyDown:V,highlightedIndex:k,setHighlightedIndex:M,handleListScroll:W}),[Y,J,U,V,k,W])}const Qe=["group","disabled","options","items","children"],Ce=["name","label","id","value"];function Be({options:t=[],jsxOptions:s=[],value:a,defaultValue:i=void 0,onChange:g,disabled:u=!1,loading:h=!1,error:j=!1,placeholder:b="Choose option",emptyText:E="No options",disabledText:P="Disabled",loadingText:T="Loading",errorText:_="Failed to load",disabledOption:R="Disabled option",emptyOption:$="Empty option",invalidOption:F="Invalid option",setVisibility:k,hasMore:M,loadButton:D,setLoadingTitle:W,loadingTitle:d,loadMoreText:Y,loadMore:J,childrenFirst:U}){const V=n.useId(),p=a!==void 0,[v,z]=n.useState(null),A=n.useCallback((r,o=!1)=>{const c=Ce.find(w=>r[w]!==void 0&&r[w]!==null&&r[w]!=="");if(c)return String(r[c]);const S=Object.entries(r).find(([w,x])=>!Qe.includes(w)&&x!=null&&x!=="");return S?String(S[1]):o},[]),H=n.useCallback((r,o,c="normal",S=null,w=!1)=>{let x="",N=r,l=w,m=null,G=S;return r==null||r===""?{id:`${V}-${c}-${o}`,userId:null,name:$,raw:null,disabled:!0,type:"normal",group:G}:typeof r=="function"?{id:`${V}-inv-${o}`,userId:null,name:F,raw:r,disabled:!0,invalid:!0,type:"normal",group:G}:(typeof r=="object"&&!Array.isArray(r)?(G||(G=r.group||null),l=l||!!r.disabled,m=r.id??r.value??r.name??r.label,N=r.value!==void 0?r.value:r.id!==void 0?r.id:r,x=A(r,l?R:$),x===$&&!l&&(l=!0)):(x=String(r),m=r,N=r),{id:`${V}-${c}-${o}`,userId:m,name:x,raw:N,original:r,disabled:l,type:typeof N=="boolean"?"boolean":"normal",group:G})},[V,$,F,R,A]),[L,B]=n.useState(new Set),X=n.useCallback(r=>{B(o=>{const c=new Set(o);return c.has(r)?c.delete(r):c.add(r),c})},[]),O=n.useMemo(()=>{const r=[],o=(l,m,G=null,Z=!1)=>{if(l&&typeof l=="object"&&!Array.isArray(l)&&"options"in l){const re=A(l,"Empty group",!0),ie=Z||!!l.disabled,Q=l.options;Array.isArray(Q)?Q.forEach((ce,ae)=>o(ce,`${m}-${ae}`,re,ie)):Q&&typeof Q=="object"?Object.entries(Q).forEach(([ce,ae],pe)=>o(ae,`${m}-${pe}`,re,ie)):o(Q,`${m}-0`,re,ie);return}if(l&&typeof l=="object"&&!Array.isArray(l)&&!Ce.some(re=>re in l)&&!("group"in l)){Object.entries(l).forEach(([re,ie],Q)=>{r.push(H(ie,`${m}-${Q}`,"normal",G,Z))});return}r.push(H(l,m,"normal",G,Z))};Array.isArray(t)&&t.forEach((l,m)=>o(l,m));const c=s.map(l=>{if(l.isGroupMarker)return{...l,type:"group-marker"};const m=(l.value==null||l.value==="")&&!l.label;return{...l,id:`jsx-${l.id}`,userId:l.id,raw:l.value,original:l.value,name:m?$:l.label,disabled:!!l.disabled||m,type:typeof l.value=="boolean"?"boolean":"normal",group:l.group||null}}),S=U?[...c,...r]:[...r,...c],w=[],x=new Map,N=[];return S.forEach(l=>{if(!l.group)N.push({type:"item",data:l});else if(x.has(l.group)||(x.set(l.group,[]),N.push({type:"group",name:l.group})),!l.isGroupMarker){const m=L.has(l.group);x.get(l.group).push({...l,hidden:!m})}}),N.forEach((l,m)=>{if(l.type==="item")w.push(l.data);else{const G=L.has(l.name);w.push({id:`group-header-${l.name}-${m}`,name:l.name,disabled:!1,groupHeader:!0,expanded:G,type:"group"});const Z=x.get(l.name);w.push(...Z)}}),M&&D&&w.push({id:"special-load-more-id",name:d,loadMore:!0,loading:d===Y,type:"special"}),w},[t,s,V,H,U,M,D,d,Y,E,$,A]),ee=n.useCallback(r=>{if(r==null)return null;const o=O.find(c=>c.original===r||c.raw===r||c.userId===r);if(o)return o.id;if(typeof r=="object")try{const c=JSON.stringify(r);return O.find(S=>S.original&&typeof S.original=="object"&&JSON.stringify(S.original)===c)?.id??null}catch{return null}return null},[O]);n.useEffect(()=>{const r=p?a:i,o=O.find(S=>S.id===v);o&&(o.original===r||o.raw===r||o.userId===r)||z(ee(r))},[a,i,p,O,ee,v]);const se=n.useMemo(()=>O.find(r=>r.id===v)??null,[v,O]),K=n.useCallback((r,o)=>{if(r.groupHeader){o?.stopPropagation(),o?.preventDefault(),X(r.name);return}if(r.disabled||r.loadMore){o?.stopPropagation(),o?.preventDefault(),r.loadMore&&(W(Y),J());return}z(r.id),g?.(r.original,r.userId),k(!1)},[g,k,J,Y,W]),e=n.useCallback(()=>{z(null),g?.(null,null)},[g]);return{normalizedOptions:O,selected:se,selectOption:K,clear:e,hasOptions:O.length>0,active:!j&&!h&&!u&&O.length>0,selectedValue:a??i,placeholder:b,emptyText:E,disabledText:P,loadingText:T,errorText:_,disabledOption:R,emptyOption:$,invalidOption:F,disabled:u,loading:h,error:j,expandedGroups:L,toggleGroup:X,visibleOptions:O.filter(r=>!r.hidden)}}function er({visibility:t,children:s,duration:a=300}){const i=n.useRef(null);return f.jsx(je.CSSTransition,{in:t,timeout:300,classNames:"slideDown",unmountOnExit:!0,nodeRef:i,onEnter:()=>i.current.style.height="0px",onEntering:()=>i.current.style.height=i.current.scrollHeight+"px",onEntered:()=>i.current.style.height="auto",onExit:()=>i.current.style.height=i.current.scrollHeight+"px",onExiting:()=>i.current.style.height="0px",children:f.jsx("div",{ref:i,style:{overflow:"hidden",transition:`height ${a}ms ease`,paddingLeft:"1em"},className:"slideDown-enter-done",tabIndex:-1,children:s})})}const Te=(t,s)=>{if(!t)return null;if(typeof t=="string")return f.jsx("img",{src:t,...s,alt:""});if(n.isValidElement(t))return n.cloneElement(t,s);if(typeof t=="function"||typeof t=="object"&&t.$$typeof){const a=t;return f.jsx(a,{...s})}return null},rr=(t,s,a,i,g,u,h)=>t.groupHeader?"rac-select-option rac-group-option":["rac-select-option",t.className,i===t.id&&"rac-selected",s===a&&"rac-highlighted",(t.disabled||t.loading)&&"rac-disabled-option",(t.invalid||t.name===h)&&"rac-invalid-option",t.loadMore&&g===u&&"rac-loading-option",typeof t.raw=="boolean"&&(t.raw?"rac-true-option":"rac-false-option")].filter(Boolean).join(" "),tr=n.forwardRef(({unmount:t,children:s,renderedDropdown:a,visibility:i,ownBehavior:g=!1,alwaysOpen:u=!1,duration:h=300,easing:j="ease-out",offset:b=2,animateOpacity:E=!0,style:P={},className:T="",ArrowIcon:_=Ue,ClearIcon:R=Je,hasMore:$=!1,loadMore:F=()=>{console.warn("loadMore not implemented")},loadButton:k=!1,loadButtonText:M="Load more",loadMoreText:D="Loading",loadOffset:W=100,loadAhead:d=3,childrenFirst:Y=!1,...J},U)=>{const V=n.useId(),p=n.useMemo(()=>V.replace(/:/g,""),[V]),[v,z]=n.useState([]),[A,H]=n.useState(!1),[L,B]=n.useState(k?M:D),[X,O]=n.useState(!1),ee=n.useRef(null),se=n.useCallback(C=>{z(I=>{const q=I.findIndex(te=>te.id===C.id);if(q!==-1){const te=I[q];if(te.label===C.label&&te.value===C.value&&te.disabled===C.disabled&&te.group===C.group)return I;const ue=[...I];return ue[q]=C,ue}return[...I,C]})},[]),K=n.useCallback(C=>{z(I=>{const q=I.filter(te=>te.id!==C);return q.length===I.length?I:q})},[]),e=u?!0:g?!!i:A,r=n.useCallback(C=>{u||g||H(C)},[u,g]),o=Be({...J,setVisibility:r,jsxOptions:v,hasMore:$,loadButton:k,loadingTitle:L,loadMore:F,loadMoreText:D,setLoadingTitle:B,childrenFirst:Y}),{normalizedOptions:c,selected:S,selectOption:w,clear:x,hasOptions:N,active:l,selectedValue:m,disabled:G,loading:Z,error:le,placeholder:re,invalidOption:ie,emptyText:Q,disabledText:ce,loadingText:ae,errorText:pe,expandedGroups:me}=o,Ae=Ze({setLoadingTitle:B,loadButton:k,loadButtonText:M,hasMore:$,loadMore:F,disabled:G,open:e,setOpen:r,options:c,selectOption:w,selected:S,loadOffset:W,loadAhead:d}),{handleListScroll:Oe,handleBlur:Pe,handleFocus:De,handleToggle:Le,handleKeyDown:Fe,highlightedIndex:oe,setHighlightedIndex:xe}=Ae;n.useImperativeHandle(U,()=>ee.current),n.useEffect(()=>{e||O(!1)},[e]),n.useEffect(()=>{(le||G||Z||!N)&&r(!1)},[le,G,Z,N,r]),n.useEffect(()=>{if(e&&X&&oe!==-1){const C=c[oe];C&&document.getElementById(`opt-${p}-${ye(C.id)}`)?.scrollIntoView({block:"nearest"})}},[oe,e,X,c,p]);const Ee=n.useMemo(()=>m!=null&&!(Array.isArray(m)&&m.length===0)&&!(typeof m=="object"&&Object.keys(m).length===0),[m]),Me=n.useMemo(()=>{if(le)return pe;if(Z)return ae;if(G)return ce;if(S)return S.jsx??S.name;if(Ee){const C=c.find(I=>I.raw===m);return C?C.name:typeof m=="object"&&m!==null?m.name??m.label??"Selected Object":String(m)}return N?re:Q},[G,Z,le,N,S,m,re,pe,ae,ce,Q,Ee,c]),He=n.useMemo(()=>{const C=[];let I=[],q=null;const te=c.reduce((y,ne)=>(ne.group&&(y[ne.group]=(y[ne.group]||0)+1),y),{}),ue=y=>{y===null||I.length===0||(C.push(f.jsx(er,{visibility:me.has(y),children:I},`slide-${y}`)),I=[])},ke=(y,ne)=>f.jsxs("div",{id:`opt-${p}-${ye(y.id)}`,role:"option","aria-selected":S?.id===y.id,"aria-disabled":y.disabled||y.loading,className:rr(y,ne,oe,S?.id,L,D,ie),onClick:fe=>!y.loading&&w(y,fe),onMouseEnter:()=>!y.disabled&&!y.loading&&xe(ne),children:[y.jsx??y.name,y.loading&&f.jsxs("span",{className:"rac-loading-dots",children:[f.jsx("i",{}),f.jsx("i",{}),f.jsx("i",{})]})]},y.id);return c.forEach((y,ne)=>{const fe=y.groupHeader,Re=!!y.group;if((fe||!Re&&q!==null)&&(ue(q),fe||(q=null)),fe){q=y.name;const Ge=me.has(y.name),Ie=te[y.name]>0;C.push(f.jsxs("div",{className:"rac-group-header",onClick:Ye=>w(y,Ye),children:[f.jsx("span",{className:"rac-group-title-text",children:y.name}),f.jsx(be,{visibility:Ie,duration:h,style:{display:"grid"},children:f.jsx("span",{className:`rac-group-arrow-wrapper ${Ge?"--open":""}`,children:Te(_,{className:"rac-select-arrow-wrapper"})})})]},y.id))}else Re?I.push(ke(y,ne)):C.push(ke(y,ne))}),ue(q),C},[c,w,p,S,oe,L,D,ie,xe,me,_]);return f.jsx(Ke,{selectRef:ee,selectId:p,renderIcon:Te,normalizedOptions:c,renderOptions:He,selected:S,title:Me,visibility:e,active:l,hasOptions:N,hasActualValue:Ee,highlightedIndex:oe,animationFinished:X,disabled:G,loading:Z,error:le,setVisibility:r,setHighlightedIndex:xe,setAnimationFinished:O,handleBlur:Pe,handleFocus:De,handleToggle:Le,handleKeyDown:Fe,handleListScroll:Oe,selectOption:w,clear:x,registerOption:se,unregisterOption:K,children:s,renderedDropdown:a,placeholder:re,className:T,style:P,duration:h,easing:j,offset:b,animateOpacity:E,unmount:t,ArrowIcon:_,ClearIcon:R,hasMore:$,loadButton:k})}),Ne=n.createContext(null);function nr({children:t,name:s,label:a,value:i,id:g,emptyGroupText:u="Empty group"}){const h=n.useContext(Se),j=n.useMemo(()=>{const E=s??a??i??g;return E!=null&&E!==""?String(E):u},[s,a,i,g,u]),b=n.useMemo(()=>`group-marker-${ye(j)}`,[j]);return n.useEffect(()=>{if(!h)return;const E={id:b,group:j,isGroupMarker:!0,disabled:!0};return h.registerOption(E),()=>h.unregisterOption(b)},[h.registerOption,h.unregisterOption,b,j]),f.jsx(Ne.Provider,{value:j,children:t})}const ve=t=>t?typeof t=="string"||typeof t=="number"?String(t):Array.isArray(t)?t.map(ve).join(" ").replace(/\s+/g," ").trim():n.isValidElement(t)?ve(t.props.children):"":"";function sr({value:t,id:s,className:a,children:i,disabled:g,group:u}){const h=n.useContext(Se),j=n.useContext(Ne),b=h?.registerOption,E=h?.unregisterOption,P=n.useId(),T=n.useMemo(()=>s?String(s):P.replace(/:/g,""),[s,P]);return n.useEffect(()=>{if(!b)return;const _=ve(i);let R="";return typeof i=="string"&&i!==""?R=i:_?R=_:t!=null&&(R=String(t)),b({id:T,value:t!==void 0?t:_,label:R,jsx:i,className:a,disabled:!!g,group:u||j||null}),()=>E(T)},[T,t,i,a,g,u,j,b,E]),null}exports.OptGroup=nr;exports.Option=sr;exports.Select=tr;
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- @media(prefers-reduced-motion:reduce){.rac-select{--rac-duration: 1ms}}.rac-select{--rac-duration-fast: calc(var(--rac-duration) * .5);--rac-duration-base: var(--rac-duration);--rac-duration-slow: calc(var(--rac-duration) * 1.3);--rac-base-red: #e7000b;--rac-base-green: #4caf50;--rac-base-yellow: #ffc107;--rac-select-background: color-mix(in srgb, Canvas 98%, CanvasText 2%);--rac-select-color: CanvasText;--rac-select-border: 2px solid color-mix(in srgb, Canvas 98%, CanvasText 2%);--rac-select-border-error: 2px solid color-mix(in srgb, var(--rac-base-red), CanvasText 15%);--rac-select-height: 2em;--rac-select-padding: 0em .5em;--rac-disabled-opacity: .75;--rac-title-anim-shift: 4px;--rac-title-anim-entry-ease: cubic-bezier(.34, 1.56, .64, 1);--rac-dots-height: 3px;--rac-dots-width: 3px;--rac-dots-color: currentColor;--rac-dots-gap: 3px;--rac-dots-padding-left: .25em;--rac-dots-align: end;--rac-dots-animation-duration: 1.4s;--rac-dots-animation-delay-1: 0s;--rac-dots-animation-delay-2: .2s;--rac-dots-animation-delay-3: .4s;--rac-arrow-height: 1em;--rac-arrow-width: 1em;--rac-arrow-padding: 1px 0 2px;--rac-cancel-height: .9em;--rac-cancel-width: .9em;--rac-scroll-color: color-mix(in srgb, CanvasText 10%, Canvas);--rac-scroll-track: color-mix(in srgb, CanvasText 5%, Canvas);--rac-scroll-padding-top: .5em;--rac-scroll-padding-bottom: .5em;--rac-option-hover: color-mix(in srgb, CanvasText 6%, Canvas);--rac-option-highlight: color-mix(in srgb, CanvasText 10%, Canvas);--rac-option-selected: color-mix(in srgb, CanvasText 14%, Canvas);--rac-list-background: color-mix(in srgb, Canvas 98%, CanvasText 2%);--rac-list-color: CanvasText;--rac-list-max-height: 250px;--rac-option-padding: .5em;--rac-disabled-option-color: color-mix(in srgb, GrayText, CanvasText 20%);--rac-invalid-option-color: color-mix(in srgb, var(--rac-base-red), CanvasText 10%);--rac-true-option-color: color-mix(in srgb, var(--rac-base-green), CanvasText 10%);--rac-false-option-color: color-mix(in srgb, var(--rac-base-red), CanvasText 10%);--rac-warning-option-color: color-mix(in srgb, var(--rac-base-yellow), CanvasText 10%);background:var(--rac-select-background);padding:var(--rac-select-padding);border:var(--rac-select-border);color:var(--rac-select-color);height:var(--rac-select-height);transition:border-color var(--rac-duration-base);justify-content:space-between;box-sizing:border-box;position:relative;cursor:pointer;display:flex}.rac-loading-style,.rac-disabled-style{opacity:var(--rac-disabled-opacity);transition:border-color var(--rac-duration-base),filter var(--rac-duration-base),opacity var(--rac-duration-base);cursor:wait}.rac-disabled-style{cursor:not-allowed}.rac-error-style{border:var(--rac-select-border-error);cursor:help}.rac-select-title{display:flex;align-items:center}.rac-title-text{display:block;animation:rac-fade-in var(--rac-duration-base) var(--rac-title-anim-entry-ease)}@keyframes rac-fade-in{0%{opacity:0;transform:translateY(var(--rac-title-anim-shift))}to{opacity:1;transform:translateY(0)}}.rac-loading-dots{display:inline-flex;gap:var(--rac-dots-gap);padding-left:var(--rac-dots-padding-left);align-items:var(--rac-dots-align)}.rac-loading-dots i{width:var(--rac-dots-height);height:var(--rac-dots-width);background:var(--rac-dots-color);border-radius:50%;animation:blink var(--rac-dots-animation-duration) infinite both}.rac-loading-dots i:nth-child(1){animation-delay:var(--rac-dots-animation-delay-1)}.rac-loading-dots i:nth-child(2){animation-delay:var(--rac-dots-animation-delay-2)}.rac-loading-dots i:nth-child(3){animation-delay:var(--rac-dots-animation-delay-3)}@keyframes blink{0%{opacity:.2}20%{opacity:1}to{opacity:.2}}.rac-select-buttons{display:flex;align-items:center}.rac-select-cancel{height:var(--rac-cancel-height);width:var(--rac-cancel-width);transition:opacity var(--rac-duration-fast),border-color var(--rac-duration-fast)}.rac-select-arrow-wrapper{display:block;height:var(--rac-arrow-height);width:var(--rac-arrow-width);padding:var(--rac-arrow-padding);will-change:transform;transition:transform var(--rac-duration-base) cubic-bezier(.4,0,.2,1),padding var(--rac-duration-fast);transform-origin:50% 50%;transform:translateZ(0)}.rac-select-arrow-wrapper.--open{transform:rotate(180deg)}.rac-select-arrow,.rac-select-cancel{object-fit:contain}.rac-select-list{background-color:var(--rac-list-background);color:var(--rac-list-color);max-height:var(--rac-list-max-height);overflow-y:auto;scrollbar-color:var(--rac-scroll-color) var(--rac-scroll-track);scrollbar-width:thin;scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:var(--rac-scroll-padding-top);scroll-padding-bottom:var(--rac-scroll-padding-bottom);z-index:1;transition:border-color var(--rac-duration-fast),background-color var(--rac-duration-fast),opacity var(--rac-duration-base)}.rac-select-option{padding:var(--rac-option-padding);transition:background-color var(--rac-duration-fast) cubic-bezier(.4,0,.2,1)}.rac-select-option:not(.rac-disabled-option):hover{background-color:var(--rac-option-hover)}.rac-select-option.rac-highlighted{background-color:var(--rac-option-highlight)}.rac-select-option.rac-selected,.rac-select-option.rac-selected.rac-highlighted{background-color:var(--rac-option-selected)}.rac-disabled-option{cursor:not-allowed;color:var(--rac-disabled-option-color)}.rac-invalid-option{color:var(--rac-invalid-option-color)}.rac-true-option{color:var(--rac-true-option-color)}.rac-false-option{color:var(--rac-false-option-color)}
1
+ @media(prefers-reduced-motion:reduce){.rac-select{--rac-duration: 1ms}}.rac-select{--rac-duration-fast: calc(var(--rac-duration) * .5);--rac-duration-base: var(--rac-duration);--rac-duration-slow: calc(var(--rac-duration) * 1.3);--rac-base-red: #e7000b;--rac-base-green: #4caf50;--rac-base-yellow: #ffc107;--rac-select-background: color-mix(in srgb, Canvas 98%, CanvasText 2%);--rac-select-color: CanvasText;--rac-select-border: 2px solid color-mix(in srgb, Canvas 98%, CanvasText 2%);--rac-select-border-error: 2px solid color-mix(in srgb, var(--rac-base-red), CanvasText 15%);--rac-select-height: 2em;--rac-select-padding: 0em .5em;--rac-disabled-opacity: .75;--rac-title-anim-shift: 4px;--rac-title-anim-entry-ease: cubic-bezier(.34, 1.56, .64, 1);--rac-dots-height: 3px;--rac-dots-width: 3px;--rac-dots-color: currentColor;--rac-dots-gap: 3px;--rac-dots-padding-left: .25em;--rac-dots-align: end;--rac-dots-animation-duration: 1.4s;--rac-dots-animation-delay-1: 0s;--rac-dots-animation-delay-2: .2s;--rac-dots-animation-delay-3: .4s;--rac-arrow-height: 1em;--rac-arrow-width: 1em;--rac-arrow-padding: 1px 0 2px;--rac-cancel-height: .9em;--rac-cancel-width: .9em;--rac-scroll-color: color-mix(in srgb, CanvasText 10%, Canvas);--rac-scroll-track: color-mix(in srgb, CanvasText 5%, Canvas);--rac-scroll-padding-top: .5em;--rac-scroll-padding-bottom: .5em;--rac-option-hover: color-mix(in srgb, CanvasText 6%, Canvas);--rac-option-highlight: color-mix(in srgb, CanvasText 10%, Canvas);--rac-option-selected: color-mix(in srgb, CanvasText 14%, Canvas);--rac-list-background: color-mix(in srgb, Canvas 98%, CanvasText 2%);--rac-list-color: CanvasText;--rac-list-max-height: 250px;--rac-option-padding: .5em;--rac-option-min-height: 1em;--rac-disabled-option-color: color-mix(in srgb, GrayText, CanvasText 20%);--rac-invalid-option-color: color-mix(in srgb, var(--rac-base-red), CanvasText 10%);--rac-true-option-color: color-mix(in srgb, var(--rac-base-green), CanvasText 10%);--rac-false-option-color: color-mix(in srgb, var(--rac-base-red), CanvasText 10%);--rac-warning-option-color: color-mix(in srgb, var(--rac-base-yellow), CanvasText 10%);--rac-group-header-font-size: 1.25em;--rac-group-header-font-weight: bold;--rac-group-header-min-height: 1em;--rac-group-header-padding: .5em;--rac-group-arrow-height: 1em;--rac-group-arrow-width: 1em;--rac-group-arrow-padding: 1px 0 2px;background:var(--rac-select-background);padding:var(--rac-select-padding);border:var(--rac-select-border);color:var(--rac-select-color);height:var(--rac-select-height);transition:border-color var(--rac-duration-base);justify-content:space-between;box-sizing:border-box;position:relative;cursor:pointer;display:flex}.rac-loading-style,.rac-disabled-style{opacity:var(--rac-disabled-opacity);transition:border-color var(--rac-duration-base),filter var(--rac-duration-base),opacity var(--rac-duration-base);cursor:wait}.rac-disabled-style{cursor:not-allowed}.rac-error-style{border:var(--rac-select-border-error);cursor:help}.rac-select-title{display:flex;align-items:center}.rac-title-text{display:block;animation:rac-fade-in var(--rac-duration-base) var(--rac-title-anim-entry-ease)}@keyframes rac-fade-in{0%{opacity:0;transform:translateY(var(--rac-title-anim-shift))}to{opacity:1;transform:translateY(0)}}.rac-loading-dots{display:inline-flex;gap:var(--rac-dots-gap);padding-left:var(--rac-dots-padding-left);align-items:var(--rac-dots-align)}.rac-loading-dots i{width:var(--rac-dots-height);height:var(--rac-dots-width);background:var(--rac-dots-color);border-radius:50%;animation:blink var(--rac-dots-animation-duration) infinite both}.rac-loading-dots i:nth-child(1){animation-delay:var(--rac-dots-animation-delay-1)}.rac-loading-dots i:nth-child(2){animation-delay:var(--rac-dots-animation-delay-2)}.rac-loading-dots i:nth-child(3){animation-delay:var(--rac-dots-animation-delay-3)}@keyframes blink{0%{opacity:.2}20%{opacity:1}to{opacity:.2}}.rac-select-buttons{display:flex;align-items:center}.rac-select-cancel{height:var(--rac-cancel-height);width:var(--rac-cancel-width);transition:opacity var(--rac-duration-fast),border-color var(--rac-duration-fast)}.rac-select-arrow-wrapper{display:block;height:var(--rac-arrow-height);width:var(--rac-arrow-width);padding:var(--rac-arrow-padding);will-change:transform;transition:transform var(--rac-duration-base) cubic-bezier(.4,0,.2,1),padding var(--rac-duration-fast);transform-origin:50% 50%;transform:translateZ(0)}.rac-select-arrow-wrapper.--open{transform:rotate(180deg)}.rac-select-arrow,.rac-select-cancel{object-fit:contain}.rac-select-list{background-color:var(--rac-list-background);color:var(--rac-list-color);max-height:var(--rac-list-max-height);overflow-y:auto;scrollbar-color:var(--rac-scroll-color) var(--rac-scroll-track);scrollbar-width:thin;scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:var(--rac-scroll-padding-top);scroll-padding-bottom:var(--rac-scroll-padding-bottom);z-index:1;transition:border-color var(--rac-duration-fast),background-color var(--rac-duration-fast),opacity var(--rac-duration-base)}.rac-select-option{min-height:var(--rac-option-min-height);padding:var(--rac-option-padding);transition:background-color var(--rac-duration-fast) cubic-bezier(.4,0,.2,1)}.rac-select-option:not(.rac-disabled-option):not(.rac-group-option):hover{background-color:var(--rac-option-hover)}.rac-select-option.rac-highlighted{background-color:var(--rac-option-highlight)}.rac-select-option.rac-selected,.rac-select-option.rac-selected.rac-highlighted{background-color:var(--rac-option-selected)}.rac-disabled-option{cursor:not-allowed;color:var(--rac-disabled-option-color)}.rac-invalid-option{color:var(--rac-invalid-option-color)}.rac-true-option{color:var(--rac-true-option-color)}.rac-false-option{color:var(--rac-false-option-color)}.rac-loading-option{cursor:wait}.rac-group-header{cursor:pointer;min-height:var(--rac-group-header-min-height);padding:var(--rac-group-header-padding);transition:background-color var(--rac-duration-fast) cubic-bezier(.4,0,.2,1);display:flex;justify-content:space-between;align-items:center;font-weight:var(--rac-group-header-font-weight);font-size:var(--rac-group-header-font-size)}.rac-group-arrow-wrapper{display:block;height:var(--rac-group-arrow-height);width:var(--rac-group-arrow-width);padding:var(--rac-group-arrow-padding);will-change:transform;transition:transform var(--rac-duration-base) cubic-bezier(.4,0,.2,1),padding var(--rac-duration-fast);transform-origin:50% 50%;transform:translateZ(0)}.rac-group-arrow-wrapper.--open{transform:rotate(180deg)}