{"version":3,"file":"dropdown-menu-8fldC5c5.cjs","names":["__defProp","__name","createCollection","createContextScope","createPopperScope","createRovingFocusGroupScope","React","useCallbackRef","useDirection","Presence","PortalPrimitive","CONTENT_NAME","useComposedRefs","hideOthers","composeEventHandlers","createSlot","RemoveScroll","FocusScope","DismissableLayer","Primitive","useId","Content2","Item2","createContextScope","DropdownMenu","React","useControllableState","useId","MenuPrimitive.Root","DropdownMenuTrigger","useComposedRefs","MenuPrimitive.Anchor","Primitive","composeEventHandlers","DropdownMenuPortal","MenuPrimitive.Portal","DropdownMenuContent","MenuPrimitive.Content","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuSub","MenuPrimitive.Sub","DropdownMenuSubTrigger","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent"],"sources":["../node_modules/@radix-ui/react-menu/dist/index.mjs","../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../src/components/ui/dropdown-menu.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n  ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n  rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n  ltr: [\"ArrowLeft\"],\n  rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n  createCollectionScope,\n  createPopperScope,\n  createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = /* @__PURE__ */ __name((props) => {\n  const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n  const popperScope = usePopperScope(__scopeMenu);\n  const [content, setContent] = React.useState(null);\n  const isUsingKeyboardRef = React.useRef(false);\n  const handleOpenChange = useCallbackRef(onOpenChange);\n  const direction = useDirection(dir);\n  React.useEffect(() => {\n    const handleKeyDown = /* @__PURE__ */ __name(() => {\n      isUsingKeyboardRef.current = true;\n      document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n      document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n    }, \"handleKeyDown\");\n    const handlePointer = /* @__PURE__ */ __name(() => isUsingKeyboardRef.current = false, \"handlePointer\");\n    document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n    return () => {\n      document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n      document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n      document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n    };\n  }, []);\n  React.useEffect(() => {\n    if (!open) {\n      return;\n    }\n    const handleBlur = /* @__PURE__ */ __name(() => handleOpenChange(false), \"handleBlur\");\n    window.addEventListener(\"blur\", handleBlur);\n    return () => window.removeEventListener(\"blur\", handleBlur);\n  }, [open, handleOpenChange]);\n  return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n    MenuProvider,\n    {\n      scope: __scopeMenu,\n      open,\n      onOpenChange: handleOpenChange,\n      content,\n      onContentChange: setContent,\n      children: /* @__PURE__ */ jsx(\n        MenuRootProvider,\n        {\n          scope: __scopeMenu,\n          onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n          isUsingKeyboardRef,\n          dir: direction,\n          modal,\n          children\n        }\n      )\n    }\n  ) });\n}, \"Menu\");\nvar MenuAnchor = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuAnchor2(props, forwardedRef) {\n    const { __scopeMenu, ...anchorProps } = props;\n    const popperScope = usePopperScope(__scopeMenu);\n    return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n  }, \"MenuAnchor\")\n);\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n  forceMount: void 0\n});\nvar MenuPortal = /* @__PURE__ */ __name((props) => {\n  const { __scopeMenu, forceMount, children, container } = props;\n  const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n  return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n}, \"MenuPortal\");\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuContent2(props, forwardedRef) {\n    const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n    const { forceMount = portalContext.forceMount, ...contentProps } = props;\n    const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n    const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n    return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n  }, \"MenuContent\")\n);\nvar MenuRootContentModal = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function MenuRootContentModal2(props, forwardedRef) {\n    const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n    const ref = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref);\n    React.useEffect(() => {\n      const content = ref.current;\n      if (content) return hideOthers(content);\n    }, []);\n    return /* @__PURE__ */ jsx(\n      MenuContentImpl,\n      {\n        ...props,\n        ref: composedRefs,\n        trapFocus: context.open,\n        disableOutsidePointerEvents: context.open,\n        disableOutsideScroll: true,\n        onFocusOutside: composeEventHandlers(\n          props.onFocusOutside,\n          (event) => event.preventDefault(),\n          { checkForDefaultPrevented: false }\n        ),\n        onDismiss: () => context.onOpenChange(false)\n      }\n    );\n  }, \"MenuRootContentModal\")\n);\nvar MenuRootContentNonModal = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function MenuRootContentNonModal2(props, forwardedRef) {\n  const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n  return /* @__PURE__ */ jsx(\n    MenuContentImpl,\n    {\n      ...props,\n      ref: forwardedRef,\n      trapFocus: false,\n      disableOutsidePointerEvents: false,\n      disableOutsideScroll: false,\n      onDismiss: () => context.onOpenChange(false)\n    }\n  );\n}, \"MenuRootContentNonModal\"));\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function MenuContentImpl2(props, forwardedRef) {\n    const {\n      __scopeMenu,\n      loop = false,\n      trapFocus,\n      onOpenAutoFocus,\n      onCloseAutoFocus,\n      disableOutsidePointerEvents,\n      onEntryFocus,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      onFocusOutside,\n      onInteractOutside,\n      onDismiss,\n      disableOutsideScroll,\n      ...contentProps\n    } = props;\n    const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n    const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n    const popperScope = usePopperScope(__scopeMenu);\n    const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n    const getItems = useCollection(__scopeMenu);\n    const [currentItemId, setCurrentItemId] = React.useState(null);\n    const contentRef = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n    const timerRef = React.useRef(0);\n    const searchRef = React.useRef(\"\");\n    const pointerGraceTimerRef = React.useRef(0);\n    const pointerGraceIntentRef = React.useRef(null);\n    const pointerDirRef = React.useRef(\"right\");\n    const lastPointerXRef = React.useRef(0);\n    const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n    const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n    const handleTypeaheadSearch = /* @__PURE__ */ __name((key) => {\n      const search = searchRef.current + key;\n      const items = getItems().filter((item) => !item.disabled);\n      const currentItem = document.activeElement;\n      const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n      const values = items.map((item) => item.textValue);\n      const nextMatch = getNextMatch(values, search, currentMatch);\n      const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n      (/* @__PURE__ */ __name((function updateSearch(value) {\n        searchRef.current = value;\n        window.clearTimeout(timerRef.current);\n        if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n      }), \"updateSearch\"))(search);\n      if (newItem) {\n        setTimeout(() => newItem.focus());\n      }\n    }, \"handleTypeaheadSearch\");\n    React.useEffect(() => {\n      return () => window.clearTimeout(timerRef.current);\n    }, []);\n    useFocusGuards();\n    const isPointerMovingToSubmenu = React.useCallback((event) => {\n      const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n      return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n    }, []);\n    return /* @__PURE__ */ jsx(\n      MenuContentProvider,\n      {\n        scope: __scopeMenu,\n        searchRef,\n        onItemEnter: React.useCallback(\n          (event) => {\n            if (isPointerMovingToSubmenu(event)) event.preventDefault();\n          },\n          [isPointerMovingToSubmenu]\n        ),\n        onItemLeave: React.useCallback(\n          (event) => {\n            if (isPointerMovingToSubmenu(event)) return;\n            contentRef.current?.focus();\n            setCurrentItemId(null);\n          },\n          [isPointerMovingToSubmenu]\n        ),\n        onTriggerLeave: React.useCallback(\n          (event) => {\n            if (isPointerMovingToSubmenu(event)) event.preventDefault();\n          },\n          [isPointerMovingToSubmenu]\n        ),\n        pointerGraceTimerRef,\n        onPointerGraceIntentChange: React.useCallback((intent) => {\n          pointerGraceIntentRef.current = intent;\n        }, []),\n        children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n          FocusScope,\n          {\n            asChild: true,\n            trapped: trapFocus,\n            onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n              event.preventDefault();\n              contentRef.current?.focus({ preventScroll: true });\n            }),\n            onUnmountAutoFocus: onCloseAutoFocus,\n            children: /* @__PURE__ */ jsx(\n              DismissableLayer,\n              {\n                asChild: true,\n                disableOutsidePointerEvents,\n                onEscapeKeyDown,\n                onPointerDownOutside,\n                onFocusOutside,\n                onInteractOutside,\n                onDismiss,\n                children: /* @__PURE__ */ jsx(\n                  RovingFocusGroup.Root,\n                  {\n                    asChild: true,\n                    ...rovingFocusGroupScope,\n                    dir: rootContext.dir,\n                    orientation: \"vertical\",\n                    loop,\n                    currentTabStopId: currentItemId,\n                    onCurrentTabStopIdChange: setCurrentItemId,\n                    onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n                      if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n                    }),\n                    preventScrollOnEntryFocus: true,\n                    children: /* @__PURE__ */ jsx(\n                      PopperPrimitive.Content,\n                      {\n                        role: \"menu\",\n                        \"aria-orientation\": \"vertical\",\n                        \"data-state\": getOpenState(context.open),\n                        \"data-radix-menu-content\": \"\",\n                        dir: rootContext.dir,\n                        ...popperScope,\n                        ...contentProps,\n                        ref: composedRefs,\n                        style: { outline: \"none\", ...contentProps.style },\n                        onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n                          const target = event.target;\n                          const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n                          const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n                          const isCharacterKey = event.key.length === 1;\n                          if (isKeyDownInside) {\n                            if (event.key === \"Tab\") event.preventDefault();\n                            if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n                          }\n                          const content = contentRef.current;\n                          if (event.target !== content) return;\n                          if (!FIRST_LAST_KEYS.includes(event.key)) return;\n                          event.preventDefault();\n                          const items = getItems().filter((item) => !item.disabled);\n                          const candidateNodes = items.map((item) => item.ref.current);\n                          if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n                          focusFirst(candidateNodes);\n                        }),\n                        onBlur: composeEventHandlers(props.onBlur, (event) => {\n                          if (!event.currentTarget.contains(event.target)) {\n                            window.clearTimeout(timerRef.current);\n                            searchRef.current = \"\";\n                          }\n                        }),\n                        onPointerMove: composeEventHandlers(\n                          props.onPointerMove,\n                          whenMouse((event) => {\n                            const target = event.target;\n                            const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n                            if (event.currentTarget.contains(target) && pointerXHasChanged) {\n                              const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n                              pointerDirRef.current = newDir;\n                              lastPointerXRef.current = event.clientX;\n                            }\n                          })\n                        )\n                      }\n                    )\n                  }\n                )\n              }\n            )\n          }\n        ) })\n      }\n    );\n  }, \"MenuContentImpl\")\n);\nvar MenuGroup = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuGroup2(props, forwardedRef) {\n    const { __scopeMenu, ...groupProps } = props;\n    return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n  }, \"MenuGroup\")\n);\nvar MenuLabel = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuLabel2(props, forwardedRef) {\n    const { __scopeMenu, ...labelProps } = props;\n    return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n  }, \"MenuLabel\")\n);\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function MenuItem2(props, forwardedRef) {\n    const { disabled = false, onSelect, ...itemProps } = props;\n    const ref = React.useRef(null);\n    const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n    const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n    const composedRefs = useComposedRefs(forwardedRef, ref);\n    const isPointerDownRef = React.useRef(false);\n    const handleSelect = /* @__PURE__ */ __name(() => {\n      const menuItem = ref.current;\n      if (!disabled && menuItem) {\n        const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n        menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n        dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n        if (itemSelectEvent.defaultPrevented) {\n          isPointerDownRef.current = false;\n        } else {\n          rootContext.onClose();\n        }\n      }\n    }, \"handleSelect\");\n    return /* @__PURE__ */ jsx(\n      MenuItemImpl,\n      {\n        ...itemProps,\n        ref: composedRefs,\n        disabled,\n        onClick: composeEventHandlers(props.onClick, handleSelect),\n        onPointerDown: (event) => {\n          props.onPointerDown?.(event);\n          isPointerDownRef.current = true;\n        },\n        onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n          if (!isPointerDownRef.current) event.currentTarget?.click();\n        }),\n        onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n          if (disabled || event.target !== event.currentTarget) {\n            return;\n          }\n          const isTypingAhead = contentContext.searchRef.current !== \"\";\n          if (isTypingAhead && event.key === \" \") {\n            return;\n          }\n          if (SELECTION_KEYS.includes(event.key)) {\n            event.currentTarget.click();\n            event.preventDefault();\n          }\n        })\n      }\n    );\n  }, \"MenuItem\")\n);\nvar MenuItemImpl = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuItemImpl2(props, forwardedRef) {\n    const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n    const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n    const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n    const ref = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref);\n    const [isFocused, setIsFocused] = React.useState(false);\n    const [textContent, setTextContent] = React.useState(\"\");\n    React.useEffect(() => {\n      const menuItem = ref.current;\n      if (menuItem) {\n        setTextContent((menuItem.textContent ?? \"\").trim());\n      }\n    }, [itemProps.children]);\n    return /* @__PURE__ */ jsx(\n      Collection.ItemSlot,\n      {\n        scope: __scopeMenu,\n        disabled,\n        textValue: textValue ?? textContent,\n        children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n          Primitive.div,\n          {\n            role: \"menuitem\",\n            \"data-highlighted\": isFocused ? \"\" : void 0,\n            \"aria-disabled\": disabled || void 0,\n            \"data-disabled\": disabled ? \"\" : void 0,\n            ...itemProps,\n            ref: composedRefs,\n            onPointerMove: composeEventHandlers(\n              props.onPointerMove,\n              whenMouse((event) => {\n                if (disabled) {\n                  contentContext.onItemLeave(event);\n                } else {\n                  contentContext.onItemEnter(event);\n                  if (!event.defaultPrevented) {\n                    const item = event.currentTarget;\n                    item.focus({ preventScroll: true });\n                  }\n                }\n              })\n            ),\n            onPointerLeave: composeEventHandlers(\n              props.onPointerLeave,\n              whenMouse((event) => contentContext.onItemLeave(event))\n            ),\n            onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n            onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n          }\n        ) })\n      }\n    );\n  }, \"MenuItemImpl\")\n);\nvar MenuCheckboxItem = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function MenuCheckboxItem2(props, forwardedRef) {\n    const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n    return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n      MenuItem,\n      {\n        role: \"menuitemcheckbox\",\n        \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n        ...checkboxItemProps,\n        ref: forwardedRef,\n        \"data-state\": getCheckedState(checked),\n        onSelect: composeEventHandlers(\n          checkboxItemProps.onSelect,\n          () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n          { checkForDefaultPrevented: false }\n        )\n      }\n    ) });\n  }, \"MenuCheckboxItem\")\n);\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n  RADIO_GROUP_NAME,\n  { value: void 0, onValueChange: /* @__PURE__ */ __name(() => {\n  }, \"onValueChange\") }\n);\nvar MenuRadioGroup = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuRadioGroup2(props, forwardedRef) {\n    const { value, onValueChange, ...groupProps } = props;\n    const handleValueChange = useCallbackRef(onValueChange);\n    return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n  }, \"MenuRadioGroup\")\n);\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuRadioItem2(props, forwardedRef) {\n    const { value, ...radioItemProps } = props;\n    const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n    const checked = value === context.value;\n    return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n      MenuItem,\n      {\n        role: \"menuitemradio\",\n        \"aria-checked\": checked,\n        ...radioItemProps,\n        ref: forwardedRef,\n        \"data-state\": getCheckedState(checked),\n        onSelect: composeEventHandlers(\n          radioItemProps.onSelect,\n          () => context.onValueChange?.(value),\n          { checkForDefaultPrevented: false }\n        )\n      }\n    ) });\n  }, \"MenuRadioItem\")\n);\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n  ITEM_INDICATOR_NAME,\n  { checked: false }\n);\nvar MenuItemIndicator = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function MenuItemIndicator2(props, forwardedRef) {\n    const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n    const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n    return /* @__PURE__ */ jsx(\n      Presence,\n      {\n        present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n        children: /* @__PURE__ */ jsx(\n          Primitive.span,\n          {\n            ...itemIndicatorProps,\n            ref: forwardedRef,\n            \"data-state\": getCheckedState(indicatorContext.checked)\n          }\n        )\n      }\n    );\n  }, \"MenuItemIndicator\")\n);\nvar MenuSeparator = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuSeparator2(props, forwardedRef) {\n    const { __scopeMenu, ...separatorProps } = props;\n    return /* @__PURE__ */ jsx(\n      Primitive.div,\n      {\n        role: \"separator\",\n        \"aria-orientation\": \"horizontal\",\n        ...separatorProps,\n        ref: forwardedRef\n      }\n    );\n  }, \"MenuSeparator\")\n);\nvar MenuArrow = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuArrow2(props, forwardedRef) {\n    const { __scopeMenu, ...arrowProps } = props;\n    const popperScope = usePopperScope(__scopeMenu);\n    return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n  }, \"MenuArrow\")\n);\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = /* @__PURE__ */ __name((props) => {\n  const { __scopeMenu, children, open = false, onOpenChange } = props;\n  const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n  const popperScope = usePopperScope(__scopeMenu);\n  const [trigger, setTrigger] = React.useState(null);\n  const [content, setContent] = React.useState(null);\n  const handleOpenChange = useCallbackRef(onOpenChange);\n  React.useEffect(() => {\n    if (parentMenuContext.open === false) handleOpenChange(false);\n    return () => handleOpenChange(false);\n  }, [parentMenuContext.open, handleOpenChange]);\n  return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n    MenuProvider,\n    {\n      scope: __scopeMenu,\n      open,\n      onOpenChange: handleOpenChange,\n      content,\n      onContentChange: setContent,\n      children: /* @__PURE__ */ jsx(\n        MenuSubProvider,\n        {\n          scope: __scopeMenu,\n          contentId: useId(),\n          triggerId: useId(),\n          trigger,\n          onTriggerChange: setTrigger,\n          children\n        }\n      )\n    }\n  ) });\n}, \"MenuSub\");\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuSubTrigger2(props, forwardedRef) {\n    const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n    const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n    const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n    const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n    const openTimerRef = React.useRef(null);\n    const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n    const scope = { __scopeMenu: props.__scopeMenu };\n    const clearOpenTimer = React.useCallback(() => {\n      if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n      openTimerRef.current = null;\n    }, []);\n    React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n    React.useEffect(() => {\n      const pointerGraceTimer = pointerGraceTimerRef.current;\n      return () => {\n        window.clearTimeout(pointerGraceTimer);\n        onPointerGraceIntentChange(null);\n      };\n    }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n    const composedRefs = useComposedRefs(forwardedRef, subContext.onTriggerChange);\n    return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n      MenuItemImpl,\n      {\n        id: subContext.triggerId,\n        \"aria-haspopup\": \"menu\",\n        \"aria-expanded\": context.open,\n        \"aria-controls\": context.open ? subContext.contentId : void 0,\n        \"data-state\": getOpenState(context.open),\n        ...props,\n        ref: composedRefs,\n        onClick: (event) => {\n          props.onClick?.(event);\n          if (props.disabled || event.defaultPrevented) return;\n          event.currentTarget.focus();\n          if (!context.open) context.onOpenChange(true);\n        },\n        onPointerMove: composeEventHandlers(\n          props.onPointerMove,\n          whenMouse((event) => {\n            contentContext.onItemEnter(event);\n            if (event.defaultPrevented) return;\n            if (!props.disabled && !context.open && !openTimerRef.current) {\n              contentContext.onPointerGraceIntentChange(null);\n              openTimerRef.current = window.setTimeout(() => {\n                context.onOpenChange(true);\n                clearOpenTimer();\n              }, 100);\n            }\n          })\n        ),\n        onPointerLeave: composeEventHandlers(\n          props.onPointerLeave,\n          whenMouse((event) => {\n            clearOpenTimer();\n            const contentRect = context.content?.getBoundingClientRect();\n            if (contentRect) {\n              const side = context.content?.dataset.side;\n              const rightSide = side === \"right\";\n              const bleed = rightSide ? -5 : 5;\n              const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n              const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n              contentContext.onPointerGraceIntentChange({\n                area: [\n                  // Apply a bleed on clientX to ensure that our exit point is\n                  // consistently within polygon bounds\n                  { x: event.clientX + bleed, y: event.clientY },\n                  { x: contentNearEdge, y: contentRect.top },\n                  { x: contentFarEdge, y: contentRect.top },\n                  { x: contentFarEdge, y: contentRect.bottom },\n                  { x: contentNearEdge, y: contentRect.bottom }\n                ],\n                side\n              });\n              window.clearTimeout(pointerGraceTimerRef.current);\n              pointerGraceTimerRef.current = window.setTimeout(\n                () => contentContext.onPointerGraceIntentChange(null),\n                300\n              );\n            } else {\n              contentContext.onTriggerLeave(event);\n              if (event.defaultPrevented) return;\n              contentContext.onPointerGraceIntentChange(null);\n            }\n          })\n        ),\n        onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n          if (props.disabled || event.target !== event.currentTarget) {\n            return;\n          }\n          const isTypingAhead = contentContext.searchRef.current !== \"\";\n          if (isTypingAhead && event.key === \" \") {\n            return;\n          }\n          if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n            context.onOpenChange(true);\n            context.content?.focus();\n            event.preventDefault();\n          }\n        })\n      }\n    ) });\n  }, \"MenuSubTrigger\")\n);\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = /* @__PURE__ */ React.forwardRef(\n  /* @__PURE__ */ __name(function MenuSubContent2(props, forwardedRef) {\n    const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n    const { forceMount = portalContext.forceMount, align = \"start\", ...subContentProps } = props;\n    const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n    const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n    const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n    const ref = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref);\n    return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n      MenuContentImpl,\n      {\n        id: subContext.contentId,\n        \"aria-labelledby\": subContext.triggerId,\n        ...subContentProps,\n        ref: composedRefs,\n        align,\n        side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n        disableOutsidePointerEvents: false,\n        disableOutsideScroll: false,\n        trapFocus: false,\n        onOpenAutoFocus: (event) => {\n          if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n          event.preventDefault();\n        },\n        onCloseAutoFocus: (event) => event.preventDefault(),\n        onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n          if (event.target !== subContext.trigger) context.onOpenChange(false);\n        }),\n        onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n          rootContext.onClose();\n          event.preventDefault();\n        }),\n        onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n          const isKeyDownInside = event.currentTarget.contains(event.target);\n          const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n          if (isKeyDownInside && isCloseKey) {\n            context.onOpenChange(false);\n            subContext.trigger?.focus();\n            event.preventDefault();\n          }\n        })\n      }\n    ) }) }) });\n  }, \"MenuSubContent\")\n);\nfunction getOpenState(open) {\n  return open ? \"open\" : \"closed\";\n}\n__name(getOpenState, \"getOpenState\");\nfunction isIndeterminate(checked) {\n  return checked === \"indeterminate\";\n}\n__name(isIndeterminate, \"isIndeterminate\");\nfunction getCheckedState(checked) {\n  return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\n__name(getCheckedState, \"getCheckedState\");\nfunction focusFirst(candidates) {\n  const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n  for (const candidate of candidates) {\n    if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n    candidate.focus();\n    if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n  }\n}\n__name(focusFirst, \"focusFirst\");\nfunction wrapArray(array, startIndex) {\n  return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n__name(wrapArray, \"wrapArray\");\nfunction getNextMatch(values, search, currentMatch) {\n  const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n  const normalizedSearch = isRepeated ? search[0] : search;\n  const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n  let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n  const excludeCurrentMatch = normalizedSearch.length === 1;\n  if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n  const nextMatch = wrappedValues.find(\n    (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n  );\n  return nextMatch !== currentMatch ? nextMatch : void 0;\n}\n__name(getNextMatch, \"getNextMatch\");\nfunction isPointInPolygon(point, polygon) {\n  const { x, y } = point;\n  let inside = false;\n  for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n    const ii = polygon[i];\n    const jj = polygon[j];\n    const xi = ii.x;\n    const yi = ii.y;\n    const xj = jj.x;\n    const yj = jj.y;\n    const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n    if (intersect) inside = !inside;\n  }\n  return inside;\n}\n__name(isPointInPolygon, \"isPointInPolygon\");\nfunction isPointerInGraceArea(event, area) {\n  if (!area) return false;\n  const cursorPos = { x: event.clientX, y: event.clientY };\n  return isPointInPolygon(cursorPos, area);\n}\n__name(isPointerInGraceArea, \"isPointerInGraceArea\");\nfunction whenMouse(handler) {\n  return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\n__name(whenMouse, \"whenMouse\");\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n  Anchor2 as Anchor,\n  Arrow2 as Arrow,\n  CheckboxItem,\n  Content2 as Content,\n  Group,\n  Item2 as Item,\n  ItemIndicator,\n  Label,\n  Menu,\n  MenuAnchor,\n  MenuArrow,\n  MenuCheckboxItem,\n  MenuContent,\n  MenuGroup,\n  MenuItem,\n  MenuItemIndicator,\n  MenuLabel,\n  MenuPortal,\n  MenuRadioGroup,\n  MenuRadioItem,\n  MenuSeparator,\n  MenuSub,\n  MenuSubContent,\n  MenuSubTrigger,\n  Portal,\n  RadioGroup,\n  RadioItem,\n  Root3 as Root,\n  Separator,\n  Sub,\n  SubContent,\n  SubTrigger,\n  createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n  DROPDOWN_MENU_NAME,\n  [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = /* @__PURE__ */ __name((props) => {\n  const {\n    __scopeDropdownMenu,\n    children,\n    dir,\n    open: openProp,\n    defaultOpen,\n    onOpenChange,\n    modal = true\n  } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  const triggerRef = React.useRef(null);\n  const [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen ?? false,\n    onChange: onOpenChange,\n    caller: DROPDOWN_MENU_NAME\n  });\n  return /* @__PURE__ */ jsx(\n    DropdownMenuProvider,\n    {\n      scope: __scopeDropdownMenu,\n      triggerId: useId(),\n      triggerRef,\n      contentId: useId(),\n      open,\n      onOpenChange: setOpen,\n      onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n      modal,\n      children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n    }\n  );\n}, \"DropdownMenu\");\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function DropdownMenuTrigger2(props, forwardedRef) {\n    const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n    const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n    const menuScope = useMenuScope(__scopeDropdownMenu);\n    const composedRefs = useComposedRefs(forwardedRef, context.triggerRef);\n    return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        type: \"button\",\n        id: context.triggerId,\n        \"aria-haspopup\": \"menu\",\n        \"aria-expanded\": context.open,\n        \"aria-controls\": context.open ? context.contentId : void 0,\n        \"data-state\": context.open ? \"open\" : \"closed\",\n        \"data-disabled\": disabled ? \"\" : void 0,\n        disabled,\n        ...triggerProps,\n        ref: composedRefs,\n        onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n          if (!disabled && event.button === 0 && event.ctrlKey === false) {\n            context.onOpenToggle();\n            if (!context.open) event.preventDefault();\n          }\n        }),\n        onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n          if (disabled) return;\n          if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n          if (event.key === \"ArrowDown\") context.onOpenChange(true);\n          if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n        })\n      }\n    ) });\n  }, \"DropdownMenuTrigger\")\n);\nvar DropdownMenuPortal = /* @__PURE__ */ __name((props) => {\n  const { __scopeDropdownMenu, ...portalProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n}, \"DropdownMenuPortal\");\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function DropdownMenuContent2(props, forwardedRef) {\n    const { __scopeDropdownMenu, ...contentProps } = props;\n    const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n    const menuScope = useMenuScope(__scopeDropdownMenu);\n    const hasInteractedOutsideRef = React.useRef(false);\n    return /* @__PURE__ */ jsx(\n      MenuPrimitive.Content,\n      {\n        id: context.contentId,\n        \"aria-labelledby\": context.triggerId,\n        ...menuScope,\n        ...contentProps,\n        ref: forwardedRef,\n        onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n          if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n          hasInteractedOutsideRef.current = false;\n          event.preventDefault();\n        }),\n        onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n          const originalEvent = event.detail.originalEvent;\n          const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n          const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n          if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n        }),\n        style: {\n          ...props.style,\n          // re-namespace exposed content custom properties\n          ...{\n            \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n            \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n            \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n            \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n            \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n          }\n        }\n      }\n    );\n  }, \"DropdownMenuContent\")\n);\nvar DropdownMenuGroup = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function DropdownMenuGroup2(props, forwardedRef) {\n    const { __scopeDropdownMenu, ...groupProps } = props;\n    const menuScope = useMenuScope(__scopeDropdownMenu);\n    return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n  }, \"DropdownMenuGroup\")\n);\nvar DropdownMenuLabel = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function DropdownMenuLabel2(props, forwardedRef) {\n    const { __scopeDropdownMenu, ...labelProps } = props;\n    const menuScope = useMenuScope(__scopeDropdownMenu);\n    return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n  }, \"DropdownMenuLabel\")\n);\nvar DropdownMenuItem = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function DropdownMenuItem2(props, forwardedRef) {\n    const { __scopeDropdownMenu, ...itemProps } = props;\n    const menuScope = useMenuScope(__scopeDropdownMenu);\n    return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n  }, \"DropdownMenuItem\")\n);\nvar DropdownMenuCheckboxItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuCheckboxItem2(props, forwardedRef) {\n  const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n}, \"DropdownMenuCheckboxItem\"));\nvar DropdownMenuRadioGroup = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuRadioGroup2(props, forwardedRef) {\n  const { __scopeDropdownMenu, ...radioGroupProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n}, \"DropdownMenuRadioGroup\"));\nvar DropdownMenuRadioItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuRadioItem2(props, forwardedRef) {\n  const { __scopeDropdownMenu, ...radioItemProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n}, \"DropdownMenuRadioItem\"));\nvar DropdownMenuItemIndicator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuItemIndicator2(props, forwardedRef) {\n  const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n}, \"DropdownMenuItemIndicator\"));\nvar DropdownMenuSeparator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuSeparator2(props, forwardedRef) {\n  const { __scopeDropdownMenu, ...separatorProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n}, \"DropdownMenuSeparator\"));\nvar DropdownMenuArrow = /* @__PURE__ */ React.forwardRef(\n  // blank line to reduce diff noise\n  /* @__PURE__ */ __name(function DropdownMenuArrow2(props, forwardedRef) {\n    const { __scopeDropdownMenu, ...arrowProps } = props;\n    const menuScope = useMenuScope(__scopeDropdownMenu);\n    return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n  }, \"DropdownMenuArrow\")\n);\nvar DropdownMenuSub = /* @__PURE__ */ __name((props) => {\n  const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  const [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen ?? false,\n    onChange: onOpenChange,\n    caller: \"DropdownMenuSub\"\n  });\n  return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n}, \"DropdownMenuSub\");\nvar DropdownMenuSubTrigger = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuSubTrigger2(props, forwardedRef) {\n  const { __scopeDropdownMenu, ...subTriggerProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n}, \"DropdownMenuSubTrigger\"));\nvar DropdownMenuSubContent = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuSubContent2(props, forwardedRef) {\n  const { __scopeDropdownMenu, ...subContentProps } = props;\n  const menuScope = useMenuScope(__scopeDropdownMenu);\n  return /* @__PURE__ */ jsx(\n    MenuPrimitive.SubContent,\n    {\n      ...menuScope,\n      ...subContentProps,\n      ref: forwardedRef,\n      style: {\n        ...props.style,\n        // re-namespace exposed content custom properties\n        ...{\n          \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n          \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n          \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n          \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n          \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n        }\n      }\n    }\n  );\n}, \"DropdownMenuSubContent\"));\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n  Arrow2 as Arrow,\n  CheckboxItem2 as CheckboxItem,\n  Content2 as Content,\n  DropdownMenu,\n  DropdownMenuArrow,\n  DropdownMenuCheckboxItem,\n  DropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuItem,\n  DropdownMenuItemIndicator,\n  DropdownMenuLabel,\n  DropdownMenuPortal,\n  DropdownMenuRadioGroup,\n  DropdownMenuRadioItem,\n  DropdownMenuSeparator,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuTrigger,\n  Group2 as Group,\n  Item2 as Item,\n  ItemIndicator2 as ItemIndicator,\n  Label2 as Label,\n  Portal2 as Portal,\n  RadioGroup2 as RadioGroup,\n  RadioItem2 as RadioItem,\n  Root2 as Root,\n  Separator2 as Separator,\n  Sub2 as Sub,\n  SubContent2 as SubContent,\n  SubTrigger2 as SubTrigger,\n  Trigger,\n  createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { ChevronRight } from 'lucide-react';\nimport { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';\nimport React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = React.forwardRef<\n  React.ComponentRef<typeof DropdownMenuPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.Trigger\n    {...props}\n    ref={ref}\n    className={cn('text-content-primary focus:outline-hidden', className)}\n  >\n    {children}\n  </DropdownMenuPrimitive.Trigger>\n));\nDropdownMenuTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n  React.ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n    inset?: boolean;\n  }\n>(({ className, inset, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubTrigger\n    {...props}\n    ref={ref}\n    className={cn(\n      'flex cursor-default select-none items-center gap-2 rounded-base px-2 py-1.5 text-base outline-hidden backdrop-blur-frosted focus:bg-surface-hover data-[state=open]:bg-surface/90 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n      inset && 'pl-8',\n      className,\n    )}\n  >\n    {children}\n    <ChevronRight className='ml-auto' />\n  </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n  React.ComponentRef<typeof DropdownMenuPrimitive.SubContent>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubContent\n    {...props}\n    ref={ref}\n    className={cn(\n      'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-base bg-surface/90 p-1 text-content-primary shadow-lg backdrop-blur-frosted data-[state=closed]:animate-out data-[state=open]:animate-in',\n      className,\n    )}\n  />\n));\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n  React.ComponentRef<typeof DropdownMenuPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> & {\n    inPortal?: boolean;\n  }\n>(({ className, sideOffset = 4, inPortal = true, ...props }, ref) => {\n  const content = (\n    <>\n      <DropdownMenuPrimitive.Content\n        {...props}\n        ref={ref}\n        sideOffset={sideOffset}\n        className={cn(\n          'z-50 min-w-[8rem] overflow-hidden rounded-base bg-surface/90 p-1 text-content-primary shadow-md backdrop-blur-frosted',\n          'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=open]:animate-in',\n          className,\n        )}\n      />\n    </>\n  );\n  return inPortal ? (\n    <DropdownMenuPrimitive.Portal>{content}</DropdownMenuPrimitive.Portal>\n  ) : (\n    content\n  );\n});\n\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n  React.ComponentRef<typeof DropdownMenuPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Item\n    {...props}\n    ref={ref}\n    className={cn(\n      'relative flex cursor-default select-none items-center gap-2 rounded-base px-2 py-1.5 text-base outline-hidden transition-colors focus:bg-surface-hover data-disabled:pointer-events-none data-disabled:opacity-25 [&>svg]:size-4 [&>svg]:shrink-0',\n      inset && 'pl-8',\n      className,\n    )}\n  />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n  React.ComponentRef<typeof DropdownMenuPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Label\n    {...props}\n    ref={ref}\n    className={cn('px-2 py-1.5 font-semibold text-base uppercase', inset && 'pl-8', className)}\n  />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n  React.ComponentRef<typeof DropdownMenuPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.Separator\n    {...props}\n    ref={ref}\n    className={cn('-mx-1 my-1 h-px bg-surface-hard', className)}\n  />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nexport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuItem,\n  DropdownMenuLabel,\n  DropdownMenuPortal,\n  DropdownMenuSeparator,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuTrigger,\n};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}