{"version":3,"file":"dist-ImWxW4aL.cjs","names":["useLayoutEffect","React","arrow$2","offset$1","shift$1","limitShift$1","flip$1","size$1","hide$1","createContextScope","React","useComposedRefs","Primitive","arrow","useSize","autoUpdate","floatingUIarrow","useCallbackRef"],"sources":["../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@radix-ui/react-popper/dist/index.mjs"],"sourcesContent":["import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (typeof a === 'function' && a.toString() === b.toString()) {\n    return true;\n  }\n  let length;\n  let i;\n  let keys;\n  if (a && b && typeof a === 'object') {\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length !== b.length) return false;\n      for (i = length; i-- !== 0;) {\n        if (!deepEqual(a[i], b[i])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) {\n      return false;\n    }\n    for (i = length; i-- !== 0;) {\n      if (!{}.hasOwnProperty.call(b, keys[i])) {\n        return false;\n      }\n    }\n    for (i = length; i-- !== 0;) {\n      const key = keys[i];\n      if (key === '_owner' && a.$$typeof) {\n        continue;\n      }\n      if (!deepEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n  if (typeof window === 'undefined') {\n    return 1;\n  }\n  const win = element.ownerDocument.defaultView || window;\n  return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n  const dpr = getDPR(element);\n  return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n  const ref = React.useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform,\n    elements: {\n      reference: externalReference,\n      floating: externalFloating\n    } = {},\n    transform = true,\n    whileElementsMounted,\n    open\n  } = options;\n  const [data, setData] = React.useState({\n    x: 0,\n    y: 0,\n    strategy,\n    placement,\n    middlewareData: {},\n    isPositioned: false\n  });\n  const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n  if (!deepEqual(latestMiddleware, middleware)) {\n    setLatestMiddleware(middleware);\n  }\n  const [_reference, _setReference] = React.useState(null);\n  const [_floating, _setFloating] = React.useState(null);\n  const setReference = React.useCallback(node => {\n    if (node !== referenceRef.current) {\n      referenceRef.current = node;\n      _setReference(node);\n    }\n  }, []);\n  const setFloating = React.useCallback(node => {\n    if (node !== floatingRef.current) {\n      floatingRef.current = node;\n      _setFloating(node);\n    }\n  }, []);\n  const referenceEl = externalReference || _reference;\n  const floatingEl = externalFloating || _floating;\n  const referenceRef = React.useRef(null);\n  const floatingRef = React.useRef(null);\n  const dataRef = React.useRef(data);\n  const hasWhileElementsMounted = whileElementsMounted != null;\n  const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n  const platformRef = useLatestRef(platform);\n  const openRef = useLatestRef(open);\n  const update = React.useCallback(() => {\n    if (!referenceRef.current || !floatingRef.current) {\n      return;\n    }\n    const config = {\n      placement,\n      strategy,\n      middleware: latestMiddleware\n    };\n    if (platformRef.current) {\n      config.platform = platformRef.current;\n    }\n    computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n      const fullData = {\n        ...data,\n        // The floating element's position may be recomputed while it's closed\n        // but still mounted (such as when transitioning out). To ensure\n        // `isPositioned` will be `false` initially on the next open, avoid\n        // setting it to `true` when `open === false` (must be specified).\n        isPositioned: openRef.current !== false\n      };\n      if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n        dataRef.current = fullData;\n        ReactDOM.flushSync(() => {\n          setData(fullData);\n        });\n      }\n    });\n  }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n  index(() => {\n    if (open === false && dataRef.current.isPositioned) {\n      dataRef.current.isPositioned = false;\n      setData(data => ({\n        ...data,\n        isPositioned: false\n      }));\n    }\n  }, [open]);\n  const isMountedRef = React.useRef(false);\n  index(() => {\n    isMountedRef.current = true;\n    return () => {\n      isMountedRef.current = false;\n    };\n  }, []);\n  index(() => {\n    if (referenceEl) referenceRef.current = referenceEl;\n    if (floatingEl) floatingRef.current = floatingEl;\n    if (referenceEl && floatingEl) {\n      if (whileElementsMountedRef.current) {\n        return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n      }\n      update();\n    }\n  }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n  const refs = React.useMemo(() => ({\n    reference: referenceRef,\n    floating: floatingRef,\n    setReference,\n    setFloating\n  }), [setReference, setFloating]);\n  const elements = React.useMemo(() => ({\n    reference: referenceEl,\n    floating: floatingEl\n  }), [referenceEl, floatingEl]);\n  const floatingStyles = React.useMemo(() => {\n    const initialStyles = {\n      position: strategy,\n      left: 0,\n      top: 0\n    };\n    if (!elements.floating) {\n      return initialStyles;\n    }\n    const x = roundByDPR(elements.floating, data.x);\n    const y = roundByDPR(elements.floating, data.y);\n    if (transform) {\n      return {\n        ...initialStyles,\n        transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n        ...(getDPR(elements.floating) >= 1.5 && {\n          willChange: 'transform'\n        })\n      };\n    }\n    return {\n      position: strategy,\n      left: x,\n      top: y\n    };\n  }, [strategy, transform, elements.floating, data.x, data.y]);\n  return React.useMemo(() => ({\n    ...data,\n    update,\n    refs,\n    elements,\n    floatingStyles\n  }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n  function isRef(value) {\n    return {}.hasOwnProperty.call(value, 'current');\n  }\n  return {\n    name: 'arrow',\n    options,\n    fn(state) {\n      const {\n        element,\n        padding\n      } = typeof options === 'function' ? options(state) : options;\n      if (element && isRef(element)) {\n        if (element.current != null) {\n          return arrow$2({\n            element: element.current,\n            padding\n          }).fn(state);\n        }\n        return {};\n      }\n      if (element) {\n        return arrow$2({\n          element,\n          padding\n        }).fn(state);\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n  ...offset$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n  ...shift$1(options),\n  options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n  ...limitShift$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n  ...flip$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n  ...size$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n  ...autoPlacement$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n  ...hide$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n  ...inline$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n  ...arrow$1(options),\n  options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/popper.tsx\nimport * as React from \"react\";\nimport {\n  useFloating,\n  autoUpdate,\n  offset,\n  shift,\n  limitShift,\n  hide,\n  arrow as floatingUIarrow,\n  flip,\n  size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = /* @__PURE__ */ __name((props) => {\n  const { __scopePopper, children } = props;\n  const [anchor, setAnchor] = React.useState(null);\n  const [placementState, setPlacementState] = React.useState(void 0);\n  return /* @__PURE__ */ jsx(\n    PopperProvider,\n    {\n      scope: __scopePopper,\n      anchor,\n      onAnchorChange: setAnchor,\n      placementState,\n      setPlacementState,\n      children\n    }\n  );\n}, \"Popper\");\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function PopperAnchor2(props, forwardedRef) {\n    const { __scopePopper, virtualRef, ...anchorProps } = props;\n    const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n    const ref = React.useRef(null);\n    const onAnchorChange = context.onAnchorChange;\n    const callbackRef = React.useCallback(\n      (node) => {\n        ref.current = node;\n        if (node) {\n          onAnchorChange(node);\n        }\n      },\n      [onAnchorChange]\n    );\n    const composedRefs = useComposedRefs(forwardedRef, callbackRef);\n    const anchorRef = React.useRef(null);\n    React.useEffect(() => {\n      if (!virtualRef) {\n        return;\n      }\n      const previousAnchor = anchorRef.current;\n      anchorRef.current = virtualRef.current;\n      if (previousAnchor !== anchorRef.current) {\n        onAnchorChange(anchorRef.current);\n      }\n    });\n    const sideAndAlign = context.placementState && getSideAndAlignFromPlacement(context.placementState);\n    const placedSide = sideAndAlign?.[0];\n    const placedAlign = sideAndAlign?.[1];\n    return virtualRef ? null : /* @__PURE__ */ jsx(\n      Primitive.div,\n      {\n        \"data-radix-popper-side\": placedSide,\n        \"data-radix-popper-align\": placedAlign,\n        ...anchorProps,\n        ref: composedRefs\n      }\n    );\n  }, \"PopperAnchor\")\n);\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function PopperContent2(props, forwardedRef) {\n    const {\n      __scopePopper,\n      side = \"bottom\",\n      sideOffset = 0,\n      align = \"center\",\n      alignOffset = 0,\n      arrowPadding = 0,\n      avoidCollisions = true,\n      collisionBoundary = [],\n      collisionPadding: collisionPaddingProp = 0,\n      sticky = \"partial\",\n      hideWhenDetached = false,\n      updatePositionStrategy = \"optimized\",\n      onPlaced,\n      ...contentProps\n    } = props;\n    const context = usePopperContext(CONTENT_NAME, __scopePopper);\n    const [content, setContent] = React.useState(null);\n    const composedRefs = useComposedRefs(forwardedRef, setContent);\n    const [arrow, setArrow] = React.useState(null);\n    const arrowSize = useSize(arrow);\n    const arrowWidth = arrowSize?.width ?? 0;\n    const arrowHeight = arrowSize?.height ?? 0;\n    const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n    const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n    const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n    const hasExplicitBoundaries = boundary.length > 0;\n    const detectOverflowOptions = {\n      padding: collisionPadding,\n      boundary: boundary.filter(isNotNull),\n      // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n      altBoundary: hasExplicitBoundaries\n    };\n    const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n      // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n      strategy: \"fixed\",\n      placement: desiredPlacement,\n      whileElementsMounted: /* @__PURE__ */ __name((...args) => {\n        const cleanup = autoUpdate(...args, {\n          animationFrame: updatePositionStrategy === \"always\"\n        });\n        return cleanup;\n      }, \"whileElementsMounted\"),\n      elements: {\n        reference: context.anchor\n      },\n      middleware: [\n        offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n        avoidCollisions && shift({\n          mainAxis: true,\n          crossAxis: false,\n          limiter: sticky === \"partial\" ? limitShift() : void 0,\n          ...detectOverflowOptions\n        }),\n        avoidCollisions && flip({ ...detectOverflowOptions }),\n        size({\n          ...detectOverflowOptions,\n          apply: /* @__PURE__ */ __name(({ elements, rects, availableWidth, availableHeight }) => {\n            const { width: anchorWidth, height: anchorHeight } = rects.reference;\n            const contentStyle = elements.floating.style;\n            contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n            contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n            contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n            contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n          }, \"apply\")\n        }),\n        arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n        transformOrigin({ arrowWidth, arrowHeight }),\n        hideWhenDetached && hide({\n          strategy: \"referenceHidden\",\n          ...detectOverflowOptions,\n          // `hide` detects whether the anchor (reference) is clipped, so when\n          // no explicit `collisionBoundary` is set we fall back to Floating\n          // UI's default clipping ancestors (e.g. a scrollable menu). This\n          // lets an occluded submenu hide once its anchor scrolls out of view\n          // (#3237). The collision/size middlewares deliberately keep the\n          // viewport-based default to avoid clamping content rendered inside\n          // transformed or overflow-clipping portal containers.\n          boundary: hasExplicitBoundaries ? detectOverflowOptions.boundary : void 0\n        })\n      ]\n    });\n    const setPlacementState = context.setPlacementState;\n    useLayoutEffect(() => {\n      setPlacementState(placement);\n      return () => {\n        setPlacementState(void 0);\n      };\n    }, [placement, setPlacementState]);\n    const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n    const handlePlaced = useCallbackRef(onPlaced);\n    useLayoutEffect(() => {\n      if (isPositioned) {\n        handlePlaced?.();\n      }\n    }, [isPositioned, handlePlaced]);\n    const arrowX = middlewareData.arrow?.x;\n    const arrowY = middlewareData.arrow?.y;\n    const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n    const [contentZIndex, setContentZIndex] = React.useState();\n    useLayoutEffect(() => {\n      if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n    }, [content]);\n    return /* @__PURE__ */ jsx(\n      \"div\",\n      {\n        ref: refs.setFloating,\n        \"data-radix-popper-content-wrapper\": \"\",\n        style: {\n          ...floatingStyles,\n          transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n          // keep off the page when measuring\n          minWidth: \"max-content\",\n          zIndex: contentZIndex,\n          \"--radix-popper-transform-origin\": [\n            middlewareData.transformOrigin?.x,\n            middlewareData.transformOrigin?.y\n          ].join(\" \"),\n          // hide the content if using the hide middleware and should be hidden\n          // set visibility to hidden and disable pointer events so the UI behaves\n          // as if the PopperContent isn't there at all\n          ...middlewareData.hide?.referenceHidden && {\n            visibility: \"hidden\",\n            pointerEvents: \"none\"\n          }\n        },\n        dir: props.dir,\n        children: /* @__PURE__ */ jsx(\n          PopperContentProvider,\n          {\n            scope: __scopePopper,\n            placedSide,\n            placedAlign,\n            onArrowChange: setArrow,\n            arrowX,\n            arrowY,\n            shouldHideArrow: cannotCenterArrow,\n            children: /* @__PURE__ */ jsx(\n              Primitive.div,\n              {\n                \"data-side\": placedSide,\n                \"data-align\": placedAlign,\n                ...contentProps,\n                ref: composedRefs,\n                style: {\n                  ...contentProps.style,\n                  // if the PopperContent hasn't been placed yet (not all\n                  // measurements done) we prevent animations so that users'\n                  // animations don't kick in too early from the wrong sides.\n                  animation: !isPositioned ? \"none\" : contentProps.style?.animation\n                }\n              }\n            )\n          }\n        )\n      }\n    );\n  }, \"PopperContent\")\n);\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n  top: \"bottom\",\n  right: \"left\",\n  bottom: \"top\",\n  left: \"right\"\n};\nvar PopperArrow = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function PopperArrow2(props, forwardedRef) {\n    const { __scopePopper, ...arrowProps } = props;\n    const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n    const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n    return (\n      // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n      // doesn't report size as we'd expect on SVG elements.\n      // it reports their bounding box which is effectively the largest path inside the SVG.\n      /* @__PURE__ */ jsx(\n        \"span\",\n        {\n          ref: contentContext.onArrowChange,\n          style: {\n            position: \"absolute\",\n            left: contentContext.arrowX,\n            top: contentContext.arrowY,\n            [baseSide]: 0,\n            transformOrigin: {\n              top: \"\",\n              right: \"0 0\",\n              bottom: \"center 0\",\n              left: \"100% 0\"\n            }[contentContext.placedSide],\n            transform: {\n              top: \"translateY(100%)\",\n              right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n              bottom: `rotate(180deg)`,\n              left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n            }[contentContext.placedSide],\n            visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n          },\n          children: /* @__PURE__ */ jsx(\n            ArrowPrimitive.Root,\n            {\n              ...arrowProps,\n              ref: forwardedRef,\n              style: {\n                ...arrowProps.style,\n                // ensures the element can be measured correctly (mostly for if SVG)\n                display: \"block\"\n              }\n            }\n          )\n        }\n      )\n    );\n  }, \"PopperArrow\")\n);\nfunction isNotNull(value) {\n  return value !== null;\n}\n__name(isNotNull, \"isNotNull\");\nvar transformOrigin = /* @__PURE__ */ __name((options) => ({\n  name: \"transformOrigin\",\n  options,\n  fn(data) {\n    const { placement, rects, middlewareData } = data;\n    const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n    const isArrowHidden = cannotCenterArrow;\n    const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n    const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n    const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n    const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n    const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n    const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n    let x = \"\";\n    let y = \"\";\n    if (placedSide === \"bottom\") {\n      x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n      y = `${-arrowHeight}px`;\n    } else if (placedSide === \"top\") {\n      x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n      y = `${rects.floating.height + arrowHeight}px`;\n    } else if (placedSide === \"right\") {\n      x = `${-arrowHeight}px`;\n      y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n    } else if (placedSide === \"left\") {\n      x = `${rects.floating.width + arrowHeight}px`;\n      y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n    }\n    return { data: { x, y } };\n  }\n}), \"transformOrigin\");\nfunction getSideAndAlignFromPlacement(placement) {\n  const [side, align = \"center\"] = placement.split(\"-\");\n  return [side, align];\n}\n__name(getSideAndAlignFromPlacement, \"getSideAndAlignFromPlacement\");\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n  ALIGN_OPTIONS,\n  Anchor,\n  Arrow,\n  Content,\n  Popper,\n  PopperAnchor,\n  PopperArrow,\n  PopperContent,\n  Root2 as Root,\n  SIDE_OPTIONS,\n  createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"x_google_ignoreList":[0,1],"mappings":"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"}