{"version":3,"file":"index.cjs","names":["Primitive"],"sources":["../src/hooks/useRole/useRole.ts","../../../../node_modules/.pnpm/react-dom@19.2.7_react@19.2.7/node_modules/react-dom/cjs/react-dom.production.js","../../../../node_modules/.pnpm/react-dom@19.2.7_react@19.2.7/node_modules/react-dom/cjs/react-dom.development.js","../../../../node_modules/.pnpm/react-dom@19.2.7_react@19.2.7/node_modules/react-dom/index.js","../src/hooks/usePopper/utils.ts","../src/hooks/usePopper/usePopper.ts","../src/hooks/useDismiss/useDismiss.ts","../src/hooks/usePopperPortal/constants.ts","../src/hooks/usePopperPortal/usePopperPortal.ts","../src/hooks/useInteractions/useInteractions.ts","../src/hooks/useTransitionStatus/useTransitionStatus.ts","../src/hooks/useTransitionStyles/useTransitionStyles.ts","../src/components/Arrow/constants.ts","../src/components/Arrow/Arrow.tsx","../src/components/Portal/constants.ts","../src/components/Portal/Portal.tsx"],"sourcesContent":["/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useMemo } from 'react';\nimport { useId } from '@necto-react/hooks';\n\nimport type { UseRoleOptions, UseRoleReturn } from './useRole.types';\n\n/**\n * Provides ARIA role props for floating elements.\n * @param options - Configuration options.\n * @returns Props to spread on reference and floating elements.\n */\nexport function useRole(options: UseRoleOptions): UseRoleReturn {\n  const { open, enabled = true, role = 'dialog' } = options;\n\n  const nectoId: string = useId({ prefix: 'necto-popper' });\n  const reference = useMemo(() => {\n    if (!enabled) return {};\n\n    if (role === 'tooltip') {\n      return {\n        'aria-describedby': open ? nectoId : undefined\n      };\n    }\n\n    return {\n      'aria-expanded': open,\n      'aria-haspopup':\n        role === 'menu' || role === 'listbox' || role === 'tree' || role === 'grid'\n          ? role\n          : 'dialog',\n      'aria-controls': open ? nectoId : undefined\n    };\n  }, [enabled, open, role, nectoId]);\n\n  const floating = useMemo(() => {\n    if (!enabled) return {};\n\n    const baseProps: Record<string, unknown> = {\n      id: nectoId,\n      role\n    };\n\n    if (role === 'tooltip') {\n      return baseProps;\n    }\n\n    if (role === 'dialog' || role === 'alertdialog') {\n      return {\n        ...baseProps,\n        'aria-modal': 'true'\n      };\n    }\n\n    return baseProps;\n  }, [enabled, nectoId, role]);\n\n  return {\n    reference,\n    floating\n  };\n}\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n  var url = \"https://react.dev/errors/\" + code;\n  if (1 < arguments.length) {\n    url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n    for (var i = 2; i < arguments.length; i++)\n      url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n  }\n  return (\n    \"Minified React error #\" +\n    code +\n    \"; visit \" +\n    url +\n    \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n  );\n}\nfunction noop() {}\nvar Internals = {\n    d: {\n      f: noop,\n      r: function () {\n        throw Error(formatProdErrorMessage(522));\n      },\n      D: noop,\n      C: noop,\n      L: noop,\n      m: noop,\n      X: noop,\n      S: noop,\n      M: noop\n    },\n    p: 0,\n    findDOMNode: null\n  },\n  REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n  var key =\n    3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n  return {\n    $$typeof: REACT_PORTAL_TYPE,\n    key: null == key ? null : \"\" + key,\n    children: children,\n    containerInfo: containerInfo,\n    implementation: implementation\n  };\n}\nvar ReactSharedInternals =\n  React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n  if (\"font\" === as) return \"\";\n  if (\"string\" === typeof input)\n    return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n  Internals;\nexports.createPortal = function (children, container) {\n  var key =\n    2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n  if (\n    !container ||\n    (1 !== container.nodeType &&\n      9 !== container.nodeType &&\n      11 !== container.nodeType)\n  )\n    throw Error(formatProdErrorMessage(299));\n  return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n  var previousTransition = ReactSharedInternals.T,\n    previousUpdatePriority = Internals.p;\n  try {\n    if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n  } finally {\n    (ReactSharedInternals.T = previousTransition),\n      (Internals.p = previousUpdatePriority),\n      Internals.d.f();\n  }\n};\nexports.preconnect = function (href, options) {\n  \"string\" === typeof href &&\n    (options\n      ? ((options = options.crossOrigin),\n        (options =\n          \"string\" === typeof options\n            ? \"use-credentials\" === options\n              ? options\n              : \"\"\n            : void 0))\n      : (options = null),\n    Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n  \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n  if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n    var as = options.as,\n      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n      integrity =\n        \"string\" === typeof options.integrity ? options.integrity : void 0,\n      fetchPriority =\n        \"string\" === typeof options.fetchPriority\n          ? options.fetchPriority\n          : void 0;\n    \"style\" === as\n      ? Internals.d.S(\n          href,\n          \"string\" === typeof options.precedence ? options.precedence : void 0,\n          {\n            crossOrigin: crossOrigin,\n            integrity: integrity,\n            fetchPriority: fetchPriority\n          }\n        )\n      : \"script\" === as &&\n        Internals.d.X(href, {\n          crossOrigin: crossOrigin,\n          integrity: integrity,\n          fetchPriority: fetchPriority,\n          nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n        });\n  }\n};\nexports.preinitModule = function (href, options) {\n  if (\"string\" === typeof href)\n    if (\"object\" === typeof options && null !== options) {\n      if (null == options.as || \"script\" === options.as) {\n        var crossOrigin = getCrossOriginStringAs(\n          options.as,\n          options.crossOrigin\n        );\n        Internals.d.M(href, {\n          crossOrigin: crossOrigin,\n          integrity:\n            \"string\" === typeof options.integrity ? options.integrity : void 0,\n          nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n        });\n      }\n    } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n  if (\n    \"string\" === typeof href &&\n    \"object\" === typeof options &&\n    null !== options &&\n    \"string\" === typeof options.as\n  ) {\n    var as = options.as,\n      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n    Internals.d.L(href, as, {\n      crossOrigin: crossOrigin,\n      integrity:\n        \"string\" === typeof options.integrity ? options.integrity : void 0,\n      nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n      type: \"string\" === typeof options.type ? options.type : void 0,\n      fetchPriority:\n        \"string\" === typeof options.fetchPriority\n          ? options.fetchPriority\n          : void 0,\n      referrerPolicy:\n        \"string\" === typeof options.referrerPolicy\n          ? options.referrerPolicy\n          : void 0,\n      imageSrcSet:\n        \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n      imageSizes:\n        \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n      media: \"string\" === typeof options.media ? options.media : void 0\n    });\n  }\n};\nexports.preloadModule = function (href, options) {\n  if (\"string\" === typeof href)\n    if (options) {\n      var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n      Internals.d.m(href, {\n        as:\n          \"string\" === typeof options.as && \"script\" !== options.as\n            ? options.as\n            : void 0,\n        crossOrigin: crossOrigin,\n        integrity:\n          \"string\" === typeof options.integrity ? options.integrity : void 0\n      });\n    } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n  Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n  return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n  return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n  return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.7\";\n","/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n  (function () {\n    function noop() {}\n    function testStringCoercion(value) {\n      return \"\" + value;\n    }\n    function createPortal$1(children, containerInfo, implementation) {\n      var key =\n        3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n      try {\n        testStringCoercion(key);\n        var JSCompiler_inline_result = !1;\n      } catch (e) {\n        JSCompiler_inline_result = !0;\n      }\n      JSCompiler_inline_result &&\n        (console.error(\n          \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n          (\"function\" === typeof Symbol &&\n            Symbol.toStringTag &&\n            key[Symbol.toStringTag]) ||\n            key.constructor.name ||\n            \"Object\"\n        ),\n        testStringCoercion(key));\n      return {\n        $$typeof: REACT_PORTAL_TYPE,\n        key: null == key ? null : \"\" + key,\n        children: children,\n        containerInfo: containerInfo,\n        implementation: implementation\n      };\n    }\n    function getCrossOriginStringAs(as, input) {\n      if (\"font\" === as) return \"\";\n      if (\"string\" === typeof input)\n        return \"use-credentials\" === input ? input : \"\";\n    }\n    function getValueDescriptorExpectingObjectForWarning(thing) {\n      return null === thing\n        ? \"`null`\"\n        : void 0 === thing\n          ? \"`undefined`\"\n          : \"\" === thing\n            ? \"an empty string\"\n            : 'something with type \"' + typeof thing + '\"';\n    }\n    function getValueDescriptorExpectingEnumForWarning(thing) {\n      return null === thing\n        ? \"`null`\"\n        : void 0 === thing\n          ? \"`undefined`\"\n          : \"\" === thing\n            ? \"an empty string\"\n            : \"string\" === typeof thing\n              ? JSON.stringify(thing)\n              : \"number\" === typeof thing\n                ? \"`\" + thing + \"`\"\n                : 'something with type \"' + typeof thing + '\"';\n    }\n    function resolveDispatcher() {\n      var dispatcher = ReactSharedInternals.H;\n      null === dispatcher &&\n        console.error(\n          \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n        );\n      return dispatcher;\n    }\n    \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n      \"function\" ===\n        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n    var React = require(\"react\"),\n      Internals = {\n        d: {\n          f: noop,\n          r: function () {\n            throw Error(\n              \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n            );\n          },\n          D: noop,\n          C: noop,\n          L: noop,\n          m: noop,\n          X: noop,\n          S: noop,\n          M: noop\n        },\n        p: 0,\n        findDOMNode: null\n      },\n      REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n      ReactSharedInternals =\n        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n    (\"function\" === typeof Map &&\n      null != Map.prototype &&\n      \"function\" === typeof Map.prototype.forEach &&\n      \"function\" === typeof Set &&\n      null != Set.prototype &&\n      \"function\" === typeof Set.prototype.clear &&\n      \"function\" === typeof Set.prototype.forEach) ||\n      console.error(\n        \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n      );\n    exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n      Internals;\n    exports.createPortal = function (children, container) {\n      var key =\n        2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n      if (\n        !container ||\n        (1 !== container.nodeType &&\n          9 !== container.nodeType &&\n          11 !== container.nodeType)\n      )\n        throw Error(\"Target container is not a DOM element.\");\n      return createPortal$1(children, container, null, key);\n    };\n    exports.flushSync = function (fn) {\n      var previousTransition = ReactSharedInternals.T,\n        previousUpdatePriority = Internals.p;\n      try {\n        if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n          return fn();\n      } finally {\n        (ReactSharedInternals.T = previousTransition),\n          (Internals.p = previousUpdatePriority),\n          Internals.d.f() &&\n            console.error(\n              \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n            );\n      }\n    };\n    exports.preconnect = function (href, options) {\n      \"string\" === typeof href && href\n        ? null != options && \"object\" !== typeof options\n          ? console.error(\n              \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n              getValueDescriptorExpectingEnumForWarning(options)\n            )\n          : null != options &&\n            \"string\" !== typeof options.crossOrigin &&\n            console.error(\n              \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n              getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n            )\n        : console.error(\n            \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n            getValueDescriptorExpectingObjectForWarning(href)\n          );\n      \"string\" === typeof href &&\n        (options\n          ? ((options = options.crossOrigin),\n            (options =\n              \"string\" === typeof options\n                ? \"use-credentials\" === options\n                  ? options\n                  : \"\"\n                : void 0))\n          : (options = null),\n        Internals.d.C(href, options));\n    };\n    exports.prefetchDNS = function (href) {\n      if (\"string\" !== typeof href || !href)\n        console.error(\n          \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n          getValueDescriptorExpectingObjectForWarning(href)\n        );\n      else if (1 < arguments.length) {\n        var options = arguments[1];\n        \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n          ? console.error(\n              \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n              getValueDescriptorExpectingEnumForWarning(options)\n            )\n          : console.error(\n              \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n              getValueDescriptorExpectingEnumForWarning(options)\n            );\n      }\n      \"string\" === typeof href && Internals.d.D(href);\n    };\n    exports.preinit = function (href, options) {\n      \"string\" === typeof href && href\n        ? null == options || \"object\" !== typeof options\n          ? console.error(\n              \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n              getValueDescriptorExpectingEnumForWarning(options)\n            )\n          : \"style\" !== options.as &&\n            \"script\" !== options.as &&\n            console.error(\n              'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n              getValueDescriptorExpectingEnumForWarning(options.as)\n            )\n        : console.error(\n            \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n            getValueDescriptorExpectingObjectForWarning(href)\n          );\n      if (\n        \"string\" === typeof href &&\n        options &&\n        \"string\" === typeof options.as\n      ) {\n        var as = options.as,\n          crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n          integrity =\n            \"string\" === typeof options.integrity ? options.integrity : void 0,\n          fetchPriority =\n            \"string\" === typeof options.fetchPriority\n              ? options.fetchPriority\n              : void 0;\n        \"style\" === as\n          ? Internals.d.S(\n              href,\n              \"string\" === typeof options.precedence\n                ? options.precedence\n                : void 0,\n              {\n                crossOrigin: crossOrigin,\n                integrity: integrity,\n                fetchPriority: fetchPriority\n              }\n            )\n          : \"script\" === as &&\n            Internals.d.X(href, {\n              crossOrigin: crossOrigin,\n              integrity: integrity,\n              fetchPriority: fetchPriority,\n              nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n            });\n      }\n    };\n    exports.preinitModule = function (href, options) {\n      var encountered = \"\";\n      (\"string\" === typeof href && href) ||\n        (encountered +=\n          \" The `href` argument encountered was \" +\n          getValueDescriptorExpectingObjectForWarning(href) +\n          \".\");\n      void 0 !== options && \"object\" !== typeof options\n        ? (encountered +=\n            \" The `options` argument encountered was \" +\n            getValueDescriptorExpectingObjectForWarning(options) +\n            \".\")\n        : options &&\n          \"as\" in options &&\n          \"script\" !== options.as &&\n          (encountered +=\n            \" The `as` option encountered was \" +\n            getValueDescriptorExpectingEnumForWarning(options.as) +\n            \".\");\n      if (encountered)\n        console.error(\n          \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n          encountered\n        );\n      else\n        switch (\n          ((encountered =\n            options && \"string\" === typeof options.as ? options.as : \"script\"),\n          encountered)\n        ) {\n          case \"script\":\n            break;\n          default:\n            (encountered =\n              getValueDescriptorExpectingEnumForWarning(encountered)),\n              console.error(\n                'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n                encountered,\n                href\n              );\n        }\n      if (\"string\" === typeof href)\n        if (\"object\" === typeof options && null !== options) {\n          if (null == options.as || \"script\" === options.as)\n            (encountered = getCrossOriginStringAs(\n              options.as,\n              options.crossOrigin\n            )),\n              Internals.d.M(href, {\n                crossOrigin: encountered,\n                integrity:\n                  \"string\" === typeof options.integrity\n                    ? options.integrity\n                    : void 0,\n                nonce:\n                  \"string\" === typeof options.nonce ? options.nonce : void 0\n              });\n        } else null == options && Internals.d.M(href);\n    };\n    exports.preload = function (href, options) {\n      var encountered = \"\";\n      (\"string\" === typeof href && href) ||\n        (encountered +=\n          \" The `href` argument encountered was \" +\n          getValueDescriptorExpectingObjectForWarning(href) +\n          \".\");\n      null == options || \"object\" !== typeof options\n        ? (encountered +=\n            \" The `options` argument encountered was \" +\n            getValueDescriptorExpectingObjectForWarning(options) +\n            \".\")\n        : (\"string\" === typeof options.as && options.as) ||\n          (encountered +=\n            \" The `as` option encountered was \" +\n            getValueDescriptorExpectingObjectForWarning(options.as) +\n            \".\");\n      encountered &&\n        console.error(\n          'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s',\n          encountered\n        );\n      if (\n        \"string\" === typeof href &&\n        \"object\" === typeof options &&\n        null !== options &&\n        \"string\" === typeof options.as\n      ) {\n        encountered = options.as;\n        var crossOrigin = getCrossOriginStringAs(\n          encountered,\n          options.crossOrigin\n        );\n        Internals.d.L(href, encountered, {\n          crossOrigin: crossOrigin,\n          integrity:\n            \"string\" === typeof options.integrity ? options.integrity : void 0,\n          nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n          type: \"string\" === typeof options.type ? options.type : void 0,\n          fetchPriority:\n            \"string\" === typeof options.fetchPriority\n              ? options.fetchPriority\n              : void 0,\n          referrerPolicy:\n            \"string\" === typeof options.referrerPolicy\n              ? options.referrerPolicy\n              : void 0,\n          imageSrcSet:\n            \"string\" === typeof options.imageSrcSet\n              ? options.imageSrcSet\n              : void 0,\n          imageSizes:\n            \"string\" === typeof options.imageSizes\n              ? options.imageSizes\n              : void 0,\n          media: \"string\" === typeof options.media ? options.media : void 0\n        });\n      }\n    };\n    exports.preloadModule = function (href, options) {\n      var encountered = \"\";\n      (\"string\" === typeof href && href) ||\n        (encountered +=\n          \" The `href` argument encountered was \" +\n          getValueDescriptorExpectingObjectForWarning(href) +\n          \".\");\n      void 0 !== options && \"object\" !== typeof options\n        ? (encountered +=\n            \" The `options` argument encountered was \" +\n            getValueDescriptorExpectingObjectForWarning(options) +\n            \".\")\n        : options &&\n          \"as\" in options &&\n          \"string\" !== typeof options.as &&\n          (encountered +=\n            \" The `as` option encountered was \" +\n            getValueDescriptorExpectingObjectForWarning(options.as) +\n            \".\");\n      encountered &&\n        console.error(\n          'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s',\n          encountered\n        );\n      \"string\" === typeof href &&\n        (options\n          ? ((encountered = getCrossOriginStringAs(\n              options.as,\n              options.crossOrigin\n            )),\n            Internals.d.m(href, {\n              as:\n                \"string\" === typeof options.as && \"script\" !== options.as\n                  ? options.as\n                  : void 0,\n              crossOrigin: encountered,\n              integrity:\n                \"string\" === typeof options.integrity\n                  ? options.integrity\n                  : void 0\n            }))\n          : Internals.d.m(href));\n    };\n    exports.requestFormReset = function (form) {\n      Internals.d.r(form);\n    };\n    exports.unstable_batchedUpdates = function (fn, a) {\n      return fn(a);\n    };\n    exports.useFormState = function (action, initialState, permalink) {\n      return resolveDispatcher().useFormState(action, initialState, permalink);\n    };\n    exports.useFormStatus = function () {\n      return resolveDispatcher().useHostTransitionStatus();\n    };\n    exports.version = \"19.2.7\";\n    \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n      \"function\" ===\n        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n  })();\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","/*\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// biome-ignore-all lint/suspicious/noExplicitAny: Utility functions require any for generic comparison.\n\n/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n/**\n * Recursively compares two values for deep equality.\n * Handles primitives, null, undefined, and nested objects.\n */\nexport function deepEqual(left: any, right: any): boolean {\n  if (left === right) {\n    return true;\n  }\n\n  const isLeftObject: boolean = typeof left === 'object' && left != null;\n  const isRightObject: boolean = typeof right === 'object' && right != null;\n\n  if (!isLeftObject || !isRightObject) {\n    return left === right;\n  }\n\n  const leftKeys: Array<string> = Object.keys(left);\n  const rightKeys: Array<string> = Object.keys(right);\n\n  if (leftKeys.length !== rightKeys.length) {\n    return false;\n  }\n\n  for (const key of leftKeys) {\n    if (!rightKeys.includes(key) || !deepEqual(left[key], right[key])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Returns the device pixel ratio for a given element's window.\n */\nexport function getDevicePixelRatio(element: Element): number {\n  return (element.ownerDocument.defaultView || window).devicePixelRatio || 1;\n}\n\n/**\n * Rounds a value to the nearest device pixel to avoid sub-pixel rendering.\n */\nexport function roundByDevicePixelRatio(element: Element, value: number): number {\n  const dpr: number = getDevicePixelRatio(element);\n\n  return Math.round(value * dpr) / dpr;\n}\n","// biome-ignore-all lint/suspicious/noExplicitAny: Popper hook requires any.\n\n/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useRef, useMemo, useEffect, useCallback, useLayoutEffect } from 'react';\nimport { defu } from 'defu';\nimport { flushSync } from 'react-dom';\nimport { computePosition } from '@necto/popper';\nimport { useLocalState } from '@necto-react/state';\nimport { useLatestRef, useMounted } from '@necto-react/hooks';\n\nimport { deepEqual, getDevicePixelRatio, roundByDevicePixelRatio } from './utils';\n\nimport type { CSSProperties, RefObject } from 'react';\nimport type { ComputePositionResult } from '@necto/popper';\nimport type { UsePopperOptions, UsePopperReturn } from './usePopper.types';\n\nexport function usePopper(options: UsePopperOptions = {}): UsePopperReturn {\n  const {\n    placement,\n    strategy,\n    middleware,\n    reference: externalReference,\n    floating: externalFloating,\n    transform,\n    whileElementsMounted,\n    open\n  } = defu(options, {\n    placement: 'bottom' as const,\n    strategy: 'absolute' as const,\n    middleware: [],\n    transform: true\n  });\n\n  // Stable reference to the latest middleware. We avoid useState here because\n  // middleware is only consumed inside `update()` (never in render output), so\n  // a ref is sufficient and skips the extra render that setState-during-render\n  // would trigger when the middleware contents change.\n  const latestMiddlewareRef = useRef(middleware);\n  if (!deepEqual(latestMiddlewareRef.current, middleware)) {\n    latestMiddlewareRef.current = middleware;\n  }\n  const latestMiddleware = latestMiddlewareRef.current;\n\n  const [data, setData] = useLocalState<ComputePositionResult & { isPositioned: boolean }>({\n    x: 0,\n    y: 0,\n    placement,\n    strategy,\n    middlewareData: {},\n    isPositioned: false\n  });\n\n  const [_reference, _setReference] = useLocalState<Element | null>(null);\n  const [_floating, _setFloating] = useLocalState<HTMLElement | null>(null);\n\n  const dataRef = useRef(data);\n  const isMountedRef: RefObject<boolean> = useMounted({ type: 'ref' });\n  const referenceRef: RefObject<Element | null> = useRef<Element | null>(null);\n  const floatingRef: RefObject<HTMLElement | null> = useRef<HTMLElement | null>(null);\n\n  const setReference = useCallback(\n    (node: Element | null) => {\n      if (node !== referenceRef.current) {\n        referenceRef.current = node;\n        _setReference(node);\n      }\n    },\n    [_setReference]\n  );\n\n  const setFloating = useCallback(\n    (node: HTMLElement | null) => {\n      if (node !== floatingRef.current) {\n        floatingRef.current = node;\n        _setFloating(node);\n      }\n    },\n    [_setFloating]\n  );\n\n  const referenceEl = externalReference || _reference;\n  const floatingEl = externalFloating || _floating;\n\n  const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n  const openRef = useLatestRef(open);\n\n  // rAF-coalesce position updates so multiple `update()` calls within a single\n  // frame (e.g. during fast scroll/resize bursts) collapse into one synchronous\n  // commit instead of many. flushSync is preserved so the floating element\n  // still positions before paint — we just don't pay for it more than once\n  // per frame.\n  const pendingDataRef = useRef<(ComputePositionResult & { isPositioned: boolean }) | null>(null);\n  const rafIdRef = useRef<number | null>(null);\n\n  // biome-ignore lint/correctness/useExhaustiveDependencies: isMountedRef is a stable ref from useMounted, not a reactive dependency.\n  const flushPending = useCallback(() => {\n    rafIdRef.current = null;\n    const next = pendingDataRef.current;\n    if (!next) return;\n    pendingDataRef.current = null;\n\n    if (isMountedRef.current && !deepEqual(dataRef.current, next)) {\n      dataRef.current = next;\n      flushSync(() => {\n        setData(next);\n      });\n    }\n  }, [setData]);\n\n  // biome-ignore lint/correctness/useExhaustiveDependencies: isMountedRef is a stable ref from useMounted, not a reactive dependency.\n  const update = useCallback(() => {\n    if (!referenceRef.current || !floatingRef.current) return;\n\n    computePosition(referenceRef.current, floatingRef.current, {\n      placement,\n      strategy,\n      middleware: latestMiddleware\n    }).then((positionData) => {\n      pendingDataRef.current = {\n        ...positionData,\n        isPositioned: openRef.current !== false\n      };\n      if (rafIdRef.current === null) {\n        rafIdRef.current = requestAnimationFrame(flushPending);\n      }\n    });\n  }, [latestMiddleware, placement, strategy, openRef, flushPending]);\n\n  useEffect(() => {\n    return () => {\n      if (rafIdRef.current !== null) {\n        cancelAnimationFrame(rafIdRef.current);\n        rafIdRef.current = null;\n      }\n    };\n  }, []);\n\n  useLayoutEffect(() => {\n    if (open === false && dataRef.current.isPositioned) {\n      dataRef.current.isPositioned = false;\n      setData((data) => ({ ...data, isPositioned: false }));\n    }\n  }, [open, setData]);\n\n  useLayoutEffect(() => {\n    if (referenceEl) referenceRef.current = referenceEl;\n    if (floatingEl) floatingRef.current = floatingEl;\n\n    if (referenceEl && floatingEl) {\n      if (whileElementsMountedRef.current) {\n        return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n      }\n      update();\n    }\n  }, [referenceEl, floatingEl, update, whileElementsMountedRef]);\n\n  const refs = useMemo(\n    () => ({\n      reference: referenceRef,\n      floating: floatingRef,\n      setReference,\n      setFloating\n    }),\n    [setReference, setFloating]\n  );\n\n  const elements = useMemo(\n    () => ({ reference: referenceEl, floating: floatingEl }),\n    [referenceEl, floatingEl]\n  );\n\n  const floatingStyles = useMemo(() => {\n    const initialStyles: CSSProperties = {\n      position: strategy,\n      left: 0,\n      top: 0\n    };\n\n    if (!elements.floating) return initialStyles;\n\n    const x = roundByDevicePixelRatio(elements.floating, data.x);\n    const y = roundByDevicePixelRatio(elements.floating, data.y);\n\n    if (transform) {\n      return {\n        ...initialStyles,\n        transform: `translate(${x}px, ${y}px)`,\n        ...(getDevicePixelRatio(elements.floating) >= 1.5 && {\n          willChange: 'transform'\n        }),\n        ...(!data.isPositioned && { visibility: 'hidden' as const })\n      };\n    }\n\n    return {\n      position: strategy,\n      left: x,\n      top: y,\n      ...(!data.isPositioned && { visibility: 'hidden' as const })\n    };\n  }, [strategy, transform, elements.floating, data.x, data.y, data.isPositioned]);\n\n  return useMemo(\n    () => ({\n      ...data,\n      update,\n      refs,\n      elements,\n      floatingStyles\n    }),\n    [data, update, refs, elements, floatingStyles]\n  );\n}\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { getOwnerDocument, nodeContains } from '@necto/dom';\nimport { useRef, useCallback, useEffect, useMemo } from 'react';\n\nimport type { RefObject } from 'react';\nimport type { UseDismissOptions, UseDismissReturn } from './useDismiss.types';\n\n/**\n * Provides dismiss interaction (outside click, escape key) for floating elements.\n * @param options - Configuration options.\n * @returns Props to spread on reference and floating elements.\n */\nexport function useDismiss(options: UseDismissOptions): UseDismissReturn {\n  const {\n    open,\n    enabled = true,\n    bubbles = false,\n    escapeKey = true,\n    outsidePress = true,\n    referencePress = false,\n    ancestorScroll = false,\n\n    // Callbacks\n    onOpenChange\n  } = options;\n\n  const insideTreeRef: RefObject<boolean> = useRef(false);\n  const referenceRef: RefObject<Element | null> = useRef<Element | null>(null);\n  const floatingRef: RefObject<HTMLElement | null> = useRef<HTMLElement | null>(null);\n\n  const escapeKeyBubbles: boolean =\n    typeof bubbles === 'boolean' ? bubbles : (bubbles.escapeKey ?? false);\n  const outsidePressBubbles: boolean =\n    typeof bubbles === 'boolean' ? bubbles : (bubbles.outsidePress ?? false);\n\n  const closeOnEscapeKey: (event: KeyboardEvent) => void = useCallback(\n    (event: KeyboardEvent): void => {\n      if (!open || !escapeKey) {\n        return;\n      }\n\n      if (event.key === 'Escape') {\n        if (!escapeKeyBubbles) {\n          event.stopPropagation();\n        }\n\n        onOpenChange(false);\n      }\n    },\n    [open, escapeKey, escapeKeyBubbles, onOpenChange]\n  );\n\n  const closeOnOutsidePress: (event: MouseEvent) => void = useCallback(\n    (event: MouseEvent): void => {\n      if (!open) {\n        return;\n      }\n\n      if (insideTreeRef.current) {\n        insideTreeRef.current = false;\n        return;\n      }\n\n      const target = event.target as Element;\n\n      if (referenceRef.current && nodeContains(referenceRef.current, target)) {\n        if (!referencePress) {\n          return;\n        }\n      }\n\n      if (floatingRef.current && nodeContains(floatingRef.current, target)) {\n        return;\n      }\n\n      if (typeof outsidePress === 'function' && !outsidePress(event)) {\n        return;\n      }\n\n      if (!outsidePressBubbles) {\n        event.stopPropagation();\n      }\n\n      onOpenChange(false);\n    },\n    [open, outsidePress, outsidePressBubbles, referencePress, onOpenChange]\n  );\n\n  useEffect(() => {\n    if (!enabled || !open) return;\n\n    const ownerDocument: Document = getOwnerDocument(floatingRef.current);\n    if (!ownerDocument) {\n      return;\n    }\n\n    if (escapeKey) {\n      ownerDocument.addEventListener('keydown', closeOnEscapeKey);\n    }\n\n    if (outsidePress) {\n      ownerDocument.addEventListener('mousedown', closeOnOutsidePress);\n    }\n\n    return (): void => {\n      ownerDocument.removeEventListener('keydown', closeOnEscapeKey);\n      ownerDocument.removeEventListener('mousedown', closeOnOutsidePress);\n    };\n  }, [open, enabled, escapeKey, outsidePress, closeOnEscapeKey, closeOnOutsidePress]);\n\n  useEffect(() => {\n    if (!enabled || !open || !ancestorScroll) {\n      return;\n    }\n\n    const scrollHandler = () => {\n      onOpenChange(false);\n    };\n\n    const reference: Element | null = referenceRef.current;\n    if (!reference) {\n      return;\n    }\n\n    const cleanup: (() => void)[] = [];\n    let current: Element | null = reference.parentElement;\n\n    while (current) {\n      const element: Element = current;\n      element.addEventListener('scroll', scrollHandler);\n      cleanup.push(() => element.removeEventListener('scroll', scrollHandler));\n      current = current.parentElement;\n    }\n\n    window.addEventListener('scroll', scrollHandler);\n    cleanup.push(() => window.removeEventListener('scroll', scrollHandler));\n\n    return (): void => {\n      cleanup.forEach((fn) => {\n        fn();\n      });\n    };\n  }, [enabled, open, ancestorScroll, onOpenChange]);\n\n  const reference = useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n\n    return {\n      ref: (node: Element | null): void => {\n        referenceRef.current = node;\n      }\n    };\n  }, [enabled]);\n\n  const floating = useMemo(() => {\n    if (!enabled) {\n      return {};\n    }\n\n    return {\n      ref: (node: HTMLElement | null) => {\n        floatingRef.current = node;\n      },\n      onPointerDown: () => {\n        insideTreeRef.current = true;\n      }\n    };\n  }, [enabled]);\n\n  return {\n    reference,\n    floating\n  };\n}\n","/*\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// Name of portal element where all poppers are placed\nexport const PORTAL_ROOT_ID: string = 'necto-popper-portal-root' as const;\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useState, useEffect, useId } from 'react';\n\nimport { PORTAL_ROOT_ID } from './constants';\n\nimport type { UsePopperPortalReturn, UsePopperPortalOptions } from './usePopperPortal.types';\n\n/**\n * Provides portal functionality for popper elements.\n * Creates a portal container DOM node and manages its lifecycle.\n *\n * @param options - Configuration options.\n * @returns Portal node and ID.\n */\nexport function usePopperPortal(options: UsePopperPortalOptions = {}): UsePopperPortalReturn {\n  const { id, enabled = true, root } = options;\n\n  const uniqueId: string = useId();\n  const portalId: string = id ?? `necto-portal-${uniqueId}`;\n\n  const [portalNode, setPortalNode] = useState<HTMLElement | null>(null);\n\n  useEffect(() => {\n    if (!enabled || typeof document === 'undefined') {\n      setPortalNode(null);\n      return;\n    }\n\n    let portalRoot: HTMLElement | null = root ?? document.getElementById(PORTAL_ROOT_ID);\n\n    if (!portalRoot) {\n      portalRoot = document.createElement('div');\n      portalRoot.id = PORTAL_ROOT_ID;\n      portalRoot.setAttribute('data-necto-portal', '');\n      document.body.appendChild(portalRoot);\n    }\n\n    const node: HTMLDivElement = document.createElement('div');\n    node.id = portalId;\n    node.setAttribute('data-necto-popper-portal', '');\n    portalRoot.appendChild(node);\n    setPortalNode(node);\n\n    return () => {\n      if (node.parentNode) {\n        node.parentNode.removeChild(node);\n      }\n    };\n  }, [enabled, portalId, root]);\n\n  return {\n    portalNode,\n    portalId\n  };\n}\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useMemo } from 'react';\nimport { mergeProps, mergeRefs } from '@necto/mergers';\n\nimport type { InteractionReturn, UseInteractionsReturn } from './useInteractions.types';\nimport type { Ref } from 'react';\nimport type { ElementProps } from '../types';\n\n/**\n * Merges multiple interaction hooks into unified prop getters.\n * @param interactions - Array of interaction hook results.\n * @returns Prop getter functions for reference, floating, and item elements.\n */\nexport function useInteractions(\n  interactions: Array<InteractionReturn | undefined | null> = []\n): UseInteractionsReturn {\n  const filteredInteractions = interactions.filter(Boolean) as InteractionReturn[];\n\n  const buildProps = useMemo(() => {\n    return (key: 'reference' | 'floating' | 'item', userProps?: ElementProps): ElementProps => {\n      const allProps = filteredInteractions\n        .map((interaction) => interaction[key])\n        .filter(Boolean) as ElementProps[];\n\n      const refs = [userProps?.ref, ...allProps.map((p) => p.ref)].filter(\n        Boolean\n      ) as Ref<unknown>[];\n\n      const merged = mergeProps(userProps ?? {}, ...allProps);\n\n      if (refs.length > 0) {\n        merged.ref = mergeRefs(...refs);\n      }\n\n      return merged;\n    };\n  }, [filteredInteractions]);\n\n  const getReferenceProps = useMemo(() => {\n    return (userProps?: ElementProps): ElementProps => buildProps('reference', userProps);\n  }, [buildProps]);\n\n  const getFloatingProps = useMemo(() => {\n    return (userProps?: ElementProps): ElementProps => buildProps('floating', userProps);\n  }, [buildProps]);\n\n  const getItemProps = useMemo(() => {\n    return (userProps?: ElementProps): ElementProps => buildProps('item', userProps);\n  }, [buildProps]);\n\n  return {\n    getReferenceProps,\n    getFloatingProps,\n    getItemProps\n  };\n}\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useLocalState } from '@necto-react/state';\nimport { useIsomorphicLayoutEffect } from '@necto-react/hooks';\n\nimport type {\n  TransitionStatus,\n  UseTransitionStatusReturn,\n  UseTransitionStatusOptions\n} from './useTransitionStatus.types';\n\n/**\n * Provides transition status for animating floating elements.\n * @param options - Configuration options.\n * @returns Mounted state and current transition status.\n */\nexport function useTransitionStatus(\n  options: UseTransitionStatusOptions\n): UseTransitionStatusReturn {\n  const { open, duration = 250 } = options;\n\n  const closeDuration: number = typeof duration === 'number' ? duration : (duration.close ?? 250);\n\n  const [status, setStatus] = useLocalState<TransitionStatus>('unmounted');\n  const [isMounted, setIsMounted] = useLocalState(false);\n\n  useIsomorphicLayoutEffect(() => {\n    if (open) {\n      setIsMounted(true);\n      setStatus('initial');\n\n      const frame = requestAnimationFrame(() => {\n        setStatus('open');\n      });\n\n      return () => cancelAnimationFrame(frame);\n    } else if (isMounted) {\n      setStatus('close');\n\n      const timeout = setTimeout(() => {\n        setStatus('unmounted');\n        setIsMounted(false);\n      }, closeDuration);\n\n      return (): void => clearTimeout(timeout);\n    }\n  }, [open, closeDuration, isMounted]);\n\n  return {\n    isMounted,\n    status\n  };\n}\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useTransitionStatus } from '../useTransitionStatus';\n\nimport type {\n  UseTransitionStylesOptions,\n  UseTransitionStylesReturn\n} from './useTransitionStyles.types';\nimport type { CSSProperties } from 'react';\n\n/**\n * Provides transition styles for animating floating elements.\n * @param options - Configuration options including style definitions.\n * @returns Mounted state, status, and computed styles.\n */\nexport function useTransitionStyles(\n  options: UseTransitionStylesOptions\n): UseTransitionStylesReturn {\n  const {\n    open,\n    closeStyles,\n    common = {},\n    duration = 250,\n    initial = {\n      opacity: 0\n    },\n    openStyles = {\n      opacity: 1\n    }\n  } = options;\n\n  const { isMounted, status } = useTransitionStatus({ open, duration });\n  const styles: CSSProperties = ((): CSSProperties => {\n    const transitionProperties: string = [\n      ...new Set([\n        ...Object.keys(initial),\n        ...Object.keys(openStyles),\n        ...Object.keys(closeStyles ?? {})\n      ])\n    ]\n      .filter((key) => key !== 'transitionProperty' && key !== 'transitionDuration')\n      .join(', ');\n\n    const baseTransition = {\n      transitionProperty: transitionProperties || 'opacity',\n      transitionDuration: `${\n        status === 'close'\n          ? typeof duration === 'number'\n            ? duration\n            : (duration.close ?? 250)\n          : typeof duration === 'number'\n            ? duration\n            : (duration.open ?? 250)\n      }ms`\n    };\n\n    switch (status) {\n      case 'initial': {\n        return {\n          ...common,\n          ...baseTransition,\n          ...initial\n        };\n      }\n      case 'open': {\n        return {\n          ...common,\n          ...baseTransition,\n          ...openStyles\n        };\n      }\n      case 'close': {\n        return {\n          ...common,\n          ...baseTransition,\n          ...(closeStyles ?? initial)\n        };\n      }\n      default:\n        return common;\n    }\n  })();\n\n  return {\n    isMounted,\n    status,\n    styles\n  };\n}\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nexport const ARROW_NAME: string = 'Arrow' as const;\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { forwardRef } from 'react';\nimport { Primitive } from '@necto-react/components';\n\nimport { ARROW_NAME } from './constants';\n\nimport type { Side } from '@necto/popper';\nimport type { Ref, ReactElement } from 'react';\nimport type { ArrowProps } from './Arrow.types';\n\n/**\n * @internal\n * Internal render function for the Arrow component. Uses arrowX/arrowY from\n * the arrow middleware for pixel-perfect positioning.\n */\nconst ArrowFn = (props: ArrowProps, ref: Ref<HTMLDivElement>): ReactElement => {\n  const {\n    children,\n    placement,\n    className,\n    arrowX,\n    arrowY,\n    width = 10,\n    height = 5,\n    ref: propRef,\n    style: userStyle,\n    ...rest\n  } = props;\n\n  const side = (placement?.split('-')[0] ?? 'top') as Side;\n  const isVertical = side === 'top' || side === 'bottom';\n\n  return (\n    <span\n      ref={propRef ?? ref}\n      style={{\n        position: 'absolute',\n        left: arrowX != null ? arrowX : undefined,\n        top: arrowY != null ? arrowY + (isVertical ? 0 : (width - height) / 2) : undefined,\n        [{ top: 'bottom', bottom: 'top', left: 'right', right: 'left' }[side]]: 0,\n        transformOrigin: {\n          top: '',\n          right: '0 0',\n          bottom: 'center 0',\n          left: '100% 0'\n        }[side],\n        transform: {\n          top: 'translateY(100%)',\n          right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n          bottom: 'rotate(180deg)',\n          left: 'translateY(50%) rotate(-90deg) translateX(50%)'\n        }[side]\n      }}\n    >\n      <Primitive.Div\n        className={className}\n        data-placement={placement ?? undefined}\n        style={{ display: 'block', ...userStyle }}\n        {...rest}\n      >\n        {children != null ? (\n          typeof children === 'function' ? (\n            children({ placement })\n          ) : (\n            children\n          )\n        ) : (\n          <svg\n            width={width}\n            height={height}\n            aria-hidden=\"true\"\n            viewBox=\"0 0 30 10\"\n            preserveAspectRatio=\"none\"\n            style={{ display: 'block' }}\n          >\n            <polygon points=\"0,0 30,0 15,10\" fill=\"currentColor\" />\n          </svg>\n        )}\n      </Primitive.Div>\n    </span>\n  );\n};\n\n/**\n * The public PopperArrow component for Necto.\n * Renders a positioned arrow element using coordinates from the arrow middleware.\n */\nexport const Arrow = forwardRef<HTMLDivElement, ArrowProps>(ArrowFn);\n\nArrow.displayName = ARROW_NAME;\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport const PORTAL_NAME: string = 'Portal' as const;\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { createPortal } from 'react-dom';\nimport { usePopperPortal } from '../../hooks/usePopperPortal';\n\nimport { PORTAL_NAME } from './constants';\n\nimport type { ReactPortal } from 'react';\nimport type { PortalProps } from './Portal.types';\n\n/**\n * Renders children into a portal at the end of the document body.\n * Uses usePopperPortal internally to manage the portal container lifecycle.\n *\n * @param props - Configuration options.\n * @returns Portal component or null.\n */\nexport function Portal(props: PortalProps): ReactPortal | null {\n  const { id, root, preserveTabOrder = true, children } = props;\n\n  const { portalNode } = usePopperPortal({ id, root, preserveTabOrder });\n\n  if (!portalNode) return null;\n\n  return createPortal(children, portalNode);\n}\n\nPortal.displayName = PORTAL_NAME;\n"],"x_google_ignoreList":[1,2,3],"mappings":"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"}