@anoki/fse-ui
Version:
FSE UI components library
3 lines (2 loc) • 2.11 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=["top","right","bottom","left"],m=Math.min,p=Math.max,O=Math.round,y=Math.floor,S=t=>({x:t,y:t}),M={left:"right",right:"left",bottom:"top",top:"bottom"};function j(t,e,n){return p(t,m(e,n))}function C(t,e){return typeof t=="function"?t(e):t}function l(t){return t.split("-")[0]}function a(t){return t.split("-")[1]}function d(t){return t==="x"?"y":"x"}function h(t){return t==="y"?"height":"width"}function x(t){const e=t[0];return e==="t"||e==="b"?"y":"x"}function b(t){return d(x(t))}function w(t,e,n){n===void 0&&(n=!1);const r=a(t),i=b(t),o=h(i);let s=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(s=g(s)),[s,g(s)]}function L(t){const e=g(t);return[c(t),e,c(e)]}function c(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const u=["left","right"],f=["right","left"],T=["top","bottom"],E=["bottom","top"];function R(t,e,n){switch(t){case"top":case"bottom":return n?e?f:u:e?u:f;case"left":case"right":return e?T:E;default:return[]}}function v(t,e,n,r){const i=a(t);let o=R(l(t),n==="start",r);return i&&(o=o.map(s=>s+"-"+i),e&&(o=o.concat(o.map(c)))),o}function g(t){const e=l(t);return M[e]+t.slice(e.length)}function A(t){return{top:0,right:0,bottom:0,left:0,...t}}function k(t){return typeof t!="number"?A(t):{top:t,right:t,bottom:t,left:t}}function q(t){const{x:e,y:n,width:r,height:i}=t;return{width:r,height:i,top:n,left:e,right:e+r,bottom:n+i,x:e,y:n}}exports.clamp=j;exports.createCoords=S;exports.evaluate=C;exports.expandPaddingObject=A;exports.floor=y;exports.getAlignment=a;exports.getAlignmentAxis=b;exports.getAlignmentSides=w;exports.getAxisLength=h;exports.getExpandedPlacements=L;exports.getOppositeAlignmentPlacement=c;exports.getOppositeAxis=d;exports.getOppositeAxisPlacements=v;exports.getOppositePlacement=g;exports.getPaddingObject=k;exports.getSide=l;exports.getSideAxis=x;exports.max=p;exports.min=m;exports.rectToClientRect=q;exports.round=O;exports.sides=P;
//# sourceMappingURL=index.cjs803.js.map