UNPKG

@anoki/fse-ui

Version:

FSE UI components library

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