'use client' "use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/modifiers.ts var modifiers_exports = {}; __export(modifiers_exports, { innerArrow: () => innerArrow, matchWidth: () => matchWidth, positionArrow: () => positionArrow, transformOrigin: () => transformOrigin }); module.exports = __toCommonJS(modifiers_exports); // src/utils.ts var toVar = (value, fallback) => ({ var: value, varRef: fallback ? `var(${value}, ${fallback})` : `var(${value})` }); var cssVars = { arrowShadowColor: toVar("--popper-arrow-shadow-color"), arrowSize: toVar("--popper-arrow-size", "8px"), arrowSizeHalf: toVar("--popper-arrow-size-half"), arrowBg: toVar("--popper-arrow-bg"), transformOrigin: toVar("--popper-transform-origin"), arrowOffset: toVar("--popper-arrow-offset") }; function getBoxShadow(placement) { if (placement.includes("top")) return `1px 1px 0px 0 var(--popper-arrow-shadow-color)`; if (placement.includes("bottom")) return `-1px -1px 0px 0 var(--popper-arrow-shadow-color)`; if (placement.includes("right")) return `-1px 1px 0px 0 var(--popper-arrow-shadow-color)`; if (placement.includes("left")) return `1px -1px 0px 0 var(--popper-arrow-shadow-color)`; } var transforms = { top: "bottom center", "top-start": "bottom left", "top-end": "bottom right", bottom: "top center", "bottom-start": "top left", "bottom-end": "top right", left: "right center", "left-start": "right top", "left-end": "right bottom", right: "left center", "right-start": "left top", "right-end": "left bottom" }; var toTransformOrigin = (placement) => transforms[placement]; // src/modifiers.ts var matchWidth = { name: "matchWidth", enabled: true, phase: "beforeWrite", requires: ["computeStyles"], fn: ({ state }) => { state.styles.popper.width = `${state.rects.reference.width}px`; }, effect: ({ state }) => () => { const reference = state.elements.reference; state.elements.popper.style.width = `${reference.offsetWidth}px`; } }; var transformOrigin = { name: "transformOrigin", enabled: true, phase: "write", fn: ({ state }) => { setTransformOrigin(state); }, effect: ({ state }) => () => { setTransformOrigin(state); } }; var setTransformOrigin = (state) => { state.elements.popper.style.setProperty( cssVars.transformOrigin.var, toTransformOrigin(state.placement) ); }; var positionArrow = { name: "positionArrow", enabled: true, phase: "afterWrite", fn: ({ state }) => { setArrowStyles(state); } }; var setArrowStyles = (state) => { var _a; if (!state.placement) return; const overrides = getArrowStyle(state.placement); if (((_a = state.elements) == null ? void 0 : _a.arrow) && overrides) { Object.assign(state.elements.arrow.style, { [overrides.property]: overrides.value, width: cssVars.arrowSize.varRef, height: cssVars.arrowSize.varRef, zIndex: -1 }); const vars = { [cssVars.arrowSizeHalf.var]: `calc(${cssVars.arrowSize.varRef} / 2 - 1px)`, [cssVars.arrowOffset.var]: `calc(${cssVars.arrowSizeHalf.varRef} * -1)` }; for (const property in vars) { state.elements.arrow.style.setProperty(property, vars[property]); } } }; var getArrowStyle = (placement) => { if (placement.startsWith("top")) { return { property: "bottom", value: cssVars.arrowOffset.varRef }; } if (placement.startsWith("bottom")) { return { property: "top", value: cssVars.arrowOffset.varRef }; } if (placement.startsWith("left")) { return { property: "right", value: cssVars.arrowOffset.varRef }; } if (placement.startsWith("right")) { return { property: "left", value: cssVars.arrowOffset.varRef }; } }; var innerArrow = { name: "innerArrow", enabled: true, phase: "main", requires: ["arrow"], fn: ({ state }) => { setInnerArrowStyles(state); }, effect: ({ state }) => () => { setInnerArrowStyles(state); } }; var setInnerArrowStyles = (state) => { if (!state.elements.arrow) return; const inner = state.elements.arrow.querySelector( "[data-popper-arrow-inner]" ); if (!inner) return; const boxShadow = getBoxShadow(state.placement); if (boxShadow) { inner.style.setProperty("--popper-arrow-default-shadow", boxShadow); } Object.assign(inner.style, { transform: "rotate(45deg)", background: cssVars.arrowBg.varRef, top: 0, left: 0, width: "100%", height: "100%", position: "absolute", zIndex: "inherit", boxShadow: `var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))` }); }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { innerArrow, matchWidth, positionArrow, transformOrigin }); //# sourceMappingURL=modifiers.js.map