@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
104 lines (101 loc) • 3.43 kB
JavaScript
import { rem } from '@mantine/styles';
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
function horizontalSide(placement, arrowY, arrowOffset, arrowPosition) {
if (placement === "center" || arrowPosition === "center") {
return { top: arrowY };
}
if (placement === "end") {
return { bottom: arrowOffset };
}
if (placement === "start") {
return { top: arrowOffset };
}
return {};
}
function verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir) {
if (placement === "center" || arrowPosition === "center") {
return { left: arrowX };
}
if (placement === "end") {
return { [dir === "ltr" ? "right" : "left"]: arrowOffset };
}
if (placement === "start") {
return { [dir === "ltr" ? "left" : "right"]: arrowOffset };
}
return {};
}
const radiusByFloatingSide = {
bottom: "borderTopLeftRadius",
left: "borderTopRightRadius",
right: "borderBottomLeftRadius",
top: "borderBottomRightRadius"
};
function getArrowPositionStyles({
position,
arrowSize,
arrowOffset,
arrowRadius,
arrowPosition,
arrowX,
arrowY,
dir
}) {
const [side, placement = "center"] = position.split("-");
const baseStyles = {
width: rem(arrowSize),
height: rem(arrowSize),
transform: "rotate(45deg)",
position: "absolute",
[radiusByFloatingSide[side]]: rem(arrowRadius)
};
const arrowPlacement = rem(-arrowSize / 2);
if (side === "left") {
return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {
right: arrowPlacement,
borderLeftColor: "transparent",
borderBottomColor: "transparent"
});
}
if (side === "right") {
return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {
left: arrowPlacement,
borderRightColor: "transparent",
borderTopColor: "transparent"
});
}
if (side === "top") {
return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {
bottom: arrowPlacement,
borderTopColor: "transparent",
borderLeftColor: "transparent"
});
}
if (side === "bottom") {
return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {
top: arrowPlacement,
borderBottomColor: "transparent",
borderRightColor: "transparent"
});
}
return {};
}
export { getArrowPositionStyles };
//# sourceMappingURL=get-arrow-position-styles.js.map