UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) 1.51 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),v=require("./index.cjs477.js"),I=require("./index.cjs478.js"),M=require("./index.cjs480.js"),f=require("./index.cjs237.js");function _(s){const u=s+"CollectionProvider",[E,A]=v.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 f.jsxRuntimeExports.jsx(N,{scope:e,itemMap:o,collectionRef:t,children:l})};p.displayName=u;const a=s+"CollectionSlot",T=M.createSlot(a),C=r.forwardRef((c,e)=>{const{scope:l,children:t}=c,o=d(a,l),n=I.useComposedRefs(e,o.collectionRef);return f.jsxRuntimeExports.jsx(T,{ref:n,children:t})});C.displayName=a;const m=s+"CollectionItemSlot",x="data-radix-collection-item",j=M.createSlot(m),R=r.forwardRef((c,e)=>{const{scope:l,children:t,...o}=c,n=r.useRef(null),S=I.useComposedRefs(e,n),i=d(m,l);return r.useEffect(()=>(i.itemMap.set(n,{ref:n,...o}),()=>void i.itemMap.delete(n))),f.jsxRuntimeExports.jsx(j,{[x]:"",ref:S,children:t})});R.displayName=m;function y(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)=>o.indexOf(i.ref.current)-o.indexOf(O.ref.current))},[e.collectionRef,e.itemMap])}return[{Provider:p,Slot:C,ItemSlot:R},y,A]}exports.createCollection=_; //# sourceMappingURL=index.cjs569.js.map