@db-ux/wc-core-components 2.2.2 → 2.2.3-getBoundingClientRect-a18038f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/cjs/db-custom-select.cjs.entry.js +1 -1
  2. package/dist/cjs/db-header.cjs.entry.js +2 -2
  3. package/dist/cjs/db-navigation-item.cjs.entry.js +2 -2
  4. package/dist/cjs/db-popover.cjs.entry.js +1 -1
  5. package/dist/cjs/db-tooltip.cjs.entry.js +1 -1
  6. package/dist/cjs/{floating-components-BNCfdqZJ.js → floating-components-TczCINdL.js} +17 -2
  7. package/dist/cjs/floating-components-TczCINdL.js.map +1 -0
  8. package/dist/cjs/index.cjs.js +2 -2
  9. package/dist/cjs/{navigation-U4SBgT7D.js → navigation--rlUdgeW.js} +3 -3
  10. package/dist/cjs/{navigation-U4SBgT7D.js.map → navigation--rlUdgeW.js.map} +1 -1
  11. package/dist/collection/utils/floating-components.js +15 -0
  12. package/dist/collection/utils/floating-components.js.map +1 -1
  13. package/dist/db-ux/db-ux.esm.js +1 -1
  14. package/dist/db-ux/index.esm.js +1 -1
  15. package/dist/db-ux/{p-c8666f4b.entry.js → p-010a7372.entry.js} +2 -2
  16. package/dist/db-ux/{p-a2e130ba.entry.js → p-02e09419.entry.js} +2 -2
  17. package/dist/db-ux/{p-695bf91e.entry.js → p-34d4f584.entry.js} +2 -2
  18. package/dist/db-ux/{p-BDA9dlfd.js → p-BFvCp0MI.js} +2 -2
  19. package/dist/db-ux/{p-BDA9dlfd.js.map → p-BFvCp0MI.js.map} +1 -1
  20. package/dist/db-ux/p-BLKCMo7A.js +2 -0
  21. package/dist/db-ux/p-BLKCMo7A.js.map +1 -0
  22. package/dist/db-ux/{p-3fe511ce.entry.js → p-d22637ab.entry.js} +2 -2
  23. package/dist/db-ux/{p-854c0012.entry.js → p-f3ac974b.entry.js} +2 -2
  24. package/dist/esm/db-custom-select.entry.js +1 -1
  25. package/dist/esm/db-header.entry.js +2 -2
  26. package/dist/esm/db-navigation-item.entry.js +2 -2
  27. package/dist/esm/db-popover.entry.js +1 -1
  28. package/dist/esm/db-tooltip.entry.js +1 -1
  29. package/dist/esm/{floating-components-DYeQU2bY.js → floating-components-BLKCMo7A.js} +17 -2
  30. package/dist/esm/floating-components-BLKCMo7A.js.map +1 -0
  31. package/dist/esm/index.js +2 -2
  32. package/dist/esm/{navigation-CE_2IUA4.js → navigation-C4qTkuYy.js} +3 -3
  33. package/dist/esm/{navigation-CE_2IUA4.js.map → navigation-C4qTkuYy.js.map} +1 -1
  34. package/package.json +3 -3
  35. package/dist/cjs/floating-components-BNCfdqZJ.js.map +0 -1
  36. package/dist/db-ux/p-DYeQU2bY.js +0 -2
  37. package/dist/db-ux/p-DYeQU2bY.js.map +0 -1
  38. package/dist/esm/floating-components-DYeQU2bY.js.map +0 -1
  39. /package/dist/db-ux/{p-c8666f4b.entry.js.map → p-010a7372.entry.js.map} +0 -0
  40. /package/dist/db-ux/{p-a2e130ba.entry.js.map → p-02e09419.entry.js.map} +0 -0
  41. /package/dist/db-ux/{p-695bf91e.entry.js.map → p-34d4f584.entry.js.map} +0 -0
  42. /package/dist/db-ux/{p-3fe511ce.entry.js.map → p-d22637ab.entry.js.map} +0 -0
  43. /package/dist/db-ux/{p-854c0012.entry.js.map → p-f3ac974b.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"floating-components-BNCfdqZJ.js","sources":["src/utils/floating-components.ts"],"sourcesContent":["// TODO: We should reevaluate this as soon as CSS Anchor Positioning is supported in all relevant browsers\nconst isInView = (el: HTMLElement) => {\n const {\n top,\n bottom,\n left,\n right\n } = el.getBoundingClientRect();\n const {\n innerHeight,\n innerWidth\n } = window;\n let outTop = top < 0;\n let outBottom = bottom > innerHeight;\n let outLeft = left < 0;\n let outRight = right > innerWidth;\n\n // We need to check if it was already outside\n const outsideY = el.dataset['outsideVy'];\n const outsideX = el.dataset['outsideVx'];\n const parentRect = el?.parentElement?.getBoundingClientRect();\n if (parentRect) {\n if (outsideY) {\n const position = el.dataset['outsideVy'];\n if (position === 'top') {\n outTop = parentRect.top - (bottom - parentRect.bottom) < 0;\n } else {\n outBottom = parentRect.bottom + (parentRect.top - top) > innerHeight;\n }\n }\n if (outsideX) {\n const position = el.dataset['outsideVx'];\n if (position === 'left') {\n outLeft = parentRect.left - (right - parentRect.right) < 0;\n } else {\n outRight = parentRect.right + (parentRect.left - left) > innerWidth;\n }\n }\n }\n return {\n outTop,\n outBottom,\n outLeft,\n outRight\n };\n};\nexport interface DBDataOutsidePair {\n vx?: 'left' | 'right';\n vy?: 'top' | 'bottom';\n}\nexport const handleDataOutside = (el: HTMLElement): DBDataOutsidePair => {\n const {\n outTop,\n outBottom,\n outLeft,\n outRight\n } = isInView(el);\n let dataOutsidePair: DBDataOutsidePair = {};\n if (outTop || outBottom) {\n dataOutsidePair = {\n vy: outTop ? 'top' : 'bottom'\n };\n el.dataset['outsideVy'] = dataOutsidePair.vy!;\n } else {\n delete el.dataset['outsideVy'];\n }\n if (outLeft || outRight) {\n dataOutsidePair = {\n ...dataOutsidePair,\n vx: outRight ? 'right' : 'left'\n };\n el.dataset['outsideVx'] = dataOutsidePair.vx!;\n } else {\n delete el.dataset['outsideVx'];\n }\n return dataOutsidePair;\n};\nexport const handleFixedDropdown = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n // We skip this if we are in mobile it's already fixed\n if (getComputedStyle(element).zIndex === '9999') return;\n const {\n top,\n bottom,\n childHeight,\n childWidth,\n width,\n right,\n left,\n correctedPlacement\n } = getFloatingProps(element, parent, placement);\n const fullWidth = element.dataset['width'] === 'full';\n if (fullWidth) {\n element.style.inlineSize = `${width}px`;\n }\n if (correctedPlacement === 'top' || correctedPlacement === 'bottom' || correctedPlacement === 'top-start' || correctedPlacement === 'bottom-start') {\n element.style.insetInlineStart = `${left}px`;\n } else if (correctedPlacement === 'top-end' || correctedPlacement === 'bottom-end') {\n element.style.insetInlineStart = `${right - childWidth}px`;\n }\n if (correctedPlacement?.startsWith('top')) {\n element.style.insetBlockStart = `${top - childHeight}px`;\n } else if (correctedPlacement?.startsWith('bottom')) {\n element.style.insetBlockStart = `${bottom}px`;\n }\n element.style.position = 'fixed';\n};\nconst getFloatingProps = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n const childRect = element.getBoundingClientRect();\n const {\n top,\n height,\n bottom,\n right,\n left,\n width\n } = parent.getBoundingClientRect();\n const {\n innerHeight,\n innerWidth\n } = window;\n let childHeight = childRect.height;\n let childWidth = childRect.width;\n if (placement === 'bottom' || placement === 'top') {\n childWidth = childWidth / 2;\n }\n if (placement === 'left' || placement === 'right') {\n childHeight = childHeight / 2;\n }\n const outsideBottom = bottom + childHeight > innerHeight;\n const outsideTop = top - childHeight < 0;\n const outsideLeft = left - childWidth < 0;\n const outsideRight = right + childWidth > innerWidth;\n let correctedPlacement = placement;\n if (placement.startsWith('bottom')) {\n if (outsideBottom) {\n correctedPlacement = placement?.replace('bottom', 'top');\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'top';\n } else if (outsideLeft) {\n correctedPlacement = 'top-start';\n } else if (outsideRight) {\n correctedPlacement = 'top-end';\n }\n } else {\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'bottom';\n } else if (outsideLeft) {\n correctedPlacement = 'bottom-start';\n } else if (outsideRight) {\n correctedPlacement = 'bottom-end';\n }\n }\n } else if (placement.startsWith('top')) {\n if (outsideTop) {\n correctedPlacement = placement?.replace('top', 'bottom');\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'bottom';\n } else if (outsideLeft) {\n correctedPlacement = 'bottom-start';\n } else if (outsideRight) {\n correctedPlacement = 'bottom-end';\n }\n } else {\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'top';\n } else if (outsideLeft) {\n correctedPlacement = 'top-start';\n } else if (outsideRight) {\n correctedPlacement = 'top-end';\n }\n }\n } else if (placement.startsWith('left')) {\n if (outsideLeft) {\n correctedPlacement = placement?.replace('left', 'right');\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'right';\n } else if (outsideBottom) {\n correctedPlacement = 'right-end';\n } else if (outsideTop) {\n correctedPlacement = 'right-start';\n }\n } else {\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'left';\n } else if (outsideBottom) {\n correctedPlacement = 'left-end';\n } else if (outsideTop) {\n correctedPlacement = 'left-start';\n }\n }\n } else if (correctedPlacement.startsWith('right')) {\n if (outsideRight) {\n correctedPlacement = placement?.replace('right', 'left');\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'left';\n } else if (outsideBottom) {\n correctedPlacement = 'left-end';\n } else if (outsideTop) {\n correctedPlacement = 'left-start';\n }\n } else {\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'right';\n } else if (outsideBottom) {\n correctedPlacement = 'right-end';\n } else if (outsideTop) {\n correctedPlacement = 'right-start';\n }\n }\n }\n return {\n top,\n bottom,\n right,\n height,\n width,\n left,\n childHeight: childRect.height,\n childWidth: childRect.width,\n correctedPlacement,\n innerWidth,\n innerHeight\n };\n};\nexport const handleFixedPopover = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n const distance = getComputedStyle(element).getPropertyValue('--db-popover-distance') ?? '0px';\n const {\n top,\n height,\n width,\n childHeight,\n childWidth,\n right,\n left,\n bottom,\n correctedPlacement,\n innerWidth,\n innerHeight\n } = getFloatingProps(element, parent, placement);\n\n // Tooltip arrow position\n\n if (childWidth > width && (correctedPlacement.startsWith('bottom') || correctedPlacement.startsWith('top'))) {\n const diff = width / 2 / childWidth * 100;\n if (correctedPlacement.endsWith('start')) {\n element.style.setProperty('--db-tooltip-arrow-inline-start', `${diff}%`);\n } else if (correctedPlacement.endsWith('end')) {\n element.style.setProperty('--db-tooltip-arrow-inline-start', `${100 - diff}%`);\n }\n }\n if (childHeight > height && (correctedPlacement.startsWith('left') || correctedPlacement.startsWith('bottom'))) {\n const diff = height / 2 / childHeight * 100;\n if (correctedPlacement.endsWith('start')) {\n element.style.setProperty('--db-tooltip-arrow-block-start', `${diff}%`);\n } else if (correctedPlacement.endsWith('end')) {\n element.style.setProperty('--db-tooltip-arrow-block-start', `${100 - diff}%`);\n }\n }\n\n // Popover position\n\n if (correctedPlacement === 'right' || correctedPlacement === 'left') {\n // center horizontally\n element.style.insetBlockStart = `${top + height / 2}px`;\n } else if (correctedPlacement === 'right-start' || correctedPlacement === 'left-start') {\n const end = top + childHeight;\n element.style.insetBlockStart = `${top}px`;\n element.style.insetBlockEnd = `${end > innerHeight ? innerHeight : end}px`;\n } else if (correctedPlacement === 'right-end' || correctedPlacement === 'left-end') {\n const start = bottom - childHeight;\n element.style.insetBlockStart = `${start < 0 ? 0 : start}px`;\n element.style.insetBlockEnd = `${bottom}px`;\n } else if (correctedPlacement === 'top' || correctedPlacement === 'bottom') {\n // center vertically\n element.style.insetInlineStart = `${left + width / 2}px`;\n } else if (correctedPlacement === 'top-start' || correctedPlacement === 'bottom-start') {\n const end = left + childWidth;\n element.style.insetInlineStart = `${left}px`;\n element.style.insetInlineEnd = `${end > innerWidth ? innerWidth : end}px`;\n } else if (correctedPlacement === 'top-end' || correctedPlacement === 'bottom-end') {\n const start = left - childWidth;\n element.style.insetInlineStart = `${right - childWidth}px`;\n element.style.insetInlineEnd = `${start < 0 ? 0 : start}px`;\n }\n if (correctedPlacement?.startsWith('right')) {\n const end = right + childWidth;\n element.style.insetInlineStart = `calc(${right}px + ${distance})`;\n element.style.insetInlineEnd = `calc(${end > innerWidth ? innerWidth : end}px + ${distance})`;\n } else if (correctedPlacement?.startsWith('left')) {\n const start = left - childWidth;\n element.style.insetInlineStart = `calc(${start < 0 ? 0 : start}px - ${distance})`;\n element.style.insetInlineEnd = `calc(${right}px - ${distance})`;\n } else if (correctedPlacement?.startsWith('top')) {\n const start = top - childHeight;\n element.style.insetBlockStart = `calc(${start < 0 ? 0 : start}px - ${distance})`;\n element.style.insetBlockEnd = `calc(${bottom}px - ${distance})`;\n } else if (correctedPlacement?.startsWith('bottom')) {\n const end = bottom + childHeight;\n element.style.insetBlockStart = `calc(${bottom}px + ${distance})`;\n element.style.insetBlockEnd = `calc(${end > innerHeight ? innerHeight : end}px + ${distance})`;\n }\n element.style.position = 'fixed';\n element.setAttribute('data-corrected-placement', correctedPlacement);\n}"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const t=t=>{var e;const{top:o,bottom:i,left:l,right:s}=t.getBoundingClientRect();const{innerHeight:n,innerWidth:f}=window;let d=o<0;let r=i>n;let c=l<0;let p=s>f;const h=t.dataset["outsideVy"];const a=t.dataset["outsideVx"];const b=(e=t===null||t===void 0?void 0:t.parentElement)===null||e===void 0?void 0:e.getBoundingClientRect();if(b){if(h){const e=t.dataset["outsideVy"];if(e==="top"){d=b.top-(i-b.bottom)<0}else{r=b.bottom+(b.top-o)>n}}if(a){const e=t.dataset["outsideVx"];if(e==="left"){c=b.left-(s-b.right)<0}else{p=b.right+(b.left-l)>f}}}return{outTop:d,outBottom:r,outLeft:c,outRight:p}};const e=e=>{const{outTop:o,outBottom:i,outLeft:l,outRight:s}=t(e);let n={};if(o||i){n={vy:o?"top":"bottom"};e.dataset["outsideVy"]=n.vy}else{delete e.dataset["outsideVy"]}if(l||s){n=Object.assign(Object.assign({},n),{vx:s?"right":"left"});e.dataset["outsideVx"]=n.vx}else{delete e.dataset["outsideVx"]}return n};const o=(t,e,o)=>{if(getComputedStyle(t).zIndex==="9999")return;const{top:l,bottom:s,childHeight:n,childWidth:f,width:d,right:r,left:c,correctedPlacement:p}=i(t,e,o);const h=t.dataset["width"]==="full";if(h){t.style.inlineSize=`${d}px`}if(p==="top"||p==="bottom"||p==="top-start"||p==="bottom-start"){t.style.insetInlineStart=`${c}px`}else if(p==="top-end"||p==="bottom-end"){t.style.insetInlineStart=`${r-f}px`}if(p===null||p===void 0?void 0:p.startsWith("top")){t.style.insetBlockStart=`${l-n}px`}else if(p===null||p===void 0?void 0:p.startsWith("bottom")){t.style.insetBlockStart=`${s}px`}t.style.position="fixed"};const i=(t,e,o)=>{const i=t.getBoundingClientRect();const{top:l,height:s,bottom:n,right:f,left:d,width:r}=e.getBoundingClientRect();const{innerHeight:c,innerWidth:p}=window;let h=i.height;let a=i.width;if(o==="bottom"||o==="top"){a=a/2}if(o==="left"||o==="right"){h=h/2}const b=n+h>c;const $=l-h<0;const g=d-a<0;const m=f+a>p;let v=o;if(o.startsWith("bottom")){if(b){v=o===null||o===void 0?void 0:o.replace("bottom","top");if(g&&m){v="top"}else if(g){v="top-start"}else if(m){v="top-end"}}else{if(g&&m){v="bottom"}else if(g){v="bottom-start"}else if(m){v="bottom-end"}}}else if(o.startsWith("top")){if($){v=o===null||o===void 0?void 0:o.replace("top","bottom");if(g&&m){v="bottom"}else if(g){v="bottom-start"}else if(m){v="bottom-end"}}else{if(g&&m){v="top"}else if(g){v="top-start"}else if(m){v="top-end"}}}else if(o.startsWith("left")){if(g){v=o===null||o===void 0?void 0:o.replace("left","right");if(b&&$){v="right"}else if(b){v="right-end"}else if($){v="right-start"}}else{if(b&&$){v="left"}else if(b){v="left-end"}else if($){v="left-start"}}}else if(v.startsWith("right")){if(m){v=o===null||o===void 0?void 0:o.replace("right","left");if(b&&$){v="left"}else if(b){v="left-end"}else if($){v="left-start"}}else{if(b&&$){v="right"}else if(b){v="right-end"}else if($){v="right-start"}}}return{top:l,bottom:n,right:f,height:s,width:r,left:d,childHeight:i.height,childWidth:i.width,correctedPlacement:v,innerWidth:p,innerHeight:c}};const l=(t,e,o)=>{var l;const s=(l=getComputedStyle(t).getPropertyValue("--db-popover-distance"))!==null&&l!==void 0?l:"0px";const{top:n,height:f,width:d,childHeight:r,childWidth:c,right:p,left:h,bottom:a,correctedPlacement:b,innerWidth:$,innerHeight:g}=i(t,e,o);if(c>d&&(b.startsWith("bottom")||b.startsWith("top"))){const e=d/2/c*100;if(b.endsWith("start")){t.style.setProperty("--db-tooltip-arrow-inline-start",`${e}%`)}else if(b.endsWith("end")){t.style.setProperty("--db-tooltip-arrow-inline-start",`${100-e}%`)}}if(r>f&&(b.startsWith("left")||b.startsWith("bottom"))){const e=f/2/r*100;if(b.endsWith("start")){t.style.setProperty("--db-tooltip-arrow-block-start",`${e}%`)}else if(b.endsWith("end")){t.style.setProperty("--db-tooltip-arrow-block-start",`${100-e}%`)}}if(b==="right"||b==="left"){t.style.insetBlockStart=`${n+f/2}px`}else if(b==="right-start"||b==="left-start"){const e=n+r;t.style.insetBlockStart=`${n}px`;t.style.insetBlockEnd=`${e>g?g:e}px`}else if(b==="right-end"||b==="left-end"){const e=a-r;t.style.insetBlockStart=`${e<0?0:e}px`;t.style.insetBlockEnd=`${a}px`}else if(b==="top"||b==="bottom"){t.style.insetInlineStart=`${h+d/2}px`}else if(b==="top-start"||b==="bottom-start"){const e=h+c;t.style.insetInlineStart=`${h}px`;t.style.insetInlineEnd=`${e>$?$:e}px`}else if(b==="top-end"||b==="bottom-end"){const e=h-c;t.style.insetInlineStart=`${p-c}px`;t.style.insetInlineEnd=`${e<0?0:e}px`}if(b===null||b===void 0?void 0:b.startsWith("right")){const e=p+c;t.style.insetInlineStart=`calc(${p}px + ${s})`;t.style.insetInlineEnd=`calc(${e>$?$:e}px + ${s})`}else if(b===null||b===void 0?void 0:b.startsWith("left")){const e=h-c;t.style.insetInlineStart=`calc(${e<0?0:e}px - ${s})`;t.style.insetInlineEnd=`calc(${p}px - ${s})`}else if(b===null||b===void 0?void 0:b.startsWith("top")){const e=n-r;t.style.insetBlockStart=`calc(${e<0?0:e}px - ${s})`;t.style.insetBlockEnd=`calc(${a}px - ${s})`}else if(b===null||b===void 0?void 0:b.startsWith("bottom")){const e=a+r;t.style.insetBlockStart=`calc(${a}px + ${s})`;t.style.insetBlockEnd=`calc(${e>g?g:e}px + ${s})`}t.style.position="fixed";t.setAttribute("data-corrected-placement",b)};export{e as a,l as b,o as h};
2
- //# sourceMappingURL=p-DYeQU2bY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-DYeQU2bY.js","sources":["src/utils/floating-components.ts"],"sourcesContent":["// TODO: We should reevaluate this as soon as CSS Anchor Positioning is supported in all relevant browsers\nconst isInView = (el: HTMLElement) => {\n const {\n top,\n bottom,\n left,\n right\n } = el.getBoundingClientRect();\n const {\n innerHeight,\n innerWidth\n } = window;\n let outTop = top < 0;\n let outBottom = bottom > innerHeight;\n let outLeft = left < 0;\n let outRight = right > innerWidth;\n\n // We need to check if it was already outside\n const outsideY = el.dataset['outsideVy'];\n const outsideX = el.dataset['outsideVx'];\n const parentRect = el?.parentElement?.getBoundingClientRect();\n if (parentRect) {\n if (outsideY) {\n const position = el.dataset['outsideVy'];\n if (position === 'top') {\n outTop = parentRect.top - (bottom - parentRect.bottom) < 0;\n } else {\n outBottom = parentRect.bottom + (parentRect.top - top) > innerHeight;\n }\n }\n if (outsideX) {\n const position = el.dataset['outsideVx'];\n if (position === 'left') {\n outLeft = parentRect.left - (right - parentRect.right) < 0;\n } else {\n outRight = parentRect.right + (parentRect.left - left) > innerWidth;\n }\n }\n }\n return {\n outTop,\n outBottom,\n outLeft,\n outRight\n };\n};\nexport interface DBDataOutsidePair {\n vx?: 'left' | 'right';\n vy?: 'top' | 'bottom';\n}\nexport const handleDataOutside = (el: HTMLElement): DBDataOutsidePair => {\n const {\n outTop,\n outBottom,\n outLeft,\n outRight\n } = isInView(el);\n let dataOutsidePair: DBDataOutsidePair = {};\n if (outTop || outBottom) {\n dataOutsidePair = {\n vy: outTop ? 'top' : 'bottom'\n };\n el.dataset['outsideVy'] = dataOutsidePair.vy!;\n } else {\n delete el.dataset['outsideVy'];\n }\n if (outLeft || outRight) {\n dataOutsidePair = {\n ...dataOutsidePair,\n vx: outRight ? 'right' : 'left'\n };\n el.dataset['outsideVx'] = dataOutsidePair.vx!;\n } else {\n delete el.dataset['outsideVx'];\n }\n return dataOutsidePair;\n};\nexport const handleFixedDropdown = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n // We skip this if we are in mobile it's already fixed\n if (getComputedStyle(element).zIndex === '9999') return;\n const {\n top,\n bottom,\n childHeight,\n childWidth,\n width,\n right,\n left,\n correctedPlacement\n } = getFloatingProps(element, parent, placement);\n const fullWidth = element.dataset['width'] === 'full';\n if (fullWidth) {\n element.style.inlineSize = `${width}px`;\n }\n if (correctedPlacement === 'top' || correctedPlacement === 'bottom' || correctedPlacement === 'top-start' || correctedPlacement === 'bottom-start') {\n element.style.insetInlineStart = `${left}px`;\n } else if (correctedPlacement === 'top-end' || correctedPlacement === 'bottom-end') {\n element.style.insetInlineStart = `${right - childWidth}px`;\n }\n if (correctedPlacement?.startsWith('top')) {\n element.style.insetBlockStart = `${top - childHeight}px`;\n } else if (correctedPlacement?.startsWith('bottom')) {\n element.style.insetBlockStart = `${bottom}px`;\n }\n element.style.position = 'fixed';\n};\nconst getFloatingProps = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n const childRect = element.getBoundingClientRect();\n const {\n top,\n height,\n bottom,\n right,\n left,\n width\n } = parent.getBoundingClientRect();\n const {\n innerHeight,\n innerWidth\n } = window;\n let childHeight = childRect.height;\n let childWidth = childRect.width;\n if (placement === 'bottom' || placement === 'top') {\n childWidth = childWidth / 2;\n }\n if (placement === 'left' || placement === 'right') {\n childHeight = childHeight / 2;\n }\n const outsideBottom = bottom + childHeight > innerHeight;\n const outsideTop = top - childHeight < 0;\n const outsideLeft = left - childWidth < 0;\n const outsideRight = right + childWidth > innerWidth;\n let correctedPlacement = placement;\n if (placement.startsWith('bottom')) {\n if (outsideBottom) {\n correctedPlacement = placement?.replace('bottom', 'top');\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'top';\n } else if (outsideLeft) {\n correctedPlacement = 'top-start';\n } else if (outsideRight) {\n correctedPlacement = 'top-end';\n }\n } else {\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'bottom';\n } else if (outsideLeft) {\n correctedPlacement = 'bottom-start';\n } else if (outsideRight) {\n correctedPlacement = 'bottom-end';\n }\n }\n } else if (placement.startsWith('top')) {\n if (outsideTop) {\n correctedPlacement = placement?.replace('top', 'bottom');\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'bottom';\n } else if (outsideLeft) {\n correctedPlacement = 'bottom-start';\n } else if (outsideRight) {\n correctedPlacement = 'bottom-end';\n }\n } else {\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'top';\n } else if (outsideLeft) {\n correctedPlacement = 'top-start';\n } else if (outsideRight) {\n correctedPlacement = 'top-end';\n }\n }\n } else if (placement.startsWith('left')) {\n if (outsideLeft) {\n correctedPlacement = placement?.replace('left', 'right');\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'right';\n } else if (outsideBottom) {\n correctedPlacement = 'right-end';\n } else if (outsideTop) {\n correctedPlacement = 'right-start';\n }\n } else {\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'left';\n } else if (outsideBottom) {\n correctedPlacement = 'left-end';\n } else if (outsideTop) {\n correctedPlacement = 'left-start';\n }\n }\n } else if (correctedPlacement.startsWith('right')) {\n if (outsideRight) {\n correctedPlacement = placement?.replace('right', 'left');\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'left';\n } else if (outsideBottom) {\n correctedPlacement = 'left-end';\n } else if (outsideTop) {\n correctedPlacement = 'left-start';\n }\n } else {\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'right';\n } else if (outsideBottom) {\n correctedPlacement = 'right-end';\n } else if (outsideTop) {\n correctedPlacement = 'right-start';\n }\n }\n }\n return {\n top,\n bottom,\n right,\n height,\n width,\n left,\n childHeight: childRect.height,\n childWidth: childRect.width,\n correctedPlacement,\n innerWidth,\n innerHeight\n };\n};\nexport const handleFixedPopover = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n const distance = getComputedStyle(element).getPropertyValue('--db-popover-distance') ?? '0px';\n const {\n top,\n height,\n width,\n childHeight,\n childWidth,\n right,\n left,\n bottom,\n correctedPlacement,\n innerWidth,\n innerHeight\n } = getFloatingProps(element, parent, placement);\n\n // Tooltip arrow position\n\n if (childWidth > width && (correctedPlacement.startsWith('bottom') || correctedPlacement.startsWith('top'))) {\n const diff = width / 2 / childWidth * 100;\n if (correctedPlacement.endsWith('start')) {\n element.style.setProperty('--db-tooltip-arrow-inline-start', `${diff}%`);\n } else if (correctedPlacement.endsWith('end')) {\n element.style.setProperty('--db-tooltip-arrow-inline-start', `${100 - diff}%`);\n }\n }\n if (childHeight > height && (correctedPlacement.startsWith('left') || correctedPlacement.startsWith('bottom'))) {\n const diff = height / 2 / childHeight * 100;\n if (correctedPlacement.endsWith('start')) {\n element.style.setProperty('--db-tooltip-arrow-block-start', `${diff}%`);\n } else if (correctedPlacement.endsWith('end')) {\n element.style.setProperty('--db-tooltip-arrow-block-start', `${100 - diff}%`);\n }\n }\n\n // Popover position\n\n if (correctedPlacement === 'right' || correctedPlacement === 'left') {\n // center horizontally\n element.style.insetBlockStart = `${top + height / 2}px`;\n } else if (correctedPlacement === 'right-start' || correctedPlacement === 'left-start') {\n const end = top + childHeight;\n element.style.insetBlockStart = `${top}px`;\n element.style.insetBlockEnd = `${end > innerHeight ? innerHeight : end}px`;\n } else if (correctedPlacement === 'right-end' || correctedPlacement === 'left-end') {\n const start = bottom - childHeight;\n element.style.insetBlockStart = `${start < 0 ? 0 : start}px`;\n element.style.insetBlockEnd = `${bottom}px`;\n } else if (correctedPlacement === 'top' || correctedPlacement === 'bottom') {\n // center vertically\n element.style.insetInlineStart = `${left + width / 2}px`;\n } else if (correctedPlacement === 'top-start' || correctedPlacement === 'bottom-start') {\n const end = left + childWidth;\n element.style.insetInlineStart = `${left}px`;\n element.style.insetInlineEnd = `${end > innerWidth ? innerWidth : end}px`;\n } else if (correctedPlacement === 'top-end' || correctedPlacement === 'bottom-end') {\n const start = left - childWidth;\n element.style.insetInlineStart = `${right - childWidth}px`;\n element.style.insetInlineEnd = `${start < 0 ? 0 : start}px`;\n }\n if (correctedPlacement?.startsWith('right')) {\n const end = right + childWidth;\n element.style.insetInlineStart = `calc(${right}px + ${distance})`;\n element.style.insetInlineEnd = `calc(${end > innerWidth ? innerWidth : end}px + ${distance})`;\n } else if (correctedPlacement?.startsWith('left')) {\n const start = left - childWidth;\n element.style.insetInlineStart = `calc(${start < 0 ? 0 : start}px - ${distance})`;\n element.style.insetInlineEnd = `calc(${right}px - ${distance})`;\n } else if (correctedPlacement?.startsWith('top')) {\n const start = top - childHeight;\n element.style.insetBlockStart = `calc(${start < 0 ? 0 : start}px - ${distance})`;\n element.style.insetBlockEnd = `calc(${bottom}px - ${distance})`;\n } else if (correctedPlacement?.startsWith('bottom')) {\n const end = bottom + childHeight;\n element.style.insetBlockStart = `calc(${bottom}px + ${distance})`;\n element.style.insetBlockEnd = `calc(${end > innerHeight ? innerHeight : end}px + ${distance})`;\n }\n element.style.position = 'fixed';\n element.setAttribute('data-corrected-placement', correctedPlacement);\n}"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"floating-components-DYeQU2bY.js","sources":["src/utils/floating-components.ts"],"sourcesContent":["// TODO: We should reevaluate this as soon as CSS Anchor Positioning is supported in all relevant browsers\nconst isInView = (el: HTMLElement) => {\n const {\n top,\n bottom,\n left,\n right\n } = el.getBoundingClientRect();\n const {\n innerHeight,\n innerWidth\n } = window;\n let outTop = top < 0;\n let outBottom = bottom > innerHeight;\n let outLeft = left < 0;\n let outRight = right > innerWidth;\n\n // We need to check if it was already outside\n const outsideY = el.dataset['outsideVy'];\n const outsideX = el.dataset['outsideVx'];\n const parentRect = el?.parentElement?.getBoundingClientRect();\n if (parentRect) {\n if (outsideY) {\n const position = el.dataset['outsideVy'];\n if (position === 'top') {\n outTop = parentRect.top - (bottom - parentRect.bottom) < 0;\n } else {\n outBottom = parentRect.bottom + (parentRect.top - top) > innerHeight;\n }\n }\n if (outsideX) {\n const position = el.dataset['outsideVx'];\n if (position === 'left') {\n outLeft = parentRect.left - (right - parentRect.right) < 0;\n } else {\n outRight = parentRect.right + (parentRect.left - left) > innerWidth;\n }\n }\n }\n return {\n outTop,\n outBottom,\n outLeft,\n outRight\n };\n};\nexport interface DBDataOutsidePair {\n vx?: 'left' | 'right';\n vy?: 'top' | 'bottom';\n}\nexport const handleDataOutside = (el: HTMLElement): DBDataOutsidePair => {\n const {\n outTop,\n outBottom,\n outLeft,\n outRight\n } = isInView(el);\n let dataOutsidePair: DBDataOutsidePair = {};\n if (outTop || outBottom) {\n dataOutsidePair = {\n vy: outTop ? 'top' : 'bottom'\n };\n el.dataset['outsideVy'] = dataOutsidePair.vy!;\n } else {\n delete el.dataset['outsideVy'];\n }\n if (outLeft || outRight) {\n dataOutsidePair = {\n ...dataOutsidePair,\n vx: outRight ? 'right' : 'left'\n };\n el.dataset['outsideVx'] = dataOutsidePair.vx!;\n } else {\n delete el.dataset['outsideVx'];\n }\n return dataOutsidePair;\n};\nexport const handleFixedDropdown = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n // We skip this if we are in mobile it's already fixed\n if (getComputedStyle(element).zIndex === '9999') return;\n const {\n top,\n bottom,\n childHeight,\n childWidth,\n width,\n right,\n left,\n correctedPlacement\n } = getFloatingProps(element, parent, placement);\n const fullWidth = element.dataset['width'] === 'full';\n if (fullWidth) {\n element.style.inlineSize = `${width}px`;\n }\n if (correctedPlacement === 'top' || correctedPlacement === 'bottom' || correctedPlacement === 'top-start' || correctedPlacement === 'bottom-start') {\n element.style.insetInlineStart = `${left}px`;\n } else if (correctedPlacement === 'top-end' || correctedPlacement === 'bottom-end') {\n element.style.insetInlineStart = `${right - childWidth}px`;\n }\n if (correctedPlacement?.startsWith('top')) {\n element.style.insetBlockStart = `${top - childHeight}px`;\n } else if (correctedPlacement?.startsWith('bottom')) {\n element.style.insetBlockStart = `${bottom}px`;\n }\n element.style.position = 'fixed';\n};\nconst getFloatingProps = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n const childRect = element.getBoundingClientRect();\n const {\n top,\n height,\n bottom,\n right,\n left,\n width\n } = parent.getBoundingClientRect();\n const {\n innerHeight,\n innerWidth\n } = window;\n let childHeight = childRect.height;\n let childWidth = childRect.width;\n if (placement === 'bottom' || placement === 'top') {\n childWidth = childWidth / 2;\n }\n if (placement === 'left' || placement === 'right') {\n childHeight = childHeight / 2;\n }\n const outsideBottom = bottom + childHeight > innerHeight;\n const outsideTop = top - childHeight < 0;\n const outsideLeft = left - childWidth < 0;\n const outsideRight = right + childWidth > innerWidth;\n let correctedPlacement = placement;\n if (placement.startsWith('bottom')) {\n if (outsideBottom) {\n correctedPlacement = placement?.replace('bottom', 'top');\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'top';\n } else if (outsideLeft) {\n correctedPlacement = 'top-start';\n } else if (outsideRight) {\n correctedPlacement = 'top-end';\n }\n } else {\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'bottom';\n } else if (outsideLeft) {\n correctedPlacement = 'bottom-start';\n } else if (outsideRight) {\n correctedPlacement = 'bottom-end';\n }\n }\n } else if (placement.startsWith('top')) {\n if (outsideTop) {\n correctedPlacement = placement?.replace('top', 'bottom');\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'bottom';\n } else if (outsideLeft) {\n correctedPlacement = 'bottom-start';\n } else if (outsideRight) {\n correctedPlacement = 'bottom-end';\n }\n } else {\n if (outsideLeft && outsideRight) {\n correctedPlacement = 'top';\n } else if (outsideLeft) {\n correctedPlacement = 'top-start';\n } else if (outsideRight) {\n correctedPlacement = 'top-end';\n }\n }\n } else if (placement.startsWith('left')) {\n if (outsideLeft) {\n correctedPlacement = placement?.replace('left', 'right');\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'right';\n } else if (outsideBottom) {\n correctedPlacement = 'right-end';\n } else if (outsideTop) {\n correctedPlacement = 'right-start';\n }\n } else {\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'left';\n } else if (outsideBottom) {\n correctedPlacement = 'left-end';\n } else if (outsideTop) {\n correctedPlacement = 'left-start';\n }\n }\n } else if (correctedPlacement.startsWith('right')) {\n if (outsideRight) {\n correctedPlacement = placement?.replace('right', 'left');\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'left';\n } else if (outsideBottom) {\n correctedPlacement = 'left-end';\n } else if (outsideTop) {\n correctedPlacement = 'left-start';\n }\n } else {\n if (outsideBottom && outsideTop) {\n correctedPlacement = 'right';\n } else if (outsideBottom) {\n correctedPlacement = 'right-end';\n } else if (outsideTop) {\n correctedPlacement = 'right-start';\n }\n }\n }\n return {\n top,\n bottom,\n right,\n height,\n width,\n left,\n childHeight: childRect.height,\n childWidth: childRect.width,\n correctedPlacement,\n innerWidth,\n innerHeight\n };\n};\nexport const handleFixedPopover = (element: HTMLElement, parent: HTMLElement, placement: string) => {\n const distance = getComputedStyle(element).getPropertyValue('--db-popover-distance') ?? '0px';\n const {\n top,\n height,\n width,\n childHeight,\n childWidth,\n right,\n left,\n bottom,\n correctedPlacement,\n innerWidth,\n innerHeight\n } = getFloatingProps(element, parent, placement);\n\n // Tooltip arrow position\n\n if (childWidth > width && (correctedPlacement.startsWith('bottom') || correctedPlacement.startsWith('top'))) {\n const diff = width / 2 / childWidth * 100;\n if (correctedPlacement.endsWith('start')) {\n element.style.setProperty('--db-tooltip-arrow-inline-start', `${diff}%`);\n } else if (correctedPlacement.endsWith('end')) {\n element.style.setProperty('--db-tooltip-arrow-inline-start', `${100 - diff}%`);\n }\n }\n if (childHeight > height && (correctedPlacement.startsWith('left') || correctedPlacement.startsWith('bottom'))) {\n const diff = height / 2 / childHeight * 100;\n if (correctedPlacement.endsWith('start')) {\n element.style.setProperty('--db-tooltip-arrow-block-start', `${diff}%`);\n } else if (correctedPlacement.endsWith('end')) {\n element.style.setProperty('--db-tooltip-arrow-block-start', `${100 - diff}%`);\n }\n }\n\n // Popover position\n\n if (correctedPlacement === 'right' || correctedPlacement === 'left') {\n // center horizontally\n element.style.insetBlockStart = `${top + height / 2}px`;\n } else if (correctedPlacement === 'right-start' || correctedPlacement === 'left-start') {\n const end = top + childHeight;\n element.style.insetBlockStart = `${top}px`;\n element.style.insetBlockEnd = `${end > innerHeight ? innerHeight : end}px`;\n } else if (correctedPlacement === 'right-end' || correctedPlacement === 'left-end') {\n const start = bottom - childHeight;\n element.style.insetBlockStart = `${start < 0 ? 0 : start}px`;\n element.style.insetBlockEnd = `${bottom}px`;\n } else if (correctedPlacement === 'top' || correctedPlacement === 'bottom') {\n // center vertically\n element.style.insetInlineStart = `${left + width / 2}px`;\n } else if (correctedPlacement === 'top-start' || correctedPlacement === 'bottom-start') {\n const end = left + childWidth;\n element.style.insetInlineStart = `${left}px`;\n element.style.insetInlineEnd = `${end > innerWidth ? innerWidth : end}px`;\n } else if (correctedPlacement === 'top-end' || correctedPlacement === 'bottom-end') {\n const start = left - childWidth;\n element.style.insetInlineStart = `${right - childWidth}px`;\n element.style.insetInlineEnd = `${start < 0 ? 0 : start}px`;\n }\n if (correctedPlacement?.startsWith('right')) {\n const end = right + childWidth;\n element.style.insetInlineStart = `calc(${right}px + ${distance})`;\n element.style.insetInlineEnd = `calc(${end > innerWidth ? innerWidth : end}px + ${distance})`;\n } else if (correctedPlacement?.startsWith('left')) {\n const start = left - childWidth;\n element.style.insetInlineStart = `calc(${start < 0 ? 0 : start}px - ${distance})`;\n element.style.insetInlineEnd = `calc(${right}px - ${distance})`;\n } else if (correctedPlacement?.startsWith('top')) {\n const start = top - childHeight;\n element.style.insetBlockStart = `calc(${start < 0 ? 0 : start}px - ${distance})`;\n element.style.insetBlockEnd = `calc(${bottom}px - ${distance})`;\n } else if (correctedPlacement?.startsWith('bottom')) {\n const end = bottom + childHeight;\n element.style.insetBlockStart = `calc(${bottom}px + ${distance})`;\n element.style.insetBlockEnd = `calc(${end > innerHeight ? innerHeight : end}px + ${distance})`;\n }\n element.style.position = 'fixed';\n element.setAttribute('data-corrected-placement', correctedPlacement);\n}"],"names":[],"mappings":"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"}