dgz-ui
Version:
Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript
2 lines (1 loc) • 1.42 kB
JavaScript
;const r=require("react"),q=require("./index-Dyp2JWEo.cjs"),S=require("./index-C1oWDt_I.cjs"),M=require("./index-BbYJWkTf.cjs"),a=require("./jsx-runtime-h4oGeKUK.cjs");function v(s){const u=s+"CollectionProvider",[E,A]=q.createContextScope(u),[N,d]=E(u,{collectionRef:{current:null},itemMap:new Map}),p=c=>{const{scope:e,children:l}=c,t=r.useRef(null),o=r.useRef(new Map).current;return a.jsxRuntimeExports.jsx(N,{scope:e,itemMap:o,collectionRef:t,children:l})};p.displayName=u;const m=s+"CollectionSlot",T=M.createSlot(m),C=r.forwardRef((c,e)=>{const{scope:l,children:t}=c,o=d(m,l),n=S.useComposedRefs(e,o.collectionRef);return a.jsxRuntimeExports.jsx(T,{ref:n,children:t})});C.displayName=m;const f=s+"CollectionItemSlot",x="data-radix-collection-item",j=M.createSlot(f),R=r.forwardRef((c,e)=>{const{scope:l,children:t,...o}=c,n=r.useRef(null),I=S.useComposedRefs(e,n),i=d(f,l);return r.useEffect(()=>(i.itemMap.set(n,{ref:n,...o}),()=>void i.itemMap.delete(n))),a.jsxRuntimeExports.jsx(j,{[x]:"",ref:I,children:t})});R.displayName=f;function O(c){const e=d(s+"CollectionConsumer",c);return r.useCallback(()=>{const t=e.collectionRef.current;if(!t)return[];const o=Array.from(t.querySelectorAll(`[${x}]`));return Array.from(e.itemMap.values()).sort((i,_)=>o.indexOf(i.ref.current)-o.indexOf(_.ref.current))},[e.collectionRef,e.itemMap])}return[{Provider:p,Slot:C,ItemSlot:R},O,A]}exports.createCollection=v;