ivt 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion/index.mjs +1 -1
- package/dist/alert/index.mjs +1 -1
- package/dist/alert-dialog/index.mjs +1 -1
- package/dist/alert-dialog/index.mjs.map +1 -1
- package/dist/avatar/index.mjs +1 -1
- package/dist/avatar/index.mjs.map +1 -1
- package/dist/badge/index.mjs +1 -1
- package/dist/base/index.mjs +1 -1
- package/dist/base/index.mjs.map +1 -1
- package/dist/button/index.mjs +1 -1
- package/dist/calendar/index.mjs +1 -1
- package/dist/card/index.mjs +1 -1
- package/dist/checkbox/index.mjs +1 -1
- package/dist/checkbox/index.mjs.map +1 -1
- package/dist/chunks/TextWrap-BoRBN55H.mjs +2 -0
- package/dist/chunks/TextWrap-BoRBN55H.mjs.map +1 -0
- package/dist/chunks/accordion-b7tkR278.mjs +2 -0
- package/dist/chunks/accordion-b7tkR278.mjs.map +1 -0
- package/dist/chunks/{badge-Bl0X9ruG.mjs → badge-CGDtT1AM.mjs} +2 -2
- package/dist/chunks/{badge-Bl0X9ruG.mjs.map → badge-CGDtT1AM.mjs.map} +1 -1
- package/dist/chunks/{bundle-mjs-BYGwPY3j.mjs → bundle-mjs-uUK5gBZL.mjs} +1 -1
- package/dist/chunks/{bundle-mjs-BYGwPY3j.mjs.map → bundle-mjs-uUK5gBZL.mjs.map} +1 -1
- package/dist/chunks/{button-B7K2JEBG.mjs → button-BQuGoSwo.mjs} +2 -2
- package/dist/chunks/{button-B7K2JEBG.mjs.map → button-BQuGoSwo.mjs.map} +1 -1
- package/dist/chunks/{calendar-CDaopDjB.mjs → calendar-D6nh7E7c.mjs} +2 -2
- package/dist/chunks/{calendar-CDaopDjB.mjs.map → calendar-D6nh7E7c.mjs.map} +1 -1
- package/dist/chunks/check-BTM93edU.mjs +2 -0
- package/dist/chunks/{check-DoBi3iW5.mjs.map → check-BTM93edU.mjs.map} +1 -1
- package/dist/chunks/chevron-down-ByXueUKH.mjs +2 -0
- package/dist/chunks/{chevron-down-BlskY22a.mjs.map → chevron-down-ByXueUKH.mjs.map} +1 -1
- package/dist/chunks/chevron-left-Dj6YqHMd.mjs +2 -0
- package/dist/chunks/{chevron-left-BXFDtxhQ.mjs.map → chevron-left-Dj6YqHMd.mjs.map} +1 -1
- package/dist/chunks/chevron-right-D2IT905d.mjs +2 -0
- package/dist/chunks/{chevron-right-DAqTCOj7.mjs.map → chevron-right-D2IT905d.mjs.map} +1 -1
- package/dist/chunks/{command-DYONarI_.mjs → command-B-ANHdE6.mjs} +2 -2
- package/dist/chunks/{command-DYONarI_.mjs.map → command-B-ANHdE6.mjs.map} +1 -1
- package/dist/chunks/{createLucideIcon-CkKdyF_L.mjs → createLucideIcon-KUe_eRSY.mjs} +1 -1
- package/dist/chunks/{createLucideIcon-CkKdyF_L.mjs.map → createLucideIcon-KUe_eRSY.mjs.map} +1 -1
- package/dist/chunks/{dialog-Bs3UmyLz.mjs → dialog-BXMw3pOb.mjs} +2 -2
- package/dist/chunks/{dialog-Bs3UmyLz.mjs.map → dialog-BXMw3pOb.mjs.map} +1 -1
- package/dist/chunks/hover-card-DvOyhTNF.mjs +2 -0
- package/dist/chunks/hover-card-DvOyhTNF.mjs.map +1 -0
- package/dist/chunks/index-BA0myTwh.mjs +2 -0
- package/dist/chunks/index-BA0myTwh.mjs.map +1 -0
- package/dist/chunks/index-BfrEVNZH.mjs +2 -0
- package/dist/chunks/index-BfrEVNZH.mjs.map +1 -0
- package/dist/chunks/{index-qP_a6BiF.mjs → index-BuuxNXqh.mjs} +2 -2
- package/dist/chunks/index-BuuxNXqh.mjs.map +1 -0
- package/dist/chunks/{index-BX6nSpY1.mjs → index-CCvvm74Y.mjs} +1 -1
- package/dist/chunks/{index-BX6nSpY1.mjs.map → index-CCvvm74Y.mjs.map} +1 -1
- package/dist/chunks/index-CEACCVIV.mjs +2 -0
- package/dist/chunks/index-CEACCVIV.mjs.map +1 -0
- package/dist/chunks/index-CFXZ99Xo.mjs +2 -0
- package/dist/chunks/index-CFXZ99Xo.mjs.map +1 -0
- package/dist/chunks/index-CVVWvftS.mjs +2 -0
- package/dist/chunks/index-CVVWvftS.mjs.map +1 -0
- package/dist/chunks/index-CsbH4Chn.mjs +2 -0
- package/dist/chunks/index-CsbH4Chn.mjs.map +1 -0
- package/dist/chunks/index-Czv0ydhM.mjs +2 -0
- package/dist/chunks/index-Czv0ydhM.mjs.map +1 -0
- package/dist/chunks/index-DDy3w3P8.mjs +2 -0
- package/dist/chunks/index-DDy3w3P8.mjs.map +1 -0
- package/dist/chunks/index-DGdby9BP.mjs +2 -0
- package/dist/chunks/{index-DdNjMgpV.mjs.map → index-DGdby9BP.mjs.map} +1 -1
- package/dist/chunks/{index-XatPIL6c.mjs → index-DeHHC7Lr.mjs} +2 -2
- package/dist/chunks/{index-XatPIL6c.mjs.map → index-DeHHC7Lr.mjs.map} +1 -1
- package/dist/chunks/index-FVFSIN6j.mjs +2 -0
- package/dist/chunks/index-FVFSIN6j.mjs.map +1 -0
- package/dist/chunks/index-Wrq-dJAT.mjs +2 -0
- package/dist/chunks/index-Wrq-dJAT.mjs.map +1 -0
- package/dist/chunks/{index-DB6P4Tz1.mjs → index-ZlUuVpwn.mjs} +1 -1
- package/dist/chunks/{index-DB6P4Tz1.mjs.map → index-ZlUuVpwn.mjs.map} +1 -1
- package/dist/chunks/{input-BtSMyTkT.mjs → input-DXANRHEg.mjs} +2 -2
- package/dist/chunks/{input-BtSMyTkT.mjs.map → input-DXANRHEg.mjs.map} +1 -1
- package/dist/chunks/{label-BL5NIn0A.mjs → label-bMd4Mzbg.mjs} +2 -2
- package/dist/chunks/label-bMd4Mzbg.mjs.map +1 -0
- package/dist/chunks/{pagination-BiktkEzi.mjs → pagination-DdTkX4SE.mjs} +2 -2
- package/dist/chunks/{pagination-BiktkEzi.mjs.map → pagination-DdTkX4SE.mjs.map} +1 -1
- package/dist/chunks/popover-CEah8B_Q.mjs +2 -0
- package/dist/chunks/popover-CEah8B_Q.mjs.map +1 -0
- package/dist/chunks/{progress-CmBH1a8S.mjs → progress-CqZxViuL.mjs} +2 -2
- package/dist/chunks/progress-CqZxViuL.mjs.map +1 -0
- package/dist/chunks/scroll-area-Bc6fe1gs.mjs +2 -0
- package/dist/chunks/scroll-area-Bc6fe1gs.mjs.map +1 -0
- package/dist/chunks/{select-Co76oy2I.mjs → select-CGYt_Y93.mjs} +2 -2
- package/dist/chunks/{select-Co76oy2I.mjs.map → select-CGYt_Y93.mjs.map} +1 -1
- package/dist/chunks/{skeleton-cvIjllDp.mjs → skeleton-BdpInwiZ.mjs} +2 -2
- package/dist/chunks/{skeleton-cvIjllDp.mjs.map → skeleton-BdpInwiZ.mjs.map} +1 -1
- package/dist/chunks/{sortable-DaXPlC2-.mjs → sortable-CYb9HX1G.mjs} +2 -2
- package/dist/chunks/{sortable-DaXPlC2-.mjs.map → sortable-CYb9HX1G.mjs.map} +1 -1
- package/dist/chunks/{table-xzX2584j.mjs → table-jCCqMuXZ.mjs} +2 -2
- package/dist/chunks/{table-xzX2584j.mjs.map → table-jCCqMuXZ.mjs.map} +1 -1
- package/dist/chunks/{tslib.es6-CC_zzJ2l.mjs → tslib.es6-C_EBDYxc.mjs} +1 -1
- package/dist/chunks/{tslib.es6-CC_zzJ2l.mjs.map → tslib.es6-C_EBDYxc.mjs.map} +1 -1
- package/dist/chunks/{utils-B9uwc_lt.mjs → utils-DxzrhakI.mjs} +2 -2
- package/dist/chunks/{utils-B9uwc_lt.mjs.map → utils-DxzrhakI.mjs.map} +1 -1
- package/dist/chunks/x-BzuwgR7h.mjs +2 -0
- package/dist/chunks/{x-Bdqqbrz4.mjs.map → x-BzuwgR7h.mjs.map} +1 -1
- package/dist/command/index.mjs +1 -1
- package/dist/data-table/index.d.ts +3 -4
- package/dist/data-table/index.mjs +1 -1
- package/dist/data-table/index.mjs.map +1 -1
- package/dist/dialog/index.mjs +1 -1
- package/dist/dropdown-menu/index.mjs +1 -1
- package/dist/dropdown-menu/index.mjs.map +1 -1
- package/dist/dropzone/index.d.ts +43 -12
- package/dist/dropzone/index.mjs +1 -1
- package/dist/dropzone/index.mjs.map +1 -1
- package/dist/form/index.mjs +1 -1
- package/dist/form/index.mjs.map +1 -1
- package/dist/hover-card/index.mjs +1 -1
- package/dist/icon/index.mjs +1 -1
- package/dist/index.css +1 -1
- package/dist/input/index.mjs +1 -1
- package/dist/label/index.mjs +1 -1
- package/dist/pagination/index.mjs +1 -1
- package/dist/popover/index.mjs +1 -1
- package/dist/progress/index.mjs +1 -1
- package/dist/scroll-area/index.mjs +1 -1
- package/dist/select/index.mjs +1 -1
- package/dist/separator/index.mjs +1 -1
- package/dist/separator/index.mjs.map +1 -1
- package/dist/sheet/index.mjs +1 -1
- package/dist/sheet/index.mjs.map +1 -1
- package/dist/skeleton/index.mjs +1 -1
- package/dist/sortable/index.mjs +1 -1
- package/dist/table/index.mjs +1 -1
- package/dist/tabs/index.mjs +1 -1
- package/dist/tabs/index.mjs.map +1 -1
- package/dist/toast/index.mjs +1 -1
- package/dist/toast/index.mjs.map +1 -1
- package/dist/tooltip/index.mjs +1 -1
- package/dist/tooltip/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/TextWrap-DM8p5RY0.mjs +0 -2
- package/dist/chunks/TextWrap-DM8p5RY0.mjs.map +0 -1
- package/dist/chunks/accordion-CJbwVC50.mjs +0 -2
- package/dist/chunks/accordion-CJbwVC50.mjs.map +0 -1
- package/dist/chunks/check-DoBi3iW5.mjs +0 -2
- package/dist/chunks/chevron-down-BlskY22a.mjs +0 -2
- package/dist/chunks/chevron-left-BXFDtxhQ.mjs +0 -2
- package/dist/chunks/chevron-right-DAqTCOj7.mjs +0 -2
- package/dist/chunks/hover-card-CujP4Atn.mjs +0 -2
- package/dist/chunks/hover-card-CujP4Atn.mjs.map +0 -1
- package/dist/chunks/index-BSf-atXx.mjs +0 -2
- package/dist/chunks/index-BSf-atXx.mjs.map +0 -1
- package/dist/chunks/index-CAVVTG3h.mjs +0 -2
- package/dist/chunks/index-CAVVTG3h.mjs.map +0 -1
- package/dist/chunks/index-CUXMuJ__.mjs +0 -2
- package/dist/chunks/index-CUXMuJ__.mjs.map +0 -1
- package/dist/chunks/index-Ck1fOwnt.mjs +0 -2
- package/dist/chunks/index-Ck1fOwnt.mjs.map +0 -1
- package/dist/chunks/index-DZldl4eo.mjs +0 -2
- package/dist/chunks/index-DZldl4eo.mjs.map +0 -1
- package/dist/chunks/index-DdNjMgpV.mjs +0 -2
- package/dist/chunks/index-Dix9fE1x.mjs +0 -2
- package/dist/chunks/index-Dix9fE1x.mjs.map +0 -1
- package/dist/chunks/index-DuMyb05s.mjs +0 -2
- package/dist/chunks/index-DuMyb05s.mjs.map +0 -1
- package/dist/chunks/index-DyUn0c26.mjs +0 -2
- package/dist/chunks/index-DyUn0c26.mjs.map +0 -1
- package/dist/chunks/index-IXx8l3RV.mjs +0 -2
- package/dist/chunks/index-IXx8l3RV.mjs.map +0 -1
- package/dist/chunks/index-qP_a6BiF.mjs.map +0 -1
- package/dist/chunks/label-BL5NIn0A.mjs.map +0 -1
- package/dist/chunks/popover-CSY_ub7s.mjs +0 -2
- package/dist/chunks/popover-CSY_ub7s.mjs.map +0 -1
- package/dist/chunks/progress-CmBH1a8S.mjs.map +0 -1
- package/dist/chunks/scroll-area-B-b-oQYr.mjs +0 -2
- package/dist/chunks/scroll-area-B-b-oQYr.mjs.map +0 -1
- package/dist/chunks/x-Bdqqbrz4.mjs +0 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/circle.js","../../node_modules/@radix-ui/react-menu/dist/index.mjs","../../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.479.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"Circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n","\"use client\";\n\n// packages/react/menu/src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } 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 = (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 = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\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 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};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (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};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (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 }\n);\nvar MenuRootContentModal = React.forwardRef(\n (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 }\n);\nvar MenuRootContentNonModal = React.forwardRef((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});\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = React.forwardRef(\n (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 = (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 (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\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 }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (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 = () => {\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 };\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 const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (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 }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (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 }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (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 }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (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 }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (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 }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (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 }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (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};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (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 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\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\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 const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\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 }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...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: \"start\",\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 }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\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}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\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}\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 xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].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}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\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\";\n\n// packages/react/dropdown-menu/src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } 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 = (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 = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\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};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\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: composeRefs(forwardedRef, context.triggerRef),\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 }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (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 }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((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});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\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 { cn } from \"@/lib/utils\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport React from \"react\";\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n\treturn <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n\treturn <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n\treturn <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n\tclassName,\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Portal>\n\t\t\t<DropdownMenuPrimitive.Content\n\t\t\t\tdata-slot=\"dropdown-menu-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out 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 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</DropdownMenuPrimitive.Portal>\n\t);\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n\treturn <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n\tclassName,\n\tinset,\n\tvariant = \"default\",\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n\tinset?: boolean;\n\tvariant?: \"default\" | \"destructive\";\n}) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Item\n\t\t\tdata-slot=\"dropdown-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive-foreground data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/40 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"dropdown-menu-checkbox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<DropdownMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</DropdownMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</DropdownMenuPrimitive.CheckboxItem>\n\t);\n}\n\nfunction DropdownMenuRadioGroup({\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n\treturn <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.RadioItem\n\t\t\tdata-slot=\"dropdown-menu-radio-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<DropdownMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CircleIcon className=\"size-2 fill-current\" />\n\t\t\t\t</DropdownMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</DropdownMenuPrimitive.RadioItem>\n\t);\n}\n\nfunction DropdownMenuLabel({\n\tclassName,\n\tinset,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n\tinset?: boolean;\n}) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Label\n\t\t\tdata-slot=\"dropdown-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Separator\n\t\t\tdata-slot=\"dropdown-menu-separator\"\n\t\t\tclassName={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"dropdown-menu-shortcut\"\n\t\t\tclassName={cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n\treturn <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n\tinset?: boolean;\n}) {\n\treturn (\n\t\t<DropdownMenuPrimitive.SubTrigger\n\t\t\tdata-slot=\"dropdown-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ChevronRightIcon className=\"ml-auto size-4\" />\n\t\t</DropdownMenuPrimitive.SubTrigger>\n\t);\n}\n\nfunction DropdownMenuSubContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.SubContent\n\t\t\tdata-slot=\"dropdown-menu-sub-content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out 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-md border p-1 shadow-lg\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tDropdownMenu,\n\tDropdownMenuPortal,\n\tDropdownMenuTrigger,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuItem,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuSubContent,\n};\n"],"names":["Circle","createLucideIcon","cx","cy","r","key","SELECTION_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","ltr","rtl","SUB_CLOSE_KEYS","MENU_NAME","Collection","useCollection","createCollectionScope","createCollection","createMenuContext","createMenuScope","createContextScope","createPopperScope","createRovingFocusGroupScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","Menu","props","__scopeMenu","open","children","dir","onOpenChange","modal","popperScope","content","setContent","React","useState","isUsingKeyboardRef","useRef","handleOpenChange","useCallbackRef","direction","useDirection","useEffect","handleKeyDown","current","document","addEventListener","handlePointer","capture","once","removeEventListener","jsx","PopperPrimitive.Root","scope","onContentChange","onClose","useCallback","displayName","MenuAnchor","forwardRef","forwardedRef","anchorProps","PopperPrimitive.Anchor","ref","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","MenuPortal","container","context","Presence","present","PortalPrimitive","asChild","CONTENT_NAME","MenuContentProvider","useMenuContentContext","MenuContent","portalContext","contentProps","rootContext","Provider","Slot","MenuRootContentModal","MenuRootContentNonModal","composedRefs","useComposedRefs","hideOthers","MenuContentImpl","trapFocus","disableOutsidePointerEvents","disableOutsideScroll","onFocusOutside","composeEventHandlers","event","preventDefault","checkForDefaultPrevented","onDismiss","createSlot","loop","onOpenAutoFocus","onCloseAutoFocus","onEntryFocus","onEscapeKeyDown","onPointerDownOutside","onInteractOutside","rovingFocusGroupScope","getItems","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","RemoveScroll","Fragment","scrollLockWrapperProps","as","allowPinchZoom","handleTypeaheadSearch","search","items","filter","item","disabled","currentItem","activeElement","currentMatch","find","textValue","nextMatch","values","isRepeated","length","Array","from","every","char","normalizedSearch","currentMatchIndex","indexOf","wrappedValues","array","startIndex","Math","max","map","_","index","v","value","toLowerCase","startsWith","getNextMatch","newItem","updateSearch","window","clearTimeout","setTimeout","focus","useFocusGuards","isPointerMovingToSubmenu","side","area","cursorPos","x","clientX","y","clientY","point","polygon","inside","i","j","xi","yi","xj","yj","isPointInPolygon","isPointerInGraceArea","onItemEnter","onItemLeave","onTriggerLeave","onPointerGraceIntentChange","intent","FocusScope","trapped","onMountAutoFocus","preventScroll","onUnmountAutoFocus","DismissableLayer","RovingFocusGroup.Root","orientation","currentTabStopId","onCurrentTabStopIdChange","preventScrollOnEntryFocus","PopperPrimitive.Content","role","getOpenState","style","outline","onKeyDown","isKeyDownInside","target","closest","currentTarget","isModifierKey","ctrlKey","altKey","metaKey","isCharacterKey","includes","candidateNodes","reverse","candidates","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusFirst","onBlur","contains","onPointerMove","whenMouse","pointerXHasChanged","newDir","MenuGroup","groupProps","Primitive","div","MenuLabel","labelProps","ITEM_NAME","ITEM_SELECT","MenuItem","onSelect","itemProps","contentContext","isPointerDownRef","MenuItemImpl","onClick","menuItem","itemSelectEvent","CustomEvent","bubbles","cancelable","dispatchDiscreteCustomEvent","defaultPrevented","onPointerDown","onPointerUp","click","isTypingAhead","isFocused","setIsFocused","textContent","setTextContent","trim","ItemSlot","RovingFocusGroup.Item","focusable","onPointerLeave","onFocus","MenuCheckboxItem","checked","onCheckedChange","checkboxItemProps","ItemIndicatorProvider","isIndeterminate","getCheckedState","RADIO_GROUP_NAME","RadioGroupProvider","useRadioGroupContext","onValueChange","MenuRadioGroup","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","span","MenuSeparator","separatorProps","MenuArrow","arrowProps","PopperPrimitive.Arrow","SUB_NAME","MenuSubProvider","useMenuSubContext","MenuSub","parentMenuContext","trigger","setTrigger","contentId","useId","triggerId","onTriggerChange","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","openTimerRef","clearOpenTimer","pointerGraceTimer","id","composeRefs","contentRect","getBoundingClientRect","dataset","rightSide","bleed","contentNearEdge","contentFarEdge","top","bottom","SUB_CONTENT_NAME","MenuSubContent","subContentProps","align","isCloseKey","handler","pointerType","Root","Anchor","Portal","Content","Group","Label","Item","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow","Sub","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","createDropdownMenuScope","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenu","__scopeDropdownMenu","openProp","defaultOpen","menuScope","triggerRef","setOpen","useControllableState","prop","defaultProp","onChange","onOpenToggle","prevOpen","MenuPrimitive.Root","TRIGGER_NAME","DropdownMenuTrigger","triggerProps","MenuPrimitive.Anchor","button","type","DropdownMenuPortal","portalProps","MenuPrimitive.Portal","DropdownMenuContent","hasInteractedOutsideRef","MenuPrimitive.Content","originalEvent","detail","ctrlLeftClick","isRightClick","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","MenuPrimitive.Arrow","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Trigger","MenuPrimitive.Sub","createElement","DropdownMenuPrimitive","data-slot","className","sideOffset","cn","inset","variant","data-inset","data-variant","CheckIcon","CircleIcon","DropdownMenuShortcut","DropdownMenuSub","ChevronRightIcon"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/circle.js","../../node_modules/@radix-ui/react-menu/dist/index.mjs","../../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.479.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"Circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n","\"use client\";\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, composeRefs } 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 = (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 = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\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 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};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (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};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (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 }\n);\nvar MenuRootContentModal = React.forwardRef(\n (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 }\n);\nvar MenuRootContentNonModal = React.forwardRef((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});\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = React.forwardRef(\n (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 = (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 (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\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 }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (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 = () => {\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 };\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 const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (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 }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (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 }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (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 }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (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 }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (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 }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (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 }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (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};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (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 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\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\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 const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\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 }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...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: \"start\",\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 }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\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}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\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}\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}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\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\";\n\n// src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } 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 = (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};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\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: composeRefs(forwardedRef, context.triggerRef),\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 }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (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 }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (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};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((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});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\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 { cn } from \"@/lib/utils\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport React from \"react\";\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n\treturn <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n\treturn <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n\treturn <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n\tclassName,\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Portal>\n\t\t\t<DropdownMenuPrimitive.Content\n\t\t\t\tdata-slot=\"dropdown-menu-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out 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 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</DropdownMenuPrimitive.Portal>\n\t);\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n\treturn <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n\tclassName,\n\tinset,\n\tvariant = \"default\",\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n\tinset?: boolean;\n\tvariant?: \"default\" | \"destructive\";\n}) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Item\n\t\t\tdata-slot=\"dropdown-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:bg-destructive/10 data-[variant=destructive]:text-foreground data-[variant=destructive]:focus:bg-destructive/90 dark:data-[variant=destructive]:focus:bg-destructive/90 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"dropdown-menu-checkbox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<DropdownMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</DropdownMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</DropdownMenuPrimitive.CheckboxItem>\n\t);\n}\n\nfunction DropdownMenuRadioGroup({\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n\treturn <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.RadioItem\n\t\t\tdata-slot=\"dropdown-menu-radio-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<DropdownMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CircleIcon className=\"size-2 fill-current\" />\n\t\t\t\t</DropdownMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</DropdownMenuPrimitive.RadioItem>\n\t);\n}\n\nfunction DropdownMenuLabel({\n\tclassName,\n\tinset,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n\tinset?: boolean;\n}) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Label\n\t\t\tdata-slot=\"dropdown-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.Separator\n\t\t\tdata-slot=\"dropdown-menu-separator\"\n\t\t\tclassName={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"dropdown-menu-shortcut\"\n\t\t\tclassName={cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n\treturn <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n\tinset?: boolean;\n}) {\n\treturn (\n\t\t<DropdownMenuPrimitive.SubTrigger\n\t\t\tdata-slot=\"dropdown-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ChevronRightIcon className=\"ml-auto size-4\" />\n\t\t</DropdownMenuPrimitive.SubTrigger>\n\t);\n}\n\nfunction DropdownMenuSubContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n\treturn (\n\t\t<DropdownMenuPrimitive.SubContent\n\t\t\tdata-slot=\"dropdown-menu-sub-content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out 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-md border p-1 shadow-lg\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tDropdownMenu,\n\tDropdownMenuPortal,\n\tDropdownMenuTrigger,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuItem,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuSubContent,\n};\n"],"names":["Circle","createLucideIcon","cx","cy","r","key","SELECTION_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","ltr","rtl","SUB_CLOSE_KEYS","MENU_NAME","Collection","useCollection","createCollectionScope","createCollection","createMenuContext","createMenuScope","createContextScope","createPopperScope","createRovingFocusGroupScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","Menu","props","__scopeMenu","open","children","dir","onOpenChange","modal","popperScope","content","setContent","React","useState","isUsingKeyboardRef","useRef","handleOpenChange","useCallbackRef","direction","useDirection","useEffect","handleKeyDown","current","document","addEventListener","handlePointer","capture","once","removeEventListener","jsx","PopperPrimitive.Root","scope","onContentChange","onClose","useCallback","displayName","MenuAnchor","forwardRef","forwardedRef","anchorProps","PopperPrimitive.Anchor","ref","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","MenuPortal","container","context","Presence","present","PortalPrimitive","asChild","CONTENT_NAME","MenuContentProvider","useMenuContentContext","MenuContent","portalContext","contentProps","rootContext","Provider","Slot","MenuRootContentModal","MenuRootContentNonModal","composedRefs","useComposedRefs","hideOthers","MenuContentImpl","trapFocus","disableOutsidePointerEvents","disableOutsideScroll","onFocusOutside","composeEventHandlers","event","preventDefault","checkForDefaultPrevented","onDismiss","createSlot","loop","onOpenAutoFocus","onCloseAutoFocus","onEntryFocus","onEscapeKeyDown","onPointerDownOutside","onInteractOutside","rovingFocusGroupScope","getItems","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","RemoveScroll","Fragment","scrollLockWrapperProps","as","allowPinchZoom","handleTypeaheadSearch","search","items","filter","item","disabled","currentItem","activeElement","currentMatch","find","textValue","nextMatch","values","isRepeated","length","Array","from","every","char","normalizedSearch","currentMatchIndex","indexOf","wrappedValues","array","startIndex","Math","max","map","_","index","v","value","toLowerCase","startsWith","getNextMatch","newItem","updateSearch","window","clearTimeout","setTimeout","focus","useFocusGuards","isPointerMovingToSubmenu","side","area","cursorPos","x","clientX","y","clientY","point","polygon","inside","i","j","ii","jj","xi","yi","xj","yj","isPointInPolygon","isPointerInGraceArea","onItemEnter","onItemLeave","onTriggerLeave","onPointerGraceIntentChange","intent","FocusScope","trapped","onMountAutoFocus","preventScroll","onUnmountAutoFocus","DismissableLayer","RovingFocusGroup.Root","orientation","currentTabStopId","onCurrentTabStopIdChange","preventScrollOnEntryFocus","PopperPrimitive.Content","role","getOpenState","style","outline","onKeyDown","isKeyDownInside","target","closest","currentTarget","isModifierKey","ctrlKey","altKey","metaKey","isCharacterKey","includes","candidateNodes","reverse","candidates","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusFirst","onBlur","contains","onPointerMove","whenMouse","pointerXHasChanged","newDir","MenuGroup","groupProps","Primitive","div","MenuLabel","labelProps","ITEM_NAME","ITEM_SELECT","MenuItem","onSelect","itemProps","contentContext","isPointerDownRef","MenuItemImpl","onClick","menuItem","itemSelectEvent","CustomEvent","bubbles","cancelable","dispatchDiscreteCustomEvent","defaultPrevented","onPointerDown","onPointerUp","click","isTypingAhead","isFocused","setIsFocused","textContent","setTextContent","trim","ItemSlot","RovingFocusGroup.Item","focusable","onPointerLeave","onFocus","MenuCheckboxItem","checked","onCheckedChange","checkboxItemProps","ItemIndicatorProvider","isIndeterminate","getCheckedState","RADIO_GROUP_NAME","RadioGroupProvider","useRadioGroupContext","onValueChange","MenuRadioGroup","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","span","MenuSeparator","separatorProps","MenuArrow","arrowProps","PopperPrimitive.Arrow","SUB_NAME","MenuSubProvider","useMenuSubContext","MenuSub","parentMenuContext","trigger","setTrigger","contentId","useId","triggerId","onTriggerChange","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","openTimerRef","clearOpenTimer","pointerGraceTimer","id","composeRefs","contentRect","getBoundingClientRect","dataset","rightSide","bleed","contentNearEdge","contentFarEdge","top","bottom","SUB_CONTENT_NAME","MenuSubContent","subContentProps","align","isCloseKey","handler","pointerType","Root","Anchor","Portal","Content","Group","Label","Item","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow","Sub","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","createDropdownMenuScope","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenu","__scopeDropdownMenu","openProp","defaultOpen","menuScope","triggerRef","setOpen","useControllableState","prop","defaultProp","onChange","caller","onOpenToggle","prevOpen","MenuPrimitive.Root","TRIGGER_NAME","DropdownMenuTrigger","triggerProps","MenuPrimitive.Anchor","button","type","DropdownMenuPortal","portalProps","MenuPrimitive.Portal","DropdownMenuContent","hasInteractedOutsideRef","MenuPrimitive.Content","originalEvent","detail","ctrlLeftClick","isRightClick","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","MenuPrimitive.Arrow","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Trigger","MenuPrimitive.Sub","createElement","DropdownMenuPrimitive","data-slot","className","sideOffset","cn","inset","variant","data-inset","data-variant","CheckIcon","CircleIcon","DropdownMenuShortcut","DropdownMenuSub","ChevronRightIcon"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
package/dist/dropzone/index.d.ts
CHANGED
@@ -8,36 +8,36 @@ type FileErrorMessage = {
|
|
8
8
|
};
|
9
9
|
interface FileUploaderProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
10
10
|
/**
|
11
|
-
*
|
11
|
+
* Valor atual do uploader.
|
12
12
|
* @type File[]
|
13
13
|
* @default undefined
|
14
14
|
* @example value={files}
|
15
15
|
*/
|
16
16
|
value?: File[];
|
17
17
|
/**
|
18
|
-
*
|
18
|
+
* Função chamada quando o valor muda.
|
19
19
|
* @type (files: File[]) => void
|
20
20
|
* @default undefined
|
21
21
|
* @example onValueChange={(files) => setFiles(files)}
|
22
22
|
*/
|
23
23
|
onValueChange?: (files: File[]) => void;
|
24
24
|
/**
|
25
|
-
*
|
25
|
+
* Função chamada ao realizar o upload dos arquivos.
|
26
26
|
* @type (files: File[]) => Promise<void>
|
27
27
|
* @default undefined
|
28
28
|
* @example onUpload={(files) => uploadFiles(files)}
|
29
29
|
*/
|
30
30
|
onUpload?: (files: File[]) => Promise<void>;
|
31
31
|
/**
|
32
|
-
*
|
32
|
+
* Progresso do upload de cada arquivo.
|
33
33
|
* @type Record<string, number> | undefined
|
34
34
|
* @default undefined
|
35
35
|
* @example progresses={{ "file1.png": 50 }}
|
36
36
|
*/
|
37
37
|
progresses?: Record<string, number>;
|
38
38
|
/**
|
39
|
-
*
|
40
|
-
* @type { [key: string]: string[]}
|
39
|
+
* Tipos de arquivos aceitos pelo uploader.
|
40
|
+
* @type { [key: string]: string[] }
|
41
41
|
* @default
|
42
42
|
* ```ts
|
43
43
|
* { "image/*": [] }
|
@@ -46,48 +46,79 @@ interface FileUploaderProps extends React__default.HTMLAttributes<HTMLDivElement
|
|
46
46
|
*/
|
47
47
|
accept?: DropzoneProps["accept"];
|
48
48
|
/**
|
49
|
-
*
|
49
|
+
* Tamanho máximo permitido para cada arquivo (em bytes).
|
50
50
|
* @type number | undefined
|
51
51
|
* @default 1024 * 1024 * 2 // 2MB
|
52
52
|
* @example maxSize={1024 * 1024 * 2} // 2MB
|
53
53
|
*/
|
54
54
|
maxSize?: DropzoneProps["maxSize"];
|
55
55
|
/**
|
56
|
-
*
|
56
|
+
* Quantidade máxima de arquivos permitidos.
|
57
57
|
* @type number | undefined
|
58
58
|
* @default 1
|
59
59
|
* @example maxFileCount={4}
|
60
60
|
*/
|
61
61
|
maxFileCount?: DropzoneProps["maxFiles"];
|
62
62
|
/**
|
63
|
-
*
|
63
|
+
* Permite selecionar múltiplos arquivos.
|
64
64
|
* @type boolean
|
65
65
|
* @default false
|
66
66
|
* @example multiple
|
67
67
|
*/
|
68
68
|
multiple?: boolean;
|
69
69
|
/**
|
70
|
-
*
|
70
|
+
* Desabilita o uploader.
|
71
71
|
* @type boolean
|
72
72
|
* @default false
|
73
73
|
* @example disabled
|
74
74
|
*/
|
75
75
|
disabled?: boolean;
|
76
76
|
/**
|
77
|
-
* Função para personalizar a mensagem de erro ou executar
|
78
|
-
* Pode retornar uma string para exibição ou void para
|
77
|
+
* Função para personalizar a mensagem de erro ou executar ações quando arquivos forem rejeitados.
|
78
|
+
* Pode retornar uma string para exibição ou void para efeitos colaterais (ex: toast).
|
79
79
|
* @type ((errors: readonly FileError[]) => string | void) | undefined
|
80
80
|
* @default undefined
|
81
81
|
* @example onGetErrorMessage={(errors) => "Arquivo inválido"}
|
82
82
|
* @example onGetErrorMessage={(errors) => toast({ title: "Erro", variant: "destructive" })}
|
83
83
|
*/
|
84
84
|
onGetErrorMessage?: (errors: readonly FileError[]) => string | void;
|
85
|
+
/**
|
86
|
+
* Função chamada quando arquivos válidos são selecionados.
|
87
|
+
* Deve retornar os arquivos que serão usados no estado.
|
88
|
+
* @type (acceptedFiles: File[]) => File[]
|
89
|
+
*/
|
85
90
|
onValidFile: (acceptedFiles: File[]) => File[];
|
91
|
+
/**
|
92
|
+
* Título exibido no componente.
|
93
|
+
* @type string
|
94
|
+
*/
|
86
95
|
title: string;
|
96
|
+
/**
|
97
|
+
* Descrição opcional exibida abaixo do título.
|
98
|
+
* @type string | undefined
|
99
|
+
*/
|
87
100
|
description?: string;
|
101
|
+
/**
|
102
|
+
* Exibe visualização dos arquivos selecionados (quando aplicável).
|
103
|
+
* @type boolean | undefined
|
104
|
+
* @default false
|
105
|
+
*/
|
88
106
|
previewFiles?: boolean;
|
107
|
+
/**
|
108
|
+
* Indica se o uploader está em estado de carregamento.
|
109
|
+
* @type boolean | undefined
|
110
|
+
* @default false
|
111
|
+
*/
|
89
112
|
isLoading?: boolean;
|
113
|
+
/**
|
114
|
+
* Lista de erros de arquivo para exibição personalizada.
|
115
|
+
* @type FileErrorMessage[]
|
116
|
+
*/
|
90
117
|
fileErrors: FileErrorMessage[];
|
118
|
+
/**
|
119
|
+
* Função para atualizar a lista de erros de arquivo.
|
120
|
+
* @type React.Dispatch<React.SetStateAction<FileErrorMessage[]>>
|
121
|
+
*/
|
91
122
|
setFileErrors: React__default.Dispatch<React__default.SetStateAction<FileErrorMessage[]>>;
|
92
123
|
}
|
93
124
|
declare function FileUploader(props: FileUploaderProps): react_jsx_runtime.JSX.Element;
|