UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) 1.71 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),c=require("./index.cjs237.js"),f=typeof window<"u",h=f?o.useLayoutEffect:o.useEffect,_=(e=!0)=>{let[n,r]=o.useState(f?window.innerWidth:0),t=o.useCallback(()=>{r(window.innerWidth)},[]);return o.useEffect(()=>(e&&window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}),[e,t]),h(()=>{t()},[t]),n};var w=_;const E=[640,786,1024,1280,1536],j=e=>e.reduce((n,r,t)=>typeof r=="number"?{...n,[E[t]]:r}:n,{}),b=e=>Array.isArray(e)?j(e):e,M=(e,n)=>{let r=Object.keys(b(e)).map(Number).sort((s,l)=>s-l),t=null;for(let s of r)n>=s&&(t=s);return t??r[0]};var g=M;const m=3,C=e=>{let n=typeof e=="object",r=w(n);return o.useMemo(()=>{if(!n)return e??m;let s=g(e,r);return e[s]??m},[n,r,e])};var R=C;const $=e=>Array.from({length:e},()=>[]),S=(e,n)=>{let r=R(n);return o.useMemo(()=>{let s=$(r);return o.Children.forEach(e,(l,u)=>{o.isValidElement(l)&&s[u%r].push(l)}),s},[r,e])};var y=S;const k=o.createContext({column:0,position:0}),A=e=>{let{gap:n,as:r="div",columnProps:t,columns:s,ref:l,...u}=e,a=o.useId(),p=y(e.children,s);return c.jsxRuntimeExports.jsx(r,{...u,"data-masonry-id":`Masonry-${a}`,style:{display:"flex",gap:n,...u.style},ref:l,children:p.map((x,i)=>c.jsxRuntimeExports.jsx(r,{"data-masonry-column":i+1,...t,style:{display:"flex",flex:1,flexDirection:"column",gap:n,...t==null?void 0:t.style},children:x.map((v,d)=>c.jsxRuntimeExports.jsx(k,{value:{column:i,position:d},children:v},`Masonry__Column_Child_${a}_${d}`))},`Masonry__Column_${a}_${i}`))})};var L=A;exports.default=L;exports.useMasonry=y; //# sourceMappingURL=index.cjs266.js.map