react-animated-select 0.4.1 → 0.5.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.
- package/README.md +14 -6
- package/dist/index.cjs.js +8 -8
- package/dist/index.css +1 -1
- package/dist/index.es.js +1057 -891
- package/index.d.ts +9 -2
- package/package.json +1 -1
- package/src/{selectJSX.jsx → SelectJSX.jsx} +95 -26
- package/src/animated.jsx +43 -16
- package/src/index.js +1 -0
- package/src/options.jsx +109 -18
- package/src/select.css +38 -16
- package/src/select.jsx +20 -12
- package/src/useSelect.jsx +18 -2
- package/src/useSelectLogic.jsx +90 -26
package/README.md
CHANGED
|
@@ -75,6 +75,7 @@ function App() {
|
|
|
75
75
|
| `value` | `any` | `undefined` | The current value for a controlled component. |
|
|
76
76
|
| `defaultValue` | `any` | `undefined` | Initial value for an uncontrolled component. |
|
|
77
77
|
| `onChange` | `function` | `undefined` | Callback called when an option is selected. Arguments: (data, id). |
|
|
78
|
+
| `multiple` | `boolean` | `false` | Allows select multiple options. |
|
|
78
79
|
| `placeholder` | `string` | `"Choose option"` | Text shown when no option is selected. |
|
|
79
80
|
| `disabled` | `boolean` | `false` | Disables the entire component. |
|
|
80
81
|
| `loading` | `boolean` | `false` | Shows a loading animation and disables interaction. |
|
|
@@ -113,6 +114,7 @@ function App() {
|
|
|
113
114
|
| `loadButton` | `boolean` | `false` | Enables a manual “Load more” button instead of automatic loading. |
|
|
114
115
|
| `loadButtonText` | `string` | `'Load more'` | Text displayed on the load button. |
|
|
115
116
|
| `childrenFirst` | `boolean` | `false` | Determines priority of JSX `<Option />` children over options passed via props. |
|
|
117
|
+
| `groupsClosed` | `boolean` | `false` | Default open status of groups. |
|
|
116
118
|
|
|
117
119
|
---
|
|
118
120
|
|
|
@@ -274,14 +276,20 @@ The select and its options react to internal states by applying the following cl
|
|
|
274
276
|
- `.rac-select-arrow-wrapper.--open`: Applied to the arrow icon when the dropdown is expanded.
|
|
275
277
|
|
|
276
278
|
## Change log
|
|
277
|
-
### 0.
|
|
279
|
+
### 0.5.5
|
|
278
280
|
### New Features
|
|
279
|
-
-
|
|
280
|
-
- **Smart
|
|
281
|
-
|
|
282
|
-
|
|
281
|
+
- **Dynamic Content Normalization**: Rewrote the "Virtual Options" engine to ensure selected values are correctly displayed even if they aren't present in the current paginated list.
|
|
282
|
+
- **Smart Width Calculation**: Implemented an auto-sizing mechanism where the select height animatedly adapts to the minimum height required by options lenght.
|
|
283
|
+
- **Enhanced UI Structure**: Wrapped option labels in internal `<span>` elements for better text truncation control and CSS styling flexibility.
|
|
284
|
+
|
|
283
285
|
### Bug Fixes
|
|
284
|
-
- **
|
|
286
|
+
- **Infinite Loop Protection**: Fixed a `Maximum update depth exceeded` error that occurred when the component was initialized without an `options` array.
|
|
287
|
+
- **Intelligent Selection Highlighting**: Resolved an issue where the first option was always highlighted in multi-select mode; the hook now correctly identifies and focuses the first _selected_ item in the list.
|
|
288
|
+
- **Z-Index Layering**: Elevated the dropdown portal's `z-index` to `2147483647`, ensuring the options list remains globally visible over any other UI layer.
|
|
289
|
+
- **Selection State Stability**: Fixed a bug where incorrect dependency tracking in `useEffect` caused redundant parsing of options, which previously led to broken multi-selection states.
|
|
290
|
+
- **Single-Option Swap Animation**: Corrected the transition logic when switching between single options to prevent flickering or abrupt layout shifts.
|
|
291
|
+
### Type Safety
|
|
292
|
+
- **Prop Type Definitions**: Finalized the TypeScript definitions for the select component, covering all optional and mandatory props for better developer experience.
|
|
285
293
|
|
|
286
294
|
## License
|
|
287
295
|
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const n=require("react"),ve=require("react-transition-group"),rr=require("react-dom");var je={exports:{}},Ee={};var Le;function tr(){if(Le)return Ee;Le=1;var e=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function o(a,u,s){var v=null;if(s!==void 0&&(v=""+s),u.key!==void 0&&(v=""+u.key),"key"in u){s={};for(var k in u)k!=="key"&&(s[k]=u[k])}else s=u;return u=s.ref,{$$typeof:e,type:a,key:v,ref:u!==void 0?u:null,props:s}}return Ee.Fragment=i,Ee.jsx=o,Ee.jsxs=o,Ee}var we={};var De;function nr(){return De||(De=1,process.env.NODE_ENV!=="production"&&(function(){function e(r){if(r==null)return null;if(typeof r=="function")return r.$$typeof===F?null:r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case D:return"Fragment";case z:return"Profiler";case P:return"StrictMode";case ee:return"Suspense";case se:return"SuspenseList";case f:return"Activity"}if(typeof r=="object")switch(typeof r.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),r.$$typeof){case H:return"Portal";case U:return r.displayName||"Context";case T:return(r._context.displayName||"Context")+".Consumer";case Z:var p=r.render;return r=r.displayName,r||(r=p.displayName||p.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case ie:return p=r.displayName||null,p!==null?p:e(r.type)||"Memo";case q:p=r._payload,r=r._init;try{return e(r(p))}catch{}}return null}function i(r){return""+r}function o(r){try{i(r);var p=!1}catch{p=!0}if(p){p=console;var j=p.error,O=typeof Symbol=="function"&&Symbol.toStringTag&&r[Symbol.toStringTag]||r.constructor.name||"Object";return j.call(p,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",O),i(r)}}function a(r){if(r===D)return"<>";if(typeof r=="object"&&r!==null&&r.$$typeof===q)return"<...>";try{var p=e(r);return p?"<"+p+">":"<...>"}catch{return"<...>"}}function u(){var r=h.A;return r===null?null:r.getOwner()}function s(){return Error("react-stack-top-frame")}function v(r){if(x.call(r,"key")){var p=Object.getOwnPropertyDescriptor(r,"key").get;if(p&&p.isReactWarning)return!1}return r.key!==void 0}function k(r,p){function j(){M||(M=!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)",p))}j.isReactWarning=!0,Object.defineProperty(r,"key",{get:j,configurable:!0})}function b(){var r=e(this.type);return G[r]||(G[r]=!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.")),r=this.props.ref,r!==void 0?r:null}function R(r,p,j,O,te,ne){var t=j.ref;return r={$$typeof:N,type:r,key:p,props:j,_owner:O},(t!==void 0?t:null)!==null?Object.defineProperty(r,"ref",{enumerable:!1,get:b}):Object.defineProperty(r,"ref",{enumerable:!1,value:null}),r._store={},Object.defineProperty(r._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(r,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(r,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:te}),Object.defineProperty(r,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ne}),Object.freeze&&(Object.freeze(r.props),Object.freeze(r)),r}function C(r,p,j,O,te,ne){var t=p.children;if(t!==void 0)if(O)if(m(t)){for(O=0;O<t.length;O++)w(t[O]);Object.freeze&&Object.freeze(t)}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 w(t);if(x.call(p,"key")){t=e(r);var g=Object.keys(p).filter(function(y){return y!=="key"});O=0<g.length?"{key: someKey, "+g.join(": ..., ")+": ...}":"{key: someKey}",ae[t+O]||(g=0<g.length?"{"+g.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} />`,j,l,h,l),ie[l+j]=!0)}if(l=null,w!==void 0&&(o(w),l=""+w),S(g)&&(o(g.key),l=""+g.key),"key"in g){w={};for(var v in g)v!=="key"&&(w[v]=g[v])}else w=g;return l&&m(w,typeof e=="function"?e.displayName||e.name||"Unknown":e),b(e,l,w,f(),Z,t)}function L(e){C(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===Q&&(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===T}var P=s,T=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),H=Symbol.for("react.fragment"),V=Symbol.for("react.strict_mode"),k=Symbol.for("react.profiler"),F=Symbol.for("react.consumer"),d=Symbol.for("react.context"),U=Symbol.for("react.forward_ref"),W=Symbol.for("react.suspense"),B=Symbol.for("react.suspense_list"),ne=Symbol.for("react.memo"),Q=Symbol.for("react.lazy"),ee=Symbol.for("react.activity"),x=Symbol.for("react.client.reference"),E=P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,_=Object.prototype.hasOwnProperty,J=Array.isArray,M=console.createTask?console.createTask:function(){return null};P={react_stack_bottom_frame:function(e){return e()}};var $,se={},K=P.react_stack_bottom_frame.bind(P,u)(),re=M(n(u)),ie={};Ee.Fragment=H,Ee.jsx=function(e,g,w){var j=1e4>E.recentlyCreatedOwnerStacks++;return D(e,g,w,!1,j?Error("react-stack-top-frame"):K,j?M(n(e)):re)},Ee.jsxs=function(e,g,w){var j=1e4>E.recentlyCreatedOwnerStacks++;return D(e,g,w,!0,j?Error("react-stack-top-frame"):K,j?M(n(e)):re)}})()),Ee}var De;function er(){return De||(De=1,process.env.NODE_ENV==="production"?Se.exports=Be():Se.exports=Qe()),Se.exports}var c=er();const Le=({className:r="",...i})=>c.jsx("svg",{className:r,role:"button","aria-label":"Clear selection",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",width:"1em",height:"1em",fill:"currentColor",...i,children:c.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"})}),rr=({className:r="",...i})=>c.jsx("svg",{className:r,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",width:"1em",height:"1em",fill:"currentColor",...i,children:c.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=({className:r="",...i})=>c.jsx("svg",{className:r,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em",fill:"currentColor",...i,children:c.jsx("path",{d:"M20.285 6.708a1 1 0 0 0-1.414-1.416l-9.192 9.192-4.243-4.244a1 1 0 1 0-1.414 1.416l5 5a1 1 0 0 0 1.414 0l9.849-9.948z"})}),Fe=(r,i="invalid-option",o="")=>{const n=o?o.replace(/:/g,""):"";if(typeof r!="string"||!r.trim())return n?`${i}-${n}`:`${i}-${Math.random().toString(36).slice(2,8)}`;const f=r.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"-").replace(/[^\p{L}\p{N}-]+/gu,"").toLowerCase();return f?f||`${i}-${Math.random().toString(36).slice(2,8)}`:n?`${i}-${n}`:`${i}-${Math.random().toString(36).slice(2,8)}`},Ge=s.createContext(null);function tr({visibility:r,children:i,selectRef:o,onAnimationDone:n,unmount:f=!0,duration:u,easing:S,offset:m,animateOpacity:p}){const b=s.useRef(null),[D,L]=s.useState(0);s.useEffect(()=>{if(!o?.current)return;L(o.current.offsetHeight);const U=new ResizeObserver(W=>{for(let B of W)L(B.target.offsetHeight)});return U.observe(o.current),()=>U.disconnect()},[o]);const C=`height ${u}ms ${S}${p?`, opacity ${u}ms ${S}`:""}`,P={position:"absolute",top:`calc(100% + ${m}px)`,left:"0",width:"100%",overflow:"hidden",marginTop:"2px",zIndex:"1",height:r?"auto":"0px",opacity:p?r?1:0:1,pointerEvents:r?"all":"none",visibility:D?"visible":"hidden"},T=s.useCallback(()=>{const d=b.current;d&&(d.style.height="0px",p&&(d.style.opacity="0"),d.style.transition="")},[p]),O=s.useCallback(()=>{const d=b.current;d&&(d.style.transition=C,d.style.height=`${d.scrollHeight}px`,p&&(d.style.opacity="1"))},[C,p]),H=s.useCallback(()=>{const d=b.current;d&&(d.style.height="auto",d.style.transition="",n&&n())},[n]),V=s.useCallback(()=>{const d=b.current;d&&(d.style.height=`${d.scrollHeight}px`,p&&(d.style.opacity="1"),d.offsetHeight,d.style.transition=C)},[C,p]),k=s.useCallback(()=>{const d=b.current;d&&(d.style.height="0px",p&&(d.style.opacity="0"))},[p]),F=s.useCallback(()=>{const d=b.current;d&&(d.style.transition="")},[]);return c.jsx(me.CSSTransition,{in:r,timeout:u,classNames:"rac-options",unmountOnExit:f,nodeRef:b,onEnter:T,onEntering:O,onEntered:H,onExit:V,onExiting:k,onExited:F,children:c.jsx("div",{ref:b,className:"rac-options",style:P,children:i})})}const nr=s.memo(tr,(r,i)=>r.visibility===i.visibility&&r.duration===i.duration&&r.easing===i.easing&&r.offset===i.offset&&r.animateOpacity===i.animateOpacity&&r.selectRef===i.selectRef&&r.children===i.children);function je({visibility:r,children:i,duration:o=300,unmount:n,style:f}){const u=s.useRef(null);return c.jsx(me.CSSTransition,{in:r,timeout:o,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:()=>n?.(),children:c.jsx("div",{ref:u,style:{...f,overflow:"hidden",transition:`width ${o}ms ease`},children:i})})}const Me=({children:r,duration:i,...o})=>{const n=s.useRef(null);return c.jsx(me.CSSTransition,{nodeRef:n,timeout:i,classNames:"rac-slide-left",...o,onEnter:()=>{n.current.style.width="0px",n.current.style.opacity="0"},onEntering:()=>{n.current.style.width=n.current.scrollWidth+"px",n.current.style.opacity="1"},onEntered:()=>{n.current.style.width="auto",n.current.style.opacity="1"},onExit:()=>{n.current.style.width=n.current.scrollWidth+"px",n.current.style.opacity="1"},onExiting:()=>{n.current.style.width="0px",n.current.style.opacity="0",n.current.style.margin="0"},children:c.jsx("div",{ref:n,style:{display:"flex",alignItems:"center",height:"100%",overflow:"hidden",whiteSpace:"nowrap",transition:`all ${i}ms ease`},children:r})})},sr=s.memo(({element:r,index:i,remove:o,renderIcon:n,DelIcon:f,normalizedOptions:u})=>{let S=null;if(r?.jsx)S=r.jsx;else if(r?.name)S=r.name;else if(r?.raw!==void 0){const p=u.find(b=>b.raw===r.raw||b.original===r.raw||b.userId===r.raw);p&&(S=p.jsx??p.name)}S==null&&(S=typeof r=="object"?r.label??r.name??r.value??"Selected item":String(r));const m=s.useCallback(p=>{p.stopPropagation(),p.preventDefault(),o(r.id)},[r.id,o]);return c.jsxs("div",{className:"rac-multiple-selected-option",children:[S,n(f,{onClick:m})]})}),ir=s.memo(({selectRef:r,selectId:i,renderOptions:o,selected:n,selectedIDs:f,setSelectedIds:u,normalizedOptions:S,title:m,visibility:p,active:b,hasOptions:D,hasActualValue:L,disabled:C,loading:P,error:T,registerOption:O,unregisterOption:H,handleBlur:V,handleFocus:k,handleToggle:F,handleKeyDown:d,handleListScroll:U,setAnimationFinished:W,clear:B,children:ne,renderedDropdown:Q,placeholder:ee,className:x,style:E,duration:_,easing:J,offset:M,animateOpacity:$,unmount:se,ArrowIcon:K,ClearIcon:re,DelIcon:ie,renderIcon:e,hasMore:g,loadButton:w})=>{const j=s.useCallback(t=>{u(l=>l.filter(h=>h.id!==t))},[u]),Z=f.map((t,l)=>c.jsx(Me,{duration:_,children:c.jsx(sr,{element:t,index:l,remove:j,renderIcon:e,DelIcon:ie,normalizedOptions:S},t.id??l)},t.id??l));return c.jsxs(Ge.Provider,{value:{registerOption:O,unregisterOption:H},children:[ne,Q,c.jsxs("div",{ref:r,style:{"--rac-duration":`${_}ms`,...E},className:`rac-select
|
|
6
|
+
<%s key={someKey} {...props} />`,O,t,g,t),ae[t+O]=!0)}if(t=null,j!==void 0&&(o(j),t=""+j),v(p)&&(o(p.key),t=""+p.key),"key"in p){j={};for(var l in p)l!=="key"&&(j[l]=p[l])}else j=p;return t&&k(j,typeof r=="function"?r.displayName||r.name||"Unknown":r),R(r,t,j,u(),te,ne)}function w(r){K(r)?r._store&&(r._store.validated=1):typeof r=="object"&&r!==null&&r.$$typeof===q&&(r._payload.status==="fulfilled"?K(r._payload.value)&&r._payload.value._store&&(r._payload.value._store.validated=1):r._store&&(r._store.validated=1))}function K(r){return typeof r=="object"&&r!==null&&r.$$typeof===N}var V=n,N=Symbol.for("react.transitional.element"),H=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),P=Symbol.for("react.strict_mode"),z=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),U=Symbol.for("react.context"),Z=Symbol.for("react.forward_ref"),ee=Symbol.for("react.suspense"),se=Symbol.for("react.suspense_list"),ie=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),F=Symbol.for("react.client.reference"),h=V.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,x=Object.prototype.hasOwnProperty,m=Array.isArray,S=console.createTask?console.createTask:function(){return null};V={react_stack_bottom_frame:function(r){return r()}};var M,G={},re=V.react_stack_bottom_frame.bind(V,s)(),ce=S(a(s)),ae={};we.Fragment=D,we.jsx=function(r,p,j){var O=1e4>h.recentlyCreatedOwnerStacks++;return C(r,p,j,!1,O?Error("react-stack-top-frame"):re,O?S(a(r)):ce)},we.jsxs=function(r,p,j){var O=1e4>h.recentlyCreatedOwnerStacks++;return C(r,p,j,!0,O?Error("react-stack-top-frame"):re,O?S(a(r)):ce)}})()),we}var Ie;function sr(){return Ie||(Ie=1,process.env.NODE_ENV==="production"?je.exports=tr():je.exports=nr()),je.exports}var d=sr();const Ye=({className:e="",...i})=>d.jsx("svg",{className:e,role:"button","aria-label":"Clear selection",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",width:"1em",height:"1em",fill:"currentColor",...i,children:d.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"})}),ir=({className:e="",...i})=>d.jsx("svg",{className:e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",width:"1em",height:"1em",fill:"currentColor",...i,children:d.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"})}),ze=({className:e="",...i})=>d.jsx("svg",{className:e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1em",height:"1em",fill:"currentColor",...i,children:d.jsx("path",{d:"M20.285 6.708a1 1 0 0 0-1.414-1.416l-9.192 9.192-4.243-4.244a1 1 0 1 0-1.414 1.416l5 5a1 1 0 0 0 1.414 0l9.849-9.948z"})}),Fe=(e,i="invalid-option",o="")=>{const a=o?o.replace(/:/g,""):"";if(typeof e!="string"||!e.trim())return a?`${i}-${a}`:`${i}-${Math.random().toString(36).slice(2,8)}`;const u=e.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"-").replace(/[^\p{L}\p{N}-]+/gu,"").toLowerCase();return u?u||`${i}-${Math.random().toString(36).slice(2,8)}`:a?`${i}-${a}`:`${i}-${Math.random().toString(36).slice(2,8)}`},We=n.createContext(null);function ar({visibility:e,children:i,selectRef:o,onAnimationDone:a,unmount:u=!0,duration:s,easing:v,offset:k,animateOpacity:b,style:R,className:C}){const w=n.useRef(null),[K,V]=n.useState(0),[N,H]=n.useState({top:0,left:0,width:0}),D=n.useRef(N);n.useEffect(()=>{D.current=N},[N]);const P=n.useCallback(()=>{if(o?.current){const f=o.current.getBoundingClientRect(),F=window.innerHeight,h=w.current?.scrollHeight||250,x=F-f.bottom,m=x<h&&f.top>x;H({top:f.top,bottom:f.bottom,left:f.left,width:f.width,isUpward:m})}},[o]);n.useEffect(()=>{if(e)return P(),window.addEventListener("scroll",P,!0),window.addEventListener("resize",P),()=>{window.removeEventListener("scroll",P,!0),window.removeEventListener("resize",P)}},[e,P]);const z=`height var(--rac-duration) ${v}${b?`, opacity var(--rac-duration) ${v}`:""}`;n.useLayoutEffect(()=>{if(!o?.current)return;V(o.current.offsetHeight);const F=new ResizeObserver(h=>{for(let x of h)if(V(x.target.offsetHeight),e&&w.current&&o.current){const m=o.current.getBoundingClientRect(),{isUpward:S}=D.current;w.current.style.width=`${m.width}px`,w.current.style.left=`${m.left}px`,S?w.current.style.bottom=`${window.innerHeight-m.top+k}px`:w.current.style.top=`${m.bottom+k}px`}});return F.observe(o.current),()=>F.disconnect()},[o,e,k]);const T={position:"fixed","--rac-duration":`${s}ms`,"--rac-easing":v,left:`${N.left}px`,width:`${N.width}px`,overflow:"hidden",zIndex:"2147483647",height:e?"auto":"0px",opacity:b?e?1:0:1,pointerEvents:e?"all":"none",visibility:K?"visible":"hidden",boxSizing:"border-box",transformOrigin:N.isUpward?"bottom":"top",...N.isUpward?{bottom:`${window.innerHeight-N.top+k}px`,top:"auto"}:{top:`${N.bottom+k}px`,bottom:"auto"},...Object.fromEntries(Object.entries(R||{}).map(([f,F])=>[f.startsWith("--")?f:`--rac-${f.replace(/([A-Z])/g,"-$1").toLowerCase()}`,F]))},U=n.useCallback(()=>{const f=w.current;f&&(f.style.height="0px",b&&(f.style.opacity="0"),f.style.transition="")},[b]),Z=n.useCallback(()=>{const f=w.current;f&&(f.style.transition=z,f.style.height=`${f.scrollHeight}px`,b&&(f.style.opacity="1"))},[z,b]),ee=n.useCallback(()=>{const f=w.current;f&&(f.style.height="auto",f.style.transition="",a&&a())},[a]),se=n.useCallback(()=>{const f=w.current;f&&(f.style.height=`${f.scrollHeight}px`,b&&(f.style.opacity="1"),f.offsetHeight,f.style.transition=z)},[z,b]),ie=n.useCallback(()=>{const f=w.current;f&&(f.style.height="0px",b&&(f.style.opacity="0"))},[b]),q=n.useCallback(()=>{const f=w.current;f&&(f.style.transition="")},[]);return rr.createPortal(d.jsx(ve.CSSTransition,{in:e,timeout:s,classNames:"rac-options",unmountOnExit:u,nodeRef:w,onEnter:U,onEntering:Z,onEntered:ee,onExit:se,onExiting:ie,onExited:q,children:d.jsx("div",{ref:w,className:`rac-options ${C||""}`,style:{...T,"--rac-duration":`${s}ms`,"--rac-duration-fast":"calc(var(--rac-duration) * 0.5)","--rac-duration-base":"var(--rac-duration)","--rac-duration-slow":"calc(var(--rac-duration) * 1.3)"},onMouseDown:f=>{f.preventDefault()},children:i})}),document.body)}const or=n.memo(ar,(e,i)=>e.visibility===i.visibility&&e.duration===i.duration&&e.easing===i.easing&&e.offset===i.offset&&e.animateOpacity===i.animateOpacity&&e.selectRef===i.selectRef&&e.children===i.children&&JSON.stringify(e.style)===JSON.stringify(i.style));function Re({visibility:e,children:i,duration:o=300,unmount:a,style:u}){const s=n.useRef(null);return d.jsx(ve.CSSTransition,{in:e,timeout:o,classNames:"rac-slide-left",unmountOnExit:!0,nodeRef:s,onEnter:()=>s.current.style.width="0px",onEntering:()=>s.current.style.width=s.current.scrollWidth+"px",onEntered:()=>s.current.style.width="auto",onExit:()=>s.current.style.width=s.current.scrollWidth+"px",onExiting:()=>s.current.style.width="0px",onExited:()=>a?.(),children:d.jsx("div",{ref:s,style:{...u,overflow:"hidden",transition:`width ${o}ms ease`},children:i})})}const Me=({children:e,duration:i,widthMode:o=!1,...a})=>{const u=n.useRef(null);return d.jsx(ve.CSSTransition,{nodeRef:u,timeout:i,classNames:"rac-slide-left",...a,onEnter:()=>{const s=u.current;o?s.style.width="0px":(s.style.height="0px",s.style.transform="translateY(-10px)"),s.style.opacity="0"},onEntering:()=>{const s=u.current;s.offsetHeight,o?s.style.width=s.scrollWidth+"px":(s.style.height=s.scrollHeight+"px",s.style.transform="translateY(0)"),s.style.opacity="1"},onEntered:()=>{const s=u.current;s.style.width=o?"auto":"",s.style.height=o?"":"auto",s.style.opacity="1",s.style.transform=""},onExit:()=>{const s=u.current;o?s.style.width=s.offsetWidth+"px":(s.style.height=s.offsetHeight+"px",s.style.position="absolute"),s.style.opacity="1"},onExiting:()=>{const s=u.current;o?s.style.width="0px":(s.style.height="0px",s.style.transform="translateY(10px)"),s.style.opacity="0"},children:d.jsx("div",{ref:u,style:{display:"flex",alignItems:"center",height:"100%",overflow:"hidden",whiteSpace:"nowrap",transition:`all ${i}ms ease`,top:0,left:0},children:e})})},lr=n.memo(({element:e,index:i,remove:o,renderIcon:a,DelIcon:u,normalizedOptions:s})=>{let v=null;if(e?.jsx)v=e.jsx;else if(e?.name)v=e.name;else if(e?.raw!==void 0){const R=s.find(C=>C.raw===e.raw||C.original===e.raw||C.userId===e.raw);R&&(v=R.jsx??R.name)}v==null&&(v=typeof e=="object"?e.label??e.name??e.value??"Selected item":String(e));const k=n.useCallback(R=>{R.stopPropagation(),R.preventDefault(),o(e.id)},[e.id,o]),b=n.useCallback(R=>{R.stopPropagation(),R.preventDefault()},[]);return d.jsxs("div",{className:"rac-multiple-selected-option",children:[v,a(u,{onClick:k,onMouseDown:b})]})}),cr=n.memo(({selectRef:e,selectId:i,removeOption:o,renderOptions:a,selected:u,selectedIDs:s,setSelectedIds:v,normalizedOptions:k,title:b,visibility:R,active:C,hasOptions:w,hasActualValue:K,optionsClassName:V,selectedText:N,disabled:H,loading:D,error:P,registerOption:z,unregisterOption:T,handleBlur:U,handleFocus:Z,handleToggle:ee,handleKeyDown:se,handleListScroll:ie,setAnimationFinished:q,clear:f,children:F,placeholder:h,className:x,style:m,duration:S,easing:M,offset:G,animateOpacity:re,unmount:ce,ArrowIcon:ae,ClearIcon:r,DelIcon:p,renderIcon:j,hasMore:O,loadButton:te})=>{const ne=n.useRef(null),[t,g]=n.useState(null),l=n.useRef(null);n.useLayoutEffect(()=>{const _=l.current;if(!_)return;const Q=new ResizeObserver(W=>{window.requestAnimationFrame(()=>{if(!Array.isArray(W)||!W.length)return;const fe=W[0].contentRect.height;g(fe)})});return Q.observe(_),()=>{Q.disconnect()}},[]),n.useEffect(()=>{e&&(typeof e=="function"?e(ne.current):e.current=ne.current)},[e]);const y=n.useCallback(_=>{o?o(_):v(Q=>Q.filter(W=>W.id!==_))},[o,v]),$=s?.map((_,Q)=>d.jsx(Me,{duration:S,widthMode:!0,children:d.jsx(lr,{element:_,index:Q,remove:y,renderIcon:j,DelIcon:p,normalizedOptions:k},_.id??Q)},_.id??Q));return d.jsxs(We.Provider,{value:{registerOption:z,unregisterOption:T},children:[F,d.jsxs("div",{ref:ne,style:{...m,"--rac-duration":`${S}ms`,"--rac-duration-fast":"calc(var(--rac-duration) * 0.5)","--rac-duration-base":"var(--rac-duration)","--rac-duration-slow":"calc(var(--rac-duration) * 1.3)"},className:`rac-select
|
|
7
7
|
${x}
|
|
8
|
-
${!
|
|
9
|
-
${
|
|
10
|
-
${
|
|
11
|
-
${!
|
|
12
|
-
`,children:c.jsx(me.TransitionGroup,{component:null,children:f.length?Z:c.jsxs(Me,{duration:_,children:[c.jsx("span",{className:"rac-title-text",children:m},m),c.jsx(je,{visibility:P&&!T,duration:_,children:c.jsxs("span",{className:"rac-loading-dots",children:[c.jsx("i",{}),c.jsx("i",{}),c.jsx("i",{})]})})]},"placeholder-content")})}),c.jsxs("div",{className:"rac-select-buttons",children:[c.jsx(je,{visibility:L&&D&&!C&&!P&&!T,duration:_,style:{display:"grid"},children:e(re,{className:"rac-select-cancel",onMouseDown:t=>{t.preventDefault(),t.stopPropagation()},onClick:B})}),c.jsx(je,{visibility:b,duration:_,style:{display:"grid"},children:c.jsx("span",{className:`rac-select-arrow-wrapper ${p?"--open":""}`,children:e(K,{className:"rac-select-arrow-wrapper"})})})]}),c.jsx(nr,{visibility:p,selectRef:r,onAnimationDone:()=>W(!0),unmount:se,duration:_,easing:J,offset:M,animateOpacity:$,children:c.jsxs("div",{onScroll:U,tabIndex:"-1",className:"rac-select-list",role:"listbox","aria-label":"Options",children:[o,!w&&g&&c.jsxs("div",{className:"rac-select-option rac-disabled-option rac-loading-option",onClick:t=>t.stopPropagation(),children:[c.jsx("span",{className:"rac-loading-option-title",children:"Loading"}),c.jsxs("span",{className:"rac-loading-dots",children:[c.jsx("i",{}),c.jsx("i",{}),c.jsx("i",{})]})]})]})})]})]})});function lr({disabled:r,open:i,setOpen:o,options:n=[],selectOption:f,selected:u,multiple:S,hasMore:m,loadMore:p,loadButton:b,loadButtonText:D,setLoadingTitle:L,loadOffset:C,loadAhead:P,expandedGroups:T}){const O=s.useRef(!1),H=s.useRef(0),V=s.useRef(!1),[k,F]=s.useState(-1);s.useEffect(()=>{V.current=!1,b&&L(D)},[n.length,m,b,D,L]);const d=s.useCallback(()=>{!m||V.current||(V.current=!0,p())},[m,p]),U=s.useCallback(x=>{if(b||!m||V.current)return;const{scrollTop:E,scrollHeight:_,clientHeight:J}=x.currentTarget;_-E<=J+C&&d()},[b,m,C,d]);s.useEffect(()=>{!b&&i&&m&&k>=n.length-P&&d()},[k,i,m,n.length,P,b,d]),s.useEffect(()=>{const x=()=>{H.current=Date.now()};return window.addEventListener("focus",x),()=>window.removeEventListener("focus",x)},[]),s.useEffect(()=>{if(!i){F(-1);return}if(k>=0&&k<n.length&&!(!n[k]||n[k].hidden||n[k].groupHeader))return;let x=-1;if(u){const E=S?u[0]:u;E&&(x=n.findIndex(_=>_.id===E.id&&!_.disabled&&!_.hidden&&!_.groupHeader))}x===-1&&(x=n.findIndex(E=>!E.disabled&&!E.hidden&&!E.groupHeader)),F(x)},[i,n,u]);const W=s.useCallback((x,E)=>{const _=$=>$&&!$?.groupHeader&&(!$?.group||T?.has($?.group))&&!$?.disabled&&!$?.loading,J=n.length;if(J===0)return-1;let M=x;for(let $=0;$<J;$++){if(M=(M+E+J)%J,!b&&m&&(E>0&&M===0||E<0&&M===J-1))return x;if(_(n[M]))return M}return x},[n,m,b,T]),B=s.useCallback(x=>{x.currentTarget.contains(x.relatedTarget)||o(!1)},[o]),ne=s.useCallback(()=>{r||document.hidden||Date.now()-H.current<100||i||(o(!0),O.current=!0,setTimeout(()=>{O.current=!1},200))},[r,i,o]),Q=s.useCallback(x=>{r||x.target.closest(".rac-select-cancel")||O.current||o(!i)},[r,i,o]),ee=s.useCallback(x=>{if(!r)switch(x.key){case"Enter":case" ":x.preventDefault(),i?k!==-1&&n[k]&&f(n[k],x):o(!0);break;case"Escape":x.preventDefault(),o(!1);break;case"ArrowDown":x.preventDefault(),i?F(E=>W(E,1)):o(!0);break;case"ArrowUp":x.preventDefault(),i?F(E=>W(E,-1)):o(!0);break;case"Tab":i&&o(!1);break}},[r,i,o,k,n,f,W]);return s.useMemo(()=>({handleBlur:B,handleFocus:ne,handleToggle:Q,handleKeyDown:ee,highlightedIndex:k,setHighlightedIndex:F,handleListScroll:U}),[B,ne,Q,ee,k,U])}const ar=["group","disabled","options","items","children"],Ne=["name","label","id","value"],Ye=(r,i=!1)=>{if(i&&typeof r.group=="string")return r.group;const o=Ne.find(f=>r[f]!=null&&r[f]!=="");if(o)return String(r[o]);const n=Object.entries(r).find(([f,u])=>!ar.includes(f)&&u!=null&&u!=="");return n?String(n[1]):null};function or({options:r=[],jsxOptions:i=[],value:o,defaultValue:n,onChange:f,disabled:u=!1,loading:S=!1,error:m=!1,multiple:p=!1,placeholder:b="Choose option",emptyText:D="No options",disabledText:L="Disabled",loadingText:C="Loading",errorText:P="Failed to load",disabledOption:T="Disabled option",emptyOption:O="Empty option",invalidOption:H="Invalid option",setVisibility:V,hasMore:k,loadButton:F,setLoadingTitle:d,loadingTitle:U,loadMoreText:W,loadMore:B,childrenFirst:ne,groupsClosed:Q}){const ee=s.useId(),x=o!==void 0,[E,_]=s.useState(null),[J,M]=s.useState([]),[$,se]=s.useState(new Set),K=s.useRef(null),re=s.useCallback(t=>{se(l=>{const h=new Set(l);return h.has(t)?h.delete(t):h.add(t),h})},[]),ie=s.useCallback((t,l,h="n",v=null,q=!1)=>{const le=`${ee}-${h}-${l}`;if(t==null||t==="")return{id:le,userId:null,name:O,raw:null,disabled:!0,type:"normal",group:v,groupDisabled:q};if(typeof t=="function")return{id:le,userId:null,name:H,raw:t,disabled:!0,invalid:!0,type:"normal",group:v};if(typeof t=="object"&&!Array.isArray(t)){const ce=v||t.group||null,ue=q||t.disabled===!0,I=t.id??t.value??t.name??t.label,X=t.value!==void 0?t.value:t.id!==void 0?t.id:t;let a=Ye(t)||(ue?T:O);return{id:le,userId:I,name:a,raw:X,original:t,disabled:ue||a===O&&!ue,type:typeof X=="boolean"?"boolean":"normal",group:ce,groupDisabled:q}}return{id:le,userId:t,name:String(t),raw:t,original:t,disabled:q,type:typeof t=="boolean"?"boolean":"normal",group:v}},[ee,O,H,T]),e=s.useMemo(()=>{const t=new Map,l=[],h=i.map((a,R)=>{if(a.isGroupMarker)return{...a,type:"group-marker"};const Y=!a.label&&!a.userId&&!a.value&&(a.value===void 0||a.value===null||a.value==="")&&!a.hasJsx;return{...a,id:`jsx-${a.id}`,index:R,userId:a.userId,raw:a.value,original:a.value,name:Y?O:a.label||a.userId||String(a.value||""),disabled:!!a.disabled||Y,type:typeof a.value=="boolean"?"boolean":"normal",group:a.group||null}});let v=0;const q=(a,R=null,Y=!1,ae="0")=>{Array.isArray(a)||(a=[a]),a.forEach((A,ve)=>{if(!A)return;const fe=`${ae}-${ve}`,pe=typeof A=="object"&&!Array.isArray(A);if(pe&&("options"in A||"group"in A&&!Ne.some(G=>G in A))){const G=Ye(A,!0)||"Empty group";t.has(G)||t.set(G,{disabled:!!A.disabled,closedByDefault:!!A.disabled||Q,items:[]}),A.options?q(A.options,G,Y||!!A.disabled,fe):l.push({id:`empty-${G}-${fe}`,name:G,group:G,isPlaceholder:!0,type:"group-marker",index:v++})}else if(pe&&!Ne.some(G=>G in A)&&!A.group)Object.entries(A).forEach(([G,we],ke)=>{const Re=ie(we,`${fe}-${ke}`,"normal",R,Y);l.push({...Re,index:v++})});else{const G=ie(A,fe,"normal",R,Y);l.push({...G,index:v++})}})};q(r);const le=ne?[...h,...l]:[...l,...h];if(!K.current)K.current=new Map(le.map((a,R)=>[a.id,R]));else{let a=!1;if(le.forEach(R=>{K.current.has(R.id)||(a=!0)}),a){const R=new Map;le.forEach((Y,ae)=>{R.set(Y.id,ae)}),K.current=R}}const ce=[...le].sort((a,R)=>{const Y=K.current.get(a.id)??999999,ae=K.current.get(R.id)??999999;return Y-ae}),ue=[],I=new Set;ce.forEach(a=>{if(!a.group)ue.push({type:"item",data:a});else if(I.has(a.group)||(I.add(a.group),ue.push({type:"group",name:a.group})),!a.isPlaceholder&&!a.isGroupMarker){const R=t.get(a.group)||{items:[]};t.has(a.group)||t.set(a.group,R),R.items.push(a)}});const X=[];return ue.forEach(a=>{if(a.type==="item")X.push(a.data);else{const R=a.name,Y=t.get(R),ae=$.has(R);X.push({id:`group-header-${R}`,name:R,disabled:!!Y?.disabled,groupHeader:!0,expanded:ae,type:"group",hidden:!1}),Y?.items.forEach(A=>{X.push({...A,hidden:!ae})})}}),k&&F&&X.push({id:"special-load-more-id",name:U,loadMore:!0,loading:U===W,type:"special"}),X},[r,i,ee,ie,ne,k,F,U,W,Q,$,O]);s.useEffect(()=>{if($.size>0)return;const t=new Set;e.forEach(l=>{l.groupHeader&&!l.disabled&&l.expanded!==!1&&t.add(l.name)}),t.size>0&&se(t)},[e]);const g=s.useCallback(t=>{if(t==null)return null;const l=e.find(h=>h.original===t||h.raw===t||h.userId===t);if(l)return l.id;if(typeof t=="object")try{const h=JSON.stringify(t);return e.find(v=>v.original&&typeof v.original=="object"&&JSON.stringify(v.original)===h)?.id??null}catch{return null}return null},[e]);s.useEffect(()=>{const t=x?o:n,l=e.find(v=>v.id===E);l&&(l.original===t||l.raw===t||l.userId===t)||_(g(t))},[o,n,x,e,g,E]);const w=s.useMemo(()=>e.find(t=>t.id===E)??null,[E,e]),j=s.useCallback((t,l)=>{if(t.groupHeader){l?.stopPropagation(),l?.preventDefault(),t.disabled||re(t.name);return}if(t.disabled||t.loadMore){l?.stopPropagation(),l?.preventDefault(),t.loadMore&&!t.loading&&(d(W),B());return}if(p){if(t.disabled||t.groupHeader||t.loadMore){l?.stopPropagation(),l?.preventDefault();return}l?.stopPropagation(),l?.preventDefault(),M(h=>h.some(v=>v.id===t.id)?h.filter(v=>v.id!==t.id):[...h,t]);return}_(t.id),f?.(t.original,t.userId),V(!1)},[f,V,B,W,d,re]),Z=s.useCallback(()=>{_(null),f?.(null,null)},[f]);return{normalizedOptions:e,selected:w,selectOption:j,clear:Z,hasOptions:e.length>0,active:!m&&!S&&!u&&e.length>0,selectedValue:o??n,placeholder:b,emptyText:D,disabledText:L,loadingText:C,errorText:P,disabledOption:T,emptyOption:O,invalidOption:H,disabled:u,loading:S,error:m,expandedGroups:$,toggleGroup:re,selectedIDs:J,multiple:p,setSelectedIds:M}}function cr({visibility:r,children:i,duration:o=300}){const n=s.useRef(null);return c.jsx(me.CSSTransition,{in:r,timeout:300,classNames:"slideDown",unmountOnExit:!0,nodeRef:n,onEnter:()=>n.current.style.height="0px",onEntering:()=>n.current.style.height=n.current.scrollHeight+"px",onEntered:()=>n.current.style.height="auto",onExit:()=>n.current.style.height=n.current.scrollHeight+"px",onExiting:()=>n.current.style.height="0px",children:c.jsx("div",{ref:n,style:{overflow:"hidden",transition:`height ${o}ms ease`,paddingLeft:"1em"},className:"slideDown-enter-done",tabIndex:-1,children:i})})}const Te=(r,i)=>{if(!r)return null;if(typeof r=="string")return c.jsx("img",{src:r,...i,alt:""});if(s.isValidElement(r))return s.cloneElement(r,i);if(typeof r=="function"||typeof r=="object"&&r.$$typeof){const o=r;return c.jsx(o,{...i})}return null},ur=(r,i,o,n,f,u,S,m)=>{const p=m.some(b=>b.id===r.id);return r.groupHeader?"rac-select-option rac-group-option":["rac-select-option",r.className,(p||n===r.id)&&"rac-selected",i===o&&"rac-highlighted",(r.disabled||r.loading)&&"rac-disabled-option",(r.invalid||r.name===S)&&"rac-invalid-option",r.loadMore&&f===u&&"rac-loading-option",typeof r.raw=="boolean"&&(r.raw?"rac-true-option":"rac-false-option")].filter(Boolean).join(" ")},dr=s.forwardRef(({unmount:r,children:i,renderedDropdown:o,visibility:n,ownBehavior:f=!1,alwaysOpen:u=!1,duration:S=300,easing:m="ease-out",offset:p=2,animateOpacity:b=!0,style:D={},className:L="",ArrowIcon:C=rr,ClearIcon:P=Le,DelIcon:T=Le,CheckIcon:O=He,hasMore:H=!1,loadMore:V=()=>{console.warn("loadMore not implemented")},loadButton:k=!1,loadButtonText:F="Load more",loadMoreText:d="Loading",loadOffset:U=100,loadAhead:W=3,childrenFirst:B=!1,groupsClosed:ne=!1,...Q},ee)=>{const x=s.useId(),E=s.useMemo(()=>x.replace(/:/g,""),[x]),[_,J]=s.useState([]),[M,$]=s.useState(!1),[se,K]=s.useState(k?F:d),[re,ie]=s.useState(!1),e=s.useRef(null),g=s.useCallback(N=>{J(z=>{const te=z.findIndex(oe=>oe.id===N.id);if(te!==-1){const oe=z[te];if(oe.label===N.label&&oe.value===N.value&&oe.disabled===N.disabled&&oe.group===N.group)return z;const xe=[...z];return xe[te]=N,xe}return[...z,N]})},[]),w=s.useCallback(N=>{J(z=>{const te=z.filter(oe=>oe.id!==N);return te.length===z.length?z:te})},[]),j=u?!0:f?!!n:M,Z=s.useCallback(N=>{u||f||$(N)},[u,f]),t=or({...Q,setVisibility:Z,jsxOptions:_,hasMore:H,loadButton:k,loadingTitle:se,loadMore:V,loadMoreText:d,setLoadingTitle:K,childrenFirst:B,groupsClosed:ne}),{multiple:l,normalizedOptions:h,selected:v,selectOption:q,clear:le,hasOptions:ce,active:ue,selectedValue:I,disabled:X,loading:a,error:R,placeholder:Y,invalidOption:ae,emptyText:A,disabledText:ve,loadingText:fe,errorText:pe,expandedGroups:be,selectedIDs:G,setSelectedIds:we}=t,ke=lr({setLoadingTitle:K,loadButton:k,loadButtonText:F,hasMore:H,loadMore:V,disabled:X,multiple:l,open:j,setOpen:Z,options:h,selectOption:q,selected:v,loadOffset:U,loadAhead:W,expandedGroups:be}),{handleListScroll:Re,handleBlur:ze,handleFocus:Ve,handleToggle:We,handleKeyDown:Je,highlightedIndex:he,setHighlightedIndex:_e}=ke;s.useImperativeHandle(ee,()=>e.current),s.useEffect(()=>{j||ie(!1)},[j]),s.useEffect(()=>{(R||X||a||!ce)&&Z(!1)},[R,X,a,ce,Z]),s.useEffect(()=>{if(j&&re&&he!==-1){const N=h[he];N&&document.getElementById(`opt-${E}-${Fe(N.id)}`)?.scrollIntoView({block:"nearest"})}},[he,j,re,h,E]);const Ce=s.useMemo(()=>I!=null&&!(Array.isArray(I)&&I.length===0)&&!(typeof I=="object"&&Object.keys(I).length===0),[I]),Ue=s.useMemo(()=>{if(R)return pe;if(a)return fe;if(X)return ve;if(v)return v.jsx??v.name;if(Ce){const N=h.find(z=>z.raw===I);return N?N.name:typeof I=="object"&&I!==null?I.name??I.label??"Selected Object":String(I)}return ce?Y:A},[X,a,R,ce,v,I,Y,pe,fe,ve,A,Ce,h]),qe=s.useMemo(()=>{const N=[];let z=[],te=null;const oe=h.reduce((y,de)=>(de.group&&(y[de.group]=(y[de.group]||0)+1),y),{}),xe=y=>{y===null||z.length===0||(N.push(c.jsx(cr,{visibility:be.has(y),children:z},`slide-${y}`)),z=[])},Ae=(y,de)=>c.jsxs("div",{id:`opt-${E}-${Fe(y.id)}`,role:"option","aria-selected":v?.id===y.id,"aria-disabled":y.disabled||y.loading,className:ur(y,de,he,v?.id,se,d,ae,G),onClick:ge=>!y.loading&&q(y,ge),onMouseEnter:()=>!y.disabled&&!y.loading&&_e(de),children:[y.jsx??y.name,y.loading&&c.jsxs("span",{className:"rac-loading-dots",children:[c.jsx("i",{}),c.jsx("i",{}),c.jsx("i",{})]}),l&&!y.disabled?c.jsx("div",{className:"rac-checkbox",children:Te(He,{className:`
|
|
8
|
+
${!w||H?"rac-disabled-style":""}
|
|
9
|
+
${D?"rac-loading-style":""}
|
|
10
|
+
${P?"rac-error-style":""}`,tabIndex:C?0:-1,role:"combobox","aria-haspopup":"listbox","aria-expanded":R,"aria-controls":`${i}-listbox`,"aria-label":h,"aria-disabled":H||!w,...C&&{onBlur:U,onFocus:Z,onClick:ee,onKeyDown:se},children:[d.jsx("div",{className:`rac-select-title-wrapper
|
|
11
|
+
${!P&&!D&&u?.type==="boolean"?u.raw?"rac-true-option":"rac-false-option":""}
|
|
12
|
+
`,style:{height:t?`${t}px`:"auto",boxSizing:"content-box",overflow:"hidden"},children:d.jsx("div",{className:"rac-select-title",ref:l,children:d.jsx(ve.TransitionGroup,{component:null,children:s?.length&&!N?$:d.jsxs(Me,{duration:S,widthMode:!0,children:[d.jsx("span",{className:"rac-title-text",children:b}),d.jsx(Re,{visibility:D&&!P,duration:S,children:d.jsxs("span",{className:"rac-loading-dots",children:[d.jsx("i",{}),d.jsx("i",{}),d.jsx("i",{})]})})]},b)})})}),d.jsxs("div",{className:"rac-select-buttons",children:[d.jsx(Re,{visibility:K&&w&&!H&&!D&&!P,duration:S,style:{display:"grid"},children:j(r,{className:"rac-select-cancel",onMouseDown:_=>{_.preventDefault(),_.stopPropagation()},onClick:f})}),d.jsx(Re,{visibility:C,duration:S,style:{display:"grid"},children:d.jsx("span",{className:`rac-select-arrow-wrapper ${R?"--open":""}`,children:j(ae,{className:"rac-select-arrow-wrapper"})})})]}),d.jsx(or,{className:V,visibility:R,selectRef:e,onAnimationDone:()=>q(!0),unmount:ce,duration:S,easing:M,offset:G,animateOpacity:re,style:{...m,"--rac-duration":`${S}ms`},children:d.jsxs("div",{onScroll:ie,tabIndex:"-1",className:"rac-select-list",role:"listbox","aria-label":"Options",children:[a,!te&&O&&d.jsxs("div",{className:"rac-select-option rac-disabled-option rac-loading-option",onClick:_=>_.stopPropagation(),children:[d.jsx("span",{className:"rac-loading-option-title",children:"Loading"}),d.jsxs("span",{className:"rac-loading-dots",children:[d.jsx("i",{}),d.jsx("i",{}),d.jsx("i",{})]})]})]})})]})]})});function ur({disabled:e,open:i,setOpen:o,options:a=[],selectOption:u,selected:s,selectedIDs:v,multiple:k,hasMore:b,loadMore:R,loadButton:C,loadButtonText:w,setLoadingTitle:K,loadOffset:V,loadAhead:N,expandedGroups:H}){const D=n.useRef(!1),P=n.useRef(0),z=n.useRef(!1),[T,U]=n.useState(-1);n.useEffect(()=>{z.current=!1,C&&K(w)},[a.length,b,C,w,K]);const Z=n.useCallback(()=>{!b||z.current||(z.current=!0,R())},[b,R]),ee=n.useCallback(h=>{if(C||!b||z.current)return;const{scrollTop:x,scrollHeight:m,clientHeight:S}=h.currentTarget;m-x<=S+V&&Z()},[C,b,V,Z]);n.useEffect(()=>{!C&&i&&b&&T>=a.length-N&&Z()},[T,i,b,a.length,N,C,Z]),n.useEffect(()=>{const h=()=>{P.current=Date.now()};return window.addEventListener("focus",h),()=>window.removeEventListener("focus",h)},[]),n.useEffect(()=>{if(!i){U(-1);return}if(T>=0&&T<a.length&&!(!a[T]||a[T].hidden||a[T].groupHeader))return;let h=-1;if(s&&!k){const x=k?s[0]:s;x&&(h=a.findIndex(m=>m.id===x.id&&!m.disabled&&!m.hidden&&!m.groupHeader))}if(k&&v.length){const x=new Set(v.map(m=>m.id));h=a.findIndex(m=>x.has(m.id)&&!m.disabled&&!m.hidden&&!m.groupHeader)}h===-1&&(h=a.findIndex(x=>!x.disabled&&!x.hidden&&!x.groupHeader)),U(h)},[i,a,s]);const se=n.useCallback((h,x)=>{const m=G=>G&&!G?.groupHeader&&(!G?.group||H?.has(G?.group))&&!G?.disabled&&!G?.loading,S=a.length;if(S===0)return-1;let M=h;for(let G=0;G<S;G++){if(M=(M+x+S)%S,!C&&b&&(x>0&&M===0||x<0&&M===S-1))return h;if(m(a[M]))return M}return h},[a,b,C,H]),ie=n.useCallback(h=>{const x=h.relatedTarget?.closest(".rac-options");!h.currentTarget.contains(h.relatedTarget)&&!x&&o(!1)},[o]),q=n.useCallback(()=>{e||document.hidden||Date.now()-P.current<100||i||(o(!0),D.current=!0,setTimeout(()=>{D.current=!1},200))},[e,i,o]),f=n.useCallback(h=>{e||h.target.closest(".rac-select-cancel")||D.current||o(!i)},[e,i,o]),F=n.useCallback(h=>{if(!e)switch(h.key){case"Enter":case" ":h.preventDefault(),i?T!==-1&&a[T]&&u(a[T],h):o(!0);break;case"Escape":h.preventDefault(),o(!1);break;case"ArrowDown":h.preventDefault(),i?U(x=>se(x,1)):o(!0);break;case"ArrowUp":h.preventDefault(),i?U(x=>se(x,-1)):o(!0);break;case"Tab":i&&o(!1);break}},[e,i,o,T,a,u,se]);return n.useMemo(()=>({handleBlur:ie,handleFocus:q,handleToggle:f,handleKeyDown:F,highlightedIndex:T,setHighlightedIndex:U,handleListScroll:ee}),[ie,q,f,F,T,ee])}const dr=["group","disabled","options","items","children"],Ae=["name","label","id","value"],Ge=[],ke=(e,i=!1)=>{if(i&&typeof e.group=="string")return e.group;const o=Ae.find(u=>e[u]!=null&&e[u]!=="");if(o)return String(e[o]);const a=Object.entries(e).find(([u,s])=>!dr.includes(u)&&s!=null&&s!=="");return a?String(a[1]):null};function fr({options:e=Ge,jsxOptions:i=Ge,value:o,defaultValue:a,onChange:u,disabled:s=!1,loading:v=!1,error:k=!1,multiple:b=!1,placeholder:R="Choose option",emptyText:C="No options",disabledText:w="Disabled",loadingText:K="Loading",errorText:V="Failed to load",disabledOption:N="Disabled option",emptyOption:H="Empty option",invalidOption:D="Invalid option",setVisibility:P,hasMore:z,loadButton:T,setLoadingTitle:U,loadingTitle:Z,loadMoreText:ee,loadMore:se,childrenFirst:ie,groupsClosed:q}){const f=n.useId(),F=o!==void 0,[h,x]=n.useState(null),[m,S]=n.useState([]),[M,G]=n.useState(new Set),re=n.useRef(null),ce=n.useCallback(t=>{G(g=>{const l=new Set(g);return l.has(t)?l.delete(t):l.add(t),l})},[]),ae=n.useCallback((t,g,l="n",y=null,$=!1)=>{const _=`${f}-${l}-${g}`;if(t==null||t==="")return{id:_,userId:null,name:H,raw:null,disabled:!0,type:"normal",group:y,groupDisabled:$};if(typeof t=="function")return{id:_,userId:null,name:D,raw:t,disabled:!0,invalid:!0,type:"normal",group:y};if(typeof t=="object"&&!Array.isArray(t)){const Q=y||t.group||null,W=$||t.disabled===!0,fe=t.id??t.value??t.name??t.label,L=t.value!==void 0?t.value:t.id!==void 0?t.id:t;let c=ke(t)||(W?N:H);return{id:_,userId:fe,name:c,raw:L,original:t,disabled:W||c===H&&!W,type:typeof L=="boolean"?"boolean":"normal",group:Q,groupDisabled:$}}return{id:_,userId:t,name:String(t),raw:t,original:t,disabled:$,type:typeof t=="boolean"?"boolean":"normal",group:y}},[f,H,D,N]),r=n.useMemo(()=>{const t=new Map,g=[],l=i.map((c,A)=>{if(c.isGroupMarker)return{...c,type:"group-marker"};const J=!c.label&&!c.userId&&!c.value&&(c.value===void 0||c.value===null||c.value==="")&&!c.hasJsx;return{...c,id:`jsx-${c.id}`,index:A,userId:c.userId,raw:c.value,original:c.value,name:J?H:c.label||c.userId||String(c.value||""),disabled:!!c.disabled||J,type:typeof c.value=="boolean"?"boolean":"normal",group:c.group||null}});let y=0;const $=(c,A=null,J=!1,oe="0")=>{Array.isArray(c)||(c=[c]),c.forEach((Y,pe)=>{if(!Y)return;const ge=`${oe}-${pe}`,ye=typeof Y=="object"&&!Array.isArray(Y);if(ye&&("options"in Y||"group"in Y&&!Ae.some(X=>X in Y))){const X=ke(Y,!0)||"Empty group";t.has(X)||t.set(X,{disabled:!!Y.disabled,closedByDefault:!!Y.disabled||q,items:[]}),Y.options?$(Y.options,X,J||!!Y.disabled,ge):g.push({id:`empty-${X}-${ge}`,name:X,group:X,isPlaceholder:!0,type:"group-marker",index:y++})}else if(ye&&!Ae.some(X=>X in Y)&&!Y.group)Object.entries(Y).forEach(([X,be],_e)=>{const Ce=ae(be,`${ge}-${_e}`,"normal",A,J);g.push({...Ce,index:y++})});else{const X=ae(Y,ge,"normal",A,J);g.push({...X,index:y++})}})};$(e);const _=ie?[...l,...g]:[...g,...l];if(!re.current)re.current=new Map(_.map((c,A)=>[c.id,A]));else{let c=!1;if(_.forEach(A=>{re.current.has(A.id)||(c=!0)}),c){const A=new Map;_.forEach((J,oe)=>{A.set(J.id,oe)}),re.current=A}}const Q=[..._].sort((c,A)=>{const J=re.current.get(c.id)??999999,oe=re.current.get(A.id)??999999;return J-oe}),W=[],fe=new Set;Q.forEach(c=>{if(!c.group)W.push({type:"item",data:c});else if(fe.has(c.group)||(fe.add(c.group),W.push({type:"group",name:c.group})),!c.isPlaceholder&&!c.isGroupMarker){const A=t.get(c.group)||{items:[]};t.has(c.group)||t.set(c.group,A),A.items.push(c)}});const L=[];return W.forEach(c=>{if(c.type==="item")L.push(c.data);else{const A=c.name,J=t.get(A),oe=M.has(A);L.push({id:`group-header-${A}`,name:A,disabled:!!J?.disabled,groupHeader:!0,expanded:oe,type:"group",hidden:!1}),J?.items.forEach(Y=>{const pe=M.size>0?!oe:!!q;L.push({...Y,hidden:pe})})}}),z&&T&&L.push({id:"special-load-more-id",name:Z,loadMore:!0,loading:Z===ee,type:"special"}),L},[e,i,f,ae,ie,z,T,Z,ee,q,M,H]);n.useEffect(()=>{if(!r||r.length===0||M.size>0||q)return;const t=new Set;r.forEach(g=>{g.groupHeader&&!g.disabled&&t.add(g.name)}),t.size>0&&G(t)},[r,q]);const p=n.useCallback(t=>{if(t==null)return null;const g=r.find(l=>l.original===t);if(g)return g.id;if(typeof t=="object")try{const l=JSON.stringify(t);return r.find(y=>y.original&&typeof y.original=="object"&&JSON.stringify(y.original)===l)?.id??null}catch{return null}return null},[r]);n.useEffect(()=>{const t=F?o:a;if(t==null||Array.isArray(t)&&t.length===0){x(null),S([]);return}const g=l=>{const y=p(l),$=r.find(Q=>Q.id===y);if($)return $;const _=typeof l=="object"?l.id||l.value||JSON.stringify(l):String(l);return typeof l=="object"&&l!==null?{id:`virtual-${_}`,name:ke(l)||String(l.id||"Selected Object"),raw:l.value??l.id??l,original:l,userId:l.id??l.value??null,virtual:!0}:{id:`virtual-${_}`,name:String(l),raw:l,original:l,userId:l,virtual:!0}};if(b){const y=(Array.isArray(t)?t:[t]).map(g);S(y)}else{const l=Array.isArray(t)?t[0]:t,y=g(l);x($=>$===y.id?$:y.id)}},[]);const j=n.useMemo(()=>{const t=r.find(g=>g.id===h);if(t)return t;if(!b&&h?.startsWith("virtual-")){const g=F?o:a,l=Array.isArray(g)?g[0]:g;if(l)return{id:h,name:typeof l=="object"?ke(l):String(l),original:l}}return null},[h,r,b,F,o,a]),O=n.useCallback((t,g)=>{if(t.groupHeader){g?.stopPropagation(),g?.preventDefault(),t.disabled||ce(t.name);return}if(t.disabled||t.loadMore){g?.stopPropagation(),g?.preventDefault(),t.loadMore&&!t.loading&&(U(ee),se());return}if(b){if(t.disabled||t.groupHeader||t.loadMore){g?.stopPropagation(),g?.preventDefault();return}g?.stopPropagation(),g?.preventDefault();const y=m?.some($=>$.id===t.id)?m.filter($=>$.id!==t.id):[...m,t];S(y),u?.(y.map($=>$.original),y.map($=>$.userId));return}x(t.id),u?.(t.original,t.userId),P(!1)},[u,P,se,ee,U,ce]),te=n.useCallback(()=>{x(null),S([]),u?.(null,null)},[u]),ne=n.useCallback(t=>{const g=m.filter(l=>l.id!==t);S(g),u?.(g.map(l=>l.original),g.map(l=>l.userId))},[m,u]);return{normalizedOptions:r,selected:j,selectOption:O,clear:te,removeOption:ne,hasOptions:r.length>0,active:!k&&!v&&!s&&r.length>0,selectedValue:o??a,placeholder:R,emptyText:C,disabledText:w,loadingText:K,errorText:V,disabledOption:N,emptyOption:H,invalidOption:D,disabled:s,loading:v,error:k,expandedGroups:M,toggleGroup:ce,selectedIDs:m,multiple:b,setSelectedIds:S}}function gr({visibility:e,children:i,duration:o=300}){const a=n.useRef(null);return d.jsx(ve.CSSTransition,{in:e,timeout:300,classNames:"slideDown",unmountOnExit:!0,nodeRef:a,onEnter:()=>a.current.style.height="0px",onEntering:()=>a.current.style.height=a.current.scrollHeight+"px",onEntered:()=>a.current.style.height="auto",onExit:()=>a.current.style.height=a.current.scrollHeight+"px",onExiting:()=>a.current.style.height="0px",children:d.jsx("div",{ref:a,style:{overflow:"hidden",transition:`height ${o}ms ease`,paddingLeft:"1em"},className:"slideDown-enter-done",tabIndex:-1,children:i})})}const Te=(e,i)=>{if(!e)return null;if(typeof e=="string")return d.jsx("img",{src:e,...i,alt:""});if(n.isValidElement(e))return n.cloneElement(e,i);if(typeof e=="function"||typeof e=="object"&&e.$$typeof){const o=e;return d.jsx(o,{...i})}return null},hr=(e,i,o,a,u,s,v,k)=>{const b=k?.some(R=>R.id===e.id);return e.groupHeader?"rac-select-option rac-group-option":["rac-select-option",e.className,(b||a===e.id)&&"rac-selected",i===o&&"rac-highlighted",(e.disabled||e.loading)&&"rac-disabled-option",(e.invalid||e.name===v)&&"rac-invalid-option",e.loadMore&&u===s&&"rac-loading-option",typeof e.raw=="boolean"&&(e.raw?"rac-true-option":"rac-false-option")].filter(Boolean).join(" ")},pr=n.forwardRef(({unmount:e,children:i,visibility:o,ownBehavior:a=!1,alwaysOpen:u=!1,duration:s=300,easing:v="ease-out",offset:k=0,animateOpacity:b=!0,style:R={},className:C="",ArrowIcon:w=ir,ClearIcon:K=Ye,DelIcon:V=Ye,CheckIcon:N=ze,hasMore:H=!1,loadMore:D=()=>{console.warn("loadMore not implemented")},loadButton:P=!1,loadButtonText:z="Load more",loadMoreText:T="Loading",selectedText:U=void 0,loadOffset:Z=100,loadAhead:ee=3,childrenFirst:se=!1,groupsClosed:ie=!1,optionsClassName:q="",...f},F)=>{const h=n.useId(),x=n.useMemo(()=>h.replace(/:/g,""),[h]),[m,S]=n.useState([]),[M,G]=n.useState(!1),[re,ce]=n.useState(P?z:T),[ae,r]=n.useState(!1),p=n.useRef(null),j=n.useCallback(I=>{S(B=>{const le=B.findIndex(ue=>ue.id===I.id);if(le!==-1){const ue=B[le];if(ue.label===I.label&&ue.value===I.value&&ue.disabled===I.disabled&&ue.group===I.group)return B;const me=[...B];return me[le]=I,me}return[...B,I]})},[]),O=n.useCallback(I=>{S(B=>{const le=B.filter(ue=>ue.id!==I);return le.length===B.length?B:le})},[]),te=u?!0:a?!!o:M,ne=n.useCallback(I=>{u||a||G(I)},[u,a]),t=fr({...f,setVisibility:ne,jsxOptions:m,hasMore:H,loadButton:P,loadingTitle:re,loadMore:D,loadMoreText:T,setLoadingTitle:ce,childrenFirst:se,groupsClosed:ie}),{multiple:g,normalizedOptions:l,selected:y,selectOption:$,clear:_,removeOption:Q,hasOptions:W,active:fe,selectedValue:L,disabled:c,loading:A,error:J,placeholder:oe,invalidOption:Y,emptyText:pe,disabledText:ge,loadingText:ye,errorText:$e,expandedGroups:X,selectedIDs:be,setSelectedIds:_e}=t,Ce=ur({setLoadingTitle:ce,loadButton:P,loadButtonText:z,hasMore:H,loadMore:D,disabled:c,multiple:g,open:te,setOpen:ne,options:l,selectOption:$,selected:y,loadOffset:Z,loadAhead:ee,expandedGroups:X,selectedIDs:be}),{handleListScroll:Je,handleBlur:Ve,handleFocus:Ue,handleToggle:qe,handleKeyDown:Xe,highlightedIndex:xe,setHighlightedIndex:Ne}=Ce;n.useImperativeHandle(F,()=>p.current),n.useEffect(()=>{te||r(!1)},[te]),n.useEffect(()=>{(J||c||A||!W)&&ne(!1)},[J,c,A,W,ne]),n.useEffect(()=>{if(te&&ae&&xe!==-1){const I=l[xe];I&&document.getElementById(`opt-${x}-${Fe(I.id)}`)?.scrollIntoView({block:"nearest"})}},[xe,te,ae,l,x]);const Se=n.useMemo(()=>L!=null&&!(Array.isArray(L)&&L.length===0)&&!(typeof L=="object"&&Object.keys(L).length===0),[L]),Ke=n.useMemo(()=>{if(J)return $e;if(A)return ye;if(c)return ge;if(Se&&U)return U;if(y)return y.jsx??y.name;if(Se){const I=l.find(B=>B.raw===L);return I?I.name:typeof L=="object"&&L!==null?L.name??L.label??"Selected Object":String(L)}return W?oe:pe},[c,A,J,W,y,L,oe,$e,ye,ge,pe,Se,l]),Be=n.useMemo(()=>{const I=[];let B=[],le=null;const ue=l.reduce((E,de)=>(de.group&&(E[de.group]=(E[de.group]||0)+1),E),{}),me=E=>{E===null||B.length===0||(I.push(d.jsx(gr,{visibility:X.has(E),children:B},`slide-${E}`)),B=[])},Pe=(E,de)=>d.jsxs("div",{id:`opt-${x}-${Fe(E.id)}`,role:"option","aria-selected":y?.id===E.id,"aria-disabled":E.disabled||E.loading,className:hr(E,de,xe,y?.id,re,T,Y,be),onClick:he=>!E.loading&&$(E,he),onMouseEnter:()=>!E.disabled&&!E.loading&&Ne(de),children:[E.jsx??d.jsx("span",{className:"rac-option-title",children:E.name}),E.loading&&d.jsxs("span",{className:"rac-loading-dots",children:[d.jsx("i",{}),d.jsx("i",{}),d.jsx("i",{})]}),g&&!E.disabled?d.jsx("div",{className:"rac-checkbox",children:Te(ze,{className:`
|
|
13
13
|
rac-checkmark
|
|
14
|
-
${
|
|
14
|
+
${be?.some(he=>he.id===E.id)?"--checked":""}`})}):null]},E.id);return l.forEach((E,de)=>{const he=E.groupHeader,He=!!E.group;if((he||!He&&le!==null)&&(me(le),he||(le=null)),he){le=E.name;const Ze=X.has(E.name),Qe=ue[E.name]>0;I.push(d.jsxs("div",{className:["rac-group-header",E.disabled&&"rac-disabled-group"].filter(Boolean).join(" "),onClick:er=>$(E,er),children:[d.jsx("span",{className:"rac-group-title-text",children:E.name}),d.jsx(Re,{visibility:Qe&&!E.disabled,duration:s,children:d.jsx("span",{className:`rac-group-arrow-wrapper ${Ze?"--open":""}`,children:Te(w,{className:"rac-select-arrow-wrapper"})})})]},E.id))}else He?B.push(Pe(E,de)):I.push(Pe(E,de))}),me(le),I},[l,$,x,y,xe,re,T,Y,Ne,X,w]);return d.jsx(cr,{selectedText:U,selectRef:p,selectId:x,selectedIDs:be,setSelectedIds:_e,multiple:g,removeOption:Q,optionsClassName:q,renderIcon:Te,normalizedOptions:l,renderOptions:Be,selected:y,title:Ke,visibility:te,active:fe,hasOptions:W,hasActualValue:Se,highlightedIndex:xe,animationFinished:ae,disabled:c,loading:A,error:J,setVisibility:ne,setHighlightedIndex:Ne,setAnimationFinished:r,handleBlur:Ve,handleFocus:Ue,handleToggle:qe,handleKeyDown:Xe,handleListScroll:Je,selectOption:$,clear:_,registerOption:j,unregisterOption:O,children:i,placeholder:oe,className:C,style:R,duration:s,easing:v,offset:k,animateOpacity:b,unmount:e,ArrowIcon:w,ClearIcon:K,DelIcon:V,hasMore:H,loadButton:P})}),br=n.createContext(null),Oe=e=>e?typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(Oe).join(" ").replace(/\s+/g," ").trim():n.isValidElement(e)?Oe(e.props.children):"":"";function xr({value:e,id:i,className:o,children:a,disabled:u,group:s}){const v=n.useContext(We),k=n.useContext(br),b=v?.registerOption,R=v?.unregisterOption,C=n.useId(),w=n.useMemo(()=>i?String(i):C.replace(/:/g,""),[i,C]);return n.useEffect(()=>{if(!b)return;const K=Oe(a),V=a!=null;let N="";return K?N=K:i!=null&&i!==""?N=String(i):e!=null&&e!==""&&(N=String(e)),b({id:w,value:e!==void 0?e:K,label:N,jsx:a,hasJsx:V,className:o,disabled:!!u,group:s||k||null}),()=>R(w)},[w,e,a,o,u,s,k,b,R]),null}exports.Option=xr;exports.Select=pr;
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@media(prefers-reduced-motion:reduce){.rac-select{--rac-duration: 1ms}}
|
|
1
|
+
@media(prefers-reduced-motion:reduce){.rac-select{--rac-duration: 1ms}}:root{--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-title-font-size: 1em;--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;--rac-disabled-group-color: color-mix(in srgb, GrayText, CanvasText 20%);--rac-multiple-selected-border: .1em solid gray;--rac-multiple-selected-radius: 5px;--rac-checkbox-border: 1px solid gray;--rac-multiple-selected-padding: 0em .25em;--rac-multiple-selected-margin: .25em .25em;--rac-multiple-selected-gap: .5em 0;--rac-checkbox-margin-right: .2em;--rac-multiple-selected-min-height: 1.5em;--rac-checkbox-size: var(--rac-option-min-height);--rac-options-z-index: 1}.rac-select{background:var(--rac-select-background);padding:var(--rac-select-padding);border:var(--rac-select-border);color:var(--rac-select-color);min-height:var(--rac-select-height);interpolate-size:allow-keywords;transition:border-color var(--rac-duration-base) ease,height var(--rac-duration-base) ease;justify-content:space-between;box-sizing:border-box;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-wrapper{transition:height .3s cubic-bezier(.4,0,.2,1)}.rac-select-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--rac-multiple-selected-gap)}.rac-title-text{margin:.5em 0;display:block;animation:rac-fade-in var(--rac-duration-base) var(--rac-title-anim-entry-ease);height:100%;align-content:center;font-size:var(--rac-title-font-size)}@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{transition:background-color var(--rac-duration-fast) cubic-bezier(.4,0,.2,1);min-height:var(--rac-option-min-height);padding:var(--rac-option-padding);justify-content:space-between;align-items:center;display:flex;cursor:pointer}.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-option-title{text-overflow:ellipsis;overflow:hidden;text-wrap:wrap}.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)}.rac-disabled-group{cursor:not-allowed;color:var(--rac-disabled-group-color)}.rac-select-selected{display:flex;align-items:center}.rac-multiple-selected-option{border:var(--rac-multiple-selected-border);border-radius:var(--rac-multiple-selected-radius);min-height:var(--rac-multiple-selected-min-height);transition:background-color var(--rac-duration-fast) cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;vertical-align:middle;line-height:normal;padding:var(--rac-multiple-selected-padding);margin:var(--rac-multiple-selected-margin);white-space:nowrap}.rac-multiple-selected-option:hover{background-color:color-mix(in srgb,CanvasText 6%,Canvas)}.rac-checkbox{min-height:var(--rac-option-min-height);min-width:var(--rac-option-min-height);border:var(--rac-checkbox-border);justify-content:center;align-items:center;display:flex;height:100%;margin-right:var(--rac-checkbox-margin-right)}.rac-checkmark{color:var(--rac-base-green);opacity:0;max-width:0;max-height:0;transition:opacity var(--rac-duration-base),max-height var(--rac-duration-base),max-width var(--rac-duration-base)}.rac-checkmark.--checked{opacity:1;max-height:var(--rac-option-min-height);max-width:var(--rac-option-min-height)}
|