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.
Files changed (171) hide show
  1. package/dist/accordion/index.mjs +1 -1
  2. package/dist/alert/index.mjs +1 -1
  3. package/dist/alert-dialog/index.mjs +1 -1
  4. package/dist/alert-dialog/index.mjs.map +1 -1
  5. package/dist/avatar/index.mjs +1 -1
  6. package/dist/avatar/index.mjs.map +1 -1
  7. package/dist/badge/index.mjs +1 -1
  8. package/dist/base/index.mjs +1 -1
  9. package/dist/base/index.mjs.map +1 -1
  10. package/dist/button/index.mjs +1 -1
  11. package/dist/calendar/index.mjs +1 -1
  12. package/dist/card/index.mjs +1 -1
  13. package/dist/checkbox/index.mjs +1 -1
  14. package/dist/checkbox/index.mjs.map +1 -1
  15. package/dist/chunks/TextWrap-BoRBN55H.mjs +2 -0
  16. package/dist/chunks/TextWrap-BoRBN55H.mjs.map +1 -0
  17. package/dist/chunks/accordion-b7tkR278.mjs +2 -0
  18. package/dist/chunks/accordion-b7tkR278.mjs.map +1 -0
  19. package/dist/chunks/{badge-Bl0X9ruG.mjs → badge-CGDtT1AM.mjs} +2 -2
  20. package/dist/chunks/{badge-Bl0X9ruG.mjs.map → badge-CGDtT1AM.mjs.map} +1 -1
  21. package/dist/chunks/{bundle-mjs-BYGwPY3j.mjs → bundle-mjs-uUK5gBZL.mjs} +1 -1
  22. package/dist/chunks/{bundle-mjs-BYGwPY3j.mjs.map → bundle-mjs-uUK5gBZL.mjs.map} +1 -1
  23. package/dist/chunks/{button-B7K2JEBG.mjs → button-BQuGoSwo.mjs} +2 -2
  24. package/dist/chunks/{button-B7K2JEBG.mjs.map → button-BQuGoSwo.mjs.map} +1 -1
  25. package/dist/chunks/{calendar-CDaopDjB.mjs → calendar-D6nh7E7c.mjs} +2 -2
  26. package/dist/chunks/{calendar-CDaopDjB.mjs.map → calendar-D6nh7E7c.mjs.map} +1 -1
  27. package/dist/chunks/check-BTM93edU.mjs +2 -0
  28. package/dist/chunks/{check-DoBi3iW5.mjs.map → check-BTM93edU.mjs.map} +1 -1
  29. package/dist/chunks/chevron-down-ByXueUKH.mjs +2 -0
  30. package/dist/chunks/{chevron-down-BlskY22a.mjs.map → chevron-down-ByXueUKH.mjs.map} +1 -1
  31. package/dist/chunks/chevron-left-Dj6YqHMd.mjs +2 -0
  32. package/dist/chunks/{chevron-left-BXFDtxhQ.mjs.map → chevron-left-Dj6YqHMd.mjs.map} +1 -1
  33. package/dist/chunks/chevron-right-D2IT905d.mjs +2 -0
  34. package/dist/chunks/{chevron-right-DAqTCOj7.mjs.map → chevron-right-D2IT905d.mjs.map} +1 -1
  35. package/dist/chunks/{command-DYONarI_.mjs → command-B-ANHdE6.mjs} +2 -2
  36. package/dist/chunks/{command-DYONarI_.mjs.map → command-B-ANHdE6.mjs.map} +1 -1
  37. package/dist/chunks/{createLucideIcon-CkKdyF_L.mjs → createLucideIcon-KUe_eRSY.mjs} +1 -1
  38. package/dist/chunks/{createLucideIcon-CkKdyF_L.mjs.map → createLucideIcon-KUe_eRSY.mjs.map} +1 -1
  39. package/dist/chunks/{dialog-Bs3UmyLz.mjs → dialog-BXMw3pOb.mjs} +2 -2
  40. package/dist/chunks/{dialog-Bs3UmyLz.mjs.map → dialog-BXMw3pOb.mjs.map} +1 -1
  41. package/dist/chunks/hover-card-DvOyhTNF.mjs +2 -0
  42. package/dist/chunks/hover-card-DvOyhTNF.mjs.map +1 -0
  43. package/dist/chunks/index-BA0myTwh.mjs +2 -0
  44. package/dist/chunks/index-BA0myTwh.mjs.map +1 -0
  45. package/dist/chunks/index-BfrEVNZH.mjs +2 -0
  46. package/dist/chunks/index-BfrEVNZH.mjs.map +1 -0
  47. package/dist/chunks/{index-qP_a6BiF.mjs → index-BuuxNXqh.mjs} +2 -2
  48. package/dist/chunks/index-BuuxNXqh.mjs.map +1 -0
  49. package/dist/chunks/{index-BX6nSpY1.mjs → index-CCvvm74Y.mjs} +1 -1
  50. package/dist/chunks/{index-BX6nSpY1.mjs.map → index-CCvvm74Y.mjs.map} +1 -1
  51. package/dist/chunks/index-CEACCVIV.mjs +2 -0
  52. package/dist/chunks/index-CEACCVIV.mjs.map +1 -0
  53. package/dist/chunks/index-CFXZ99Xo.mjs +2 -0
  54. package/dist/chunks/index-CFXZ99Xo.mjs.map +1 -0
  55. package/dist/chunks/index-CVVWvftS.mjs +2 -0
  56. package/dist/chunks/index-CVVWvftS.mjs.map +1 -0
  57. package/dist/chunks/index-CsbH4Chn.mjs +2 -0
  58. package/dist/chunks/index-CsbH4Chn.mjs.map +1 -0
  59. package/dist/chunks/index-Czv0ydhM.mjs +2 -0
  60. package/dist/chunks/index-Czv0ydhM.mjs.map +1 -0
  61. package/dist/chunks/index-DDy3w3P8.mjs +2 -0
  62. package/dist/chunks/index-DDy3w3P8.mjs.map +1 -0
  63. package/dist/chunks/index-DGdby9BP.mjs +2 -0
  64. package/dist/chunks/{index-DdNjMgpV.mjs.map → index-DGdby9BP.mjs.map} +1 -1
  65. package/dist/chunks/{index-XatPIL6c.mjs → index-DeHHC7Lr.mjs} +2 -2
  66. package/dist/chunks/{index-XatPIL6c.mjs.map → index-DeHHC7Lr.mjs.map} +1 -1
  67. package/dist/chunks/index-FVFSIN6j.mjs +2 -0
  68. package/dist/chunks/index-FVFSIN6j.mjs.map +1 -0
  69. package/dist/chunks/index-Wrq-dJAT.mjs +2 -0
  70. package/dist/chunks/index-Wrq-dJAT.mjs.map +1 -0
  71. package/dist/chunks/{index-DB6P4Tz1.mjs → index-ZlUuVpwn.mjs} +1 -1
  72. package/dist/chunks/{index-DB6P4Tz1.mjs.map → index-ZlUuVpwn.mjs.map} +1 -1
  73. package/dist/chunks/{input-BtSMyTkT.mjs → input-DXANRHEg.mjs} +2 -2
  74. package/dist/chunks/{input-BtSMyTkT.mjs.map → input-DXANRHEg.mjs.map} +1 -1
  75. package/dist/chunks/{label-BL5NIn0A.mjs → label-bMd4Mzbg.mjs} +2 -2
  76. package/dist/chunks/label-bMd4Mzbg.mjs.map +1 -0
  77. package/dist/chunks/{pagination-BiktkEzi.mjs → pagination-DdTkX4SE.mjs} +2 -2
  78. package/dist/chunks/{pagination-BiktkEzi.mjs.map → pagination-DdTkX4SE.mjs.map} +1 -1
  79. package/dist/chunks/popover-CEah8B_Q.mjs +2 -0
  80. package/dist/chunks/popover-CEah8B_Q.mjs.map +1 -0
  81. package/dist/chunks/{progress-CmBH1a8S.mjs → progress-CqZxViuL.mjs} +2 -2
  82. package/dist/chunks/progress-CqZxViuL.mjs.map +1 -0
  83. package/dist/chunks/scroll-area-Bc6fe1gs.mjs +2 -0
  84. package/dist/chunks/scroll-area-Bc6fe1gs.mjs.map +1 -0
  85. package/dist/chunks/{select-Co76oy2I.mjs → select-CGYt_Y93.mjs} +2 -2
  86. package/dist/chunks/{select-Co76oy2I.mjs.map → select-CGYt_Y93.mjs.map} +1 -1
  87. package/dist/chunks/{skeleton-cvIjllDp.mjs → skeleton-BdpInwiZ.mjs} +2 -2
  88. package/dist/chunks/{skeleton-cvIjllDp.mjs.map → skeleton-BdpInwiZ.mjs.map} +1 -1
  89. package/dist/chunks/{sortable-DaXPlC2-.mjs → sortable-CYb9HX1G.mjs} +2 -2
  90. package/dist/chunks/{sortable-DaXPlC2-.mjs.map → sortable-CYb9HX1G.mjs.map} +1 -1
  91. package/dist/chunks/{table-xzX2584j.mjs → table-jCCqMuXZ.mjs} +2 -2
  92. package/dist/chunks/{table-xzX2584j.mjs.map → table-jCCqMuXZ.mjs.map} +1 -1
  93. package/dist/chunks/{tslib.es6-CC_zzJ2l.mjs → tslib.es6-C_EBDYxc.mjs} +1 -1
  94. package/dist/chunks/{tslib.es6-CC_zzJ2l.mjs.map → tslib.es6-C_EBDYxc.mjs.map} +1 -1
  95. package/dist/chunks/{utils-B9uwc_lt.mjs → utils-DxzrhakI.mjs} +2 -2
  96. package/dist/chunks/{utils-B9uwc_lt.mjs.map → utils-DxzrhakI.mjs.map} +1 -1
  97. package/dist/chunks/x-BzuwgR7h.mjs +2 -0
  98. package/dist/chunks/{x-Bdqqbrz4.mjs.map → x-BzuwgR7h.mjs.map} +1 -1
  99. package/dist/command/index.mjs +1 -1
  100. package/dist/data-table/index.d.ts +3 -4
  101. package/dist/data-table/index.mjs +1 -1
  102. package/dist/data-table/index.mjs.map +1 -1
  103. package/dist/dialog/index.mjs +1 -1
  104. package/dist/dropdown-menu/index.mjs +1 -1
  105. package/dist/dropdown-menu/index.mjs.map +1 -1
  106. package/dist/dropzone/index.d.ts +43 -12
  107. package/dist/dropzone/index.mjs +1 -1
  108. package/dist/dropzone/index.mjs.map +1 -1
  109. package/dist/form/index.mjs +1 -1
  110. package/dist/form/index.mjs.map +1 -1
  111. package/dist/hover-card/index.mjs +1 -1
  112. package/dist/icon/index.mjs +1 -1
  113. package/dist/index.css +1 -1
  114. package/dist/input/index.mjs +1 -1
  115. package/dist/label/index.mjs +1 -1
  116. package/dist/pagination/index.mjs +1 -1
  117. package/dist/popover/index.mjs +1 -1
  118. package/dist/progress/index.mjs +1 -1
  119. package/dist/scroll-area/index.mjs +1 -1
  120. package/dist/select/index.mjs +1 -1
  121. package/dist/separator/index.mjs +1 -1
  122. package/dist/separator/index.mjs.map +1 -1
  123. package/dist/sheet/index.mjs +1 -1
  124. package/dist/sheet/index.mjs.map +1 -1
  125. package/dist/skeleton/index.mjs +1 -1
  126. package/dist/sortable/index.mjs +1 -1
  127. package/dist/table/index.mjs +1 -1
  128. package/dist/tabs/index.mjs +1 -1
  129. package/dist/tabs/index.mjs.map +1 -1
  130. package/dist/toast/index.mjs +1 -1
  131. package/dist/toast/index.mjs.map +1 -1
  132. package/dist/tooltip/index.mjs +1 -1
  133. package/dist/tooltip/index.mjs.map +1 -1
  134. package/package.json +1 -1
  135. package/dist/chunks/TextWrap-DM8p5RY0.mjs +0 -2
  136. package/dist/chunks/TextWrap-DM8p5RY0.mjs.map +0 -1
  137. package/dist/chunks/accordion-CJbwVC50.mjs +0 -2
  138. package/dist/chunks/accordion-CJbwVC50.mjs.map +0 -1
  139. package/dist/chunks/check-DoBi3iW5.mjs +0 -2
  140. package/dist/chunks/chevron-down-BlskY22a.mjs +0 -2
  141. package/dist/chunks/chevron-left-BXFDtxhQ.mjs +0 -2
  142. package/dist/chunks/chevron-right-DAqTCOj7.mjs +0 -2
  143. package/dist/chunks/hover-card-CujP4Atn.mjs +0 -2
  144. package/dist/chunks/hover-card-CujP4Atn.mjs.map +0 -1
  145. package/dist/chunks/index-BSf-atXx.mjs +0 -2
  146. package/dist/chunks/index-BSf-atXx.mjs.map +0 -1
  147. package/dist/chunks/index-CAVVTG3h.mjs +0 -2
  148. package/dist/chunks/index-CAVVTG3h.mjs.map +0 -1
  149. package/dist/chunks/index-CUXMuJ__.mjs +0 -2
  150. package/dist/chunks/index-CUXMuJ__.mjs.map +0 -1
  151. package/dist/chunks/index-Ck1fOwnt.mjs +0 -2
  152. package/dist/chunks/index-Ck1fOwnt.mjs.map +0 -1
  153. package/dist/chunks/index-DZldl4eo.mjs +0 -2
  154. package/dist/chunks/index-DZldl4eo.mjs.map +0 -1
  155. package/dist/chunks/index-DdNjMgpV.mjs +0 -2
  156. package/dist/chunks/index-Dix9fE1x.mjs +0 -2
  157. package/dist/chunks/index-Dix9fE1x.mjs.map +0 -1
  158. package/dist/chunks/index-DuMyb05s.mjs +0 -2
  159. package/dist/chunks/index-DuMyb05s.mjs.map +0 -1
  160. package/dist/chunks/index-DyUn0c26.mjs +0 -2
  161. package/dist/chunks/index-DyUn0c26.mjs.map +0 -1
  162. package/dist/chunks/index-IXx8l3RV.mjs +0 -2
  163. package/dist/chunks/index-IXx8l3RV.mjs.map +0 -1
  164. package/dist/chunks/index-qP_a6BiF.mjs.map +0 -1
  165. package/dist/chunks/label-BL5NIn0A.mjs.map +0 -1
  166. package/dist/chunks/popover-CSY_ub7s.mjs +0 -2
  167. package/dist/chunks/popover-CSY_ub7s.mjs.map +0 -1
  168. package/dist/chunks/progress-CmBH1a8S.mjs.map +0 -1
  169. package/dist/chunks/scroll-area-B-b-oQYr.mjs +0 -2
  170. package/dist/chunks/scroll-area-B-b-oQYr.mjs.map +0 -1
  171. 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":"opCAGO,MAaDA,EAASC,EAAiB,SAbI,CAAC,CAAC,SAAU,CAAEC,GAAI,KAAMC,GAAI,KAAMC,EAAG,KAAMC,IAAK,aCuBpF,IAAMC,EAAiB,CAAC,QAAS,KAE3BC,EAAY,CAAC,UAAW,WAAY,OACpCC,EAAkB,CAFJ,YAAa,SAAU,UAEAD,GACrCE,EAA6C,CACjDC,IAAK,IAAIJ,EAAgB,cACzBK,IAAK,IAAIL,EAAgB,cAErBM,EAA8C,CAClDF,IAAK,CAAC,aACNC,IAAK,CAAC,eAOFE,EAAY,QAGXC,EAAYC,EAAeC,GAAyBC,EAGzDJ,IAGKK,EAAmBC,GAAmBC,EAAmBP,EAAW,CACzEG,EACAK,EACAC,IAEIC,EAAiBF,IACjBG,EAA2BF,KAS1BG,EAAcC,GAAkBR,EAAoCL,IASpEc,EAAkBC,GAAsBV,EAAwCL,GAUjFgB,EAA6BC,IACjC,MAAMC,YAAEA,EAAAC,KAAaA,GAAO,EAAAC,SAAOA,EAAAC,IAAUA,EAAAC,aAAKA,EAAAC,MAAcA,GAAQ,GAASN,EAC3EO,EAAcd,EAAeQ,IAC5BO,EAASC,GAAoBC,EAAAC,SAAoC,MAClEC,EAA2BF,EAAAG,QAAO,GAClCC,EAAmBC,EAAeV,GAClCW,EAAYC,EAAab,GAmB/B,OAjBMM,EAAAQ,WAAU,KAGd,MAAMC,EAAgB,KACpBP,EAAmBQ,SAAU,EAC7BC,SAASC,iBAAiB,cAAeC,EAAe,CAAEC,SAAS,EAAMC,MAAM,IAC/EJ,SAASC,iBAAiB,cAAeC,EAAe,CAAEC,SAAS,EAAMC,MAAM,GAAM,EAEjFF,EAAgB,IAAOX,EAAmBQ,SAAU,EAE1D,OADAC,SAASC,iBAAiB,UAAWH,EAAe,CAAEK,SAAS,IACxD,KACLH,SAASK,oBAAoB,UAAWP,EAAe,CAAEK,SAAS,IAClEH,SAASK,oBAAoB,cAAeH,EAAe,CAAEC,SAAS,IACtEH,SAASK,oBAAoB,cAAeH,EAAe,CAAEC,SAAS,GAAM,CAC9E,GACC,IAGDG,EAAiBC,EAAhB,IAAyBrB,EACxBJ,SAAAwB,EAAChC,EAAA,CACCkC,MAAO5B,EACPC,OACAG,aAAcS,EACdN,UACAsB,gBAAiBrB,EAEjBN,SAAAwB,EAAC9B,EAAA,CACCgC,MAAO5B,EACP8B,QAAerB,EAAAsB,aAAY,IAAMlB,GAAiB,IAAQ,CAACA,IAC3DF,qBACAR,IAAKY,EACLV,QAECH,gBAGP,EAIJJ,EAAKkC,YAAclD,EAMnB,IAMMmD,EAAmBxB,EAAAyB,YACvB,CAACnC,EAAqCoC,KACpC,MAAMnC,YAAEA,KAAgBoC,GAAgBrC,EAClCO,EAAcd,EAAeQ,GACnC,OAAO0B,EAAiBW,EAAhB,IAA2B/B,KAAiB8B,EAAaE,IAAKH,GAAc,IAIxFF,EAAWD,YAdS,aAoBpB,IAAMO,GAAc,cAGbC,GAAgBC,IAAoBtD,EAAsCoD,GAAa,CAC5FG,gBAAY,IAiBRC,GAAyC5C,IAC7C,MAAMC,YAAEA,EAAA0C,WAAaA,EAAAxC,SAAYA,EAAA0C,UAAUA,GAAc7C,EACnD8C,EAAUlD,EAAe4C,GAAavC,GAC5C,OACE0B,EAACc,GAAA,CAAeZ,MAAO5B,EAAa0C,aAClCxC,SAAAwB,EAACoB,EAAA,CAASC,QAASL,GAAcG,EAAQ5C,KACvCC,SAAAwB,EAACsB,EAAA,CAAgBC,SAAO,EAACL,YACtB1C,gBAGP,EAIJyC,GAAWX,YAAcO,GAMzB,IAAMW,GAAe,eAUdC,GAAqBC,IAC1BjE,EAA2C+D,IAgBvCG,GAAoB5C,EAAAyB,YACxB,CAACnC,EAAsCoC,KACrC,MAAMmB,EAAgBb,GAAiBS,GAAcnD,EAAMC,cACrD0C,WAAEA,EAAaY,EAAcZ,cAAea,GAAiBxD,EAC7D8C,EAAUlD,EAAeuD,GAAcnD,EAAMC,aAC7CwD,EAAc3D,EAAmBqD,GAAcnD,EAAMC,aAE3D,OACE0B,EAAC3C,EAAW0E,SAAX,CAAoB7B,MAAO7B,EAAMC,YAChCE,SAAAwB,EAACoB,EAAA,CAASC,QAASL,GAAcG,EAAQ5C,KACvCC,SAAAwB,EAAC3C,EAAW2E,KAAX,CAAgB9B,MAAO7B,EAAMC,YAC3BE,SAAAsD,EAAYnD,MACXqB,EAACiC,GAAA,IAAyBJ,EAAcjB,IAAKH,IAE7CT,EAACkC,GAAA,IAA4BL,EAAcjB,IAAKH,SAIxD,IAWAwB,GAA6BlD,EAAAyB,YACjC,CAACnC,EAA8CoC,KAC7C,MAAMU,EAAUlD,EAAeuD,GAAcnD,EAAMC,aAC7CsC,EAAY7B,EAAAG,OAAmC,MAC/CiD,EAAeC,EAAgB3B,EAAcG,GAQnD,OALM7B,EAAAQ,WAAU,KACd,MAAMV,EAAU+B,EAAInB,QACpB,GAAIZ,EAAS,OAAOwD,EAAWxD,EAAO,GACrC,IAGDmB,EAACsC,GAAA,IACKjE,EACJuC,IAAKuB,EAGLI,UAAWpB,EAAQ5C,KAGnBiE,4BAA6BrB,EAAQ5C,KACrCkE,sBAAoB,EAGpBC,eAAgBC,EACdtE,EAAMqE,gBACLE,GAAUA,EAAMC,kBACjB,CAAEC,0BAA0B,IAE9BC,UAAW,IAAM5B,EAAQzC,cAAa,IAAK,IAM7CwD,GAAgCnD,EAAAyB,YAGpC,CAACnC,EAA8CoC,KAC/C,MAAMU,EAAUlD,EAAeuD,GAAcnD,EAAMC,aACnD,OACE0B,EAACsC,GAAA,IACKjE,EACJuC,IAAKH,EACL8B,WAAW,EACXC,6BAA6B,EAC7BC,sBAAsB,EACtBM,UAAW,IAAM5B,EAAQzC,cAAa,IAAK,IAmD3CsD,GAAOgB,EAAW,0BAElBV,GAAwBvD,EAAAyB,YAC5B,CAACnC,EAA0CoC,KACzC,MAAMnC,YACJA,EAAA2E,KACAA,GAAO,EAAAV,UACPA,EAAAW,gBACAA,EAAAC,iBACAA,EAAAX,4BACAA,EAAAY,aACAA,EAAAC,gBACAA,EAAAC,qBACAA,EAAAZ,eACAA,EAAAa,kBACAA,EAAAR,UACAA,EAAAN,qBACAA,KACGZ,GACDxD,EACE8C,EAAUlD,EAAeuD,GAAclD,GACvCwD,EAAc3D,EAAmBqD,GAAclD,GAC/CM,EAAcd,EAAeQ,GAC7BkF,EAAwBzF,EAAyBO,GACjDmF,EAAWnG,EAAcgB,IACxBoF,EAAeC,GAA0B5E,EAAAC,SAAwB,MAClE4E,EAAmB7E,EAAAG,OAAuB,MAC1CiD,EAAeC,EAAgB3B,EAAcmD,EAAYzC,EAAQhB,iBACjE0D,EAAiB9E,EAAAG,OAAO,GACxB4E,EAAkB/E,EAAAG,OAAO,IACzB6E,EAA6BhF,EAAAG,OAAO,GACpC8E,EAA8BjF,EAAAG,OAA2B,MACzD+E,EAAsBlF,EAAAG,OAAa,SACnCgF,EAAwBnF,EAAAG,OAAO,GAE/BiF,EAAoB1B,EAAuB2B,EAAqBrF,EAAAsF,SAChEC,EAAyB7B,EAC3B,CAAE8B,GAAIvC,GAAMwC,gBAAgB,QAC5B,EAEEC,EAAyB7H,IAC7B,MAAM8H,EAASZ,EAAUrE,QAAU7C,EAC7B+H,EAAQlB,IAAWmB,QAAQC,IAAUA,EAAKC,WAC1CC,EAAcrF,SAASsF,cACvBC,EAAeN,EAAMO,MAAML,GAASA,EAAKjE,IAAInB,UAAYsF,KAAcI,UAEvEC,EAw2BZ,SAAsBC,EAAkBX,EAAgBO,GACtD,MAAMK,EAAaZ,EAAOa,OAAS,GAAKC,MAAMC,KAAKf,GAAQgB,OAAOC,GAASA,IAASjB,EAAO,KACrFkB,EAAmBN,EAAaZ,EAAO,GAAKA,EAC5CmB,EAAoBZ,EAAeI,EAAOS,QAAQb,IAAgB,EACxE,IAAIc,GAzBgBC,EAyBUX,EAzBEY,EAyBMC,KAAKC,IAAIN,EAAmB,GAxB3DG,EAAMI,KAAI,CAACC,EAAGC,IAAUN,GAAOC,EAAaK,GAASN,EAAMT,WADpE,IAAsBS,EAAYC,EA0BwB,IAA5BL,EAAiBL,SACpBQ,EAAgBA,EAAcnB,QAAQ2B,GAAMA,IAAMtB,KAC3E,MAAMG,EAAYW,EAAcb,MAAMsB,GACpCA,EAAMC,cAAcC,WAAWd,EAAiBa,iBAElD,OAAOrB,IAAcH,EAAeG,OAAY,CAClD,CAn3BwBuB,CADHhC,EAAMyB,KAAKvB,GAASA,EAAKM,YACDT,EAAQO,GACzC2B,EAAUjC,EAAMO,MAAML,GAASA,EAAKM,YAAcC,KAAYxE,IAAInB,kBAG9DoH,EAAaL,GACrB1C,EAAUrE,QAAU+G,EACpBM,OAAOC,aAAalD,EAASpE,SACf,KAAV+G,IAAc3C,EAASpE,QAAUqH,OAAOE,YAAW,IAAMH,EAAa,KAAK,KACjF,EAAGnC,GAECkC,GAKFI,YAAW,IAAOJ,EAAwBK,SAC5C,EAGIlI,EAAAQ,WAAU,IACP,IAAMuH,OAAOC,aAAalD,EAASpE,UACzC,IAIHyH,IAEA,MAAMC,EAAiCpI,EAAAsB,aAAauC,GAC1BqB,EAAcxE,UAAYuE,EAAsBvE,SAAS2H,MAi3BvF,SAA8BxE,EAA2ByE,GACvD,IAAKA,EAAM,OAAO,EAClB,MAAMC,EAAY,CAAEC,EAAG3E,EAAM4E,QAASC,EAAG7E,EAAM8E,SAC/C,OApBF,SAA0BC,EAAcC,GACtC,MAAML,EAAEA,EAAAE,EAAGA,GAAME,EACjB,IAAIE,GAAS,EACb,IAAA,IAASC,EAAI,EAAGC,EAAIH,EAAQrC,OAAS,EAAGuC,EAAIF,EAAQrC,OAAQwC,EAAID,IAAK,CACnE,MAAME,EAAKJ,EAAQE,GAAGP,EAChBU,EAAKL,EAAQE,GAAGL,EAChBS,EAAKN,EAAQG,GAAGR,EAChBY,EAAKP,EAAQG,GAAGN,EAGFQ,EAAKR,GAAQU,EAAKV,GAAQF,GAAKW,EAAKF,IAAOP,EAAIQ,IAAOE,EAAKF,GAAMD,IACtEH,GAAUA,EAC3B,CAEA,OAAOA,CACT,CAKSO,CAAiBd,EAAWD,EACrC,CAp3BgCgB,CAAqBzF,EAAOoB,EAAsBvE,SAAS4H,OACpF,IAEH,OACErH,EAACyB,GAAA,CACCvB,MAAO5B,EACPwF,YACAwE,YAAmBvJ,EAAAsB,aAChBuC,IACKuE,EAAyBvE,IAAQA,EAAMC,gBAAe,GAE5D,CAACsE,IAEHoB,YAAmBxJ,EAAAsB,aAChBuC,IACKuE,EAAyBvE,KAC7BgB,EAAWnE,SAASwH,QACpBtD,EAAiB,MAAI,GAEvB,CAACwD,IAEHqB,eAAsBzJ,EAAAsB,aACnBuC,IACKuE,EAAyBvE,IAAQA,EAAMC,gBAAe,GAE5D,CAACsE,IAEHpD,uBACA0E,2BAAkC1J,EAAAsB,aAAaqI,IAC7C1E,EAAsBvE,QAAUiJ,CAAA,GAC/B,IAEHlK,SAAAwB,EAACmE,EAAA,IAAsBG,EACrB9F,SAAAwB,EAAC2I,EAAA,CACCpH,SAAO,EACPqH,QAASrG,EACTsG,iBAAkBlG,EAAqBO,GAAkBN,IAGvDA,EAAMC,iBACNe,EAAWnE,SAASwH,MAAM,CAAE6B,eAAe,GAAM,IAEnDC,mBAAoB5F,EAEpB3E,SAAAwB,EAACgJ,EAAA,CACCzH,SAAO,EACPiB,8BACAa,kBACAC,uBACAZ,iBACAa,oBACAR,YAEAvE,SAAAwB,EAAkBiJ,EAAjB,CACC1H,SAAO,KACHiC,EACJ/E,IAAKqD,EAAYrD,IACjByK,YAAY,WACZjG,OACAkG,iBAAkBzF,EAClB0F,yBAA0BzF,EAC1BP,aAAcT,EAAqBS,GAAeR,IAE3Cd,EAAY7C,mBAAmBQ,SAASmD,EAAMC,gBAAe,IAEpEwG,2BAAyB,EAEzB7K,SAAAwB,EAAiBsJ,EAAhB,CACCC,KAAK,OACL,mBAAiB,WACjB,aAAYC,GAAarI,EAAQ5C,MACjC,0BAAwB,GACxBE,IAAKqD,EAAYrD,OACbG,KACAiD,EACJjB,IAAKuB,EACLsH,MAAO,CAAEC,QAAS,UAAW7H,EAAa4H,OAC1CE,UAAWhH,EAAqBd,EAAa8H,WAAY/G,IAEvD,MACMgH,EADShH,EAAMiH,OAEZC,QAAQ,+BAAiClH,EAAMmH,cAClDC,EAAgBpH,EAAMqH,SAAWrH,EAAMsH,QAAUtH,EAAMuH,QACvDC,EAAsC,IAArBxH,EAAMhG,IAAI2I,OAC7BqE,IAEgB,QAAdhH,EAAMhG,KAAegG,EAAMC,kBAC1BmH,GAAiBI,GAAgB3F,EAAsB7B,EAAMhG,MAGpE,MAAMiC,EAAU+E,EAAWnE,QAC3B,GAAImD,EAAMiH,SAAWhL,EAAS,OAC9B,IAAK9B,EAAgBsN,SAASzH,EAAMhG,KAAM,OAC1CgG,EAAMC,iBACN,MACMyH,EADQ7G,IAAWmB,QAAQC,IAAUA,EAAKC,WACnBsB,KAAKvB,GAASA,EAAKjE,IAAInB,UAChD3C,EAAUuN,SAASzH,EAAMhG,MAAM0N,EAAeC,UAwsBtE,SAAoBC,GAClB,MAAMC,EAA6B/K,SAASsF,cAC5C,IAAA,MAAW0F,KAAaF,EAAY,CAElC,GAAIE,IAAcD,EAA4B,OAE9C,GADAC,EAAUzD,QACNvH,SAASsF,gBAAkByF,EAA4B,MAC7D,CACF,CA/sBoBE,CAAWL,EAAc,IAE3BM,OAAQjI,EAAqBtE,EAAMuM,QAAShI,IAErCA,EAAMmH,cAAcc,SAASjI,EAAMiH,UACtC/C,OAAOC,aAAalD,EAASpE,SAC7BqE,EAAUrE,QAAU,GACtB,IAEFqL,cAAenI,EACbtE,EAAMyM,cACNC,IAAWnI,IACT,MAAMiH,EAASjH,EAAMiH,OACfmB,EAAqB9G,EAAgBzE,UAAYmD,EAAM4E,QAI7D,GAAI5E,EAAMmH,cAAcc,SAAShB,IAAWmB,EAAoB,CAC9D,MAAMC,EAASrI,EAAM4E,QAAUtD,EAAgBzE,QAAU,QAAU,OACnEwE,EAAcxE,QAAUwL,EACxB/G,EAAgBzE,QAAUmD,EAAM4E,OAClC,iBAOd,IAMR7F,GAAYrB,YAAckB,GAM1B,IAMM0J,GAAkBnM,EAAAyB,YACtB,CAACnC,EAAoCoC,KACnC,MAAMnC,YAAEA,KAAgB6M,GAAe9M,EACvC,OAAO2B,EAACoL,EAAUC,IAAV,CAAc9B,KAAK,WAAY4B,EAAYvK,IAAKH,GAAc,IAI1EyK,GAAU5K,YAbS,YAmBnB,IAKMgL,GAAkBvM,EAAAyB,YACtB,CAACnC,EAAoCoC,KACnC,MAAMnC,YAAEA,KAAgBiN,GAAelN,EACvC,OAAO2B,EAACoL,EAAUC,IAAV,IAAkBE,EAAY3K,IAAKH,GAAc,IAI7D6K,GAAUhL,YAZS,YAkBnB,IAAMkL,GAAY,WACZC,GAAc,kBAOdC,GAAiB3M,EAAAyB,YACrB,CAACnC,EAAmCoC,KAClC,MAAMqE,SAAEA,GAAW,EAAA6G,SAAOA,KAAaC,GAAcvN,EAC/CuC,EAAY7B,EAAAG,OAAuB,MACnC4C,EAAc3D,EAAmBqN,GAAWnN,EAAMC,aAClDuN,EAAiBnK,GAAsB8J,GAAWnN,EAAMC,aACxD6D,EAAeC,EAAgB3B,EAAcG,GAC7CkL,EAAyB/M,EAAAG,QAAO,GAgBtC,OACEc,EAAC+L,GAAA,IACKH,EACJhL,IAAKuB,EACL2C,WACAkH,QAASrJ,EAAqBtE,EAAM2N,SAnBnB,KACnB,MAAMC,EAAWrL,EAAInB,QACrB,IAAKqF,GAAYmH,EAAU,CACzB,MAAMC,EAAkB,IAAIC,YAAYV,GAAa,CAAEW,SAAS,EAAMC,YAAY,IAClFJ,EAAStM,iBAAiB8L,IAAc7I,GAAU+I,IAAW/I,IAAQ,CAAE9C,MAAM,IAC7EwM,EAA4BL,EAAUC,GAClCA,EAAgBK,iBAClBT,EAAiBrM,SAAU,EAE3BqC,EAAY1B,SAEhB,KASEoM,cAAgB5J,IACdvE,EAAMmO,gBAAgB5J,GACtBkJ,EAAiBrM,SAAU,CAAA,EAE7BgN,YAAa9J,EAAqBtE,EAAMoO,aAAc7J,IAI/CkJ,EAAiBrM,SAASmD,EAAMmH,eAAe2C,OAAM,IAE5D/C,UAAWhH,EAAqBtE,EAAMsL,WAAY/G,IAChD,MAAM+J,EAAqD,KAArCd,EAAe/H,UAAUrE,QAC3CqF,GAAa6H,GAA+B,MAAd/J,EAAMhG,KACpCC,EAAewN,SAASzH,EAAMhG,OAChCgG,EAAMmH,cAAc2C,QAOpB9J,EAAMC,iBACR,KACD,IAMT6I,GAASpL,YAAckL,GAUvB,IAAMO,GAAqBhN,EAAAyB,YACzB,CAACnC,EAAuCoC,KACtC,MAAMnC,YAAEA,EAAAwG,SAAaA,GAAW,EAAAK,UAAOA,KAAcyG,GAAcvN,EAC7DwN,EAAiBnK,GAAsB8J,GAAWlN,GAClDkF,EAAwBzF,EAAyBO,GACjDsC,EAAY7B,EAAAG,OAAuB,MACnCiD,EAAeC,EAAgB3B,EAAcG,IAC5CgM,EAAWC,GAAsB9N,EAAAC,UAAS,IAG1C8N,EAAaC,GAAwBhO,EAAAC,SAAS,IAQrD,OAPMD,EAAAQ,WAAU,KACd,MAAM0M,EAAWrL,EAAInB,QACjBwM,GACFc,GAAgBd,EAASa,aAAe,IAAIE,OAC9C,GACC,CAACpB,EAAUpN,WAGZwB,EAAC3C,EAAW4P,SAAX,CACC/M,MAAO5B,EACPwG,WACAK,UAAWA,GAAa2H,EAExBtO,SAAAwB,EAAkBkN,EAAjB,CAAsB3L,SAAO,KAAKiC,EAAuB2J,WAAYrI,EACpEtG,SAAAwB,EAACoL,EAAUC,IAAV,CACC9B,KAAK,WACL,mBAAkBqD,EAAY,QAAK,EACnC,gBAAe9H,QAAY,EAC3B,gBAAeA,EAAW,QAAK,KAC3B8G,EACJhL,IAAKuB,EAYL2I,cAAenI,EACbtE,EAAMyM,cACNC,IAAWnI,IACT,GAAIkC,EACF+G,EAAetD,YAAY3F,QAG3B,GADAiJ,EAAevD,YAAY1F,IACtBA,EAAM2J,iBAAkB,CACd3J,EAAMmH,cACd9C,MAAM,CAAE6B,eAAe,GAC9B,CACF,KAGJsE,eAAgBzK,EACdtE,EAAM+O,eACNrC,IAAWnI,GAAUiJ,EAAetD,YAAY3F,MAElDyK,QAAS1K,EAAqBtE,EAAMgP,SAAS,IAAMR,GAAa,KAChEjC,OAAQjI,EAAqBtE,EAAMuM,QAAQ,IAAMiC,GAAa,UAElE,IAsBFS,GAAyBvO,EAAAyB,YAC7B,CAACnC,EAA2CoC,KAC1C,MAAM8M,QAAEA,GAAU,EAAAC,gBAAOA,KAAoBC,GAAsBpP,EACnE,OACE2B,EAAC0N,GAAA,CAAsBxN,MAAO7B,EAAMC,YAAaiP,UAC/C/O,SAAAwB,EAAC0L,GAAA,CACCnC,KAAK,mBACL,eAAcoE,GAAgBJ,GAAW,QAAUA,KAC/CE,EACJ7M,IAAKH,EACL,aAAYmN,GAAgBL,GAC5B5B,SAAUhJ,EACR8K,EAAkB9B,UAClB,IAAM6B,MAAkBG,GAAgBJ,KAAmBA,IAC3D,CAAEzK,0BAA0B,OAGlC,IAKNwK,GAAiBhN,YAlCU,mBAwC3B,IAAMuN,GAAmB,kBAElBC,GAAoBC,IAAwBtQ,EACjDoQ,GACA,CAAErH,WAAO,EAAWwH,cAAe,SAS/BC,GAAuBlP,EAAAyB,YAC3B,CAACnC,EAAyCoC,KACxC,MAAM+F,MAAEA,EAAAwH,cAAOA,KAAkB7C,GAAe9M,EAC1C6P,EAAoB9O,EAAe4O,GACzC,OACEhO,EAAC8N,GAAA,CAAmB5N,MAAO7B,EAAMC,YAAakI,QAAcwH,cAAeE,EACzE1P,SAAAwB,EAACkL,GAAA,IAAcC,EAAYvK,IAAKH,KAClC,IAKNwN,GAAe3N,YAAcuN,GAM7B,IAAMM,GAAkB,gBAOlBC,GAAsBrP,EAAAyB,YAC1B,CAACnC,EAAwCoC,KACvC,MAAM+F,MAAEA,KAAU6H,GAAmBhQ,EAC/B8C,EAAU4M,GAAqBI,GAAiB9P,EAAMC,aACtDiP,EAAU/G,IAAUrF,EAAQqF,MAClC,OACExG,EAAC0N,GAAA,CAAsBxN,MAAO7B,EAAMC,YAAaiP,UAC/C/O,SAAAwB,EAAC0L,GAAA,CACCnC,KAAK,gBACL,eAAcgE,KACVc,EACJzN,IAAKH,EACL,aAAYmN,GAAgBL,GAC5B5B,SAAUhJ,EACR0L,EAAe1C,UACf,IAAMxK,EAAQ6M,gBAAgBxH,IAC9B,CAAE1D,0BAA0B,OAGlC,IAKNsL,GAAc9N,YAAc6N,GAM5B,IAAMG,GAAsB,qBAIrBZ,GAAuBa,IAA2B9Q,EACvD6Q,GACA,CAAEf,SAAS,IAaPiB,GAA0BzP,EAAAyB,YAC9B,CAACnC,EAA4CoC,KAC3C,MAAMnC,YAAEA,EAAA0C,WAAaA,KAAeyN,GAAuBpQ,EACrDqQ,EAAmBH,GAAwBD,GAAqBhQ,GACtE,OACE0B,EAACoB,EAAA,CACCC,QACEL,GACA2M,GAAgBe,EAAiBnB,WACJ,IAA7BmB,EAAiBnB,QAGnB/O,SAAAwB,EAACoL,EAAUuD,KAAV,IACKF,EACJ7N,IAAKH,EACL,aAAYmN,GAAgBc,EAAiBnB,YAC/C,IAMRiB,GAAkBlO,YAAcgO,GAMhC,IAKMM,GAAsB7P,EAAAyB,YAC1B,CAACnC,EAAwCoC,KACvC,MAAMnC,YAAEA,KAAgBuQ,GAAmBxQ,EAC3C,OACE2B,EAACoL,EAAUC,IAAV,CACC9B,KAAK,YACL,mBAAiB,gBACbsF,EACJjO,IAAKH,GAAA,IAMbmO,GAActO,YAnBS,gBAyBvB,IAMMwO,GAAkB/P,EAAAyB,YACtB,CAACnC,EAAoCoC,KACnC,MAAMnC,YAAEA,KAAgByQ,GAAe1Q,EACjCO,EAAcd,EAAeQ,GACnC,OAAO0B,EAAiBgP,EAAhB,IAA0BpQ,KAAiBmQ,EAAYnO,IAAKH,GAAc,IAItFqO,GAAUxO,YAdS,YAoBnB,IAAM2O,GAAW,WASVC,GAAiBC,IAAqB1R,EAAuCwR,IAQ9EG,GAAmC/Q,IACvC,MAAMC,YAAEA,EAAAE,SAAaA,EAAAD,KAAUA,GAAO,EAAAG,aAAOA,GAAiBL,EACxDgR,EAAoBpR,EAAegR,GAAU3Q,GAC7CM,EAAcd,EAAeQ,IAC5BgR,EAASC,GAAoBxQ,EAAAC,SAAuC,OACpEH,EAASC,GAAoBC,EAAAC,SAAoC,MAClEG,EAAmBC,EAAeV,GAQxC,OALMK,EAAAQ,WAAU,MACiB,IAA3B8P,EAAkB9Q,MAAgBY,GAAiB,GAChD,IAAMA,GAAiB,KAC7B,CAACkQ,EAAkB9Q,KAAMY,IAG1Ba,EAAiBC,EAAhB,IAAyBrB,EACxBJ,SAAAwB,EAAChC,EAAA,CACCkC,MAAO5B,EACPC,OACAG,aAAcS,EACdN,UACAsB,gBAAiBrB,EAEjBN,SAAAwB,EAACkP,GAAA,CACChP,MAAO5B,EACPkR,UAAWC,IACXC,UAAWD,IACXH,UACAK,gBAAiBJ,EAEhB/Q,gBAGP,EAIJ4Q,GAAQ9O,YAAc2O,GAMtB,IAAMW,GAAmB,iBAKnBC,GAAuB9Q,EAAAyB,YAC3B,CAACnC,EAAyCoC,KACxC,MAAMU,EAAUlD,EAAe2R,GAAkBvR,EAAMC,aACjDwD,EAAc3D,EAAmByR,GAAkBvR,EAAMC,aACzDwR,EAAaX,GAAkBS,GAAkBvR,EAAMC,aACvDuN,EAAiBnK,GAAsBkO,GAAkBvR,EAAMC,aAC/DyR,EAAqBhR,EAAAG,OAAsB,OAC3C6E,qBAAEA,EAAA0E,2BAAsBA,GAA+BoD,EACvD3L,EAAQ,CAAE5B,YAAaD,EAAMC,aAE7B0R,EAAuBjR,EAAAsB,aAAY,KACnC0P,EAAatQ,SAASqH,OAAOC,aAAagJ,EAAatQ,SAC3DsQ,EAAatQ,QAAU,IAAA,GACtB,IAYH,OAVMV,EAAAQ,WAAU,IAAMyQ,GAAgB,CAACA,IAEjCjR,EAAAQ,WAAU,KACd,MAAM0Q,EAAoBlM,EAAqBtE,QAC/C,MAAO,KACLqH,OAAOC,aAAakJ,GACpBxH,EAA2B,KAAI,CACjC,GACC,CAAC1E,EAAsB0E,IAGxBzI,EAACO,EAAA,CAAWgB,SAAO,KAAKrB,EACtB1B,SAAAwB,EAAC+L,GAAA,CACCmE,GAAIJ,EAAWJ,UACf,gBAAc,OACd,gBAAevO,EAAQ5C,KACvB,gBAAeuR,EAAWN,UAC1B,aAAYhG,GAAarI,EAAQ5C,SAC7BF,EACJuC,IAAKuP,EAAY1P,EAAcqP,EAAWH,iBAG1C3D,QAAUpJ,IACRvE,EAAM2N,UAAUpJ,GACZvE,EAAMyG,UAAYlC,EAAM2J,mBAM5B3J,EAAMmH,cAAc9C,QACf9F,EAAQ5C,MAAM4C,EAAQzC,cAAa,GAAI,EAE9CoM,cAAenI,EACbtE,EAAMyM,cACNC,IAAWnI,IACTiJ,EAAevD,YAAY1F,GACvBA,EAAM2J,kBACLlO,EAAMyG,UAAa3D,EAAQ5C,MAASwR,EAAatQ,UACpDoM,EAAepD,2BAA2B,MAC1CsH,EAAatQ,QAAUqH,OAAOE,YAAW,KACvC7F,EAAQzC,cAAa,GACrBsR,GAAe,GACd,KACL,KAGJ5C,eAAgBzK,EACdtE,EAAM+O,eACNrC,IAAWnI,IACToN,IAEA,MAAMI,EAAcjP,EAAQtC,SAASwR,wBACrC,GAAID,EAAa,CAEf,MAAMhJ,EAAOjG,EAAQtC,SAASyR,QAAQlJ,KAChCmJ,EAAqB,UAATnJ,EACZoJ,EAAQD,GAAY,EAAK,EACzBE,EAAkBL,EAAYG,EAAY,OAAS,SACnDG,EAAiBN,EAAYG,EAAY,QAAU,QAEzD1E,EAAepD,2BAA2B,CACxCpB,KAAM,CAGJ,CAAEE,EAAG3E,EAAM4E,QAAUgJ,EAAO/I,EAAG7E,EAAM8E,SACrC,CAAEH,EAAGkJ,EAAiBhJ,EAAG2I,EAAYO,KACrC,CAAEpJ,EAAGmJ,EAAgBjJ,EAAG2I,EAAYO,KACpC,CAAEpJ,EAAGmJ,EAAgBjJ,EAAG2I,EAAYQ,QACpC,CAAErJ,EAAGkJ,EAAiBhJ,EAAG2I,EAAYQ,SAEvCxJ,SAGFN,OAAOC,aAAahD,EAAqBtE,SACzCsE,EAAqBtE,QAAUqH,OAAOE,YACpC,IAAM6E,EAAepD,2BAA2B,OAChD,SAEG,CAEL,GADAoD,EAAerD,eAAe5F,GAC1BA,EAAM2J,iBAAkB,OAG5BV,EAAepD,2BAA2B,KAC5C,MAGJkB,UAAWhH,EAAqBtE,EAAMsL,WAAY/G,IAChD,MAAM+J,EAAqD,KAArCd,EAAe/H,UAAUrE,QAC3CpB,EAAMyG,UAAa6H,GAA+B,MAAd/J,EAAMhG,KAC1CI,EAAc8E,EAAYrD,KAAK4L,SAASzH,EAAMhG,OAChDuE,EAAQzC,cAAa,GAGrByC,EAAQtC,SAASoI,QAEjBrE,EAAMC,iBACR,OAGN,IAKNgN,GAAevP,YAAcsP,GAM7B,IAAMiB,GAAmB,iBAenBC,GAAuB/R,EAAAyB,YAC3B,CAACnC,EAAyCoC,KACxC,MAAMmB,EAAgBb,GAAiBS,GAAcnD,EAAMC,cACrD0C,WAAEA,EAAaY,EAAcZ,cAAe+P,GAAoB1S,EAChE8C,EAAUlD,EAAeuD,GAAcnD,EAAMC,aAC7CwD,EAAc3D,EAAmBqD,GAAcnD,EAAMC,aACrDwR,EAAaX,GAAkB0B,GAAkBxS,EAAMC,aACvDsC,EAAY7B,EAAAG,OAA8B,MAC1CiD,EAAeC,EAAgB3B,EAAcG,GACnD,OACEZ,EAAC3C,EAAW0E,SAAX,CAAoB7B,MAAO7B,EAAMC,YAChCE,SAAAwB,EAACoB,EAAA,CAASC,QAASL,GAAcG,EAAQ5C,KACvCC,SAAAwB,EAAC3C,EAAW2E,KAAX,CAAgB9B,MAAO7B,EAAMC,YAC5BE,SAAAwB,EAACsC,GAAA,CACC4N,GAAIJ,EAAWN,UACf,kBAAiBM,EAAWJ,aACxBqB,EACJnQ,IAAKuB,EACL6O,MAAM,QACN5J,KAA0B,QAApBtF,EAAYrD,IAAgB,OAAS,QAC3C+D,6BAA6B,EAC7BC,sBAAsB,EACtBF,WAAW,EACXW,gBAAkBN,IAEZd,EAAY7C,mBAAmBQ,SAASmB,EAAInB,SAASwH,QACzDrE,EAAMC,gBAAe,EAIvBM,iBAAmBP,GAAUA,EAAMC,iBACnCH,eAAgBC,EAAqBtE,EAAMqE,gBAAiBE,IAGtDA,EAAMiH,SAAWiG,EAAWR,SAASnO,EAAQzC,cAAa,EAAK,IAErE2E,gBAAiBV,EAAqBtE,EAAMgF,iBAAkBT,IAC5Dd,EAAY1B,UAEZwC,EAAMC,gBAAe,IAEvB8G,UAAWhH,EAAqBtE,EAAMsL,WAAY/G,IAEhD,MAAMgH,EAAkBhH,EAAMmH,cAAcc,SAASjI,EAAMiH,QACrDoH,EAAa9T,EAAe2E,EAAYrD,KAAK4L,SAASzH,EAAMhG,KAC9DgN,GAAmBqH,IACrB9P,EAAQzC,cAAa,GAErBoR,EAAWR,SAASrI,QAEpBrE,EAAMC,iBACR,WAKV,IASN,SAAS2G,GAAajL,GACpB,OAAOA,EAAO,OAAS,QACzB,CAEA,SAASoP,GAAgBJ,GACvB,MAAmB,kBAAZA,CACT,CAEA,SAASK,GAAgBL,GACvB,OAAOI,GAAgBJ,GAAW,gBAAkBA,EAAU,UAAY,WAC5E,CAgFA,SAASxC,GAAamG,GACpB,OAAQtO,GAAiC,UAAtBA,EAAMuO,YAA0BD,EAAQtO,QAAS,CACtE,CAhGAkO,GAAexQ,YAAcuQ,GAkG7B,IAAMO,GAAOhT,EACPiT,GAAS9Q,EACT+Q,GAASrQ,GACTsQ,GAAU5P,GACV6P,GAAQtG,GACRuG,GAAQnG,GACRoG,GAAOhG,GACPiG,GAAerE,GACfsE,GAAa3D,GACb4D,GAAYzD,GACZ0D,GAAgBtD,GAChBuD,GAAYnD,GACZoD,GAAQlD,GACRmD,GAAM7C,GACN8C,GAAarC,GACbsC,GAAarB,GCtyCbsB,GAAqB,gBAGpBC,GAA2BC,IAA2B3U,EAC3DyU,GACA,CAAC1U,IAEG6U,GAAe7U,KAYd8U,GAAsBC,IAC3BJ,GAAoDD,IAWhDM,GAA6CrU,IACjD,MAAMsU,oBACJA,EAAAnU,SACAA,EAAAC,IACAA,EACAF,KAAMqU,EAAAC,YACNA,EAAAnU,aACAA,EAAAC,MACAA,GAAQ,GACNN,EACEyU,EAAYP,GAAaI,GACzBI,EAAmBhU,EAAAG,OAA0B,OAC5CX,GAAO,EAAOyU,GAAWC,EAAqB,CACnDC,KAAMN,EACNO,YAAaN,EACbO,SAAU1U,IAGZ,OACEsB,EAACwS,GAAA,CACCtS,MAAOyS,EACPjD,UAAWD,IACXsD,aACAvD,UAAWC,IACXlR,OACAG,aAAcsU,EACdK,aAAoBtU,EAAAsB,aAAY,IAAM2S,GAASM,IAAcA,KAAW,CAACN,IACzErU,QAEAH,SAAAwB,EAAeuT,GAAd,IAAuBT,EAAWvU,OAAYG,aAAcsU,EAASvU,MAAUE,QAC7EH,cACH,EAKNkU,GAAapS,YAAc8R,GAM3B,IAAMoB,GAAe,sBAMfC,GAA4B1U,EAAAyB,YAChC,CAACnC,EAA8CoC,KAC7C,MAAMkS,oBAAEA,EAAA7N,SAAqBA,GAAW,KAAU4O,GAAiBrV,EAC7D8C,EAAUsR,GAAuBe,GAAcb,GAC/CG,EAAYP,GAAaI,GAC/B,OACE3S,EAAe2T,GAAd,CAAqBpS,SAAO,KAAKuR,EAChCtU,SAAAwB,EAACoL,EAAUwI,OAAV,CACCC,KAAK,SACL3D,GAAI/O,EAAQuO,UACZ,gBAAc,OACd,gBAAevO,EAAQ5C,KACvB,gBAAe4C,EAAQ5C,KAAO4C,EAAQqO,eAAY,EAClD,aAAYrO,EAAQ5C,KAAO,OAAS,SACpC,gBAAeuG,EAAW,QAAK,EAC/BA,cACI4O,EACJ9S,IAAKuP,EAAY1P,EAAcU,EAAQ4R,YACvCvG,cAAe7J,EAAqBtE,EAAMmO,eAAgB5J,IAGnDkC,GAA6B,IAAjBlC,EAAMgR,SAAkC,IAAlBhR,EAAMqH,UAC3C9I,EAAQkS,eAGHlS,EAAQ5C,MAAMqE,EAAMC,iBAC3B,IAEF8G,UAAWhH,EAAqBtE,EAAMsL,WAAY/G,IAC5CkC,IACA,CAAC,QAAS,KAAKuF,SAASzH,EAAMhG,MAAMuE,EAAQkS,eAC9B,cAAdzQ,EAAMhG,KAAqBuE,EAAQzC,cAAa,GAGhD,CAAC,QAAS,IAAK,aAAa2L,SAASzH,EAAMhG,MAAMgG,EAAMC,iBAAe,OAGhF,IAKN4Q,GAAoBnT,YAAckT,GAMlC,IAKMM,GACJzV,IAEA,MAAMsU,oBAAEA,KAAwBoB,GAAgB1V,EAC1CyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAegU,GAAd,IAAyBlB,KAAeiB,GAAa,EAG/DD,GAAmBxT,YAbC,qBAmBpB,IAAMkB,GAAe,sBAMfyS,GAA4BlV,EAAAyB,YAChC,CAACnC,EAA8CoC,KAC7C,MAAMkS,oBAAEA,KAAwB9Q,GAAiBxD,EAC3C8C,EAAUsR,GAAuBjR,GAAcmR,GAC/CG,EAAYP,GAAaI,GACzBuB,EAAgCnV,EAAAG,QAAO,GAE7C,OACEc,EAAemU,GAAd,CACCjE,GAAI/O,EAAQqO,UACZ,kBAAiBrO,EAAQuO,aACrBoD,KACAjR,EACJjB,IAAKH,EACL0C,iBAAkBR,EAAqBtE,EAAM8E,kBAAmBP,IACzDsR,EAAwBzU,SAAS0B,EAAQ4R,WAAWtT,SAASwH,QAClEiN,EAAwBzU,SAAU,EAElCmD,EAAMC,gBAAe,IAEvBU,kBAAmBZ,EAAqBtE,EAAMkF,mBAAoBX,IAChE,MAAMwR,EAAgBxR,EAAMyR,OAAOD,cAC7BE,EAAyC,IAAzBF,EAAcR,SAA0C,IAA1BQ,EAAcnK,QAC5DsK,EAAwC,IAAzBH,EAAcR,QAAgBU,EAC9CnT,EAAQxC,QAAS4V,IAAcL,EAAwBzU,SAAU,EAAA,IAExEgK,MAAO,IACFpL,EAAMoL,MAGP,iDACE,uCACF,gDAAiD,sCACjD,iDACE,uCACF,sCAAuC,mCACvC,uCAAwC,sCAE5C,IAMRwK,GAAoB3T,YAAckB,GAMlC,IAMMgT,GAA0BzV,EAAAyB,YAC9B,CAACnC,EAA4CoC,KAC3C,MAAMkS,oBAAEA,KAAwBxH,GAAe9M,EACzCyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAeyU,GAAd,IAAwB3B,KAAe3H,EAAYvK,IAAKH,GAAc,IAIlF+T,GAAkBlU,YAdC,oBAoBnB,IAMMoU,GAA0B3V,EAAAyB,YAC9B,CAACnC,EAA4CoC,KAC3C,MAAMkS,oBAAEA,KAAwBpH,GAAelN,EACzCyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAe2U,GAAd,IAAwB7B,KAAevH,EAAY3K,IAAKH,GAAc,IAIlFiU,GAAkBpU,YAdC,oBAoBnB,IAMMsU,GAAyB7V,EAAAyB,YAC7B,CAACnC,EAA2CoC,KAC1C,MAAMkS,oBAAEA,KAAwB/G,GAAcvN,EACxCyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAe6U,GAAd,IAAuB/B,KAAelH,EAAWhL,IAAKH,GAAc,IAIhFmU,GAAiBtU,YAdC,mBAoBlB,IAMMwU,GAAiC/V,EAAAyB,YAGrC,CAACnC,EAAmDoC,KACpD,MAAMkS,oBAAEA,KAAwBlF,GAAsBpP,EAChDyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAe+U,GAAd,IAA+BjC,KAAerF,EAAmB7M,IAAKH,GAAc,IAG9FqU,GAAyBxU,YAfE,2BAqB3B,IAMM0U,GAA+BjW,EAAAyB,YAGnC,CAACnC,EAAiDoC,KAClD,MAAMkS,oBAAEA,KAAwBsC,GAAoB5W,EAC9CyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAekV,GAAd,IAA6BpC,KAAemC,EAAiBrU,IAAKH,GAAc,IAG1FuU,GAAuB1U,YAfE,yBAqBzB,IAMM6U,GAA8BpW,EAAAyB,YAGlC,CAACnC,EAAgDoC,KACjD,MAAMkS,oBAAEA,KAAwBtE,GAAmBhQ,EAC7CyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAeoV,GAAd,IAA4BtC,KAAezE,EAAgBzN,IAAKH,GAAc,IAGxF0U,GAAsB7U,YAfE,wBAqBxB,IAMM+U,GAAkCtW,EAAAyB,YAGtC,CAACnC,EAAoDoC,KACrD,MAAMkS,oBAAEA,KAAwBlE,GAAuBpQ,EACjDyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAesV,GAAd,IAAgCxC,KAAerE,EAAoB7N,IAAKH,GAAc,IAGhG4U,GAA0B/U,YAfH,4BAqBvB,IAMMiV,GAA8BxW,EAAAyB,YAGlC,CAACnC,EAAgDoC,KACjD,MAAMkS,oBAAEA,KAAwB9D,GAAmBxQ,EAC7CyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAewV,GAAd,IAA4B1C,KAAejE,EAAgBjO,IAAKH,GAAc,IAGxF8U,GAAsBjV,YAfC,wBA2BSvB,EAAAyB,YAC9B,CAACnC,EAA4CoC,KAC3C,MAAMkS,oBAAEA,KAAwB5D,GAAe1Q,EACzCyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAeyV,GAAd,IAAwB3C,KAAe/D,EAAYnO,IAAKH,GAAc,IAIhEH,YAdC,oBA2BnB,IA4BMoV,GAA+B3W,EAAAyB,YAGnC,CAACnC,EAAiDoC,KAClD,MAAMkS,oBAAEA,KAAwBgD,GAAoBtX,EAC9CyU,EAAYP,GAAaI,GAC/B,OAAO3S,EAAe4V,GAAd,IAA6B9C,KAAe6C,EAAiB/U,IAAKH,GAAc,IAG1FiV,GAAuBpV,YAfE,yBAqBzB,IAMMuV,GAA+B9W,EAAAyB,YAGnC,CAACnC,EAAiDoC,KAClD,MAAMkS,oBAAEA,KAAwB5B,GAAoB1S,EAC9CyU,EAAYP,GAAaI,GAE/B,OACE3S,EAAe8V,GAAd,IACKhD,KACA/B,EACJnQ,IAAKH,EACLgJ,MAAO,IACFpL,EAAMoL,MAGP,iDAAkD,uCAClD,gDAAiD,sCACjD,iDAAkD,uCAClD,sCAAuC,mCACvC,uCAAwC,sCAE5C,IAKNoM,GAAuBvV,YAjCE,yBAqCzB,IAAM8Q,GAAOsB,GACPqD,GAAUtC,GACVnC,GAASwC,GACTvC,GAAU0C,GACVzC,GAAQgD,GACR/C,GAAQiD,GACRhD,GAAOkD,GACPjD,GAAemD,GACflD,GAAaoD,GACbnD,GAAYsD,GACZrD,GAAgBuD,GAChBtD,GAAYwD,GAEZtD,GA5FJ5T,IAEA,MAAMsU,oBAAEA,EAAAnU,SAAqBA,EAAUD,KAAMqU,EAAAlU,aAAUA,EAAAmU,YAAcA,GAAgBxU,EAC/EyU,EAAYP,GAAaI,IACxBpU,GAAO,EAAOyU,GAAWC,EAAqB,CACnDC,KAAMN,EACNO,YAAaN,EACbO,SAAU1U,IAGZ,OACEsB,EAAegW,GAAd,IAAsBlD,EAAWvU,OAAYG,aAAcsU,EACzDxU,YACH,EAgFE0T,GAAawD,GACbvD,GAAa0D,GCtfnB,SAASnD,OAAkBrU,IAC1B,OAAOU,EAAAkX,cAACC,GAA0B,CAACC,YAAU,mBAAoB9X,GAClE,CAEA,SAASyV,OACLzV,IAEH,OAAOU,EAAAkX,cAACC,GAA4B,CAACC,YAAU,0BAA2B9X,GAC3E,CAEA,SAASoV,OACLpV,IAEH,OAAOU,EAAAkX,cAACC,GAA6B,CAACC,YAAU,2BAA4B9X,GAC7E,CAEA,SAAS4V,IAAoBmC,UAC5BA,EAASC,WACTA,EAAa,KACVhY,IAEH,OACCU,gBAACmX,GACA,KAAAnX,EAAAkX,cAACC,GAA6B,CAC7BC,YAAU,wBACVE,WAAYA,EACZD,UAAWE,EACV,igBACAF,MAEG/X,IAIR,CAEA,SAASmW,OAAuBnW,IAC/B,OAAOU,EAAAkX,cAACC,GAA2B,CAACC,YAAU,yBAA0B9X,GACzE,CAEA,SAASuW,IAAiBwB,UACzBA,EAASG,MACTA,EAAKC,QACLA,EAAU,aACPnY,IAKH,OACCU,EAAAkX,cAACC,GAA0B,CAC1BC,YAAU,qBACVM,aAAYF,EACZG,eAAcF,EACdJ,UAAWE,EACV,+oBACAF,MAEG/X,GAGP,CAEA,SAASyW,IAAyBsB,UACjCA,EAAS5X,SACTA,EAAQ+O,QACRA,KACGlP,IAEH,OACCU,EAAAkX,cAACC,GAAkC,CAClCC,YAAU,8BACVC,UAAWE,EACV,+SACAF,GAED7I,QAASA,KACLlP,GAEJU,EAAC4P,cAAAA,OAAAA,CAAKyH,UAAU,iFACfrX,EAACmX,cAAAA,GAAmC,KACnCnX,EAAC4X,cAAAA,EAAAA,CAAUP,UAAU,aAGtB5X,EAGJ,CAEA,SAASwW,OACL3W,IAEH,OAAOU,EAAAkX,cAACC,GAAgC,CAACC,YAAU,+BAAgC9X,GACpF,CAEA,SAAS8W,IAAsBiB,UAC9BA,EAAS5X,SACTA,KACGH,IAEH,OACCU,EAAAkX,cAACC,GAA+B,CAC/BC,YAAU,2BACVC,UAAWE,EACV,+SACAF,MAEG/X,GAEJU,EAAC4P,cAAAA,OAAAA,CAAKyH,UAAU,iFACfrX,EAACmX,cAAAA,GAAmC,KACnCnX,EAAC6X,cAAAA,EAAAA,CAAWR,UAAU,0BAGvB5X,EAGJ,CAEA,SAASkW,IAAkB0B,UAC1BA,EAASG,MACTA,KACGlY,IAIH,OACCU,EAAAkX,cAACC,GAA2B,CAC3BC,YAAU,sBACVM,aAAYF,EACZH,UAAWE,EAAG,oDAAqDF,MAC/D/X,GAGP,CAEA,SAASkX,IAAsBa,UAC9BA,KACG/X,IAEH,OACCU,EAAAkX,cAACC,GAA+B,CAC/BC,YAAU,0BACVC,UAAWE,EAAG,4BAA6BF,MACvC/X,GAGP,CAEA,SAASwY,IAAqBT,UAAEA,KAAc/X,IAC7C,OACCU,EAAC4P,cAAAA,OAAAA,CACAwH,YAAU,yBACVC,UAAWE,EAAG,wDAAyDF,MACnE/X,GAGP,CAEA,SAASyY,OAAqBzY,IAC7B,OAAOU,EAAAkX,cAACC,GAAyB,CAACC,YAAU,uBAAwB9X,GACrE,CAEA,SAASqX,IAAuBU,UAC/BA,EAASG,MACTA,EAAK/X,SACLA,KACGH,IAIH,OACCU,EAAAkX,cAACC,GAAgC,CAChCC,YAAU,4BACVM,aAAYF,EACZH,UAAWE,EACV,iOACAF,MAEG/X,GAEHG,EACDO,EAACgY,cAAAA,EAAAA,CAAiBX,UAAU,mBAG/B,CAEA,SAASP,IAAuBO,UAC/BA,KACG/X,IAEH,OACCU,EAAAkX,cAACC,GAAgC,CAChCC,YAAU,4BACVC,UAAWE,EACV,wbACAF,MAEG/X,GAGP","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]}
@@ -8,36 +8,36 @@ type FileErrorMessage = {
8
8
  };
9
9
  interface FileUploaderProps extends React__default.HTMLAttributes<HTMLDivElement> {
10
10
  /**
11
- * Value of the uploader.
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
- * Function to be called when the value changes.
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
- * Function to be called when files are uploaded.
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
- * Progress of the uploaded files.
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
- * Accepted file types for the uploader.
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
- * Maximum file size for the uploader.
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
- * Maximum number of files for the uploader.
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
- * Whether the uploader should accept multiple files.
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
- * Whether the uploader is disabled.
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 uma ação para arquivos rejeitados.
78
- * Pode retornar uma string para exibição ou void para ações como toast.
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;