export class Box { constructor(_ref) { let { x, y, width, height } = _ref; this.x = x; this.y = y; this.width = width; this.height = height; } get top() { return this.y; } get bottom() { return this.y + this.height; } get left() { return this.x; } get right() { return this.x + this.width; } } export 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) } }; } export function getTargetBox(target) { if (Array.isArray(target)) { return new Box({ x: target[0], y: target[1], width: 0, height: 0 }); } else { return target.getBoundingClientRect(); } } //# sourceMappingURL=box.mjs.map