@public-ui/components
Version:
Contains all web components that belong to KoliBri - The accessible HTML-Standard.
4 lines • 27.4 kB
JavaScript
/*!
* KoliBri - The accessible HTML-Standard
*/
;const reuse=require("./reuse-8cfefa9b.js"),sides=["top","right","bottom","left"],alignments=["start","end"],placements=sides.reduce(((e,t)=>e.concat(t,t+"-"+alignments[0],t+"-"+alignments[1])),[]),min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=e=>({x:e,y:e}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp(e,t,n){return max(e,min(t,n))}function evaluate(e,t){return"function"==typeof e?e(t):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return"x"===e?"y":"x"}function getAxisLength(e){return"y"===e?"height":"width"}function getSideAxis(e){return["top","bottom"].includes(getSide(e))?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getAlignmentSides(e,t,n){void 0===n&&(n=!1);const i=getAlignment(e),o=getAlignmentAxis(e),r=getAxisLength(o);let l="x"===o?i===(n?"end":"start")?"right":"left":"start"===i?"bottom":"top";return t.reference[r]>t.floating[r]&&(l=getOppositePlacement(l)),[l,getOppositePlacement(l)]}function getExpandedPlacements(e){const t=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),t,getOppositeAlignmentPlacement(t)]}function getOppositeAlignmentPlacement(e){return e.replace(/start|end/g,(e=>oppositeAlignmentMap[e]))}function getSideList(e,t,n){const i=["left","right"],o=["right","left"],r=["top","bottom"],l=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:i:t?i:o;case"left":case"right":return t?r:l;default:return[]}}function getOppositeAxisPlacements(e,t,n,i){const o=getAlignment(e);let r=getSideList(getSide(e),"start"===n,i);return o&&(r=r.map((e=>e+"-"+o)),t&&(r=r.concat(r.map(getOppositeAlignmentPlacement)))),r}function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(e=>oppositeSideMap[e]))}function expandPaddingObject(e){return{top:0,right:0,bottom:0,left:0,...e}}function getPaddingObject(e){return"number"!=typeof e?expandPaddingObject(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:t,y:n,width:i,height:o}=e;return{width:i,height:o,top:n,left:t,right:t+i,bottom:n+o,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:i,floating:o}=e;const r=getSideAxis(t),l=getAlignmentAxis(t),s=getAxisLength(l),a=getSide(t),c="y"===r,f=i.x+i.width/2-o.width/2,g=i.y+i.height/2-o.height/2,d=i[s]/2-o[s]/2;let u;switch(a){case"top":u={x:f,y:i.y-o.height};break;case"bottom":u={x:f,y:i.y+i.height};break;case"right":u={x:i.x+i.width,y:g};break;case"left":u={x:i.x-o.width,y:g};break;default:u={x:i.x,y:i.y}}switch(getAlignment(t)){case"start":u[l]-=d*(n&&c?-1:1);break;case"end":u[l]+=d*(n&&c?-1:1)}return u}const computePosition$1=async(e,t,n)=>{const{placement:i="bottom",strategy:o="absolute",middleware:r=[],platform:l}=n,s=r.filter(Boolean),a=await(null==l.isRTL?void 0:l.isRTL(t));let c=await l.getElementRects({reference:e,floating:t,strategy:o}),{x:f,y:g}=computeCoordsFromPlacement(c,i,a),d=i,u={},m=0;for(let n=0;n<s.length;n++){const{name:r,fn:p}=s[n],{x:h,y:w,data:y,reset:x}=await p({x:f,y:g,initialPlacement:i,placement:d,strategy:o,middlewareData:u,rects:c,platform:l,elements:{reference:e,floating:t}});f=null!=h?h:f,g=null!=w?w:g,u={...u,[r]:{...u[r],...y}},x&&m<=50&&(m++,"object"==typeof x&&(x.placement&&(d=x.placement),x.rects&&(c=!0===x.rects?await l.getElementRects({reference:e,floating:t,strategy:o}):x.rects),({x:f,y:g}=computeCoordsFromPlacement(c,d,a))),n=-1)}return{x:f,y:g,placement:d,strategy:o,middlewareData:u}};async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:i,y:o,platform:r,rects:l,elements:s,strategy:a}=e,{boundary:c="clippingAncestors",rootBoundary:f="viewport",elementContext:g="floating",altBoundary:d=!1,padding:u=0}=evaluate(t,e),m=getPaddingObject(u),p=s[d?"floating"===g?"reference":"floating":g],h=rectToClientRect(await r.getClippingRect({element:null==(n=await(null==r.isElement?void 0:r.isElement(p)))||n?p:p.contextElement||await(null==r.getDocumentElement?void 0:r.getDocumentElement(s.floating)),boundary:c,rootBoundary:f,strategy:a})),w="floating"===g?{x:i,y:o,width:l.floating.width,height:l.floating.height}:l.reference,y=await(null==r.getOffsetParent?void 0:r.getOffsetParent(s.floating)),x=await(null==r.isElement?void 0:r.isElement(y))&&await(null==r.getScale?void 0:r.getScale(y))||{x:1,y:1},v=rectToClientRect(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:w,offsetParent:y,strategy:a}):w);return{top:(h.top-v.top+m.top)/x.y,bottom:(v.bottom-h.bottom+m.bottom)/x.y,left:(h.left-v.left+m.left)/x.x,right:(v.right-h.right+m.right)/x.x}}const arrow$1=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:i,placement:o,rects:r,platform:l,elements:s,middlewareData:a}=t,{element:c,padding:f=0}=evaluate(e,t)||{};if(null==c)return{};const g=getPaddingObject(f),d={x:n,y:i},u=getAlignmentAxis(o),m=getAxisLength(u),p=await l.getDimensions(c),h="y"===u,w=h?"top":"left",y=h?"bottom":"right",x=h?"clientHeight":"clientWidth",v=r.reference[m]+r.reference[u]-d[u]-r.floating[m],b=d[u]-r.reference[u],A=await(null==l.getOffsetParent?void 0:l.getOffsetParent(c));let R=A?A[x]:0;R&&await(null==l.isElement?void 0:l.isElement(A))||(R=s.floating[x]||r.floating[m]);const E=v/2-b/2,O=R/2-p[m]/2-1,S=min(g[w],O),C=min(g[y],O),T=S,P=R-p[m]-C,L=R/2-p[m]/2+E,N=clamp(T,L,P),D=!a.arrow&&null!=getAlignment(o)&&L!==N&&r.reference[m]/2-(L<T?S:C)-p[m]/2<0,W=D?L<T?L-T:L-P:0;return{[u]:d[u]+W,data:{[u]:N,centerOffset:L-N-W,...D&&{alignmentOffset:W}},reset:D}}});function getPlacementList(e,t,n){return(e?[...n.filter((t=>getAlignment(t)===e)),...n.filter((t=>getAlignment(t)!==e))]:n.filter((e=>getSide(e)===e))).filter((n=>!e||(getAlignment(n)===e||!!t&&getOppositeAlignmentPlacement(n)!==n)))}const autoPlacement=function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,i,o;const{rects:r,middlewareData:l,placement:s,platform:a,elements:c}=t,{crossAxis:f=!1,alignment:g,allowedPlacements:d=placements,autoAlignment:u=!0,...m}=evaluate(e,t),p=void 0!==g||d===placements?getPlacementList(g||null,u,d):d,h=await detectOverflow(t,m),w=(null==(n=l.autoPlacement)?void 0:n.index)||0,y=p[w];if(null==y)return{};const x=getAlignmentSides(y,r,await(null==a.isRTL?void 0:a.isRTL(c.floating)));if(s!==y)return{reset:{placement:p[0]}};const v=[h[getSide(y)],h[x[0]],h[x[1]]],b=[...(null==(i=l.autoPlacement)?void 0:i.overflows)||[],{placement:y,overflows:v}],A=p[w+1];if(A)return{data:{index:w+1,overflows:b},reset:{placement:A}};const R=b.map((e=>{const t=getAlignment(e.placement);return[e.placement,t&&f?e.overflows.slice(0,2).reduce(((e,t)=>e+t),0):e.overflows[0],e.overflows]})).sort(((e,t)=>e[1]-t[1])),E=(null==(o=R.filter((e=>e[2].slice(0,getAlignment(e[0])?2:3).every((e=>e<=0))))[0])?void 0:o[0])||R[0][0];return E!==s?{data:{index:w+1,overflows:b},reset:{placement:E}}:{}}}},flip$1=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,i;const{placement:o,middlewareData:r,rects:l,initialPlacement:s,platform:a,elements:c}=t,{mainAxis:f=!0,crossAxis:g=!0,fallbackPlacements:d,fallbackStrategy:u="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:p=!0,...h}=evaluate(e,t);if(null!=(n=r.arrow)&&n.alignmentOffset)return{};const w=getSide(o),y=getSideAxis(s),x=getSide(s)===s,v=await(null==a.isRTL?void 0:a.isRTL(c.floating)),b=d||(x||!p?[getOppositePlacement(s)]:getExpandedPlacements(s)),A="none"!==m;!d&&A&&b.push(...getOppositeAxisPlacements(s,p,m,v));const R=[s,...b],E=await detectOverflow(t,h),O=[];let S=(null==(i=r.flip)?void 0:i.overflows)||[];if(f&&O.push(E[w]),g){const e=getAlignmentSides(o,l,v);O.push(E[e[0]],E[e[1]])}if(S=[...S,{placement:o,overflows:O}],!O.every((e=>e<=0))){var C,T;const e=((null==(C=r.flip)?void 0:C.index)||0)+1,t=R[e];if(t)return{data:{index:e,overflows:S},reset:{placement:t}};let n=null==(T=S.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:T.placement;if(!n)switch(u){case"bestFit":{var P;const e=null==(P=S.filter((e=>{if(A){const t=getSideAxis(e.placement);return t===y||"y"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:P[0];e&&(n=e);break}case"initialPlacement":n=s}if(o!==n)return{reset:{placement:n}}}return{}}}};function getSideOffsets(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function isAnySideFullyClipped(e){return sides.some((t=>e[t]>=0))}const hide=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:i="referenceHidden",...o}=evaluate(e,t);switch(i){case"referenceHidden":{const e=getSideOffsets(await detectOverflow(t,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:isAnySideFullyClipped(e)}}}case"escaped":{const e=getSideOffsets(await detectOverflow(t,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:isAnySideFullyClipped(e)}}}default:return{}}}}};function getBoundingRect(e){const t=min(...e.map((e=>e.left))),n=min(...e.map((e=>e.top)));return{x:t,y:n,width:max(...e.map((e=>e.right)))-t,height:max(...e.map((e=>e.bottom)))-n}}function getRectsByLine(e){const t=e.slice().sort(((e,t)=>e.y-t.y)),n=[];let i=null;for(let e=0;e<t.length;e++){const o=t[e];!i||o.y-i.y>i.height/2?n.push([o]):n[n.length-1].push(o),i=o}return n.map((e=>rectToClientRect(getBoundingRect(e))))}const inline=function(e){return void 0===e&&(e={}),{name:"inline",options:e,async fn(t){const{placement:n,elements:i,rects:o,platform:r,strategy:l}=t,{padding:s=2,x:a,y:c}=evaluate(e,t),f=Array.from(await(null==r.getClientRects?void 0:r.getClientRects(i.reference))||[]),g=getRectsByLine(f),d=rectToClientRect(getBoundingRect(f)),u=getPaddingObject(s);const m=await r.getElementRects({reference:{getBoundingClientRect:function(){if(2===g.length&&g[0].left>g[1].right&&null!=a&&null!=c)return g.find((e=>a>e.left-u.left&&a<e.right+u.right&&c>e.top-u.top&&c<e.bottom+u.bottom))||d;if(g.length>=2){if("y"===getSideAxis(n)){const e=g[0],t=g[g.length-1],i="top"===getSide(n),o=e.top,r=t.bottom,l=i?e.left:t.left,s=i?e.right:t.right;return{top:o,bottom:r,left:l,right:s,width:s-l,height:r-o,x:l,y:o}}const e="left"===getSide(n),t=max(...g.map((e=>e.right))),i=min(...g.map((e=>e.left))),o=g.filter((n=>e?n.left===i:n.right===t)),r=o[0].top,l=o[o.length-1].bottom;return{top:r,bottom:l,left:i,right:t,width:t-i,height:l-r,x:i,y:r}}return d}},floating:i.floating,strategy:l});return o.reference.x!==m.reference.x||o.reference.y!==m.reference.y||o.reference.width!==m.reference.width||o.reference.height!==m.reference.height?{reset:{rects:m}}:{}}}};async function convertValueToCoords(e,t){const{placement:n,platform:i,elements:o}=e,r=await(null==i.isRTL?void 0:i.isRTL(o.floating)),l=getSide(n),s=getAlignment(n),a="y"===getSideAxis(n),c=["left","top"].includes(l)?-1:1,f=r&&a?-1:1,g=evaluate(t,e);let{mainAxis:d,crossAxis:u,alignmentAxis:m}="number"==typeof g?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...g};return s&&"number"==typeof m&&(u="end"===s?-1*m:m),a?{x:u*f,y:d*c}:{x:d*c,y:u*f}}const offset$1=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,i;const{x:o,y:r,placement:l,middlewareData:s}=t,a=await convertValueToCoords(t,e);return l===(null==(n=s.offset)?void 0:n.placement)&&null!=(i=s.arrow)&&i.alignmentOffset?{}:{x:o+a.x,y:r+a.y,data:{...a,placement:l}}}}},shift$1=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:i,placement:o}=t,{mainAxis:r=!0,crossAxis:l=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...a}=evaluate(e,t),c={x:n,y:i},f=await detectOverflow(t,a),g=getSideAxis(getSide(o)),d=getOppositeAxis(g);let u=c[d],m=c[g];if(r){const e="y"===d?"bottom":"right";u=clamp(u+f["y"===d?"top":"left"],u,u-f[e])}if(l){const e="y"===g?"bottom":"right";m=clamp(m+f["y"===g?"top":"left"],m,m-f[e])}const p=s.fn({...t,[d]:u,[g]:m});return{...p,data:{x:p.x-n,y:p.y-i}}}}},limitShift=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:i,placement:o,rects:r,middlewareData:l}=t,{offset:s=0,mainAxis:a=!0,crossAxis:c=!0}=evaluate(e,t),f={x:n,y:i},g=getSideAxis(o),d=getOppositeAxis(g);let u=f[d],m=f[g];const p=evaluate(s,t),h="number"==typeof p?{mainAxis:p,crossAxis:0}:{mainAxis:0,crossAxis:0,...p};if(a){const e="y"===d?"height":"width",t=r.reference[d]-r.floating[e]+h.mainAxis,n=r.reference[d]+r.reference[e]-h.mainAxis;u<t?u=t:u>n&&(u=n)}if(c){var w,y;const e="y"===d?"width":"height",t=["top","left"].includes(getSide(o)),n=r.reference[g]-r.floating[e]+(t&&(null==(w=l.offset)?void 0:w[g])||0)+(t?0:h.crossAxis),i=r.reference[g]+r.reference[e]+(t?0:(null==(y=l.offset)?void 0:y[g])||0)-(t?h.crossAxis:0);m<n?m=n:m>i&&(m=i)}return{[d]:u,[g]:m}}}},size=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:i,platform:o,elements:r}=t,{apply:l=()=>{},...s}=evaluate(e,t),a=await detectOverflow(t,s),c=getSide(n),f=getAlignment(n),g="y"===getSideAxis(n),{width:d,height:u}=i.floating;let m,p;"top"===c||"bottom"===c?(m=c,p=f===(await(null==o.isRTL?void 0:o.isRTL(r.floating))?"start":"end")?"left":"right"):(p=c,m="end"===f?"top":"bottom");const h=u-a.top-a.bottom,w=d-a.left-a.right,y=min(u-a[m],h),x=min(d-a[p],w),v=!t.middlewareData.shift;let b=y,A=x;if(g?A=f||v?min(x,w):w:b=f||v?min(y,h):h,v&&!f){const e=max(a.left,0),t=max(a.right,0),n=max(a.top,0),i=max(a.bottom,0);g?A=d-2*(0!==e||0!==t?e+t:max(a.left,a.right)):b=u-2*(0!==n||0!==i?n+i:max(a.top,a.bottom))}await l({...t,availableWidth:A,availableHeight:b});const R=await o.getDimensions(r.floating);return d!==R.width||u!==R.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return"undefined"!=typeof window}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function getDocumentElement(e){var t;return null==(t=(isNode(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof getWindow(e).Node)}function isElement(e){return!!hasWindow()&&(e instanceof Element||e instanceof getWindow(e).Element)}function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement)}function isShadowRoot(e){return!(!hasWindow()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot)}function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:i,display:o}=getComputedStyle(e);return/auto|scroll|overlay|hidden|clip/.test(t+i+n)&&!["inline","contents"].includes(o)}function isTableElement(e){return["table","td","th"].includes(getNodeName(e))}function isTopLayer(e){return[":popover-open",":modal"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function isContainingBlock(e){const t=isWebKit(),n=isElement(e)?getComputedStyle(e):e;return["transform","translate","scale","rotate","perspective"].some((e=>!!n[e]&&"none"!==n[e]))||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","translate","scale","rotate","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function getContainingBlock(e){let t=getParentNode(e);for(;isHTMLElement(t)&&!isLastTraversableNode(t);){if(isContainingBlock(t))return t;if(isTopLayer(t))return null;t=getParentNode(t)}return null}function isWebKit(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(e){return["html","body","#document"].includes(getNodeName(e))}function getComputedStyle(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function getParentNode(e){if("html"===getNodeName(e))return e;const t=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(t)?t.host:t}function getNearestOverflowAncestor(e){const t=getParentNode(e);return isLastTraversableNode(t)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(t)&&isOverflowElement(t)?t:getNearestOverflowAncestor(t)}function getOverflowAncestors(e,t,n){var i;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=getNearestOverflowAncestor(e),r=o===(null==(i=e.ownerDocument)?void 0:i.body),l=getWindow(o);if(r){const e=getFrameElement(l);return t.concat(l,l.visualViewport||[],isOverflowElement(o)?o:[],e&&n?getOverflowAncestors(e):[])}return t.concat(o,getOverflowAncestors(o,[],n))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const t=getComputedStyle(e);let n=parseFloat(t.width)||0,i=parseFloat(t.height)||0;const o=isHTMLElement(e),r=o?e.offsetWidth:n,l=o?e.offsetHeight:i,s=round(n)!==r||round(i)!==l;return s&&(n=r,i=l),{width:n,height:i,$:s}}function unwrapElement(e){return isElement(e)?e:e.contextElement}function getScale(e){const t=unwrapElement(e);if(!isHTMLElement(t))return createCoords(1);const n=t.getBoundingClientRect(),{width:i,height:o,$:r}=getCssDimensions(t);let l=(r?round(n.width):n.width)/i,s=(r?round(n.height):n.height)/o;return l&&Number.isFinite(l)||(l=1),s&&Number.isFinite(s)||(s=1),{x:l,y:s}}const noOffsets=createCoords(0);function getVisualOffsets(e){const t=getWindow(e);return isWebKit()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:noOffsets}function shouldAddVisualOffsets(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==getWindow(e))&&t}function getBoundingClientRect(e,t,n,i){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),r=unwrapElement(e);let l=createCoords(1);t&&(i?isElement(i)&&(l=getScale(i)):l=getScale(e));const s=shouldAddVisualOffsets(r,n,i)?getVisualOffsets(r):createCoords(0);let a=(o.left+s.x)/l.x,c=(o.top+s.y)/l.y,f=o.width/l.x,g=o.height/l.y;if(r){const e=getWindow(r),t=i&&isElement(i)?getWindow(i):i;let n=e,o=getFrameElement(n);for(;o&&i&&t!==n;){const e=getScale(o),t=o.getBoundingClientRect(),i=getComputedStyle(o),r=t.left+(o.clientLeft+parseFloat(i.paddingLeft))*e.x,l=t.top+(o.clientTop+parseFloat(i.paddingTop))*e.y;a*=e.x,c*=e.y,f*=e.x,g*=e.y,a+=r,c+=l,n=getWindow(o),o=getFrameElement(n)}}return rectToClientRect({width:f,height:g,x:a,y:c})}function getWindowScrollBarX(e,t){const n=getNodeScroll(e).scrollLeft;return t?t.left+n:getBoundingClientRect(getDocumentElement(e)).left+n}function getHTMLOffset(e,t,n){void 0===n&&(n=!1);const i=e.getBoundingClientRect();return{x:i.left+t.scrollLeft-(n?0:getWindowScrollBarX(e,i)),y:i.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:i,strategy:o}=e;const r="fixed"===o,l=getDocumentElement(i),s=!!t&&isTopLayer(t.floating);if(i===l||s&&r)return n;let a={scrollLeft:0,scrollTop:0},c=createCoords(1);const f=createCoords(0),g=isHTMLElement(i);if((g||!g&&!r)&&(("body"!==getNodeName(i)||isOverflowElement(l))&&(a=getNodeScroll(i)),isHTMLElement(i))){const e=getBoundingClientRect(i);c=getScale(i),f.x=e.x+i.clientLeft,f.y=e.y+i.clientTop}const d=!l||g||r?createCoords(0):getHTMLOffset(l,a,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-a.scrollLeft*c.x+f.x+d.x,y:n.y*c.y-a.scrollTop*c.y+f.y+d.y}}function getClientRects(e){return Array.from(e.getClientRects())}function getDocumentRect(e){const t=getDocumentElement(e),n=getNodeScroll(e),i=e.ownerDocument.body,o=max(t.scrollWidth,t.clientWidth,i.scrollWidth,i.clientWidth),r=max(t.scrollHeight,t.clientHeight,i.scrollHeight,i.clientHeight);let l=-n.scrollLeft+getWindowScrollBarX(e);const s=-n.scrollTop;return"rtl"===getComputedStyle(i).direction&&(l+=max(t.clientWidth,i.clientWidth)-o),{width:o,height:r,x:l,y:s}}function getViewportRect(e,t){const n=getWindow(e),i=getDocumentElement(e),o=n.visualViewport;let r=i.clientWidth,l=i.clientHeight,s=0,a=0;if(o){r=o.width,l=o.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(s=o.offsetLeft,a=o.offsetTop)}return{width:r,height:l,x:s,y:a}}function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),i=n.top+e.clientTop,o=n.left+e.clientLeft,r=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*r.x,height:e.clientHeight*r.y,x:o*r.x,y:i*r.y}}function getClientRectFromClippingAncestor(e,t,n){let i;if("viewport"===t)i=getViewportRect(e,n);else if("document"===t)i=getDocumentRect(getDocumentElement(e));else if(isElement(t))i=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);i={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(i)}function hasFixedPositionAncestor(e,t){const n=getParentNode(e);return!(n===t||!isElement(n)||isLastTraversableNode(n))&&("fixed"===getComputedStyle(n).position||hasFixedPositionAncestor(n,t))}function getClippingElementAncestors(e,t){const n=t.get(e);if(n)return n;let i=getOverflowAncestors(e,[],!1).filter((e=>isElement(e)&&"body"!==getNodeName(e))),o=null;const r="fixed"===getComputedStyle(e).position;let l=r?getParentNode(e):e;for(;isElement(l)&&!isLastTraversableNode(l);){const t=getComputedStyle(l),n=isContainingBlock(l);n||"fixed"!==t.position||(o=null);(r?!n&&!o:!n&&"static"===t.position&&!!o&&["absolute","fixed"].includes(o.position)||isOverflowElement(l)&&!n&&hasFixedPositionAncestor(e,l))?i=i.filter((e=>e!==l)):o=t,l=getParentNode(l)}return t.set(e,i),i}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:i,strategy:o}=e;const r=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),i],l=r[0],s=r.reduce(((e,n)=>{const i=getClientRectFromClippingAncestor(t,n,o);return e.top=max(i.top,e.top),e.right=min(i.right,e.right),e.bottom=min(i.bottom,e.bottom),e.left=max(i.left,e.left),e}),getClientRectFromClippingAncestor(t,l,o));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function getDimensions(e){const{width:t,height:n}=getCssDimensions(e);return{width:t,height:n}}function getRectRelativeToOffsetParent(e,t,n){const i=isHTMLElement(t),o=getDocumentElement(t),r="fixed"===n,l=getBoundingClientRect(e,!0,r,t);let s={scrollLeft:0,scrollTop:0};const a=createCoords(0);if(i||!i&&!r)if(("body"!==getNodeName(t)||isOverflowElement(o))&&(s=getNodeScroll(t)),i){const e=getBoundingClientRect(t,!0,r,t);a.x=e.x+t.clientLeft,a.y=e.y+t.clientTop}else o&&(a.x=getWindowScrollBarX(o));const c=!o||i||r?createCoords(0):getHTMLOffset(o,s);return{x:l.left+s.scrollLeft-a.x-c.x,y:l.top+s.scrollTop-a.y-c.y,width:l.width,height:l.height}}function isStaticPositioned(e){return"static"===getComputedStyle(e).position}function getTrueOffsetParent(e,t){if(!isHTMLElement(e)||"fixed"===getComputedStyle(e).position)return null;if(t)return t(e);let n=e.offsetParent;return getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function getOffsetParent(e,t){const n=getWindow(e);if(isTopLayer(e))return n;if(!isHTMLElement(e)){let t=getParentNode(e);for(;t&&!isLastTraversableNode(t);){if(isElement(t)&&!isStaticPositioned(t))return t;t=getParentNode(t)}return n}let i=getTrueOffsetParent(e,t);for(;i&&isTableElement(i)&&isStaticPositioned(i);)i=getTrueOffsetParent(i,t);return i&&isLastTraversableNode(i)&&isStaticPositioned(i)&&!isContainingBlock(i)?n:i||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,i=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}};function isRTL(e){return"rtl"===getComputedStyle(e).direction}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement:getDocumentElement,getClippingRect:getClippingRect,getOffsetParent:getOffsetParent,getElementRects:getElementRects,getClientRects:getClientRects,getDimensions:getDimensions,getScale:getScale,isElement:isElement,isRTL:isRTL};function rectsAreEqual(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function observeMove(e,t){let n,i=null;const o=getDocumentElement(e);function r(){var e;clearTimeout(n),null==(e=i)||e.disconnect(),i=null}return function l(s,a){void 0===s&&(s=!1),void 0===a&&(a=1),r();const c=e.getBoundingClientRect(),{left:f,top:g,width:d,height:u}=c;if(s||t(),!d||!u)return;const m={rootMargin:-floor(g)+"px "+-floor(o.clientWidth-(f+d))+"px "+-floor(o.clientHeight-(g+u))+"px "+-floor(f)+"px",threshold:max(0,min(1,a))||1};let p=!0;function h(t){const i=t[0].intersectionRatio;if(i!==a){if(!p)return l();i?l(!1,i):n=setTimeout((()=>{l(!1,1e-7)}),1e3)}1!==i||rectsAreEqual(c,e.getBoundingClientRect())||l(),p=!1}try{i=new IntersectionObserver(h,{...m,root:o.ownerDocument})}catch(e){i=new IntersectionObserver(h,m)}i.observe(e)}(!0),r}function autoUpdate(e,t,n,i){void 0===i&&(i={});const{ancestorScroll:o=!0,ancestorResize:r=!0,elementResize:l="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:a=!1}=i,c=unwrapElement(e),f=o||r?[...c?getOverflowAncestors(c):[],...getOverflowAncestors(t)]:[];f.forEach((e=>{o&&e.addEventListener("scroll",n,{passive:!0}),r&&e.addEventListener("resize",n)}));const g=c&&s?observeMove(c,n):null;let d,u=-1,m=null;l&&(m=new ResizeObserver((e=>{let[i]=e;i&&i.target===c&&m&&(m.unobserve(t),cancelAnimationFrame(u),u=requestAnimationFrame((()=>{var e;null==(e=m)||e.observe(t)}))),n()})),c&&!a&&m.observe(c),m.observe(t));let p=a?getBoundingClientRect(e):null;return a&&function t(){const i=getBoundingClientRect(e);p&&!rectsAreEqual(p,i)&&n();p=i,d=requestAnimationFrame(t)}(),n(),()=>{var e;f.forEach((e=>{o&&e.removeEventListener("scroll",n),r&&e.removeEventListener("resize",n)})),null==g||g(),null==(e=m)||e.disconnect(),m=null,a&&cancelAnimationFrame(d)}}const offset=offset$1,shift=shift$1,flip=flip$1,arrow=arrow$1,computePosition=(e,t,n)=>{const i=new Map,o={platform:platform,...n},r={...o.platform,_c:i};return computePosition$1(e,t,{...o,platform:r})},alignFloatingElements=async({floatingElement:e,referenceElement:t,arrowElement:n,align:i="top"})=>{var o,r,l;if("test"!==reuse.processEnv){const s=[offset(null!==(o=null==n?void 0:n.offsetHeight)&&void 0!==o?o:10),flip(),shift()];n&&s.push(arrow({element:n}));const{x:a,y:c,middlewareData:f,placement:g}=await computePosition(t,e,{placement:i,middleware:s,strategy:"fixed"});Object.assign(e.style,{left:`${a}px`,top:`${c}px`,visibility:"visible"}),n&&((null===(r=f.arrow)||void 0===r?void 0:r.x)?Object.assign(n.style,{left:`${f.arrow.x}px`,top:"bottom"===g?-n.offsetHeight/2+"px":"",bottom:"top"===g?-n.offsetHeight/2+"px":""}):(null===(l=f.arrow)||void 0===l?void 0:l.y)&&Object.assign(n.style,{left:"right"===g?-n.offsetWidth/2+"px":"",right:"left"===g?-n.offsetWidth/2+"px":"",top:`${f.arrow.y}px`}))}};exports.alignFloatingElements=alignFloatingElements,exports.autoUpdate=autoUpdate;