//#region node_modules/vuetify/lib/util/box.js
var Box = class {
	constructor(args) {
		const pageScale = document.body.currentCSSZoom ?? 1;
		const isElement = args instanceof Element;
		const factor = isElement ? 1 + (1 - pageScale) / pageScale : 1;
		const { x, y, width, height } = isElement ? args.getBoundingClientRect() : args;
		this.x = x * factor;
		this.y = y * factor;
		this.width = width * factor;
		this.height = height * factor;
	}
	get top() {
		return this.y;
	}
	get bottom() {
		return this.y + this.height;
	}
	get left() {
		return this.x;
	}
	get right() {
		return this.x + this.width;
	}
};
function getOverflow(a, b) {
	return {
		x: {
			before: Math.max(0, b.left - a.left),
			after: Math.max(0, a.right - b.right)
		},
		y: {
			before: Math.max(0, b.top - a.top),
			after: Math.max(0, a.bottom - b.bottom)
		}
	};
}
function getTargetBox(target) {
	if (Array.isArray(target)) {
		const pageScale = document.body.currentCSSZoom ?? 1;
		const factor = 1 + (1 - pageScale) / pageScale;
		return new Box({
			x: target[0] * factor,
			y: target[1] * factor,
			width: 0 * factor,
			height: 0 * factor
		});
	} else return new Box(target);
}
function getElementBox(el) {
	if (el === document.documentElement) if (!visualViewport) return new Box({
		x: 0,
		y: 0,
		width: document.documentElement.clientWidth,
		height: document.documentElement.clientHeight
	});
	else {
		const pageScale = document.body.currentCSSZoom ?? 1;
		return new Box({
			x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
			y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
			width: visualViewport.width * visualViewport.scale / pageScale,
			height: visualViewport.height * visualViewport.scale / pageScale
		});
	}
	else return new Box(el);
}
//#endregion
export { getTargetBox as i, getElementBox as n, getOverflow as r, Box as t };

//# sourceMappingURL=box-BNWMOtF7.js.map