@anoki/fse-marche-ui
Version:
FSE UI components library
3 lines (2 loc) • 8.94 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs290.js");function B(n,t,g){let{reference:l,floating:f}=n;const i=e.getSideAxis(t),a=e.getAlignmentAxis(t),d=e.getAxisLength(a),h=e.getSide(t),w=i==="y",c=l.x+l.width/2-f.width/2,o=l.y+l.height/2-f.height/2,m=l[d]/2-f[d]/2;let s;switch(h){case"top":s={x:c,y:l.y-f.height};break;case"bottom":s={x:c,y:l.y+l.height};break;case"right":s={x:l.x+l.width,y:o};break;case"left":s={x:l.x-f.width,y:o};break;default:s={x:l.x,y:l.y}}switch(e.getAlignment(t)){case"start":s[a]-=m*(g&&w?-1:1);break;case"end":s[a]+=m*(g&&w?-1:1);break}return s}const $=async(n,t,g)=>{const{placement:l="bottom",strategy:f="absolute",middleware:i=[],platform:a}=g,d=i.filter(Boolean),h=await(a.isRTL==null?void 0:a.isRTL(t));let w=await a.getElementRects({reference:n,floating:t,strategy:f}),{x:c,y:o}=B(w,l,h),m=l,s={},r=0;for(let u=0;u<d.length;u++){const{name:x,fn:v}=d[u],{x:y,y:A,data:b,reset:p}=await v({x:c,y:o,initialPlacement:l,placement:m,strategy:f,middlewareData:s,rects:w,platform:a,elements:{reference:n,floating:t}});c=y??c,o=A??o,s={...s,[x]:{...s[x],...b}},p&&r<=50&&(r++,typeof p=="object"&&(p.placement&&(m=p.placement),p.rects&&(w=p.rects===!0?await a.getElementRects({reference:n,floating:t,strategy:f}):p.rects),{x:c,y:o}=B(w,m,h)),u=-1)}return{x:c,y:o,placement:m,strategy:f,middlewareData:s}};async function V(n,t){var g;t===void 0&&(t={});const{x:l,y:f,platform:i,rects:a,elements:d,strategy:h}=n,{boundary:w="clippingAncestors",rootBoundary:c="viewport",elementContext:o="floating",altBoundary:m=!1,padding:s=0}=e.evaluate(t,n),r=e.getPaddingObject(s),x=d[m?o==="floating"?"reference":"floating":o],v=e.rectToClientRect(await i.getClippingRect({element:(g=await(i.isElement==null?void 0:i.isElement(x)))==null||g?x:x.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(d.floating)),boundary:w,rootBoundary:c,strategy:h})),y=o==="floating"?{x:l,y:f,width:a.floating.width,height:a.floating.height}:a.reference,A=await(i.getOffsetParent==null?void 0:i.getOffsetParent(d.floating)),b=await(i.isElement==null?void 0:i.isElement(A))?await(i.getScale==null?void 0:i.getScale(A))||{x:1,y:1}:{x:1,y:1},p=e.rectToClientRect(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:d,rect:y,offsetParent:A,strategy:h}):y);return{top:(v.top-p.top+r.top)/b.y,bottom:(p.bottom-v.bottom+r.bottom)/b.y,left:(v.left-p.left+r.left)/b.x,right:(p.right-v.right+r.right)/b.x}}const _=n=>({name:"arrow",options:n,async fn(t){const{x:g,y:l,placement:f,rects:i,platform:a,elements:d,middlewareData:h}=t,{element:w,padding:c=0}=e.evaluate(n,t)||{};if(w==null)return{};const o=e.getPaddingObject(c),m={x:g,y:l},s=e.getAlignmentAxis(f),r=e.getAxisLength(s),u=await a.getDimensions(w),x=s==="y",v=x?"top":"left",y=x?"bottom":"right",A=x?"clientHeight":"clientWidth",b=i.reference[r]+i.reference[s]-m[s]-i.floating[r],p=m[s]-i.reference[s],O=await(a.getOffsetParent==null?void 0:a.getOffsetParent(w));let P=O?O[A]:0;(!P||!await(a.isElement==null?void 0:a.isElement(O)))&&(P=d.floating[A]||i.floating[r]);const T=b/2-p/2,R=P/2-u[r]/2-1,C=e.min(o[v],R),E=e.min(o[y],R),k=C,L=P-u[r]-E,S=P/2-u[r]/2+T,F=e.clamp(k,S,L),M=!h.arrow&&e.getAlignment(f)!=null&&S!==F&&i.reference[r]/2-(S<k?C:E)-u[r]/2<0,D=M?S<k?S-k:S-L:0;return{[s]:m[s]+D,data:{[s]:F,centerOffset:S-F-D,...M&&{alignmentOffset:D}},reset:M}}}),X=function(n){return n===void 0&&(n={}),{name:"flip",options:n,async fn(t){var g,l;const{placement:f,middlewareData:i,rects:a,initialPlacement:d,platform:h,elements:w}=t,{mainAxis:c=!0,crossAxis:o=!0,fallbackPlacements:m,fallbackStrategy:s="bestFit",fallbackAxisSideDirection:r="none",flipAlignment:u=!0,...x}=e.evaluate(n,t);if((g=i.arrow)!=null&&g.alignmentOffset)return{};const v=e.getSide(f),y=e.getSideAxis(d),A=e.getSide(d)===d,b=await(h.isRTL==null?void 0:h.isRTL(w.floating)),p=m||(A||!u?[e.getOppositePlacement(d)]:e.getExpandedPlacements(d)),O=r!=="none";!m&&O&&p.push(...e.getOppositeAxisPlacements(d,u,r,b));const P=[d,...p],T=await V(t,x),R=[];let C=((l=i.flip)==null?void 0:l.overflows)||[];if(c&&R.push(T[v]),o){const S=e.getAlignmentSides(f,a,b);R.push(T[S[0]],T[S[1]])}if(C=[...C,{placement:f,overflows:R}],!R.every(S=>S<=0)){var E,k;const S=(((E=i.flip)==null?void 0:E.index)||0)+1,F=P[S];if(F)return{data:{index:S,overflows:C},reset:{placement:F}};let M=(k=C.filter(D=>D.overflows[0]<=0).sort((D,H)=>D.overflows[1]-H.overflows[1])[0])==null?void 0:k.placement;if(!M)switch(s){case"bestFit":{var L;const D=(L=C.filter(H=>{if(O){const j=e.getSideAxis(H.placement);return j===y||j==="y"}return!0}).map(H=>[H.placement,H.overflows.filter(j=>j>0).reduce((j,Y)=>j+Y,0)]).sort((H,j)=>H[1]-j[1])[0])==null?void 0:L[0];D&&(M=D);break}case"initialPlacement":M=d;break}if(f!==M)return{reset:{placement:M}}}return{}}}};function z(n,t){return{top:n.top-t.height,right:n.right-t.width,bottom:n.bottom-t.height,left:n.left-t.width}}function W(n){return e.sides.some(t=>n[t]>=0)}const q=function(n){return n===void 0&&(n={}),{name:"hide",options:n,async fn(t){const{rects:g}=t,{strategy:l="referenceHidden",...f}=e.evaluate(n,t);switch(l){case"referenceHidden":{const i=await V(t,{...f,elementContext:"reference"}),a=z(i,g.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:W(a)}}}case"escaped":{const i=await V(t,{...f,altBoundary:!0}),a=z(i,g.floating);return{data:{escapedOffsets:a,escaped:W(a)}}}default:return{}}}}};async function I(n,t){const{placement:g,platform:l,elements:f}=n,i=await(l.isRTL==null?void 0:l.isRTL(f.floating)),a=e.getSide(g),d=e.getAlignment(g),h=e.getSideAxis(g)==="y",w=["left","top"].includes(a)?-1:1,c=i&&h?-1:1,o=e.evaluate(t,n);let{mainAxis:m,crossAxis:s,alignmentAxis:r}=typeof o=="number"?{mainAxis:o,crossAxis:0,alignmentAxis:null}:{mainAxis:o.mainAxis||0,crossAxis:o.crossAxis||0,alignmentAxis:o.alignmentAxis};return d&&typeof r=="number"&&(s=d==="end"?r*-1:r),h?{x:s*c,y:m*w}:{x:m*w,y:s*c}}const U=function(n){return n===void 0&&(n=0),{name:"offset",options:n,async fn(t){var g,l;const{x:f,y:i,placement:a,middlewareData:d}=t,h=await I(t,n);return a===((g=d.offset)==null?void 0:g.placement)&&(l=d.arrow)!=null&&l.alignmentOffset?{}:{x:f+h.x,y:i+h.y,data:{...h,placement:a}}}}},G=function(n){return n===void 0&&(n={}),{name:"shift",options:n,async fn(t){const{x:g,y:l,placement:f}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:d={fn:x=>{let{x:v,y}=x;return{x:v,y}}},...h}=e.evaluate(n,t),w={x:g,y:l},c=await V(t,h),o=e.getSideAxis(e.getSide(f)),m=e.getOppositeAxis(o);let s=w[m],r=w[o];if(i){const x=m==="y"?"top":"left",v=m==="y"?"bottom":"right",y=s+c[x],A=s-c[v];s=e.clamp(y,s,A)}if(a){const x=o==="y"?"top":"left",v=o==="y"?"bottom":"right",y=r+c[x],A=r-c[v];r=e.clamp(y,r,A)}const u=d.fn({...t,[m]:s,[o]:r});return{...u,data:{x:u.x-g,y:u.y-l,enabled:{[m]:i,[o]:a}}}}}},J=function(n){return n===void 0&&(n={}),{options:n,fn(t){const{x:g,y:l,placement:f,rects:i,middlewareData:a}=t,{offset:d=0,mainAxis:h=!0,crossAxis:w=!0}=e.evaluate(n,t),c={x:g,y:l},o=e.getSideAxis(f),m=e.getOppositeAxis(o);let s=c[m],r=c[o];const u=e.evaluate(d,t),x=typeof u=="number"?{mainAxis:u,crossAxis:0}:{mainAxis:0,crossAxis:0,...u};if(h){const A=m==="y"?"height":"width",b=i.reference[m]-i.floating[A]+x.mainAxis,p=i.reference[m]+i.reference[A]-x.mainAxis;s<b?s=b:s>p&&(s=p)}if(w){var v,y;const A=m==="y"?"width":"height",b=["top","left"].includes(e.getSide(f)),p=i.reference[o]-i.floating[A]+(b&&((v=a.offset)==null?void 0:v[o])||0)+(b?0:x.crossAxis),O=i.reference[o]+i.reference[A]+(b?0:((y=a.offset)==null?void 0:y[o])||0)-(b?x.crossAxis:0);r<p?r=p:r>O&&(r=O)}return{[m]:s,[o]:r}}}},K=function(n){return n===void 0&&(n={}),{name:"size",options:n,async fn(t){var g,l;const{placement:f,rects:i,platform:a,elements:d}=t,{apply:h=()=>{},...w}=e.evaluate(n,t),c=await V(t,w),o=e.getSide(f),m=e.getAlignment(f),s=e.getSideAxis(f)==="y",{width:r,height:u}=i.floating;let x,v;o==="top"||o==="bottom"?(x=o,v=m===(await(a.isRTL==null?void 0:a.isRTL(d.floating))?"start":"end")?"left":"right"):(v=o,x=m==="end"?"top":"bottom");const y=u-c.top-c.bottom,A=r-c.left-c.right,b=e.min(u-c[x],y),p=e.min(r-c[v],A),O=!t.middlewareData.shift;let P=b,T=p;if((g=t.middlewareData.shift)!=null&&g.enabled.x&&(T=A),(l=t.middlewareData.shift)!=null&&l.enabled.y&&(P=y),O&&!m){const C=e.max(c.left,0),E=e.max(c.right,0),k=e.max(c.top,0),L=e.max(c.bottom,0);s?T=r-2*(C!==0||E!==0?C+E:e.max(c.left,c.right)):P=u-2*(k!==0||L!==0?k+L:e.max(c.top,c.bottom))}await h({...t,availableWidth:T,availableHeight:P});const R=await a.getDimensions(d.floating);return r!==R.width||u!==R.height?{reset:{rects:!0}}:{}}}};exports.rectToClientRect=e.rectToClientRect;exports.arrow=_;exports.computePosition=$;exports.detectOverflow=V;exports.flip=X;exports.hide=q;exports.limitShift=J;exports.offset=U;exports.shift=G;exports.size=K;
//# sourceMappingURL=index.cjs289.js.map