import{R as e,j as r}from"./jsx-runtime-BnbLqBWP.js";import{c as t}from"./index-DKVgTY5W.js";import{u as o,S as n}from"./index-BYVAcnYn.js";function c(c){const l=c+"CollectionProvider",[i,s]=t(l),[a,f]=i(l,{collectionRef:{current:null},itemMap:new Map}),u=t=>{const{scope:o,children:n}=t,c=e.useRef(null),l=e.useRef(new Map).current;return r.jsx(a,{scope:o,itemMap:l,collectionRef:c,children:n})};u.displayName=l;const m=c+"CollectionSlot",d=e.forwardRef(((e,t)=>{const{scope:c,children:l}=e,i=f(m,c),s=o(t,i.collectionRef);return r.jsx(n,{ref:s,children:l})}));d.displayName=m;const p=c+"CollectionItemSlot",R="data-radix-collection-item",x=e.forwardRef(((t,c)=>{const{scope:l,children:i,...s}=t,a=e.useRef(null),u=o(c,a),m=f(p,l);return e.useEffect((()=>(m.itemMap.set(a,{ref:a,...s}),()=>{m.itemMap.delete(a)}))),r.jsx(n,{[R]:"",ref:u,children:i})}));return x.displayName=p,[{Provider:u,Slot:d,ItemSlot:x},function(r){const t=f(c+"CollectionConsumer",r);return e.useCallback((()=>{const e=t.collectionRef.current;if(!e)return[];const r=Array.from(e.querySelectorAll(`[${R}]`));return Array.from(t.itemMap.values()).sort(((e,t)=>r.indexOf(e.ref.current)-r.indexOf(t.ref.current)))}),[t.collectionRef,t.itemMap])},s]}export{c};