@beeq/core 1.13.0 → 1.13.1
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.
- package/dist/beeq/beeq.esm.js +1 -1
- package/dist/beeq/index.esm.js +1 -1
- package/dist/beeq/index.esm.js.map +1 -1
- package/dist/beeq/p-923da026.entry.js +6 -0
- package/dist/beeq/p-923da026.entry.js.map +1 -0
- package/dist/beeq/p-DXYHHeJY.js +6 -0
- package/dist/beeq/p-DXYHHeJY.js.map +1 -0
- package/dist/beeq/{p-2fd6ea70.entry.js → p-d4fa3abb.entry.js} +2 -2
- package/dist/beeq/p-d4fa3abb.entry.js.map +1 -0
- package/dist/beeq/p-seEHHqwi.js +6 -0
- package/dist/beeq/p-seEHHqwi.js.map +1 -0
- package/dist/beeq/svg/.icons-meta.json +1 -1
- package/dist/beeq.html-custom-data.json +74 -74
- package/dist/cjs/beeq.cjs.js +1 -1
- package/dist/cjs/bq-dropdown_2.cjs.entry.js +12 -6
- package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-tooltip.cjs.entry.js +76 -14
- package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-CfLTYjba.js → index-CVDzXB4K.js} +213 -189
- package/dist/cjs/index-CVDzXB4K.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/isPopoverSupported-CfD5YIXR.js +18 -0
- package/dist/cjs/isPopoverSupported-CfD5YIXR.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
- package/dist/collection/components/icon/svg/.icons-meta.json +1 -1
- package/dist/collection/components/panel/bq-panel.js +11 -5
- package/dist/collection/components/panel/bq-panel.js.map +1 -1
- package/dist/collection/components/progress/scss/bq-progress.css +1 -1
- package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
- package/dist/collection/components/slider/scss/bq-slider.css +1 -1
- package/dist/collection/components/tooltip/bq-tooltip.js +74 -13
- package/dist/collection/components/tooltip/bq-tooltip.js.map +1 -1
- package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
- package/dist/collection/services/interfaces/floating-ui.js.map +1 -1
- package/dist/collection/services/libraries/floating-ui/index.js +93 -64
- package/dist/collection/services/libraries/floating-ui/index.js.map +1 -1
- package/dist/collection/shared/test-utils/setProperties.js +1 -1
- package/dist/collection/shared/test-utils/setProperties.js.map +1 -1
- package/dist/collection/shared/utils/index.js +1 -0
- package/dist/collection/shared/utils/index.js.map +1 -1
- package/dist/collection/shared/utils/isPopoverSupported.js +12 -0
- package/dist/collection/shared/utils/isPopoverSupported.js.map +1 -0
- package/dist/components/bq-date-picker.js +1 -1
- package/dist/components/bq-dropdown.js +1 -1
- package/dist/components/bq-empty-state.js +1 -1
- package/dist/components/bq-empty-state.js.map +1 -1
- package/dist/components/bq-panel.js +1 -1
- package/dist/components/bq-progress.js +1 -1
- package/dist/components/bq-progress.js.map +1 -1
- package/dist/components/bq-select.js +1 -1
- package/dist/components/bq-side-menu-item.js +1 -1
- package/dist/components/bq-side-menu-item.js.map +1 -1
- package/dist/components/bq-slider.js +1 -1
- package/dist/components/bq-slider.js.map +1 -1
- package/dist/components/bq-tooltip.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/p-B4jdbg-4.js +6 -0
- package/dist/components/p-B4jdbg-4.js.map +1 -0
- package/dist/components/p-DXYHHeJY.js +6 -0
- package/dist/components/p-DXYHHeJY.js.map +1 -0
- package/dist/components/{p-BS8hIETL.js → p-_I8PqzzU.js} +2 -2
- package/dist/components/{p-iyX-PhkX.js → p-c6L-z8md.js} +2 -2
- package/dist/components/p-c6L-z8md.js.map +1 -0
- package/dist/custom-elements.json +776 -736
- package/dist/esm/beeq.js +1 -1
- package/dist/esm/bq-dropdown_2.entry.js +12 -6
- package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
- package/dist/esm/bq-tooltip.entry.js +76 -14
- package/dist/esm/bq-tooltip.entry.js.map +1 -1
- package/dist/esm/{index-CSAZnAFf.js → index-DXYHHeJY.js} +213 -189
- package/dist/esm/index-DXYHHeJY.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/isPopoverSupported-seEHHqwi.js +16 -0
- package/dist/esm/isPopoverSupported-seEHHqwi.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/hydrate/index.js +304 -205
- package/dist/hydrate/index.mjs +304 -205
- package/dist/types/components/panel/bq-panel.d.ts +1 -0
- package/dist/types/components/tooltip/bq-tooltip.d.ts +14 -0
- package/dist/types/services/interfaces/floating-ui.d.ts +1 -1
- package/dist/types/services/libraries/floating-ui/index.d.ts +37 -14
- package/dist/types/shared/test-utils/setProperties.d.ts +1 -1
- package/dist/types/shared/utils/index.d.ts +1 -0
- package/dist/types/shared/utils/isPopoverSupported.d.ts +2 -0
- package/package.json +3 -3
- package/dist/beeq/p-2fd6ea70.entry.js.map +0 -1
- package/dist/beeq/p-CSAZnAFf.js +0 -6
- package/dist/beeq/p-CSAZnAFf.js.map +0 -1
- package/dist/beeq/p-a55354ee.entry.js +0 -6
- package/dist/beeq/p-a55354ee.entry.js.map +0 -1
- package/dist/cjs/index-CfLTYjba.js.map +0 -1
- package/dist/components/p-CSAZnAFf.js +0 -6
- package/dist/components/p-CSAZnAFf.js.map +0 -1
- package/dist/components/p-Dd3v3b2E.js +0 -6
- package/dist/components/p-Dd3v3b2E.js.map +0 -1
- package/dist/components/p-iyX-PhkX.js.map +0 -1
- package/dist/esm/index-CSAZnAFf.js.map +0 -1
- /package/dist/components/{p-BS8hIETL.js.map → p-_I8PqzzU.js.map} +0 -0
package/dist/hydrate/index.mjs
CHANGED
|
@@ -5912,6 +5912,14 @@ const isHTMLElement$1 = (target, tag) => {
|
|
|
5912
5912
|
return target instanceof Node && target.nodeName.toLowerCase() === tag.toLowerCase();
|
|
5913
5913
|
};
|
|
5914
5914
|
|
|
5915
|
+
/** Returns whether the current runtime provides the complete HTML Popover API. */
|
|
5916
|
+
const isPopoverSupported = () => {
|
|
5917
|
+
return (typeof HTMLElement !== 'undefined' &&
|
|
5918
|
+
'popover' in HTMLElement.prototype &&
|
|
5919
|
+
typeof HTMLElement.prototype.showPopover === 'function' &&
|
|
5920
|
+
typeof HTMLElement.prototype.hidePopover === 'function');
|
|
5921
|
+
};
|
|
5922
|
+
|
|
5915
5923
|
/**
|
|
5916
5924
|
* Check if the value is a string or not
|
|
5917
5925
|
* @param value the value to be checked
|
|
@@ -13223,12 +13231,12 @@ function getOppositePlacement(placement) {
|
|
|
13223
13231
|
return oppositeSideMap[side] + placement.slice(side.length);
|
|
13224
13232
|
}
|
|
13225
13233
|
function expandPaddingObject(padding) {
|
|
13234
|
+
var _padding$top, _padding$right, _padding$bottom, _padding$left;
|
|
13226
13235
|
return {
|
|
13227
|
-
top: 0,
|
|
13228
|
-
right: 0,
|
|
13229
|
-
bottom: 0,
|
|
13230
|
-
left: 0
|
|
13231
|
-
...padding
|
|
13236
|
+
top: (_padding$top = padding.top) != null ? _padding$top : 0,
|
|
13237
|
+
right: (_padding$right = padding.right) != null ? _padding$right : 0,
|
|
13238
|
+
bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
|
|
13239
|
+
left: (_padding$left = padding.left) != null ? _padding$left : 0
|
|
13232
13240
|
};
|
|
13233
13241
|
}
|
|
13234
13242
|
function getPaddingObject(padding) {
|
|
@@ -13303,13 +13311,9 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
|
|
|
13303
13311
|
y: reference.y
|
|
13304
13312
|
};
|
|
13305
13313
|
}
|
|
13306
|
-
|
|
13307
|
-
|
|
13308
|
-
|
|
13309
|
-
break;
|
|
13310
|
-
case 'end':
|
|
13311
|
-
coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
|
|
13312
|
-
break;
|
|
13314
|
+
const alignment = getAlignment(placement);
|
|
13315
|
+
if (alignment) {
|
|
13316
|
+
coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);
|
|
13313
13317
|
}
|
|
13314
13318
|
return coords;
|
|
13315
13319
|
}
|
|
@@ -13358,10 +13362,7 @@ async function detectOverflow(state, options) {
|
|
|
13358
13362
|
height: rects.floating.height
|
|
13359
13363
|
} : rects.reference;
|
|
13360
13364
|
const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
|
|
13361
|
-
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)))
|
|
13362
|
-
x: 1,
|
|
13363
|
-
y: 1
|
|
13364
|
-
} : {
|
|
13365
|
+
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
|
|
13365
13366
|
x: 1,
|
|
13366
13367
|
y: 1
|
|
13367
13368
|
};
|
|
@@ -13534,17 +13535,16 @@ const arrow$1 = options => ({
|
|
|
13534
13535
|
|
|
13535
13536
|
// Make sure the arrow doesn't overflow the floating element if the center
|
|
13536
13537
|
// point is outside the floating element's bounds.
|
|
13537
|
-
const min$1 = minPadding;
|
|
13538
13538
|
const max = clientSize - arrowDimensions[length] - maxPadding;
|
|
13539
13539
|
const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
|
|
13540
|
-
const offset = clamp(
|
|
13540
|
+
const offset = clamp(minPadding, center, max);
|
|
13541
13541
|
|
|
13542
13542
|
// If the reference is small enough that the arrow's padding causes it to
|
|
13543
13543
|
// to point to nothing for an aligned placement, adjust the offset of the
|
|
13544
13544
|
// floating element itself. To ensure `shift()` continues to take action,
|
|
13545
13545
|
// a single reset is performed when this is true.
|
|
13546
|
-
const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center <
|
|
13547
|
-
const alignmentOffset = shouldAddOffset ? center <
|
|
13546
|
+
const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
|
|
13547
|
+
const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;
|
|
13548
13548
|
return {
|
|
13549
13549
|
[axis]: coords[axis] + alignmentOffset,
|
|
13550
13550
|
data: {
|
|
@@ -13888,23 +13888,16 @@ const shift$1 = function (options) {
|
|
|
13888
13888
|
y
|
|
13889
13889
|
};
|
|
13890
13890
|
const overflow = await platform.detectOverflow(state, detectOverflowOptions);
|
|
13891
|
-
const crossAxis = getSideAxis(
|
|
13891
|
+
const crossAxis = getSideAxis(placement);
|
|
13892
13892
|
const mainAxis = getOppositeAxis(crossAxis);
|
|
13893
13893
|
let mainAxisCoord = coords[mainAxis];
|
|
13894
13894
|
let crossAxisCoord = coords[crossAxis];
|
|
13895
|
+
const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);
|
|
13895
13896
|
if (checkMainAxis) {
|
|
13896
|
-
|
|
13897
|
-
const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
|
|
13898
|
-
const min = mainAxisCoord + overflow[minSide];
|
|
13899
|
-
const max = mainAxisCoord - overflow[maxSide];
|
|
13900
|
-
mainAxisCoord = clamp(min, mainAxisCoord, max);
|
|
13897
|
+
mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
|
|
13901
13898
|
}
|
|
13902
13899
|
if (checkCrossAxis) {
|
|
13903
|
-
|
|
13904
|
-
const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
|
|
13905
|
-
const min = crossAxisCoord + overflow[minSide];
|
|
13906
|
-
const max = crossAxisCoord - overflow[maxSide];
|
|
13907
|
-
crossAxisCoord = clamp(min, crossAxisCoord, max);
|
|
13900
|
+
crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
|
|
13908
13901
|
}
|
|
13909
13902
|
const limitedCoords = limiter.fn({
|
|
13910
13903
|
...state,
|
|
@@ -13926,6 +13919,12 @@ const shift$1 = function (options) {
|
|
|
13926
13919
|
};
|
|
13927
13920
|
};
|
|
13928
13921
|
|
|
13922
|
+
// Method syntax keeps callback parameters bivariant, but expressing the
|
|
13923
|
+
// explicit `| undefined` required by `exactOptionalPropertyTypes` needs
|
|
13924
|
+
// property syntax, which is contravariant under `strictFunctionTypes`.
|
|
13925
|
+
// Extracting the function from a method position restores that bivariance so
|
|
13926
|
+
// consumers can still assign callbacks with narrower parameter types.
|
|
13927
|
+
|
|
13929
13928
|
/**
|
|
13930
13929
|
* Provides data that allows you to change the size of the floating element —
|
|
13931
13930
|
* for instance, prevent it from overflowing the clipping boundary or match the
|
|
@@ -13940,7 +13939,6 @@ const size$1 = function (options) {
|
|
|
13940
13939
|
name: 'size',
|
|
13941
13940
|
options,
|
|
13942
13941
|
async fn(state) {
|
|
13943
|
-
var _state$middlewareData, _state$middlewareData2;
|
|
13944
13942
|
const {
|
|
13945
13943
|
placement,
|
|
13946
13944
|
rects,
|
|
@@ -13972,24 +13970,21 @@ const size$1 = function (options) {
|
|
|
13972
13970
|
const maximumClippingWidth = width - overflow.left - overflow.right;
|
|
13973
13971
|
const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
|
|
13974
13972
|
const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
|
|
13975
|
-
const
|
|
13973
|
+
const shiftData = state.middlewareData.shift;
|
|
13974
|
+
const noShift = !shiftData;
|
|
13976
13975
|
let availableHeight = overflowAvailableHeight;
|
|
13977
13976
|
let availableWidth = overflowAvailableWidth;
|
|
13978
|
-
if (
|
|
13977
|
+
if (shiftData != null && shiftData.enabled.x) {
|
|
13979
13978
|
availableWidth = maximumClippingWidth;
|
|
13980
13979
|
}
|
|
13981
|
-
if (
|
|
13980
|
+
if (shiftData != null && shiftData.enabled.y) {
|
|
13982
13981
|
availableHeight = maximumClippingHeight;
|
|
13983
13982
|
}
|
|
13984
13983
|
if (noShift && !alignment) {
|
|
13985
|
-
const xMin = max(overflow.left, 0);
|
|
13986
|
-
const xMax = max(overflow.right, 0);
|
|
13987
|
-
const yMin = max(overflow.top, 0);
|
|
13988
|
-
const yMax = max(overflow.bottom, 0);
|
|
13989
13984
|
if (isYAxis) {
|
|
13990
|
-
availableWidth = width - 2 *
|
|
13985
|
+
availableWidth = width - 2 * max(overflow.left, overflow.right);
|
|
13991
13986
|
} else {
|
|
13992
|
-
availableHeight = height - 2 *
|
|
13987
|
+
availableHeight = height - 2 * max(overflow.top, overflow.bottom);
|
|
13993
13988
|
}
|
|
13994
13989
|
}
|
|
13995
13990
|
await apply({
|
|
@@ -14145,7 +14140,7 @@ function getParentNode(node) {
|
|
|
14145
14140
|
function getNearestOverflowAncestor(node) {
|
|
14146
14141
|
const parentNode = getParentNode(node);
|
|
14147
14142
|
if (isLastTraversableNode(parentNode)) {
|
|
14148
|
-
return node.ownerDocument
|
|
14143
|
+
return (node.ownerDocument || node).body;
|
|
14149
14144
|
}
|
|
14150
14145
|
if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
|
|
14151
14146
|
return parentNode;
|
|
@@ -14242,10 +14237,7 @@ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
|
|
|
14242
14237
|
if (isFixed === void 0) {
|
|
14243
14238
|
isFixed = false;
|
|
14244
14239
|
}
|
|
14245
|
-
|
|
14246
|
-
return false;
|
|
14247
|
-
}
|
|
14248
|
-
return isFixed;
|
|
14240
|
+
return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);
|
|
14249
14241
|
}
|
|
14250
14242
|
|
|
14251
14243
|
function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
|
|
@@ -14272,12 +14264,12 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
14272
14264
|
let y = (clientRect.top + visualOffsets.y) / scale.y;
|
|
14273
14265
|
let width = clientRect.width / scale.x;
|
|
14274
14266
|
let height = clientRect.height / scale.y;
|
|
14275
|
-
if (domElement) {
|
|
14267
|
+
if (domElement && offsetParent) {
|
|
14276
14268
|
const win = getWindow(domElement);
|
|
14277
|
-
const offsetWin =
|
|
14269
|
+
const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
|
|
14278
14270
|
let currentWin = win;
|
|
14279
14271
|
let currentIFrame = getFrameElement(currentWin);
|
|
14280
|
-
while (currentIFrame &&
|
|
14272
|
+
while (currentIFrame && offsetWin !== currentWin) {
|
|
14281
14273
|
const iframeScale = getScale(currentIFrame);
|
|
14282
14274
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
14283
14275
|
const css = getComputedStyle$1(currentIFrame);
|
|
@@ -14341,7 +14333,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
14341
14333
|
let scale = createCoords(1);
|
|
14342
14334
|
const offsets = createCoords(0);
|
|
14343
14335
|
const isOffsetParentAnElement = isHTMLElement(offsetParent);
|
|
14344
|
-
if (isOffsetParentAnElement || !
|
|
14336
|
+
if (isOffsetParentAnElement || !isFixed) {
|
|
14345
14337
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
14346
14338
|
scroll = getNodeScroll(offsetParent);
|
|
14347
14339
|
}
|
|
@@ -14362,18 +14354,17 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
14362
14354
|
}
|
|
14363
14355
|
|
|
14364
14356
|
function getClientRects(element) {
|
|
14365
|
-
return Array.from(element.getClientRects());
|
|
14357
|
+
return element.getClientRects ? Array.from(element.getClientRects()) : [];
|
|
14366
14358
|
}
|
|
14367
14359
|
|
|
14368
14360
|
// Gets the entire size of the scrollable document area, even extending outside
|
|
14369
14361
|
// of the `<html>` and `<body>` rect bounds if horizontally scrollable.
|
|
14370
|
-
function getDocumentRect(
|
|
14371
|
-
const
|
|
14372
|
-
const
|
|
14373
|
-
const body = element.ownerDocument.body;
|
|
14362
|
+
function getDocumentRect(html) {
|
|
14363
|
+
const scroll = getNodeScroll(html);
|
|
14364
|
+
const body = html.ownerDocument.body;
|
|
14374
14365
|
const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
|
|
14375
14366
|
const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
|
|
14376
|
-
let x = -scroll.scrollLeft + getWindowScrollBarX(
|
|
14367
|
+
let x = -scroll.scrollLeft + getWindowScrollBarX(html);
|
|
14377
14368
|
const y = -scroll.scrollTop;
|
|
14378
14369
|
if (getComputedStyle$1(body).direction === 'rtl') {
|
|
14379
14370
|
x += max(html.clientWidth, body.clientWidth) - width;
|
|
@@ -14390,7 +14381,11 @@ function getDocumentRect(element) {
|
|
|
14390
14381
|
// calculation is affected by unusual styles.
|
|
14391
14382
|
// Most scrollbars leave 15-18px of space.
|
|
14392
14383
|
const SCROLLBAR_MAX = 25;
|
|
14393
|
-
function getViewportRect(element, strategy) {
|
|
14384
|
+
function getViewportRect(element, strategy, rootBoundary) {
|
|
14385
|
+
if (rootBoundary === void 0) {
|
|
14386
|
+
rootBoundary = 'viewport';
|
|
14387
|
+
}
|
|
14388
|
+
const isLayoutViewport = rootBoundary === 'layoutViewport';
|
|
14394
14389
|
const win = getWindow(element);
|
|
14395
14390
|
const html = getDocumentElement(element);
|
|
14396
14391
|
const visualViewport = win.visualViewport;
|
|
@@ -14399,31 +14394,42 @@ function getViewportRect(element, strategy) {
|
|
|
14399
14394
|
let x = 0;
|
|
14400
14395
|
let y = 0;
|
|
14401
14396
|
if (visualViewport) {
|
|
14402
|
-
|
|
14403
|
-
|
|
14404
|
-
|
|
14405
|
-
|
|
14406
|
-
|
|
14407
|
-
|
|
14397
|
+
// Client coordinates are relative to the layout viewport, except in
|
|
14398
|
+
// WebKit with an `absolute` strategy, where they are relative to the
|
|
14399
|
+
// visual viewport.
|
|
14400
|
+
const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';
|
|
14401
|
+
if (isLayoutViewport) {
|
|
14402
|
+
if (!layoutRelativeClientCoords) {
|
|
14403
|
+
x = -visualViewport.offsetLeft;
|
|
14404
|
+
y = -visualViewport.offsetTop;
|
|
14405
|
+
}
|
|
14406
|
+
} else {
|
|
14407
|
+
width = visualViewport.width;
|
|
14408
|
+
height = visualViewport.height;
|
|
14409
|
+
if (layoutRelativeClientCoords) {
|
|
14410
|
+
x = visualViewport.offsetLeft;
|
|
14411
|
+
y = visualViewport.offsetTop;
|
|
14412
|
+
}
|
|
14408
14413
|
}
|
|
14409
14414
|
}
|
|
14410
14415
|
const windowScrollbarX = getWindowScrollBarX(html);
|
|
14411
|
-
//
|
|
14412
|
-
// visual width
|
|
14413
|
-
//
|
|
14416
|
+
// `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks
|
|
14417
|
+
// the visual width but isn't reflected in `html.clientWidth`, so subtract it.
|
|
14418
|
+
// Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also
|
|
14419
|
+
// reserves an empty inline-start gutter that clips nothing, so exclude just
|
|
14420
|
+
// the one scrollbar-side gutter — halve the measured (two-gutter) total. A
|
|
14421
|
+
// left-side scrollbar (`windowScrollbarX > 0`) is already handled by
|
|
14422
|
+
// `getHTMLOffset`/`visualViewport.width`; skip it here.
|
|
14414
14423
|
if (windowScrollbarX <= 0) {
|
|
14415
14424
|
const doc = html.ownerDocument;
|
|
14416
14425
|
const body = doc.body;
|
|
14417
14426
|
const bodyStyles = getComputedStyle(body);
|
|
14418
14427
|
const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
|
|
14419
|
-
const
|
|
14420
|
-
|
|
14421
|
-
|
|
14428
|
+
const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
|
|
14429
|
+
const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;
|
|
14430
|
+
if (gutter <= SCROLLBAR_MAX) {
|
|
14431
|
+
width -= gutter;
|
|
14422
14432
|
}
|
|
14423
|
-
} else if (windowScrollbarX <= SCROLLBAR_MAX) {
|
|
14424
|
-
// If the <body> scrollbar is on the left, the width needs to be extended
|
|
14425
|
-
// by the scrollbar amount so there isn't extra space on the right.
|
|
14426
|
-
width += windowScrollbarX;
|
|
14427
14433
|
}
|
|
14428
14434
|
return {
|
|
14429
14435
|
width,
|
|
@@ -14438,7 +14444,7 @@ function getInnerBoundingClientRect(element, strategy) {
|
|
|
14438
14444
|
const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
|
|
14439
14445
|
const top = clientRect.top + element.clientTop;
|
|
14440
14446
|
const left = clientRect.left + element.clientLeft;
|
|
14441
|
-
const scale =
|
|
14447
|
+
const scale = getScale(element);
|
|
14442
14448
|
const width = element.clientWidth * scale.x;
|
|
14443
14449
|
const height = element.clientHeight * scale.y;
|
|
14444
14450
|
const x = left * scale.x;
|
|
@@ -14452,8 +14458,8 @@ function getInnerBoundingClientRect(element, strategy) {
|
|
|
14452
14458
|
}
|
|
14453
14459
|
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
|
|
14454
14460
|
let rect;
|
|
14455
|
-
if (clippingAncestor === 'viewport') {
|
|
14456
|
-
rect = getViewportRect(element, strategy);
|
|
14461
|
+
if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {
|
|
14462
|
+
rect = getViewportRect(element, strategy, clippingAncestor);
|
|
14457
14463
|
} else if (clippingAncestor === 'document') {
|
|
14458
14464
|
rect = getDocumentRect(getDocumentElement(element));
|
|
14459
14465
|
} else if (isElement(clippingAncestor)) {
|
|
@@ -14469,13 +14475,6 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
|
|
|
14469
14475
|
}
|
|
14470
14476
|
return rectToClientRect(rect);
|
|
14471
14477
|
}
|
|
14472
|
-
function hasFixedPositionAncestor(element, stopNode) {
|
|
14473
|
-
const parentNode = getParentNode(element);
|
|
14474
|
-
if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
|
|
14475
|
-
return false;
|
|
14476
|
-
}
|
|
14477
|
-
return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
|
|
14478
|
-
}
|
|
14479
14478
|
|
|
14480
14479
|
// A "clipping ancestor" is an `overflow` element with the characteristic of
|
|
14481
14480
|
// clipping (or hiding) child elements. This returns all clipping ancestors
|
|
@@ -14486,7 +14485,7 @@ function getClippingElementAncestors(element, cache) {
|
|
|
14486
14485
|
return cachedResult;
|
|
14487
14486
|
}
|
|
14488
14487
|
let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
|
|
14489
|
-
let
|
|
14488
|
+
let lastKeptComputedStyle = null;
|
|
14490
14489
|
const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
|
|
14491
14490
|
let currentNode = elementIsFixed ? getParentNode(element) : element;
|
|
14492
14491
|
|
|
@@ -14494,16 +14493,20 @@ function getClippingElementAncestors(element, cache) {
|
|
|
14494
14493
|
while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
14495
14494
|
const computedStyle = getComputedStyle$1(currentNode);
|
|
14496
14495
|
const currentNodeIsContaining = isContainingBlock(currentNode);
|
|
14497
|
-
|
|
14498
|
-
|
|
14499
|
-
|
|
14500
|
-
|
|
14496
|
+
// Position of the containing block chain below the current node. A fixed
|
|
14497
|
+
// element whose containing block hasn't been found yet is a fixed chain.
|
|
14498
|
+
const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';
|
|
14499
|
+
|
|
14500
|
+
// A non-containing ancestor does not clip the element when the chain
|
|
14501
|
+
// below it escapes it: a fixed chain escapes all ancestors up to the
|
|
14502
|
+
// next containing block, an absolute chain escapes static ancestors.
|
|
14503
|
+
const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');
|
|
14501
14504
|
if (shouldDropCurrentNode) {
|
|
14502
14505
|
// Drop non-containing blocks.
|
|
14503
14506
|
result = result.filter(ancestor => ancestor !== currentNode);
|
|
14504
14507
|
} else {
|
|
14505
|
-
//
|
|
14506
|
-
|
|
14508
|
+
// The kept node carries the chain position for the next iteration.
|
|
14509
|
+
lastKeptComputedStyle = computedStyle;
|
|
14507
14510
|
}
|
|
14508
14511
|
currentNode = getParentNode(currentNode);
|
|
14509
14512
|
}
|
|
@@ -14563,13 +14566,7 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
14563
14566
|
scrollTop: 0
|
|
14564
14567
|
};
|
|
14565
14568
|
const offsets = createCoords(0);
|
|
14566
|
-
|
|
14567
|
-
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
14568
|
-
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
14569
|
-
function setLeftRTLScrollbarOffset() {
|
|
14570
|
-
offsets.x = getWindowScrollBarX(documentElement);
|
|
14571
|
-
}
|
|
14572
|
-
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
14569
|
+
if (isOffsetParentAnElement || !isFixed) {
|
|
14573
14570
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
14574
14571
|
scroll = getNodeScroll(offsetParent);
|
|
14575
14572
|
}
|
|
@@ -14577,12 +14574,13 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
14577
14574
|
const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
|
|
14578
14575
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
14579
14576
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
14580
|
-
} else if (documentElement) {
|
|
14581
|
-
setLeftRTLScrollbarOffset();
|
|
14582
14577
|
}
|
|
14583
14578
|
}
|
|
14584
|
-
|
|
14585
|
-
|
|
14579
|
+
|
|
14580
|
+
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
14581
|
+
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
14582
|
+
if (!isOffsetParentAnElement && documentElement) {
|
|
14583
|
+
offsets.x = getWindowScrollBarX(documentElement);
|
|
14586
14584
|
}
|
|
14587
14585
|
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
|
|
14588
14586
|
const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
|
|
@@ -14682,7 +14680,7 @@ function rectsAreEqual(a, b) {
|
|
|
14682
14680
|
}
|
|
14683
14681
|
|
|
14684
14682
|
// https://samthor.au/2021/observing-dom/
|
|
14685
|
-
function observeMove(element, onMove) {
|
|
14683
|
+
function observeMove(element, onMove, ancestorResize) {
|
|
14686
14684
|
let io = null;
|
|
14687
14685
|
let timeoutId;
|
|
14688
14686
|
const root = getDocumentElement(element);
|
|
@@ -14725,13 +14723,22 @@ function observeMove(element, onMove) {
|
|
|
14725
14723
|
let isFirstUpdate = true;
|
|
14726
14724
|
function handleObserve(entries) {
|
|
14727
14725
|
const ratio = entries[0].intersectionRatio;
|
|
14726
|
+
|
|
14727
|
+
// The entry is a snapshot, so the reference may have moved since the
|
|
14728
|
+
// intersection was computed (under performance constraints, or between
|
|
14729
|
+
// consecutive frames of a multi-frame layout shift). The reported ratio
|
|
14730
|
+
// and the observed area are stale in that case and cannot be trusted to
|
|
14731
|
+
// detect subsequent movement, so refresh regardless of the ratio.
|
|
14732
|
+
if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
|
|
14733
|
+
return refresh();
|
|
14734
|
+
}
|
|
14728
14735
|
if (ratio !== threshold) {
|
|
14729
14736
|
if (!isFirstUpdate) {
|
|
14730
14737
|
return refresh();
|
|
14731
14738
|
}
|
|
14732
14739
|
if (!ratio) {
|
|
14733
|
-
// If the reference is clipped, the ratio is 0. Throttle
|
|
14734
|
-
// to prevent an infinite loop of updates.
|
|
14740
|
+
// If the reference is clipped in place, the ratio is 0. Throttle
|
|
14741
|
+
// the refresh to prevent an infinite loop of updates.
|
|
14735
14742
|
timeoutId = setTimeout(() => {
|
|
14736
14743
|
refresh(false, 1e-7);
|
|
14737
14744
|
}, 1000);
|
|
@@ -14739,16 +14746,6 @@ function observeMove(element, onMove) {
|
|
|
14739
14746
|
refresh(false, ratio);
|
|
14740
14747
|
}
|
|
14741
14748
|
}
|
|
14742
|
-
if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
|
|
14743
|
-
// It's possible that even though the ratio is reported as 1, the
|
|
14744
|
-
// element is not actually fully within the IntersectionObserver's root
|
|
14745
|
-
// area anymore. This can happen under performance constraints. This may
|
|
14746
|
-
// be a bug in the browser's IntersectionObserver implementation. To
|
|
14747
|
-
// work around this, we compare the element's bounding rect now with
|
|
14748
|
-
// what it was at the time we created the IntersectionObserver. If they
|
|
14749
|
-
// are not equal then the element moved, so we refresh.
|
|
14750
|
-
refresh();
|
|
14751
|
-
}
|
|
14752
14749
|
isFirstUpdate = false;
|
|
14753
14750
|
}
|
|
14754
14751
|
|
|
@@ -14765,8 +14762,18 @@ function observeMove(element, onMove) {
|
|
|
14765
14762
|
}
|
|
14766
14763
|
io.observe(element);
|
|
14767
14764
|
}
|
|
14765
|
+
const win = getWindow(element);
|
|
14766
|
+
// The window is a resize ancestor, so when `ancestorResize` is enabled its
|
|
14767
|
+
// listener already runs the update on resize. Here we only need to rebuild
|
|
14768
|
+
// the `IntersectionObserver` for the new root size, skipping a redundant
|
|
14769
|
+
// update. When `ancestorResize` is disabled, this becomes the sole update.
|
|
14770
|
+
const handleResize = () => refresh(ancestorResize);
|
|
14771
|
+
win.addEventListener('resize', handleResize);
|
|
14768
14772
|
refresh(true);
|
|
14769
|
-
return
|
|
14773
|
+
return () => {
|
|
14774
|
+
win.removeEventListener('resize', handleResize);
|
|
14775
|
+
cleanup();
|
|
14776
|
+
};
|
|
14770
14777
|
}
|
|
14771
14778
|
|
|
14772
14779
|
/**
|
|
@@ -14791,12 +14798,10 @@ function autoUpdate(reference, floating, update, options) {
|
|
|
14791
14798
|
const referenceEl = unwrapElement(reference);
|
|
14792
14799
|
const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];
|
|
14793
14800
|
ancestors.forEach(ancestor => {
|
|
14794
|
-
ancestorScroll && ancestor.addEventListener('scroll', update
|
|
14795
|
-
passive: true
|
|
14796
|
-
});
|
|
14801
|
+
ancestorScroll && ancestor.addEventListener('scroll', update);
|
|
14797
14802
|
ancestorResize && ancestor.addEventListener('resize', update);
|
|
14798
14803
|
});
|
|
14799
|
-
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
|
|
14804
|
+
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : null;
|
|
14800
14805
|
let reobserveFrame = -1;
|
|
14801
14806
|
let resizeObserver = null;
|
|
14802
14807
|
if (elementResize) {
|
|
@@ -14905,11 +14910,9 @@ const computePosition = (reference, floating, options) => {
|
|
|
14905
14910
|
// multiple lifecycle resets re-use the same result. It only lives for a
|
|
14906
14911
|
// single call. If other functions become expensive, we can add them as well.
|
|
14907
14912
|
const cache = new Map();
|
|
14908
|
-
const mergedOptions = {
|
|
14909
|
-
platform,
|
|
14910
|
-
...options
|
|
14911
|
-
};
|
|
14913
|
+
const mergedOptions = options != null ? options : {};
|
|
14912
14914
|
const platformWithCache = {
|
|
14915
|
+
...platform,
|
|
14913
14916
|
...mergedOptions.platform,
|
|
14914
14917
|
_c: cache
|
|
14915
14918
|
};
|
|
@@ -14919,11 +14922,28 @@ const computePosition = (reference, floating, options) => {
|
|
|
14919
14922
|
});
|
|
14920
14923
|
};
|
|
14921
14924
|
|
|
14925
|
+
const STATIC_SIDE_BY_PLACEMENT = {
|
|
14926
|
+
top: 'bottom',
|
|
14927
|
+
right: 'left',
|
|
14928
|
+
bottom: 'top',
|
|
14929
|
+
left: 'right',
|
|
14930
|
+
};
|
|
14931
|
+
/**
|
|
14932
|
+
* Thin wrapper around Floating UI that owns the shared middleware pipeline
|
|
14933
|
+
* and ensures each instance has at most one `autoUpdate` subscription.
|
|
14934
|
+
*
|
|
14935
|
+
* Lifecycle:
|
|
14936
|
+
* - `start()` starts position tracking and performs an initial reposition.
|
|
14937
|
+
* - `stop()` stops tracking and invalidates pending positioning results.
|
|
14938
|
+
* - `reposition()` computes and applies the position once.
|
|
14939
|
+
* - `configure(options)` updates options and repositions only when active.
|
|
14940
|
+
*/
|
|
14922
14941
|
class FloatingUI {
|
|
14923
14942
|
panel;
|
|
14924
14943
|
trigger;
|
|
14925
14944
|
options;
|
|
14926
|
-
|
|
14945
|
+
cleanup;
|
|
14946
|
+
repositionId = 0;
|
|
14927
14947
|
constructor(trigger, panel, options) {
|
|
14928
14948
|
this.trigger = trigger;
|
|
14929
14949
|
this.panel = panel;
|
|
@@ -14934,74 +14954,92 @@ class FloatingUI {
|
|
|
14934
14954
|
sameWidth: false,
|
|
14935
14955
|
...options,
|
|
14936
14956
|
};
|
|
14937
|
-
this.init(options);
|
|
14938
14957
|
}
|
|
14939
|
-
|
|
14940
|
-
|
|
14941
|
-
|
|
14958
|
+
/**
|
|
14959
|
+
* Merges new options into the current configuration. Active instances
|
|
14960
|
+
* reposition without recreating their `autoUpdate` subscription; stopped
|
|
14961
|
+
* instances apply the options the next time they start.
|
|
14962
|
+
*/
|
|
14963
|
+
configure(options) {
|
|
14964
|
+
Object.assign(this.options, options);
|
|
14965
|
+
this.repositionId += 1;
|
|
14966
|
+
if (options.sameWidth === false) {
|
|
14967
|
+
this.panel.style.width = '';
|
|
14968
|
+
}
|
|
14969
|
+
if (!this.cleanup)
|
|
14970
|
+
return;
|
|
14971
|
+
void this.reposition();
|
|
14942
14972
|
}
|
|
14943
|
-
|
|
14944
|
-
|
|
14945
|
-
|
|
14946
|
-
|
|
14947
|
-
|
|
14948
|
-
|
|
14949
|
-
|
|
14950
|
-
|
|
14951
|
-
|
|
14952
|
-
shift(),
|
|
14953
|
-
size(this.options.sameWidth && {
|
|
14954
|
-
apply({ rects, elements }) {
|
|
14955
|
-
Object.assign(elements.floating.style, {
|
|
14956
|
-
width: `${rects.reference.width}px`,
|
|
14957
|
-
});
|
|
14958
|
-
},
|
|
14959
|
-
}),
|
|
14960
|
-
arrow({ element: this.options.arrow || null }),
|
|
14961
|
-
this.positionChange(),
|
|
14962
|
-
hide(),
|
|
14963
|
-
],
|
|
14964
|
-
});
|
|
14965
|
-
this.applyPanelPosition(x, y);
|
|
14966
|
-
this.applyArrowPosition(placement, middlewareData);
|
|
14967
|
-
this.applyVisibility(middlewareData);
|
|
14968
|
-
})();
|
|
14969
|
-
});
|
|
14973
|
+
/**
|
|
14974
|
+
* Opens the `autoUpdate` subscription so the panel keeps tracking the
|
|
14975
|
+
* trigger through scroll, resize, layout and ancestor changes. No-op if
|
|
14976
|
+
* the subscription is already running.
|
|
14977
|
+
*/
|
|
14978
|
+
start() {
|
|
14979
|
+
if (this.cleanup)
|
|
14980
|
+
return;
|
|
14981
|
+
this.cleanup = autoUpdate(this.trigger, this.panel, () => void this.reposition());
|
|
14970
14982
|
}
|
|
14971
|
-
|
|
14972
|
-
|
|
14983
|
+
/**
|
|
14984
|
+
* Tears down the `autoUpdate` subscription. Idempotent — safe to call
|
|
14985
|
+
* multiple times, and before the first `start()`.
|
|
14986
|
+
*/
|
|
14987
|
+
stop() {
|
|
14988
|
+
this.repositionId += 1;
|
|
14989
|
+
if (!this.cleanup)
|
|
14973
14990
|
return;
|
|
14974
|
-
this.
|
|
14991
|
+
this.cleanup();
|
|
14992
|
+
this.cleanup = undefined;
|
|
14975
14993
|
}
|
|
14976
|
-
|
|
14977
|
-
|
|
14978
|
-
|
|
14979
|
-
|
|
14980
|
-
|
|
14981
|
-
|
|
14982
|
-
|
|
14983
|
-
|
|
14984
|
-
|
|
14985
|
-
|
|
14994
|
+
/**
|
|
14995
|
+
* Runs a single Floating UI `computePosition` pass and applies the
|
|
14996
|
+
* resulting styles to the panel (and the arrow, if configured).
|
|
14997
|
+
*/
|
|
14998
|
+
async reposition() {
|
|
14999
|
+
const repositionId = ++this.repositionId;
|
|
15000
|
+
const { arrow: arrowElement, distance, onPositionChange, placement: configuredPlacement, sameWidth, skidding, strategy, } = this.options;
|
|
15001
|
+
const { x, y, placement, middlewareData } = await computePosition(this.trigger, this.panel, {
|
|
15002
|
+
placement: configuredPlacement,
|
|
15003
|
+
strategy,
|
|
15004
|
+
middleware: [
|
|
15005
|
+
offset({ mainAxis: distance, crossAxis: skidding }),
|
|
15006
|
+
flip(),
|
|
15007
|
+
shift(),
|
|
15008
|
+
size({
|
|
15009
|
+
apply: ({ rects, elements }) => {
|
|
15010
|
+
if (repositionId !== this.repositionId || !elements.floating.isConnected)
|
|
15011
|
+
return;
|
|
15012
|
+
elements.floating.style.width = sameWidth ? `${rects.reference.width}px` : '';
|
|
15013
|
+
},
|
|
15014
|
+
}),
|
|
15015
|
+
...(arrowElement ? [arrow({ element: arrowElement })] : []),
|
|
15016
|
+
hide(),
|
|
15017
|
+
],
|
|
15018
|
+
});
|
|
15019
|
+
if (repositionId !== this.repositionId || !this.panel.isConnected)
|
|
15020
|
+
return;
|
|
15021
|
+
this.applyPanelPosition(x, y);
|
|
15022
|
+
this.applyArrowPosition(arrowElement, placement, middlewareData);
|
|
15023
|
+
this.applyVisibility(middlewareData);
|
|
15024
|
+
onPositionChange?.(placement);
|
|
14986
15025
|
}
|
|
14987
15026
|
applyPanelPosition(x, y) {
|
|
15027
|
+
const dpr = window.devicePixelRatio || 1;
|
|
15028
|
+
const roundedX = Math.round(x * dpr) / dpr;
|
|
15029
|
+
const roundedY = Math.round(y * dpr) / dpr;
|
|
14988
15030
|
Object.assign(this.panel.style, {
|
|
14989
15031
|
top: '0',
|
|
14990
15032
|
left: '0',
|
|
14991
|
-
transform: `translate(${
|
|
15033
|
+
transform: `translate(${roundedX}px, ${roundedY}px)`,
|
|
14992
15034
|
});
|
|
14993
15035
|
}
|
|
14994
|
-
applyArrowPosition(placement, middlewareData) {
|
|
14995
|
-
if (!
|
|
15036
|
+
applyArrowPosition(arrowElement, placement, middlewareData) {
|
|
15037
|
+
if (!arrowElement)
|
|
14996
15038
|
return;
|
|
14997
|
-
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
14998
|
-
const
|
|
14999
|
-
|
|
15000
|
-
|
|
15001
|
-
bottom: 'top',
|
|
15002
|
-
left: 'right',
|
|
15003
|
-
}[placement.split('-')[0]];
|
|
15004
|
-
Object.assign(this.options.arrow.style, {
|
|
15039
|
+
const { x: arrowX, y: arrowY } = middlewareData.arrow ?? {};
|
|
15040
|
+
const basePlacement = placement.split('-')[0];
|
|
15041
|
+
const staticSide = STATIC_SIDE_BY_PLACEMENT[basePlacement];
|
|
15042
|
+
Object.assign(arrowElement.style, {
|
|
15005
15043
|
left: arrowX != null ? `${arrowX}px` : '',
|
|
15006
15044
|
top: arrowY != null ? `${arrowY}px` : '',
|
|
15007
15045
|
right: '',
|
|
@@ -15010,14 +15048,8 @@ class FloatingUI {
|
|
|
15010
15048
|
});
|
|
15011
15049
|
}
|
|
15012
15050
|
applyVisibility(middlewareData) {
|
|
15013
|
-
const
|
|
15014
|
-
|
|
15015
|
-
visibility: referenceHidden ? 'hidden' : 'visible',
|
|
15016
|
-
});
|
|
15017
|
-
}
|
|
15018
|
-
roundByDPR(value) {
|
|
15019
|
-
const dpr = window.devicePixelRatio || 1;
|
|
15020
|
-
return Math.round(value * dpr) / dpr;
|
|
15051
|
+
const referenceHidden = middlewareData.hide?.referenceHidden;
|
|
15052
|
+
this.panel.style.visibility = referenceHidden ? 'hidden' : 'visible';
|
|
15021
15053
|
}
|
|
15022
15054
|
}
|
|
15023
15055
|
|
|
@@ -15098,7 +15130,7 @@ class BqPanel {
|
|
|
15098
15130
|
onPropChange() {
|
|
15099
15131
|
if (!isClient())
|
|
15100
15132
|
return;
|
|
15101
|
-
this.floatingUI?.
|
|
15133
|
+
this.floatingUI?.configure({ ...this.options });
|
|
15102
15134
|
}
|
|
15103
15135
|
// Events section
|
|
15104
15136
|
// Requires JSDocs for public API documentation
|
|
@@ -15120,10 +15152,15 @@ class BqPanel {
|
|
|
15120
15152
|
this.floatingUI = new FloatingUI(this.trigger, this.panel, { ...this.options });
|
|
15121
15153
|
this.handleOpenChange();
|
|
15122
15154
|
}
|
|
15155
|
+
connectedCallback() {
|
|
15156
|
+
if (!this.floatingUI || !this.open)
|
|
15157
|
+
return;
|
|
15158
|
+
this.showPanel();
|
|
15159
|
+
}
|
|
15123
15160
|
disconnectedCallback() {
|
|
15124
15161
|
if (!isClient())
|
|
15125
15162
|
return;
|
|
15126
|
-
this.floatingUI?.
|
|
15163
|
+
this.floatingUI?.stop();
|
|
15127
15164
|
// Ensure scroll lock is removed if the component is disconnected while the panel is open.
|
|
15128
15165
|
if (this.open && !this.disableScrollLock) {
|
|
15129
15166
|
unlockBodyScroll();
|
|
@@ -15144,7 +15181,7 @@ class BqPanel {
|
|
|
15144
15181
|
showPanel() {
|
|
15145
15182
|
if (!isClient())
|
|
15146
15183
|
return;
|
|
15147
|
-
this.floatingUI?.
|
|
15184
|
+
this.floatingUI?.start();
|
|
15148
15185
|
// Lock the body scroll if the disableScrollLock prop is not true.
|
|
15149
15186
|
if (!this.disableScrollLock) {
|
|
15150
15187
|
lockBodyScroll();
|
|
@@ -15152,6 +15189,7 @@ class BqPanel {
|
|
|
15152
15189
|
}
|
|
15153
15190
|
async hidePanel() {
|
|
15154
15191
|
this.open = false;
|
|
15192
|
+
this.floatingUI?.stop();
|
|
15155
15193
|
// Unlock the body scroll if the disableScrollLock prop is not true.
|
|
15156
15194
|
if (isClient() && !this.disableScrollLock) {
|
|
15157
15195
|
unlockBodyScroll();
|
|
@@ -15170,9 +15208,9 @@ class BqPanel {
|
|
|
15170
15208
|
// Always the last one in the class.
|
|
15171
15209
|
// ===================================
|
|
15172
15210
|
render() {
|
|
15173
|
-
return (hAsync("div", { key: '
|
|
15211
|
+
return (hAsync("div", { key: '6d0376f5f829189a179dfb409e06198dbd568d4d', "aria-hidden": !this.open ? 'true' : 'false', class: "bq-panel", hidden: !this.open, part: "panel", ref: (el) => {
|
|
15174
15212
|
this.panel = el;
|
|
15175
|
-
} }, hAsync("slot", { key: '
|
|
15213
|
+
} }, hAsync("slot", { key: '535289afc3b7e127a496c8b6b1492e3b22017606' })));
|
|
15176
15214
|
}
|
|
15177
15215
|
static get watchers() { return {
|
|
15178
15216
|
"open": [{
|
|
@@ -19728,7 +19766,7 @@ class BqToast {
|
|
|
19728
19766
|
}; }
|
|
19729
19767
|
}
|
|
19730
19768
|
|
|
19731
|
-
const bqTooltipCss = () => `.bq-tooltip--arrow:before,.rotate-45,.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1}.bq-tooltip--panel,.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.start-0{inset-inline-start:0}.-z-\\[1\\]{z-index:-1}.z-\\[--bq-tooltip--z-index\\]{z-index:var(--bq-tooltip--z-index)}.box-border{box-sizing:border-box}.rotate-45{--tw-rotate:45deg}.rotate-45,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rounded-\\[--bq-tooltip--border-radius\\]{border-radius:var(--bq-tooltip--border-radius)}.border-\\[length\\:--bq-tooltip--border-width\\]{border-width:var(--bq-tooltip--border-width)}.border-\\[color\\:--bq-tooltip--border-color\\]{border-color:var(--bq-tooltip--border-color)}.bg-\\[--bq-tooltip--background-color\\]{background-color:var(--bq-tooltip--background-color)}.text-\\[length\\:--bq-tooltip--font-size\\]{font-size:var(--bq-tooltip--font-size)}.leading-\\[--bq-tooltip--line-height\\]{line-height:var(--bq-tooltip--line-height)}.text-\\[color\\:--bq-tooltip--text-color\\]{color:var(--bq-tooltip--text-color)}.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.content-empty{--tw-content:"";content:var(--tw-content)}.bs-2{block-size:.5rem}.is-2{inline-size:.5rem}.is-\\[--bq-tooltip--width\\]{inline-size:var(--bq-tooltip--width)}.max-is-\\[--bq-tooltip--max-width\\]{max-inline-size:var(--bq-tooltip--max-width)}.p-b-\\[--bq-tooltip--paddingY\\]{padding-block:var(--bq-tooltip--paddingY)}.p-i-\\[--bq-tooltip--paddingX\\]{padding-inline:var(--bq-tooltip--paddingX)}.inset-bs-0{inset-block-start:0}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-tooltip--background-color:var(--bq-ui--inverse);--bq-tooltip--box-shadow:var(--bq-box-shadow--m);--bq-tooltip--font-size:var(--bq-font-size--m);--bq-tooltip--line-height:var(--bq-font-line-height--regular);--bq-tooltip--text-color:var(--bq-text--inverse);--bq-tooltip--paddingX:var(--bq-spacing-xs);--bq-tooltip--paddingY:var(--bq-spacing-xs2);--bq-tooltip--border-color:transparent;--bq-tooltip--border-radius:var(--bq-radius--s);--bq-tooltip--border-style:none;--bq-tooltip--border-width:unset;--bq-tooltip--max-width:320px;--bq-tooltip--width:max-content;--bq-tooltip--z-index:10}.bq-tooltip--panel{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);-webkit-animation:fade-in .3s ease 0s;animation:fade-in .3s ease 0s;background-color:var(--bq-tooltip--background-color);border-color:var(--bq-tooltip--border-color);border-radius:var(--bq-tooltip--border-radius);border-width:var(--bq-tooltip--border-width);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-sizing:border-box;color:var(--bq-tooltip--text-color);font-size:var(--bq-tooltip--font-size);inline-size:var(--bq-tooltip--width);line-height:var(--bq-tooltip--line-height);max-inline-size:var(--bq-tooltip--max-width);padding-block:var(--bq-tooltip--paddingY);padding-inline:var(--bq-tooltip--paddingX);pointer-events:none;position:fixed;z-index:var(--bq-tooltip--z-index)}.bq-tooltip--arrow,.bq-tooltip--arrow:before{block-size:.5rem;inline-size:.5rem;position:absolute;z-index:-1}.bq-tooltip--arrow:before{--tw-rotate:45deg;--tw-content:"";background-color:var(--bq-tooltip--background-color);content:var(--tw-content);inset-block-start:0;inset-inline-start:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.visible{visibility:visible}.static{position:static}.relative{position:relative}.hidden{display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}`;
|
|
19769
|
+
const bqTooltipCss = () => `.bq-tooltip--arrow:before,.rotate-45,.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1}.bq-tooltip--panel,.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.inset-\\[unset\\]{inset:unset}.start-0{inset-inline-start:0}.-z-\\[1\\]{z-index:-1}.z-\\[--bq-tooltip--z-index\\]{z-index:var(--bq-tooltip--z-index)}.m-0{margin:0}.box-border{box-sizing:border-box}.rotate-45{--tw-rotate:45deg}.rotate-45,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.overflow-visible{overflow:visible}.rounded-\\[--bq-tooltip--border-radius\\]{border-radius:var(--bq-tooltip--border-radius)}.border-\\[length\\:--bq-tooltip--border-width\\]{border-width:var(--bq-tooltip--border-width)}.border-\\[color\\:--bq-tooltip--border-color\\]{border-color:var(--bq-tooltip--border-color)}.bg-\\[--bq-tooltip--background-color\\]{background-color:var(--bq-tooltip--background-color)}.text-\\[length\\:--bq-tooltip--font-size\\]{font-size:var(--bq-tooltip--font-size)}.leading-\\[--bq-tooltip--line-height\\]{line-height:var(--bq-tooltip--line-height)}.text-\\[color\\:--bq-tooltip--text-color\\]{color:var(--bq-tooltip--text-color)}.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.content-empty{--tw-content:"";content:var(--tw-content)}.bs-2{block-size:.5rem}.is-2{inline-size:.5rem}.is-\\[--bq-tooltip--width\\]{inline-size:var(--bq-tooltip--width)}.max-is-\\[--bq-tooltip--max-width\\]{max-inline-size:var(--bq-tooltip--max-width)}.p-b-\\[--bq-tooltip--paddingY\\]{padding-block:var(--bq-tooltip--paddingY)}.p-i-\\[--bq-tooltip--paddingX\\]{padding-inline:var(--bq-tooltip--paddingX)}.inset-bs-0{inset-block-start:0}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-tooltip--background-color:var(--bq-ui--inverse);--bq-tooltip--box-shadow:var(--bq-box-shadow--m);--bq-tooltip--font-size:var(--bq-font-size--m);--bq-tooltip--line-height:var(--bq-font-line-height--regular);--bq-tooltip--text-color:var(--bq-text--inverse);--bq-tooltip--paddingX:var(--bq-spacing-xs);--bq-tooltip--paddingY:var(--bq-spacing-xs2);--bq-tooltip--border-color:transparent;--bq-tooltip--border-radius:var(--bq-radius--s);--bq-tooltip--border-style:none;--bq-tooltip--border-width:unset;--bq-tooltip--max-width:320px;--bq-tooltip--width:max-content;--bq-tooltip--z-index:10}.bq-tooltip--panel{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);-webkit-animation:fade-in .3s ease 0s;animation:fade-in .3s ease 0s;background-color:var(--bq-tooltip--background-color);border-color:var(--bq-tooltip--border-color);border-radius:var(--bq-tooltip--border-radius);border-style:var(--bq-tooltip--border-style);border-width:var(--bq-tooltip--border-width);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-sizing:border-box;color:var(--bq-tooltip--text-color);font-size:var(--bq-tooltip--font-size);inline-size:var(--bq-tooltip--width);line-height:var(--bq-tooltip--line-height);max-inline-size:var(--bq-tooltip--max-width);padding-block:var(--bq-tooltip--paddingY);padding-inline:var(--bq-tooltip--paddingX);pointer-events:none;position:fixed;z-index:var(--bq-tooltip--z-index)}.bq-tooltip--panel[popover]{inset:unset;margin:0;overflow:visible;position:absolute}.bq-tooltip--arrow,.bq-tooltip--arrow:before{block-size:.5rem;inline-size:.5rem;position:absolute;z-index:-1}.bq-tooltip--arrow:before{--tw-rotate:45deg;--tw-content:"";background-color:var(--bq-tooltip--background-color);content:var(--tw-content);inset-block-start:0;inset-inline-start:0}.bq-tooltip--arrow:before,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.visible{visibility:visible}.static{position:static}.relative{position:relative}.hidden{display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}`;
|
|
19732
19770
|
|
|
19733
19771
|
/**
|
|
19734
19772
|
* The Tooltip component is a small pop-up box that appears when a user hovers over or clicks on an element, providing additional information or context.
|
|
@@ -19790,6 +19828,16 @@ class BqTooltip {
|
|
|
19790
19828
|
panel;
|
|
19791
19829
|
arrow;
|
|
19792
19830
|
floatingUI;
|
|
19831
|
+
/**
|
|
19832
|
+
* Whether the runtime supports the HTML Popover API. When `true`, the
|
|
19833
|
+
* panel is promoted to the browser top layer via `showPopover()`, which
|
|
19834
|
+
* bypasses containing blocks created by ancestor `transform`, `filter`,
|
|
19835
|
+
* `contain`, `will-change`, etc. When `false`, the panel remains a
|
|
19836
|
+
* regular `position: fixed` element in the shadow root, which still
|
|
19837
|
+
* covers the common case but is subject to those containing-block
|
|
19838
|
+
* quirks.
|
|
19839
|
+
*/
|
|
19840
|
+
supportsPopover = isPopoverSupported();
|
|
19793
19841
|
get el() { return getElement(this); }
|
|
19794
19842
|
// State() variables
|
|
19795
19843
|
// Inlined decorator, alphabetical order
|
|
@@ -19822,12 +19870,21 @@ class BqTooltip {
|
|
|
19822
19870
|
}
|
|
19823
19871
|
await this.show();
|
|
19824
19872
|
}
|
|
19873
|
+
handleAlwaysVisibleChange() {
|
|
19874
|
+
if (this.alwaysVisible || this.visible) {
|
|
19875
|
+
this.showTooltip();
|
|
19876
|
+
return;
|
|
19877
|
+
}
|
|
19878
|
+
this.hideTooltip();
|
|
19879
|
+
}
|
|
19825
19880
|
handleFloatingUIOptionsChange() {
|
|
19826
|
-
this.floatingUI
|
|
19881
|
+
this.floatingUI?.configure({
|
|
19882
|
+
...(!this.hideArrow && { arrow: this.arrow }),
|
|
19827
19883
|
placement: this.placement,
|
|
19828
19884
|
distance: this.distance,
|
|
19829
19885
|
sameWidth: this.sameWidth,
|
|
19830
|
-
strategy:
|
|
19886
|
+
strategy: this.floatingStrategy,
|
|
19887
|
+
skidding: 0,
|
|
19831
19888
|
});
|
|
19832
19889
|
}
|
|
19833
19890
|
// Events section
|
|
@@ -19847,17 +19904,49 @@ class BqTooltip {
|
|
|
19847
19904
|
// Ordered by their natural call order
|
|
19848
19905
|
// =====================================
|
|
19849
19906
|
componentDidLoad() {
|
|
19907
|
+
// Promote the panel to the top layer when the Popover API is available.
|
|
19908
|
+
// This escapes containing blocks created by ancestor `transform`,
|
|
19909
|
+
// `filter`, `contain`, `will-change`, etc., which is the root cause of
|
|
19910
|
+
// scroll-related tooltip drift inside virtualised or transformed
|
|
19911
|
+
// containers (e.g. tall tables, dialogs). We use `manual` mode so BEEQ
|
|
19912
|
+
// keeps full control of show/hide semantics (delegated close, focus,
|
|
19913
|
+
// Escape) instead of the browser's `auto` light-dismiss behaviour.
|
|
19914
|
+
if (this.supportsPopover) {
|
|
19915
|
+
this.panel.popover = 'manual';
|
|
19916
|
+
}
|
|
19850
19917
|
this.floatingUI = new FloatingUI(this.trigger, this.panel, {
|
|
19851
19918
|
...(!this.hideArrow && { arrow: this.arrow }),
|
|
19852
19919
|
placement: this.placement,
|
|
19853
19920
|
distance: this.distance,
|
|
19854
19921
|
sameWidth: this.sameWidth,
|
|
19855
|
-
strategy:
|
|
19922
|
+
strategy: this.floatingStrategy,
|
|
19856
19923
|
skidding: 0,
|
|
19857
19924
|
});
|
|
19925
|
+
// Honour the initial `visible` / `always-visible` props. Stencil's
|
|
19926
|
+
// `@Watch('visible')` does not fire for the initial value, so components
|
|
19927
|
+
// rendered with `visible` already true (or `always-visible`) would
|
|
19928
|
+
// otherwise stay hidden — in the Popover path because `showPopover()`
|
|
19929
|
+
// is only called from `show()`, and in the fallback path because the
|
|
19930
|
+
// panel's `hidden` attribute reflects the state at first render but
|
|
19931
|
+
// Floating UI would not have run a first positioning pass. Calling
|
|
19932
|
+
// `showTooltip()` here guarantees a consistent first paint.
|
|
19933
|
+
if (this.visible || this.alwaysVisible) {
|
|
19934
|
+
this.showTooltip();
|
|
19935
|
+
}
|
|
19936
|
+
}
|
|
19937
|
+
componentDidRender() {
|
|
19938
|
+
const arrow = this.hideArrow ? null : this.arrow;
|
|
19939
|
+
if (!this.floatingUI || this.floatingUI.options.arrow === arrow)
|
|
19940
|
+
return;
|
|
19941
|
+
this.floatingUI.configure({ arrow });
|
|
19942
|
+
}
|
|
19943
|
+
connectedCallback() {
|
|
19944
|
+
if (!this.floatingUI || (!this.visible && !this.alwaysVisible))
|
|
19945
|
+
return;
|
|
19946
|
+
this.showTooltip();
|
|
19858
19947
|
}
|
|
19859
19948
|
disconnectedCallback() {
|
|
19860
|
-
this.floatingUI?.
|
|
19949
|
+
this.floatingUI?.stop();
|
|
19861
19950
|
}
|
|
19862
19951
|
// Listeners
|
|
19863
19952
|
// ==============
|
|
@@ -19951,13 +20040,23 @@ class BqTooltip {
|
|
|
19951
20040
|
showTooltip = () => {
|
|
19952
20041
|
if (!this.panel)
|
|
19953
20042
|
return;
|
|
19954
|
-
this.
|
|
20043
|
+
if (this.supportsPopover && !this.panel.matches(':popover-open')) {
|
|
20044
|
+
this.panel.showPopover();
|
|
20045
|
+
}
|
|
20046
|
+
this.floatingUI?.start();
|
|
19955
20047
|
};
|
|
19956
20048
|
hideTooltip = () => {
|
|
19957
20049
|
if (!this.panel)
|
|
19958
20050
|
return;
|
|
20051
|
+
this.floatingUI?.stop();
|
|
20052
|
+
if (this.supportsPopover && this.panel.matches(':popover-open')) {
|
|
20053
|
+
this.panel.hidePopover();
|
|
20054
|
+
}
|
|
19959
20055
|
this.visible = false;
|
|
19960
20056
|
};
|
|
20057
|
+
get floatingStrategy() {
|
|
20058
|
+
return this.supportsPopover ? 'absolute' : 'fixed';
|
|
20059
|
+
}
|
|
19961
20060
|
get isHidden() {
|
|
19962
20061
|
return !this.visible && !this.alwaysVisible;
|
|
19963
20062
|
}
|
|
@@ -19965,22 +20064,22 @@ class BqTooltip {
|
|
|
19965
20064
|
// Always the last one in the class.
|
|
19966
20065
|
// ===================================
|
|
19967
20066
|
render() {
|
|
19968
|
-
return (hAsync("div", { key: '
|
|
20067
|
+
return (hAsync("div", { key: 'ee9c0ef2273ac7fe6dfb0be9133309e2c667d0d4', class: "bq-tooltip relative", part: "base" }, hAsync("div", { key: '659ef342fc16bb17fcd31ecec65d227716ec19d6', class: "bq-tooltip--trigger", onClick: this.handleTriggerOnClick, onFocusin: this.handleTriggerFocusin, onFocusout: this.handleTriggerFocusout, onMouseEnter: this.handleTriggerMouseOver, onMouseLeave: this.handleTriggerMouseLeave, part: "trigger", ref: (el) => {
|
|
19969
20068
|
this.trigger = el;
|
|
19970
|
-
} }, hAsync("slot", { key: '
|
|
20069
|
+
} }, hAsync("slot", { key: 'ca06aec8248f0697046e955496aeea7f576b668c', name: "trigger" })), hAsync("div", { key: 'e0c6aeb17ef8389ee2b94bf539fe18b75e2b3efe', "aria-hidden": String(this.isHidden), class: "bq-tooltip--panel", hidden: this.supportsPopover ? undefined : this.isHidden, part: "panel", ref: (el) => {
|
|
19971
20070
|
this.panel = el;
|
|
19972
|
-
}, role: "tooltip" }, !this.hideArrow && (hAsync("div", { key: '
|
|
20071
|
+
}, role: "tooltip" }, !this.hideArrow && (hAsync("div", { key: 'b8a15a30ca88f460c957e99ed28492e967070d39', class: "bq-tooltip--arrow", ref: (el) => {
|
|
19973
20072
|
this.arrow = el;
|
|
19974
|
-
} })), hAsync("slot", { key: '
|
|
20073
|
+
} })), hAsync("slot", { key: 'da5bc5041f93451b355f383add0a72891168b79d' }))));
|
|
19975
20074
|
}
|
|
19976
20075
|
static get watchers() { return {
|
|
19977
20076
|
"visible": [{
|
|
19978
20077
|
"handleVisibleChange": 0
|
|
19979
20078
|
}],
|
|
19980
|
-
"
|
|
19981
|
-
"
|
|
20079
|
+
"alwaysVisible": [{
|
|
20080
|
+
"handleAlwaysVisibleChange": 0
|
|
19982
20081
|
}],
|
|
19983
|
-
"
|
|
20082
|
+
"distance": [{
|
|
19984
20083
|
"handleFloatingUIOptionsChange": 0
|
|
19985
20084
|
}],
|
|
19986
20085
|
"placement": [{
|