Plugin Directory

Changeset 3268515


Ignore:
Timestamp:
04/08/2025 09:05:23 AM (11 months ago)
Author:
web-engineer
Message:

tagging version 1.0.14442

Location:
web-engine-sentry
Files:
25 edited
1 copied

Legend:

Unmodified
Added
Removed
  • web-engine-sentry/assets/playgroundtemplate.xml

    r3264464 r3268515  
    5757<!-- wp:list -->
    5858<ul class="wp-block-list"><!-- wp:list-item -->
    59 <li>Elementor 3.21</li>
     59<li>Elementor</li>
    6060<!-- /wp:list-item -->
    6161
    6262<!-- wp:list-item -->
    63 <li>Jetpack 14.0</li>
     63<li>Jetpack</li>
    6464<!-- /wp:list-item -->
    6565
    6666<!-- wp:list-item -->
    67 <li>Contactform7 6.0</li>
     67<li>Contactform7</li>
    6868<!-- /wp:list-item -->
    6969
    7070<!-- wp:list-item -->
    71 <li>WPForms 1.9</li>
     71<li>WPForms</li>
    7272<!-- /wp:list-item -->
    7373
    7474<!-- wp:list-item -->
    75 <li>Gutena Forms 1.2.5</li>
     75<li>Gutena Forms</li>
     76<!-- /wp:list-item -->
     77
     78<!-- wp:list-item -->
     79<li>WooCommerce</li>
    7680<!-- /wp:list-item --></ul>
    7781<!-- /wp:list -->
  • web-engine-sentry/tags/1.0.14442/build/main.asset.php

    r3267777 r3268515  
    1 <?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime'), 'version' => '3ce3badd024859a4a6de');
     1<?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime'), 'version' => 'd35cadbc8d8ab84e6339');
  • web-engine-sentry/tags/1.0.14442/build/main.js

    r3267777 r3268515  
    5757/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
    5858
    59 eval("\n// NAMESPACE OBJECT: ./node_modules/query-string/base.js\nvar base_namespaceObject = {};\n__webpack_require__.r(base_namespaceObject);\n__webpack_require__.d(base_namespaceObject, {\n  exclude: () => (exclude),\n  extract: () => (extract),\n  parse: () => (parse),\n  parseUrl: () => (parseUrl),\n  pick: () => (pick),\n  stringify: () => (stringify),\n  stringifyUrl: () => (stringifyUrl)\n});\n\n;// external \"ReactJSXRuntime\"\nconst external_ReactJSXRuntime_namespaceObject = window[\"ReactJSXRuntime\"];\n// EXTERNAL MODULE: ./node_modules/react-dom/client.js\nvar client = __webpack_require__(\"./node_modules/react-dom/client.js\");\n;// external \"React\"\nconst external_React_namespaceObject = window[\"React\"];\nvar external_React_namespaceObject_0 = /*#__PURE__*/__webpack_require__.t(external_React_namespaceObject, 2);\n;// ./src/components/WebUiLogo.tsx\n\n\nconst WebUiLogo = ({ isLoading, className, }) => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: className, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: ` ${isLoading ? 'animate-[spin_6s_infinite]' : ''}`, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1727.29,904.649L1832.46,1009.82L1743.76,944.049C1711.49,971.549 1670.7,989.341 1625.94,992.893L1609.34,1104.72L1592.74,992.893C1560.53,990.338 1530.39,980.412 1503.99,964.802L1533.56,935.235C1556.31,946.833 1582.07,953.376 1609.34,953.376C1655.35,953.376 1697.04,934.755 1727.29,904.649Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1430.12,681.758L1459.74,711.378C1448.46,733.883 1442.11,759.279 1442.11,786.146C1442.11,831.566 1460.26,872.78 1489.68,902.921L1392.35,1000.25L1451.44,920.562C1423.94,888.294 1406.14,847.511 1402.59,802.747L1290.77,786.146L1402.59,769.546C1405.12,737.729 1414.83,707.925 1430.12,681.758Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1830.85,563.667L1834.6,560.883L1767.24,651.731C1794.74,683.999 1812.53,724.782 1816.09,769.546L1927.91,786.146L1816.09,802.747C1813.58,834.358 1803.97,863.982 1788.86,890.025L1759.21,860.378C1770.32,838.009 1776.57,812.802 1776.57,786.146C1776.57,739.749 1757.63,697.739 1727.08,667.436L1830.85,563.667Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1389.34,564.783L1474.92,628.244C1507.19,600.744 1547.97,582.952 1592.74,579.4L1609.34,467.575L1625.94,579.4C1657.16,581.877 1686.44,591.281 1712.25,606.072L1682.55,635.775C1660.43,624.978 1635.59,618.917 1609.34,618.917C1563.53,618.917 1522,637.374 1491.8,667.242L1389.34,564.783Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) })] }) })] }) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"absolute top-0 right-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1693.55,711.864C1704.35,743.391 1704.53,851.487 1611.63,912.994C1520.21,852.414 1520.39,743.689 1529.72,711.864C1555.26,700.92 1578.06,693.3 1611.63,693.49C1643.32,693.669 1668.78,698.809 1693.55,711.864ZM1543.69,727.081C1543.63,727.108 1543.57,727.135 1543.5,727.162C1535.73,753.659 1535.58,844.181 1611.7,894.619C1688.46,843.796 1688.9,754.764 1680.1,727.766C1686.79,759.409 1681.87,838.522 1611.71,884.976C1542.12,838.863 1537.75,758.469 1543.69,727.081Z\", style: { fill: 'white' } }) }) })] }) }) }) })] }));\n};\n\n;// ./node_modules/@heroicons/react/20/solid/esm/ArrowTopRightOnSquareIcon.js\n\nfunction ArrowTopRightOnSquareIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4.25 5.5a.75.75 0 0 0-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-4a.75.75 0 0 1 1.5 0v4A2.25 2.25 0 0 1 12.75 17h-8.5A2.25 2.25 0 0 1 2 14.75v-8.5A2.25 2.25 0 0 1 4.25 4h5a.75.75 0 0 1 0 1.5h-5Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M6.194 12.753a.75.75 0 0 0 1.06.053L16.5 4.44v2.81a.75.75 0 0 0 1.5 0v-4.5a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0 0 1.5h2.553l-9.056 8.194a.75.75 0 0 0-.053 1.06Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowTopRightOnSquareIcon);\n/* harmony default export */ const esm_ArrowTopRightOnSquareIcon = (ForwardRef);\n;// ./src/components/step/Intro.tsx\n\nfunction Intro({ onSetShowReg }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-2xl text-zinc-100\", children: \"Registration with the service provider is required in order to use this service.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-xl text-zinc-100\", children: [\"This service is designed to enhance the security of form submissions and admin access. It\\u2019s\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"privacy-first\" }), \" plugin, our servers only use data strictly necessary to provide the service and authenticate users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"The\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"basic service is entirely free to use\" }), \"; however, it uses a simple challenge that can be easily solved by bots using AI. Our premium service offers comprehensive protection and is available to all registered users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onSetShowReg(true), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"Begin\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"Note that this plugin should be integrated into your overall security strategy. Documentation and support are provided, but appropriate configuration is necessary. The plugin has been tested on the current versions of the most popular form plugins.\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"It is crucial to keep your installation and its installed plugins and themes up-to-date.\" })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\n\nfunction ArrowPathIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"\n  }));\n}\nconst ArrowPathIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowPathIcon);\n/* harmony default export */ const esm_ArrowPathIcon = (ArrowPathIcon_ForwardRef);\n;// ./src/components/CheckOption.tsx\n\n\n\nfunction CheckOption({ checked, disabled, onChange, name, title, description, loading = false, }) {\n    const toggleCheck = (e) => {\n        const newChecked = !checked;\n        setOurChecked(newChecked);\n        onChange(newChecked);\n        e.preventDefault();\n    };\n    const [ourChecked, setOurChecked] = (0,external_React_namespaceObject.useState)(checked);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex h-6 items-center\", children: [(ourChecked !== checked || loading) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 animate-spin inline\" })), ourChecked === checked && checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" })), ourChecked === checked && !checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-3 text-sm/6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { className: \"text-left\", onClick: toggleCheck, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: name, className: \"font-medium text-white\", children: title }), undefined !== description && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sky-100\", children: description }))] }) })] }));\n}\n\n;// ./src/components/step/Communications.tsx\n\n\nfunction Communications({ registrationStep, onCommAdministrative, onCommNews, onCommDeveloper, commAdministrative, commNews, commDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Communication preferences -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commAdministrative, onChange: onCommAdministrative, name: \"administrative\", title: \"Administrative\", description: \"Adminmistrative notifications\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commNews, onChange: onCommNews, name: \"information\", title: \"News & information\", description: \"Tips and tricks on how to use this and related products\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commDeveloper, onChange: onCommDeveloper, name: \"devel\", title: \"Developer notices\", description: \"Notification of updates to services plugins and API's\" })] })] }));\n}\n\n;// ./src/components/step/Register.tsx\n\n\n\nfunction Register({ setShowReg, getPin, registrationStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Name\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: 'register' !== registrationStep, id: \"name\", name: \"name\", defaultValue: registrationName, onChange: (e) => onRegistrationName(e.target.value), onBlur: (e) => onRegistrationName(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Email address\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: \"email\", name: \"email\", type: \"email\", disabled: 'register' !== registrationStep, defaultValue: registrationEmail, onChange: (e) => onRegistrationEmail(e.target.value), onBlur: (e) => onRegistrationEmail(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: \"We will send a \\u201Cpin\\u201D to this email address which you will need on the next step to complete the registration process - this must be a valid email address to progress.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: registrationStep, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", disabled: 'registering' === registrationStep, className: 'inline-flex w-full justify-center rounded-md bg-sky-700 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm ' +\n                            ('register' === registrationStep\n                                ? 'hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700'\n                                : 'opacity-80'), onClick: () => setShowReg(false), children: \"Back\" }), 'registering' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Registering\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", className: \"inline-flex w-full justify-center rounded-md bg-sky-500 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500\", onClick: () => getPin(), children: \"Register\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", {})] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/InboxArrowDownIcon.js\n\nfunction InboxArrowDownIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 3.75H6.912a2.25 2.25 0 0 0-2.15 1.588L2.35 13.177a2.25 2.25 0 0 0-.1.661V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 0 0-2.15-1.588H15M2.25 13.5h3.86a2.25 2.25 0 0 1 2.012 1.244l.256.512a2.25 2.25 0 0 0 2.013 1.244h3.218a2.25 2.25 0 0 0 2.013-1.244l.256-.512a2.25 2.25 0 0 1 2.013-1.244h3.859M12 3v8.25m0 0-3-3m3 3 3-3\"\n  }));\n}\nconst InboxArrowDownIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(InboxArrowDownIcon);\n/* harmony default export */ const esm_InboxArrowDownIcon = (InboxArrowDownIcon_ForwardRef);\n;// ./src/components/step/PinCheck.tsx\n\n\nfunction PinCheck({ pin, registrationStep, registrationEmail, onPin, onStep, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", method: \"POST\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate inline-flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100 ring-1 ring-inset ring-zinc-300/10\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_InboxArrowDownIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"To\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/40 px-3 py-2 text-sm font-semibold text-white ring-1 ring-inset ring-zinc-300/10\", children: registrationEmail })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"label\", { htmlFor: \"pin\", className: \"mt-6 mb-1 text-pretty text-lg/8 text-zinc-100\", children: [\"An email has been sent from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"containing a pin, please enter below to continue -\"] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-2 inline-flex items-center\", children: [registrationStep !== 'bad pin' &&\n                                registrationStep !== 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: registrationStep === 'pin check', name: \"pin\", type: \"text\", onChange: (e) => onPin(e.target.value), onBlur: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950 ring-white ring-2\" })), (registrationStep === 'bad pin' ||\n                                registrationStep === 'error pin') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { name: \"pin\", type: \"text\", defaultValue: \"\", onFocus: (e) => onPin(e.target.value), onChange: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950/50 ring-white ring-2\" }), registrationStep === 'bad pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"that didn't work, please try again\"] })), registrationStep === 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"unable to connect to verify pin, please try later\"] }))] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-white\", children: \"Please check Junk / Spam folders and the addressed used, the email should arrive within a few minuites and will expire after a short while. You can always refresh and try again if your having trouble.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-2\", children: [registrationStep === 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900/50 px-3 py-2 text-sm font-semibold text-white/50 shadow-sm  focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { disabled: true, className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Verifying\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] }) })] })), registrationStep !== 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-800\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { disabled: pin && pin.length === 6 ? false : true, className: 'inline-flex w-full justify-center rounded-md px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500' +\n                                        (pin && pin.length === 6\n                                            ? ' bg-sky-500 hover:bg-sky-400'\n                                            : ' bg-sky-900'), onClick: () => pin && pin.length === 6\n                                        ? onStep('pin check')\n                                        : onStep('bad pin'), children: \"Verify\" }) })] }))] })] }));\n}\n\n;// ./node_modules/@headlessui/react/dist/utils/micro-task.js\nfunction micro_task_t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}\n\n;// ./node_modules/@headlessui/react/dist/utils/disposables.js\nfunction disposables_o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return micro_task_t(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=disposables_o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-disposables.js\nfunction use_disposables_p(){let[e]=(0,external_React_namespaceObject.useState)(disposables_o);return (0,external_React_namespaceObject.useEffect)(()=>()=>e.dispose(),[e]),e}\n\n;// ./node_modules/@headlessui/react/dist/utils/env.js\nvar i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js\nlet use_iso_morphic_effect_n=(e,t)=>{s.isServer?(0,external_React_namespaceObject.useEffect)(e,t):(0,external_React_namespaceObject.useLayoutEffect)(e,t)};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-latest-value.js\nfunction use_latest_value_s(e){let r=(0,external_React_namespaceObject.useRef)(e);return use_iso_morphic_effect_n(()=>{r.current=e},[e]),r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-event.js\nlet use_event_o=function(t){let e=use_latest_value_s(t);return external_React_namespaceObject.useCallback((...r)=>e.current(...r),[e])};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-is-mounted.js\nfunction f(){let e=(0,external_React_namespaceObject.useRef)(!1);return use_iso_morphic_effect_n(()=>(e.current=!0,()=>{e.current=!1}),[]),e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js\nfunction use_server_handoff_complete_s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\" in external_React_namespaceObject_0?(o=>o.useSyncExternalStore)(external_React_namespaceObject_0)(()=>()=>{},()=>!1,()=>!r):!1}function use_server_handoff_complete_l(){let r=use_server_handoff_complete_s(),[e,n]=external_React_namespaceObject.useState(s.isHandoffComplete);return e&&s.isHandoffComplete===!1&&n(!1),external_React_namespaceObject.useEffect(()=>{e!==!0&&n(!0)},[e]),external_React_namespaceObject.useEffect(()=>s.handoff(),[]),r?!1:e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-sync-refs.js\nlet u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function use_sync_refs_y(...t){let n=(0,external_React_namespaceObject.useRef)(t);(0,external_React_namespaceObject.useEffect)(()=>{n.current=t},[t]);let c=use_event_o(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-flags.js\nfunction c(u=0){let[t,l]=(0,external_React_namespaceObject.useState)(u),g=(0,external_React_namespaceObject.useCallback)(e=>l(e),[t]),s=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a|e),[t]),m=(0,external_React_namespaceObject.useCallback)(e=>(t&e)===e,[t]),n=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a&~e),[l]),F=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-transition.js\nvar use_transition_T,b;typeof process!=\"undefined\"&&typeof globalThis!=\"undefined\"&&typeof Element!=\"undefined\"&&((use_transition_T=process==null?void 0:process.env)==null?void 0:use_transition_T[\"NODE_ENV\"])===\"test\"&&typeof((b=Element==null?void 0:Element.prototype)==null?void 0:b.getAnimations)==\"undefined\"&&(Element.prototype.getAnimations=function(){return console.warn([\"Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\",\"Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\",\"\",\"Example usage:\",\"```js\",\"import { mockAnimationsApi } from 'jsdom-testing-mocks'\",\"mockAnimationsApi()\",\"```\"].join(`\n`)),[]});var L=(r=>(r[r.None=0]=\"None\",r[r.Closed=1]=\"Closed\",r[r.Enter=2]=\"Enter\",r[r.Leave=4]=\"Leave\",r))(L||{});function use_transition_R(t){let n={};for(let e in t)t[e]===!0&&(n[`data-${e}`]=\"\");return n}function x(t,n,e,i){let[r,o]=(0,external_React_namespaceObject.useState)(e),{hasFlag:s,addFlag:a,removeFlag:l}=c(t&&r?3:0),u=(0,external_React_namespaceObject.useRef)(!1),f=(0,external_React_namespaceObject.useRef)(!1),E=use_disposables_p();return use_iso_morphic_effect_n(()=>{var d;if(t){if(e&&o(!0),!n){e&&a(3);return}return(d=i==null?void 0:i.start)==null||d.call(i,e),C(n,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(e?(a(3),l(4)):(a(4),l(2)))},run(){f.current?e?(l(3),a(4)):(l(4),a(3)):e?l(1):a(1)},done(){var p;f.current&&typeof n.getAnimations==\"function\"&&n.getAnimations().length>0||(u.current=!1,l(7),e||o(!1),(p=i==null?void 0:i.end)==null||p.call(i,e))}})}},[t,e,n,E]),t?[r,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(t,{prepare:n,run:e,done:i,inFlight:r}){let o=disposables_o();return j(t,{prepare:n,inFlight:r}),o.nextFrame(()=>{e(),o.requestAnimationFrame(()=>{o.add(M(t,i))})}),o.dispose}function M(t,n){var o,s;let e=disposables_o();if(!t)return e.dispose;let i=!1;e.add(()=>{i=!0});let r=(s=(o=t.getAnimations)==null?void 0:o.call(t).filter(a=>a instanceof CSSTransition))!=null?s:[];return r.length===0?(n(),e.dispose):(Promise.allSettled(r.map(a=>a.finished)).then(()=>{i||n()}),e.dispose)}function j(t,{inFlight:n,prepare:e}){if(n!=null&&n.current){e();return}let i=t.style.transition;t.style.transition=\"none\",e(),t.offsetHeight,t.style.transition=i}\n\n;// ./node_modules/@headlessui/react/dist/internal/open-closed.js\nlet n=(0,external_React_namespaceObject.createContext)(null);n.displayName=\"OpenClosedContext\";var open_closed_i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(open_closed_i||{});function open_closed_u(){return (0,external_React_namespaceObject.useContext)(n)}function open_closed_c({value:o,children:t}){return external_React_namespaceObject.createElement(n.Provider,{value:o},t)}function open_closed_s({children:o}){return external_React_namespaceObject.createElement(n.Provider,{value:null},o)}\n\n;// ./node_modules/@headlessui/react/dist/utils/class-names.js\nfunction class_names_t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}\n\n;// ./node_modules/@headlessui/react/dist/utils/match.js\nfunction match_u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,match_u),t}\n\n;// ./node_modules/@headlessui/react/dist/utils/render.js\nvar O=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(O||{}),render_A=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(render_A||{});function render_L(){let n=U();return (0,external_React_namespaceObject.useCallback)(r=>render_C({mergeRefs:n,...r}),[n])}function render_C({ourProps:n,theirProps:r,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:$;let o=P(r,n);if(t)return F(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return F(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return match_u(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return F(o,e,a,l,i)}function F(n,r={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(n,[\"unmount\",\"static\"]),y=n.ref!==void 0?{[i]:n.ref}:{},f=typeof l==\"function\"?l(r):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(r)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(t===external_React_namespaceObject.Fragment&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!(0,external_React_namespaceObject.isValidElement)(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>`  - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>`  - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...R)=>class_names_t(p(...R),o.className):class_names_t(p,o.className),T=c?{className:c}:{},g=P(f.props,m(h(o,[\"ref\"])));for(let R in u)R in g&&delete u[R];return (0,external_React_namespaceObject.cloneElement)(f,Object.assign({},g,u,y,{ref:s(H(f),y.ref)},T))}return (0,external_React_namespaceObject.createElement)(t,Object.assign({},h(o,[\"ref\"]),t!==external_React_namespaceObject.Fragment&&y,t!==external_React_namespaceObject.Fragment&&u),f)}function U(){let n=(0,external_React_namespaceObject.useRef)([]),r=(0,external_React_namespaceObject.useCallback)(e=>{for(let a of n.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return n.current=e,r}}function $(...n){return n.every(r=>r==null)?void 0:r=>{for(let e of n)e!=null&&(typeof e==\"function\"?e(r):e.current=r)}}function P(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];if(r.disabled||r[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(r,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return r}function render_(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];for(let s in e)Object.assign(r,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return r}function K(n){var r;return Object.assign((0,external_React_namespaceObject.forwardRef)(n),{displayName:(r=n.displayName)!=null?r:n.name})}function m(n){let r=Object.assign({},n);for(let e in r)r[e]===void 0&&delete r[e];return r}function h(n,r=[]){let e=Object.assign({},n);for(let a of r)a in e&&delete e[a];return e}function H(n){return external_React_namespaceObject.version.split(\".\")[0]>=\"19\"?n.props.ref:n.ref}\n\n;// ./node_modules/@headlessui/react/dist/components/transition/transition.js\n\"use client\";function ue(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:de)!==external_React_namespaceObject.Fragment||external_React_namespaceObject.Children.count(e.children)===1}let w=(0,external_React_namespaceObject.createContext)(null);w.displayName=\"TransitionContext\";var _e=(n=>(n.Visible=\"visible\",n.Hidden=\"hidden\",n))(_e||{});function De(){let e=(0,external_React_namespaceObject.useContext)(w);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}function He(){let e=(0,external_React_namespaceObject.useContext)(transition_M);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}let transition_M=(0,external_React_namespaceObject.createContext)(null);transition_M.displayName=\"NestingContext\";function transition_U(e){return\"children\"in e?transition_U(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t===\"visible\").length>0}function Te(e,t){let n=use_latest_value_s(e),l=(0,external_React_namespaceObject.useRef)([]),S=f(),R=use_disposables_p(),d=use_event_o((o,i=render_A.Hidden)=>{let a=l.current.findIndex(({el:s})=>s===o);a!==-1&&(match_u(i,{[render_A.Unmount](){l.current.splice(a,1)},[render_A.Hidden](){l.current[a].state=\"hidden\"}}),R.microTask(()=>{var s;!transition_U(l)&&S.current&&((s=n.current)==null||s.call(n))}))}),y=use_event_o(o=>{let i=l.current.find(({el:a})=>a===o);return i?i.state!==\"visible\"&&(i.state=\"visible\"):l.current.push({el:o,state:\"visible\"}),()=>d(o,render_A.Unmount)}),p=(0,external_React_namespaceObject.useRef)([]),c=(0,external_React_namespaceObject.useRef)(Promise.resolve()),C=(0,external_React_namespaceObject.useRef)({enter:[],leave:[]}),h=use_event_o((o,i,a)=>{p.current.splice(0),t&&(t.chains.current[i]=t.chains.current[i].filter(([s])=>s!==o)),t==null||t.chains.current[i].push([o,new Promise(s=>{p.current.push(s)})]),t==null||t.chains.current[i].push([o,new Promise(s=>{Promise.all(C.current[i].map(([r,f])=>f)).then(()=>s())})]),i===\"enter\"?c.current=c.current.then(()=>t==null?void 0:t.wait.current).then(()=>a(i)):a(i)}),g=use_event_o((o,i,a)=>{Promise.all(C.current[i].splice(0).map(([s,r])=>r)).then(()=>{var s;(s=p.current.shift())==null||s()}).then(()=>a(i))});return (0,external_React_namespaceObject.useMemo)(()=>({children:l,register:y,unregister:d,onStart:h,onStop:g,wait:c,chains:C}),[y,d,l,h,g,C,c])}let de=external_React_namespaceObject.Fragment,fe=O.RenderStrategy;function Ae(e,t){var ee,te;let{transition:n=!0,beforeEnter:l,afterEnter:S,beforeLeave:R,afterLeave:d,enter:y,enterFrom:p,enterTo:c,entered:C,leave:h,leaveFrom:g,leaveTo:o,...i}=e,[a,s]=(0,external_React_namespaceObject.useState)(null),r=(0,external_React_namespaceObject.useRef)(null),f=ue(e),j=use_sync_refs_y(...f?[r,t,s]:t===null?[]:[t]),H=(ee=i.unmount)==null||ee?render_A.Unmount:render_A.Hidden,{show:u,appear:z,initial:K}=De(),[v,G]=(0,external_React_namespaceObject.useState)(u?\"visible\":\"hidden\"),Q=He(),{register:A,unregister:I}=Q;use_iso_morphic_effect_n(()=>A(r),[A,r]),use_iso_morphic_effect_n(()=>{if(H===render_A.Hidden&&r.current){if(u&&v!==\"visible\"){G(\"visible\");return}return match_u(v,{[\"hidden\"]:()=>I(r),[\"visible\"]:()=>A(r)})}},[v,r,A,I,u,H]);let B=use_server_handoff_complete_l();use_iso_morphic_effect_n(()=>{if(f&&B&&v===\"visible\"&&r.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[r,v,B,f]);let ce=K&&!z,Y=z&&u&&K,W=(0,external_React_namespaceObject.useRef)(!1),L=Te(()=>{W.current||(G(\"hidden\"),I(r))},Q),Z=use_event_o(k=>{W.current=!0;let F=k?\"enter\":\"leave\";L.onStart(r,F,_=>{_===\"enter\"?l==null||l():_===\"leave\"&&(R==null||R())})}),$=use_event_o(k=>{let F=k?\"enter\":\"leave\";W.current=!1,L.onStop(r,F,_=>{_===\"enter\"?S==null||S():_===\"leave\"&&(d==null||d())}),F===\"leave\"&&!transition_U(L)&&(G(\"hidden\"),I(r))});(0,external_React_namespaceObject.useEffect)(()=>{f&&n||(Z(u),$(u))},[u,f,n]);let pe=(()=>!(!n||!f||!B||ce))(),[,T]=x(pe,a,u,{start:Z,end:$}),Ce=m({ref:j,className:((te=class_names_t(i.className,Y&&y,Y&&p,T.enter&&y,T.enter&&T.closed&&p,T.enter&&!T.closed&&c,T.leave&&h,T.leave&&!T.closed&&g,T.leave&&T.closed&&o,!T.transition&&u&&C))==null?void 0:te.trim())||void 0,...use_transition_R(T)}),N=0;v===\"visible\"&&(N|=open_closed_i.Open),v===\"hidden\"&&(N|=open_closed_i.Closed),T.enter&&(N|=open_closed_i.Opening),T.leave&&(N|=open_closed_i.Closing);let he=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:L},external_React_namespaceObject.createElement(open_closed_c,{value:N},he({ourProps:Ce,theirProps:i,defaultTag:de,features:fe,visible:v===\"visible\",name:\"Transition.Child\"})))}function Ie(e,t){let{show:n,appear:l=!1,unmount:S=!0,...R}=e,d=(0,external_React_namespaceObject.useRef)(null),y=ue(e),p=use_sync_refs_y(...y?[d,t]:t===null?[]:[t]);use_server_handoff_complete_l();let c=open_closed_u();if(n===void 0&&c!==null&&(n=(c&open_closed_i.Open)===open_closed_i.Open),n===void 0)throw new Error(\"A <Transition /> is used but it is missing a `show={true | false}` prop.\");let[C,h]=(0,external_React_namespaceObject.useState)(n?\"visible\":\"hidden\"),g=Te(()=>{n||h(\"hidden\")}),[o,i]=(0,external_React_namespaceObject.useState)(!0),a=(0,external_React_namespaceObject.useRef)([n]);use_iso_morphic_effect_n(()=>{o!==!1&&a.current[a.current.length-1]!==n&&(a.current.push(n),i(!1))},[a,n]);let s=(0,external_React_namespaceObject.useMemo)(()=>({show:n,appear:l,initial:o}),[n,l,o]);use_iso_morphic_effect_n(()=>{n?h(\"visible\"):!transition_U(g)&&d.current!==null&&h(\"hidden\")},[n,g]);let r={unmount:S},f=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeEnter)==null||u.call(e)}),j=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeLeave)==null||u.call(e)}),H=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:g},external_React_namespaceObject.createElement(w.Provider,{value:s},H({ourProps:{...r,as:external_React_namespaceObject.Fragment,children:external_React_namespaceObject.createElement(me,{ref:p,...r,...R,beforeEnter:f,beforeLeave:j})},theirProps:{},defaultTag:external_React_namespaceObject.Fragment,features:fe,visible:C===\"visible\",name:\"Transition\"})))}function Le(e,t){let n=(0,external_React_namespaceObject.useContext)(w)!==null,l=open_closed_u()!==null;return external_React_namespaceObject.createElement(external_React_namespaceObject.Fragment,null,!n&&l?external_React_namespaceObject.createElement(X,{ref:t,...e}):external_React_namespaceObject.createElement(me,{ref:t,...e}))}let X=K(Ie),me=K(Ae),Fe=K(Le),ze=Object.assign(X,{Child:Fe,Root:X});\n\n;// ./node_modules/decode-uri-component/index.js\nconst token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nfunction decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n\n;// ./node_modules/filter-obj/index.js\nfunction includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n\n;// ./node_modules/split-on-first/index.js\nfunction splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n\n;// ./node_modules/query-string/base.js\n\n\n\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && base_decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? base_decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => base_decode(item, options)) : (value === null ? value : base_decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? base_decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: base_decode(value, options).split(options.arrayFormatSeparator);\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction base_decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeUriComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options, type) {\n\tif (type === 'string' && typeof value === 'string') {\n\t\treturn value;\n\t}\n\n\tif (typeof type === 'function' && typeof value === 'string') {\n\t\treturn type(value);\n\t}\n\n\tif (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (type === 'number' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\treturn value;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\ttypes: Object.create(null),\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : base_decode(value, options));\n\t\tformatter(base_decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null && options.types[key] !== 'string') {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tconst type = options.types[key] ? options.types[key].replace('[]', '') : undefined;\n\t\t\t\tvalue[key2] = parseValue(value2, options, type);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && options.types[key] === 'string') {\n\t\t\treturnValue[key] = Object.values(value).join(options.arrayFormatSeparator);\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options, options.types[key]);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nfunction stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nfunction parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: base_decode(hash, options)} : {}),\n\t};\n}\n\nfunction stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nfunction pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nfunction exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n\n;// ./node_modules/query-string/index.js\n\n\n/* harmony default export */ const query_string = (base_namespaceObject);\n\n;// ./node_modules/@heroicons/react/24/solid/esm/LinkSlashIcon.js\n\nfunction LinkSlashIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.892 4.09a3.75 3.75 0 0 0-5.303 0l-4.5 4.5c-.074.074-.144.15-.21.229l4.965 4.966a3.75 3.75 0 0 0-1.986-4.428.75.75 0 0 1 .646-1.353 5.253 5.253 0 0 1 2.502 6.944l5.515 5.515a.75.75 0 0 1-1.061 1.06l-18-18.001A.75.75 0 0 1 3.521 2.46l5.294 5.295a5.31 5.31 0 0 1 .213-.227l4.5-4.5a5.25 5.25 0 1 1 7.425 7.425l-1.757 1.757a.75.75 0 1 1-1.06-1.06l1.756-1.757a3.75 3.75 0 0 0 0-5.304ZM5.846 11.773a.75.75 0 0 1 0 1.06l-1.757 1.758a3.75 3.75 0 0 0 5.303 5.304l3.129-3.13a.75.75 0 1 1 1.06 1.061l-3.128 3.13a5.25 5.25 0 1 1-7.425-7.426l1.757-1.757a.75.75 0 0 1 1.061 0Zm2.401.26a.75.75 0 0 1 .957.458c.18.512.474.992.885 1.403.31.311.661.555 1.035.733a.75.75 0 0 1-.647 1.354 5.244 5.244 0 0 1-1.449-1.026 5.232 5.232 0 0 1-1.24-1.965.75.75 0 0 1 .46-.957Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst LinkSlashIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(LinkSlashIcon);\n/* harmony default export */ const esm_LinkSlashIcon = (LinkSlashIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/ShieldCheckIcon.js\n\nfunction ShieldCheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M12.516 2.17a.75.75 0 0 0-1.032 0 11.209 11.209 0 0 1-7.877 3.08.75.75 0 0 0-.722.515A12.74 12.74 0 0 0 2.25 9.75c0 5.942 4.064 10.933 9.563 12.348a.749.749 0 0 0 .374 0c5.499-1.415 9.563-6.406 9.563-12.348 0-1.39-.223-2.73-.635-3.985a.75.75 0 0 0-.722-.516l-.143.001c-2.996 0-5.717-1.17-7.734-3.08Zm3.094 8.016a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ShieldCheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ShieldCheckIcon);\n/* harmony default export */ const esm_ShieldCheckIcon = (ShieldCheckIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M1.5 8.67v8.58a3 3 0 0 0 3 3h15a3 3 0 0 0 3-3V8.67l-8.928 5.493a3 3 0 0 1-3.144 0L1.5 8.67Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M22.5 6.908V6.75a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3v.158l9.714 5.978a1.5 1.5 0 0 0 1.572 0L22.5 6.908Z\"\n  }));\n}\nconst EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon);\n/* harmony default export */ const esm_EnvelopeIcon = (EnvelopeIcon_ForwardRef);\n;// ./src/components/step/FinishSetup.tsx\n\n\nfunction FinishSetup({ logged = false }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [logged && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ShieldCheckIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" })), !logged && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"Basic\"] }))] }));\n}\n\n;// ./src/components/panel/User.tsx\n\n\n\nfunction User({ registrationEmail, registrationName, testMode = false, logged, }) {\n    if (testMode) {\n        return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"my-2 p-4 text-md rounded-md bg-black/20 max-w-96\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_LinkSlashIcon, { \"aria-hidden\": \"true\", className: \"size-8 text-white/50 float-right\" }), \"Currently\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"in offline testing mode\" }), \",\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"Your site uses a known local development address\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Only a sample captcha will be shown\" }), \".\"] }) }));\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(FinishSetup, { logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/20 px-2 text-sm font-semibold text-white flex-grow\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"text-white/70 font-thin mr-2\", children: [\"<\", registrationName, \">\"] }), ' ', registrationEmail] }) })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckBadgeIcon.js\n\nfunction CheckBadgeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M8.603 3.799A4.49 4.49 0 0 1 12 2.25c1.357 0 2.573.6 3.397 1.549a4.49 4.49 0 0 1 3.498 1.307 4.491 4.491 0 0 1 1.307 3.497A4.49 4.49 0 0 1 21.75 12a4.49 4.49 0 0 1-1.549 3.397 4.491 4.491 0 0 1-1.307 3.497 4.491 4.491 0 0 1-3.497 1.307A4.49 4.49 0 0 1 12 21.75a4.49 4.49 0 0 1-3.397-1.549 4.49 4.49 0 0 1-3.498-1.306 4.491 4.491 0 0 1-1.307-3.498A4.49 4.49 0 0 1 2.25 12c0-1.357.6-2.573 1.549-3.397a4.49 4.49 0 0 1 1.307-3.497 4.49 4.49 0 0 1 3.497-1.307Zm7.007 6.387a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckBadgeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckBadgeIcon);\n/* harmony default export */ const esm_CheckBadgeIcon = (CheckBadgeIcon_ForwardRef);\n;// ./src/components/step/Options.tsx\n\n\n\n\n\n\n\n\nfunction Options({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [forms, setProtectForms] = (0,external_React_namespaceObject.useState)(true);\n    const [login, setProtectLogin] = (0,external_React_namespaceObject.useState)(true);\n    const [comments, setProtectComments] = (0,external_React_namespaceObject.useState)(true);\n    const [roles, setRoles] = (0,external_React_namespaceObject.useState)([]);\n    const [exempt, setExempt] = (0,external_React_namespaceObject.useState)([]);\n    const [roleLoading, setRoleloading] = (0,external_React_namespaceObject.useState)(false);\n    const [users, setUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [exemptUsers, setExemptUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [selectedUser, setSelectedUser] = (0,external_React_namespaceObject.useState)('');\n    const [wcCheckout, setWcCheckout] = (0,external_React_namespaceObject.useState)(true);\n    function updateOption(option, value, callback) {\n        if (option === 'we360cloud_sentry_exempt') {\n            setRoleloading(true);\n        }\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'update_option',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.applied);\n            if (option === 'we360cloud_sentry_exempt') {\n                setRoleloading(false);\n            }\n        });\n    }\n    function updateProtectForms(opt) {\n        updateOption('we360cloud_sentry_protectforms', opt, setProtectForms);\n    }\n    function updateProtectLogin(opt) {\n        updateOption('we360cloud_sentry_protectlogin', opt, setProtectLogin);\n    }\n    function updateWcCheckout(opt) {\n        updateOption('we360cloud_sentry_wccheckout', opt, setWcCheckout);\n    }\n    function updateProtectComments(opt) {\n        updateOption('we360cloud_sentry_protectcomments', opt, setProtectComments);\n    }\n    function updateExempt(role) {\n        if (!roleLoading) {\n            updateOption('we360cloud_sentry_exempt', role, setExempt);\n        }\n    }\n    function updateExemptUser(user) {\n        if (user !== '') {\n            updateOption('we360cloud_sentry_exempt_user', user, setExemptUsers);\n        }\n    }\n    const init = () => {\n        setLoaded(false);\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'options',\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (false === json || undefined === json.payload) {\n            }\n            else {\n                setProtectForms(json.payload.we360cloud_sentry_protectforms);\n                setProtectLogin(json.payload.we360cloud_sentry_protectlogin);\n                setProtectComments(json.payload.we360cloud_sentry_protectcomments);\n                setRoles(json.payload.wp_roles);\n                setExempt(json.payload.wp_roles_exempt);\n                setUsers(json.payload.wp_users);\n                setExemptUsers(json.payload.we360cloud_sentry_exempt_user);\n                setWcCheckout(json.payload.we360cloud_sentry_wccheckout);\n            }\n            setLoaded(true);\n        });\n    };\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, []);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", onClick: () => onStep('documentation'), children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, onChange: updateProtectForms, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, onChange: updateProtectComments, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, onChange: updateProtectLogin, name: \"admin\", title: \"Protect login\" }), wcCheckout !== undefined && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: wcCheckout, onChange: updateWcCheckout, name: \"wecheckout\", title: \"Protect WooCommerce checkout\" }))] })), !loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5 opacity-80\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, loading: true, onChange: () => null, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, loading: true, onChange: () => null, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, loading: true, onChange: () => null, name: \"admin\", title: \"Protect login\" })] })), testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"hr\", { className: \"mb-4 opacity-50\" }), \"Test mode allows you to observe how the plugin functions in a test environment.\"] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure roles\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Some roles require user validation to setup an account - those checked won\\u2019t be given challenges when logged in. Toggle this option for each role below.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 my-2 px-1 py-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                        (roleLoading && 'opacity-50'), children: roles && roles.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [exempt &&\n                                                exempt.map((role) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [role, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, role))), roles.map((role) => (exempt\n                                                ? !exempt.includes(role)\n                                                : true) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/10 px-1 m-1 rounded-md animate-fade hover:bg-sky-200/50\", children: role }, role)))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex justify-center w-full opacity-50 p-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" }) })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"p-2 bg-black/10 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure users\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"These users will bypass the checks on login.\" }), users && users.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/20 py-2 px-2 my-2 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 mb-2 px-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                                        (loaded && 'opacity-50'), children: exemptUsers &&\n                                                        exemptUsers.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"my-1\", children: exemptUsers.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExemptUser(user), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [user, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, user))) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"p-1 my-1 italic text-gray-300\", children: \"No users are exempt\" })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 w-full\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"select\", { onChange: (e) => setSelectedUser(e.target.value), defaultValue: selectedUser, value: selectedUser, className: \"col-start-1 w-full row-start-1 appearance-none w-full border-y border-l bg-black/10 border-black/10 focus:ring-none rounded-l-md px-2 text-white sm:text-sm/6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { value: \"\", disabled: true, selected: true, children: \"Select a user\" }), users.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { children: user }, user))), \";\"] }), exemptUsers &&\n                                                            exemptUsers.includes(selectedUser) ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none px-2 border-y border-r border-black/10 bg-red-500/40 hover:bg-red-500/60\", children: \"Remove\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none border-y border-r border-black/10 px-2 bg-sky-500/40 hover:bg-sky-500/60\", children: \"Add\" }))] })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex justify-center w-full bg-black/10 py-2 px-2 mt-2 rounded-md\", children: [users, (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please make sure the user-name is not easily guessed and that your password is sufficiently secure; this account will otherwise be unprotected by Sentry.\", ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"This option is provided to facilitate the situation where some accounts are used via wp-cli or similar third-party integration.\" })] })] })] }) })] }));\n}\n\n;// ./src/components/panel/Credits.tsx\n\n\n\n\n\nfunction Credits({ testMode = false }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)();\n    (0,external_React_namespaceObject.useEffect)(() => {\n        setLoaded(false);\n        if (true === testMode) {\n            setBalance(undefined);\n            setLoaded(true);\n            return;\n        }\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'balance',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data || undefined === data.payload) {\n                setBalance(undefined);\n            }\n            else {\n                setBalance(data.payload.balance);\n            }\n            setLoaded(true);\n        });\n        return () => {\n        };\n    }, [testMode]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/10 p-4 rounded-md shadow-inner\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Available credit\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"bg-black/10 p-4 py-8 rounded-md text-center shadow-inner\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"h-8\", children: [!loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin inline\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: loaded, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"hidden\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"order-first text-3xl tracking-tight font-black text\", children: undefined === balance\n                                                ? '-'\n                                                : Math.max(0, Number(balance)).toLocaleString() }) })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"Visit the service site to manage your balance.\" })] })] }) }));\n}\n\n;// ./node_modules/@heroicons/react/20/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon_EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M3 4a2 2 0 0 0-2 2v1.161l8.441 4.221a1.25 1.25 0 0 0 1.118 0L19 7.162V6a2 2 0 0 0-2-2H3Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"m19 8.839-7.77 3.885a2.75 2.75 0 0 1-2.46 0L1 8.839V14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.839Z\"\n  }));\n}\nconst esm_EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon_EnvelopeIcon);\n/* harmony default export */ const solid_esm_EnvelopeIcon = (esm_EnvelopeIcon_ForwardRef);\n;// ./src/components/step/Manage.tsx\n\n\n\n\n\n\n\n\nfunction forHumans(seconds) {\n    const levels = [\n        [Math.floor(seconds / 31536000), 'years'],\n        [Math.floor((seconds % 31536000) / 86400), 'days'],\n        [Math.floor(((seconds % 31536000) % 86400) / 3600), 'hours'],\n        [\n            Math.floor((((seconds % 31536000) % 86400) % 3600) / 60),\n            'minutes',\n        ],\n        [(((seconds % 31536000) % 86400) % 3600) % 60, 'seconds'],\n    ];\n    let returntext = '';\n    for (let i = 0, max = levels.length; i < max; i++) {\n        if (levels[i][0] === 0) {\n            continue;\n        }\n        returntext +=\n            ' ' +\n                levels[i][0] +\n                ' ' +\n                (levels[i][0] === 1\n                    ? levels[i][1].slice(0, -1)\n                    : levels[i][1]);\n    }\n    return returntext.trim();\n}\nfunction Manage({ registrationEmail, registrationName, onStep, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, testMode, logged, expires, }) {\n    const [remainingTime, setRemainingTime] = (0,external_React_namespaceObject.useState)(expires);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        const interval = setInterval(() => {\n            setRemainingTime((prevTime) => prevTime > 0 ? prevTime - 1 : 0);\n        }, 1000);\n        return () => clearInterval(interval);\n    }, []);\n    function resend() {\n        const psdata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'resetemail',\n            name: registrationName,\n            email: registrationEmail,\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(psdata),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (true === json.success) {\n                setRemainingTime(3600);\n            }\n        });\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('documentation'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Documentation\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Manage account\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: 'register', commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                                onCommAdministrative(opt);\n                            }, onCommNews: (opt) => {\n                                onCommNews(opt);\n                            }, onCommDeveloper: (opt) => {\n                                onCommDeveloper(opt);\n                            } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [logged ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Credits, { testMode: testMode }), testMode ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Test mode allows you to observe how the plugin functions in a test environment.\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Credits are charges for successfully solving enhanced challenges or for premium add on services such as mail or text based checks.\" }))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"rounded-md bg-black/10 p-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"flex mb-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(solid_esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 mr-2 size-5 text-white\" }), \"Basic account\"] }), remainingTime > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please check your inbox for instructions on how to finish setting up your Web-Engine cloud account to utilise the premium features - note this email will\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"b\", { children: [\"expire in\", ' ', forHumans(remainingTime)] }), \".\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => location.reload(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Done\" })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Your invitation to complete registration has expired.\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => resend(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Resend email\" })] }))] })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => testMode ? null : onStep('unregister'), className: 'w-1/2 inline-flex mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600 ' +\n                                        (testMode && 'opacity-50'), children: \"Disconnect\" })] })] }) })] }));\n}\n\n;// ./src/images/sentry-word-mark.webp\n/* harmony default export */ const sentry_word_mark = (__webpack_require__.p + \"a78cd683c8225bae89d4852048b57bc6.webp\");\n;// ./src/components/Wordmark.tsx\n\n\nconst Wordmark = () => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-left text-white p-2 inline-block relative\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: \"Web-Engine Sentry logo\", src: sentry_word_mark, style: { paddingRight: '220px', width: '510px' } }) }));\n};\n\n;// ./node_modules/@react-aria/utils/dist/useLayoutEffect.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, external_React_namespaceObject).useLayoutEffect : ()=>{};\n\n\n\n//# sourceMappingURL=useLayoutEffect.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useEffectEvent.mjs\n\n\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n    const ref = (0, external_React_namespaceObject.useRef)(null);\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        ref.current = fn;\n    }, [\n        fn\n    ]);\n    // @ts-ignore\n    return (0, external_React_namespaceObject.useCallback)((...args)=>{\n        const f = ref.current;\n        return f === null || f === void 0 ? void 0 : f(...args);\n    }, []);\n}\n\n\n\n//# sourceMappingURL=useEffectEvent.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isFocusable.mjs\nconst $b4b717babfbb907b$var$focusableElements = [\n    'input:not([disabled]):not([type=hidden])',\n    'select:not([disabled])',\n    'textarea:not([disabled])',\n    'button:not([disabled])',\n    'a[href]',\n    'area[href]',\n    'summary',\n    'iframe',\n    'object',\n    'embed',\n    'audio[controls]',\n    'video[controls]',\n    '[contenteditable]:not([contenteditable^=\"false\"])'\n];\nconst $b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n$b4b717babfbb907b$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst $b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\nfunction $b4b717babfbb907b$export$4c063cf1350e6fed(element) {\n    return element.matches($b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR);\n}\nfunction $b4b717babfbb907b$export$bebd5a1431fec25d(element) {\n    return element.matches($b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR);\n}\n\n\n\n//# sourceMappingURL=isFocusable.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/domHelpers.mjs\nconst $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n    var _el_ownerDocument;\n    return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n    if (el && 'window' in el && el.window === el) return el;\n    const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n    return doc.defaultView || window;\n};\n/**\n * Type guard that checks if a value is a Node. Verifies the presence and type of the nodeType property.\n */ function $431fbd86ca7dc216$var$isNode(value) {\n    return value !== null && typeof value === 'object' && 'nodeType' in value && typeof value.nodeType === 'number';\n}\nfunction $431fbd86ca7dc216$export$af51f0f06c0f328a(node) {\n    return $431fbd86ca7dc216$var$isNode(node) && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;\n}\n\n\n\n//# sourceMappingURL=domHelpers.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n    if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n        preventScroll: true\n    });\n    else {\n        let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n        element.focus();\n        $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n    }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n    if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n        $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n        try {\n            let focusElem = document.createElement('div');\n            focusElem.focus({\n                get preventScroll () {\n                    $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n                    return true;\n                }\n            });\n        } catch  {\n        // Ignore\n        }\n    }\n    return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n    let parent = element.parentNode;\n    let scrollableElements = [];\n    let rootScrollingElement = document.scrollingElement || document.documentElement;\n    while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n        if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n            element: parent,\n            scrollTop: parent.scrollTop,\n            scrollLeft: parent.scrollLeft\n        });\n        parent = parent.parentNode;\n    }\n    if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n        element: rootScrollingElement,\n        scrollTop: rootScrollingElement.scrollTop,\n        scrollLeft: rootScrollingElement.scrollLeft\n    });\n    return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n    for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n        element.scrollTop = scrollTop;\n        element.scrollLeft = scrollLeft;\n    }\n}\n\n\n\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/utils.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n    isDefaultPrevented() {\n        return this.nativeEvent.defaultPrevented;\n    }\n    preventDefault() {\n        this.defaultPrevented = true;\n        this.nativeEvent.preventDefault();\n    }\n    stopPropagation() {\n        this.nativeEvent.stopPropagation();\n        this.isPropagationStopped = ()=>true;\n    }\n    isPropagationStopped() {\n        return false;\n    }\n    persist() {}\n    constructor(type, nativeEvent){\n        this.nativeEvent = nativeEvent;\n        this.target = nativeEvent.target;\n        this.currentTarget = nativeEvent.currentTarget;\n        this.relatedTarget = nativeEvent.relatedTarget;\n        this.bubbles = nativeEvent.bubbles;\n        this.cancelable = nativeEvent.cancelable;\n        this.defaultPrevented = nativeEvent.defaultPrevented;\n        this.eventPhase = nativeEvent.eventPhase;\n        this.isTrusted = nativeEvent.isTrusted;\n        this.timeStamp = nativeEvent.timeStamp;\n        this.type = type;\n    }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n    let stateRef = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        observer: null\n    });\n    // Clean up MutationObserver on unmount. See below.\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        const state = stateRef.current;\n        return ()=>{\n            if (state.observer) {\n                state.observer.disconnect();\n                state.observer = null;\n            }\n        };\n    }, []);\n    let dispatchBlur = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((e)=>{\n        onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n    });\n    // This function is called during a React onFocus event.\n    return (0, external_React_namespaceObject.useCallback)((e)=>{\n        // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n        // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n        // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n        // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n        if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n            stateRef.current.isFocused = true;\n            let target = e.target;\n            let onBlurHandler = (e)=>{\n                stateRef.current.isFocused = false;\n                if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n                dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36('blur', e));\n                // We no longer need the MutationObserver once the target is blurred.\n                if (stateRef.current.observer) {\n                    stateRef.current.observer.disconnect();\n                    stateRef.current.observer = null;\n                }\n            };\n            target.addEventListener('focusout', onBlurHandler, {\n                once: true\n            });\n            stateRef.current.observer = new MutationObserver(()=>{\n                if (stateRef.current.isFocused && target.disabled) {\n                    var _stateRef_current_observer;\n                    (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();\n                    let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n                    target.dispatchEvent(new FocusEvent('blur', {\n                        relatedTarget: relatedTargetEl\n                    }));\n                    target.dispatchEvent(new FocusEvent('focusout', {\n                        bubbles: true,\n                        relatedTarget: relatedTargetEl\n                    }));\n                }\n            });\n            stateRef.current.observer.observe(target, {\n                attributes: true,\n                attributeFilter: [\n                    'disabled'\n                ]\n            });\n        }\n    }, [\n        dispatchBlur\n    ]);\n}\nlet $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\nfunction $8a9cb279dc87e130$export$cabe61c495ee3649(target) {\n    // The browser will focus the nearest focusable ancestor of our target.\n    while(target && !(0, $b4b717babfbb907b$export$4c063cf1350e6fed)(target))target = target.parentElement;\n    let window = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(target);\n    let activeElement = window.document.activeElement;\n    if (!activeElement || activeElement === target) return;\n    $8a9cb279dc87e130$export$fda7da73ab5d4c48 = true;\n    let isRefocusing = false;\n    let onBlur = (e)=>{\n        if (e.target === activeElement || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusOut = (e)=>{\n        if (e.target === activeElement || isRefocusing) {\n            e.stopImmediatePropagation();\n            // If there was no focusable ancestor, we don't expect a focus event.\n            // Re-focus the original active element here.\n            if (!target && !isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    let onFocus = (e)=>{\n        if (e.target === target || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusIn = (e)=>{\n        if (e.target === target || isRefocusing) {\n            e.stopImmediatePropagation();\n            if (!isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    window.addEventListener('blur', onBlur, true);\n    window.addEventListener('focusout', onFocusOut, true);\n    window.addEventListener('focusin', onFocusIn, true);\n    window.addEventListener('focus', onFocus, true);\n    let cleanup = ()=>{\n        cancelAnimationFrame(raf);\n        window.removeEventListener('blur', onBlur, true);\n        window.removeEventListener('focusout', onFocusOut, true);\n        window.removeEventListener('focusin', onFocusIn, true);\n        window.removeEventListener('focus', onFocus, true);\n        $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\n        isRefocusing = false;\n    };\n    let raf = requestAnimationFrame(cleanup);\n    return cleanup;\n}\n\n\n\n//# sourceMappingURL=utils.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/platform.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n    var _window_navigator_userAgentData;\n    if (typeof window === 'undefined' || window.navigator == null) return false;\n    return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n    var _window_navigator_userAgentData;\n    return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n    let res = null;\n    return ()=>{\n        if (res == null) res = fn();\n        return res;\n    };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\n\n//# sourceMappingURL=platform.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isVirtualEvent.mjs\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n    // JAWS/NVDA with Firefox.\n    if (event.mozInputSource === 0 && event.isTrusted) return true;\n    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n    // to detect TalkBack virtual clicks.\n    if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n    return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n    // If the pointer size is zero, then we assume it's from a screen reader.\n    // Android TalkBack double tap will sometimes return a event with width and height of 1\n    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n    // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n    // Talkback double tap from Windows Firefox touch screen press\n    return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\n\n//# sourceMappingURL=isVirtualEvent.module.js.map\n\n;// ./node_modules/@react-aria/ssr/dist/SSRProvider.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $b5e257d569688ac6$var$defaultContext = {\n    prefix: String(Math.round(Math.random() * 10000000000)),\n    current: 0\n};\nconst $b5e257d569688ac6$var$SSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext($b5e257d569688ac6$var$defaultContext);\nconst $b5e257d569688ac6$var$IsSSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext(false);\n// This is only used in React < 18.\nfunction $b5e257d569688ac6$var$LegacySSRProvider(props) {\n    let cur = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let counter = $b5e257d569688ac6$var$useCounter(cur === $b5e257d569688ac6$var$defaultContext);\n    let [isSSR, setIsSSR] = (0, external_React_namespaceObject.useState)(true);\n    let value = (0, external_React_namespaceObject.useMemo)(()=>({\n            // If this is the first SSRProvider, start with an empty string prefix, otherwise\n            // append and increment the counter.\n            prefix: cur === $b5e257d569688ac6$var$defaultContext ? '' : `${cur.prefix}-${counter}`,\n            current: 0\n        }), [\n        cur,\n        counter\n    ]);\n    // If on the client, and the component was initially server rendered,\n    // then schedule a layout effect to update the component after hydration.\n    if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n    // because the condition never changes after mounting.\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    (0, external_React_namespaceObject.useLayoutEffect)(()=>{\n        setIsSSR(false);\n    }, []);\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$SSRContext.Provider, {\n        value: value\n    }, /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$IsSSRContext.Provider, {\n        value: isSSR\n    }, props.children));\n}\nlet $b5e257d569688ac6$var$warnedAboutSSRProvider = false;\nfunction $b5e257d569688ac6$export$9f8ac96af4b1b2ae(props) {\n    if (typeof (0, external_React_namespaceObject)['useId'] === 'function') {\n        if ( true && !$b5e257d569688ac6$var$warnedAboutSSRProvider) {\n            console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n            $b5e257d569688ac6$var$warnedAboutSSRProvider = true;\n        }\n        return /*#__PURE__*/ (0, external_React_namespaceObject).createElement((0, external_React_namespaceObject).Fragment, null, props.children);\n    }\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$LegacySSRProvider, props);\n}\nlet $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $b5e257d569688ac6$var$componentIds = new WeakMap();\nfunction $b5e257d569688ac6$var$useCounter(isDisabled = false) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let ref = (0, external_React_namespaceObject.useRef)(null);\n    // eslint-disable-next-line rulesdir/pure-render\n    if (ref.current === null && !isDisabled) {\n        var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n        // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n        // This means our id counter will be incremented twice instead of once. This is a problem because on the\n        // server, components are only rendered once and so ids generated on the server won't match the client.\n        // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n        // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n        // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n        // To ensure that we only increment the global counter once, we store the starting id for this component in\n        // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n        // Since React runs the second render immediately after the first, this is safe.\n        // @ts-ignore\n        let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, external_React_namespaceObject).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n        if (currentOwner) {\n            let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);\n            if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n            $b5e257d569688ac6$var$componentIds.set(currentOwner, {\n                id: ctx.current,\n                state: currentOwner.memoizedState\n            });\n            else if (currentOwner.memoizedState !== prevComponentValue.state) {\n                // On the second render, the memoizedState gets reset by React.\n                // Reset the counter, and remove from the weak map so we don't\n                // do this for subsequent useId calls.\n                ctx.current = prevComponentValue.id;\n                $b5e257d569688ac6$var$componentIds.delete(currentOwner);\n            }\n        }\n        // eslint-disable-next-line rulesdir/pure-render\n        ref.current = ++ctx.current;\n    }\n    // eslint-disable-next-line rulesdir/pure-render\n    return ref.current;\n}\nfunction $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n    // provide a warning to hint to the developer to add one.\n    if (ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM) console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n    let counter = $b5e257d569688ac6$var$useCounter(!!defaultId);\n    let prefix = ctx === $b5e257d569688ac6$var$defaultContext && \"development\" === 'test' ? 0 : `react-aria${ctx.prefix}`;\n    return defaultId || `${prefix}-${counter}`;\n}\nfunction $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {\n    let id = (0, external_React_namespaceObject).useId();\n    let [didSSR] = (0, external_React_namespaceObject.useState)($b5e257d569688ac6$export$535bd6ca7f90a273());\n    let prefix = didSSR || \"development\" === 'test' ? 'react-aria' : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;\n    return defaultId || `${prefix}-${id}`;\n}\nconst $b5e257d569688ac6$export$619500959fc48b26 = typeof (0, external_React_namespaceObject)['useId'] === 'function' ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;\nfunction $b5e257d569688ac6$var$getSnapshot() {\n    return false;\n}\nfunction $b5e257d569688ac6$var$getServerSnapshot() {\n    return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction $b5e257d569688ac6$var$subscribe(onStoreChange) {\n    // noop\n    return ()=>{};\n}\nfunction $b5e257d569688ac6$export$535bd6ca7f90a273() {\n    // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n    if (typeof (0, external_React_namespaceObject)['useSyncExternalStore'] === 'function') return (0, external_React_namespaceObject)['useSyncExternalStore']($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    return (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$IsSSRContext);\n}\n\n\n\n//# sourceMappingURL=SSRProvider.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusVisible.mjs\n\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n    Tab: true,\n    Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n    for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n    // Control and Shift keys trigger when navigating back to the tab with keyboard.\n    return !(e.metaKey || !(0, $c87311424ea30a05$export$9ac100e40613ea10)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n    if ($507fabe10e71c6fb$var$isValidKey(e)) {\n        $507fabe10e71c6fb$var$currentModality = 'keyboard';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n    $507fabe10e71c6fb$var$currentModality = 'pointer';\n    if (e.type === 'mousedown' || e.type === 'pointerdown') {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n    if ((0, $6a7db85432448f7f$export$60278871457622de)(e)) {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n    }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n    // Firefox fires two extra focus events when the user first clicks into an iframe:\n    // first on the window, then on the document. We ignore these events so they don't\n    // cause keyboard focus rings to appear.\n    if (e.target === window || e.target === document || (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) || !e.isTrusted) return;\n    // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n    // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n    if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n    }\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n    if (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) return;\n    // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n    // for example, since a subsequent focus event won't be fired.\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n    if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element))) return;\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    // Programmatic focus() calls shouldn't affect the current input modality.\n    // However, we need to detect other cases when a focus event occurs without\n    // a preceding user event (e.g. screen reader focus). Overriding the focus\n    // method on HTMLElement.prototype is a bit hacky, but works.\n    let focus = windowObject.HTMLElement.prototype.focus;\n    windowObject.HTMLElement.prototype.focus = function() {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        focus.apply(this, arguments);\n    };\n    documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    // Register focus events on the window so they are sure to happen\n    // before React's event listeners (registered on the document).\n    windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    // Add unmount handler\n    windowObject.addEventListener('beforeunload', ()=>{\n        $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n    }, {\n        once: true\n    });\n    $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n        focus: focus\n    });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n    if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n    windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n    documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    let loadListener;\n    if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n    else {\n        loadListener = ()=>{\n            $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n        };\n        documentObject.addEventListener('DOMContentLoaded', loadListener);\n    }\n    return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n    return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n    return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n    $507fabe10e71c6fb$var$currentModality = modality;\n    $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    let [modality, setModality] = (0, external_React_namespaceObject.useState)($507fabe10e71c6fb$var$currentModality);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = ()=>{\n            setModality($507fabe10e71c6fb$var$currentModality);\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    }, []);\n    return (0, $b5e257d569688ac6$export$535bd6ca7f90a273)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n    'checkbox',\n    'radio',\n    'range',\n    'color',\n    'file',\n    'image',\n    'button',\n    'submit',\n    'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n    let document1 = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e === null || e === void 0 ? void 0 : e.target);\n    const IHTMLInputElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n    const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n    const IHTMLElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n    const IKeyboardEvent = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n    // For keyboard events that occur on a non-input element that will move focus into input element (aka ArrowLeft going from Datepicker button to the main input group)\n    // we need to rely on the user passing isTextInput into here. This way we can skip toggling focus visiblity for said input element\n    isTextInput = isTextInput || document1.activeElement instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(document1.activeElement.type) || document1.activeElement instanceof IHTMLTextAreaElement || document1.activeElement instanceof IHTMLElement && document1.activeElement.isContentEditable;\n    return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n    let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n    $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n        setFocusVisible(isFocusVisible);\n    }, [\n        isTextInput\n    ], {\n        isTextInput: isTextInput\n    });\n    return {\n        isFocusVisible: isFocusVisibleState\n    };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = (modality, e)=>{\n            // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n            if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n            fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, deps);\n}\n\n\n\n//# sourceMappingURL=useFocusVisible.module.js.map\n\n;// ./node_modules/@react-stately/flags/dist/import.mjs\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ let $f4e2df6bd15f8569$var$_tableNestedRows = false;\nlet $f4e2df6bd15f8569$var$_shadowDOM = false;\nfunction $f4e2df6bd15f8569$export$d9d8a0f82de49530() {\n    $f4e2df6bd15f8569$var$_tableNestedRows = true;\n}\nfunction $f4e2df6bd15f8569$export$1b00cb14a96194e6() {\n    return $f4e2df6bd15f8569$var$_tableNestedRows;\n}\nfunction $f4e2df6bd15f8569$export$12b151d9882e9985() {\n    $f4e2df6bd15f8569$var$_shadowDOM = true;\n}\nfunction $f4e2df6bd15f8569$export$98658e8c59125e6a() {\n    return $f4e2df6bd15f8569$var$_shadowDOM;\n}\n\n\n\n//# sourceMappingURL=module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/DOMFunctions.mjs\n\n\n\n// Source: https://github.com/microsoft/tabster/blob/a89fc5d7e332d48f68d03b1ca6e344489d1c3898/src/Shadowdomize/DOMFunctions.ts#L16\n\n\nfunction $d4ee10de306f2510$export$4282f70798064fe0(node, otherNode) {\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return otherNode && node ? node.contains(otherNode) : false;\n    if (!node || !otherNode) return false;\n    let currentNode = otherNode;\n    while(currentNode !== null){\n        if (currentNode === node) return true;\n        if (currentNode.tagName === 'SLOT' && currentNode.assignedSlot) // Element is slotted\n        currentNode = currentNode.assignedSlot.parentNode;\n        else if ((0, $431fbd86ca7dc216$export$af51f0f06c0f328a)(currentNode)) // Element is in shadow root\n        currentNode = currentNode.host;\n        else currentNode = currentNode.parentNode;\n    }\n    return false;\n}\nconst $d4ee10de306f2510$export$cd4e5573fbe2b576 = (doc = document)=>{\n    var _activeElement_shadowRoot;\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return doc.activeElement;\n    let activeElement = doc.activeElement;\n    while(activeElement && 'shadowRoot' in activeElement && ((_activeElement_shadowRoot = activeElement.shadowRoot) === null || _activeElement_shadowRoot === void 0 ? void 0 : _activeElement_shadowRoot.activeElement))activeElement = activeElement.shadowRoot.activeElement;\n    return activeElement;\n};\nfunction $d4ee10de306f2510$export$e58f029f0fbfdb29(event) {\n    if ((0, $f4e2df6bd15f8569$export$98658e8c59125e6a)() && event.target.shadowRoot) {\n        if (event.composedPath) return event.composedPath()[0];\n    }\n    return event.target;\n}\n\n\n\n//# sourceMappingURL=DOMFunctions.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocus.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n    let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n    const onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        if (e.target === e.currentTarget) {\n            if (onBlurProp) onBlurProp(e);\n            if (onFocusChange) onFocusChange(false);\n            return true;\n        }\n    }, [\n        onBlurProp,\n        onFocusChange\n    ]);\n    const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    const onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = ownerDocument ? (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument) : (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)();\n        if (e.target === e.currentTarget && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusProp) onFocusProp(e);\n            if (onFocusChange) onFocusChange(true);\n            onSyntheticFocus(e);\n        }\n    }, [\n        onFocusChange,\n        onFocusProp,\n        onSyntheticFocus\n    ]);\n    return {\n        focusProps: {\n            onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n            onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocus.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useGlobalListeners.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $03deb23ff14920c4$export$4eaf04e54aa8eed6() {\n    let globalListeners = (0, external_React_namespaceObject.useRef)(new Map());\n    let addGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        // Make sure we remove the listener after it is called with the `once` option.\n        let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{\n            globalListeners.current.delete(listener);\n            listener(...args);\n        } : listener;\n        globalListeners.current.set(listener, {\n            type: type,\n            eventTarget: eventTarget,\n            fn: fn,\n            options: options\n        });\n        eventTarget.addEventListener(type, fn, options);\n    }, []);\n    let removeGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        var _globalListeners_current_get;\n        let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;\n        eventTarget.removeEventListener(type, fn, options);\n        globalListeners.current.delete(listener);\n    }, []);\n    let removeAllGlobalListeners = (0, external_React_namespaceObject.useCallback)(()=>{\n        globalListeners.current.forEach((value, key)=>{\n            removeGlobalListener(value.eventTarget, value.type, key, value.options);\n        });\n    }, [\n        removeGlobalListener\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        return removeAllGlobalListeners;\n    }, [\n        removeAllGlobalListeners\n    ]);\n    return {\n        addGlobalListener: addGlobalListener,\n        removeGlobalListener: removeGlobalListener,\n        removeAllGlobalListeners: removeAllGlobalListeners\n    };\n}\n\n\n\n//# sourceMappingURL=useGlobalListeners.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusWithin.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n    let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocusWithin: false\n    });\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n        // when moving focus inside the element. Only trigger if the currentTarget doesn't\n        // include the relatedTarget (where focus is moving).\n        if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n            state.current.isFocusWithin = false;\n            removeAllGlobalListeners();\n            if (onBlurWithin) onBlurWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(false);\n        }\n    }, [\n        onBlurWithin,\n        onFocusWithinChange,\n        state,\n        removeAllGlobalListeners\n    ]);\n    let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    let onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument);\n        if (!state.current.isFocusWithin && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusWithin) onFocusWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(true);\n            state.current.isFocusWithin = true;\n            onSyntheticFocus(e);\n            // Browsers don't fire blur events when elements are removed from the DOM.\n            // However, if a focus event occurs outside the element we're tracking, we\n            // can manually fire onBlur.\n            let currentTarget = e.currentTarget;\n            addGlobalListener(ownerDocument, 'focus', (e)=>{\n                if (state.current.isFocusWithin && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(currentTarget, e.target)) {\n                    let event = new (0, $8a9cb279dc87e130$export$905e7fc544a71f36)('blur', new ownerDocument.defaultView.FocusEvent('blur', {\n                        relatedTarget: e.target\n                    }));\n                    event.target = currentTarget;\n                    event.currentTarget = currentTarget;\n                    onBlur(event);\n                }\n            }, {\n                capture: true\n            });\n        }\n    }, [\n        onFocusWithin,\n        onFocusWithinChange,\n        onSyntheticFocus,\n        addGlobalListener,\n        onBlur\n    ]);\n    if (isDisabled) return {\n        focusWithinProps: {\n            // These cannot be null, that would conflict in mergeProps\n            onFocus: undefined,\n            onBlur: undefined\n        }\n    };\n    return {\n        focusWithinProps: {\n            onFocus: onFocus,\n            onBlur: onBlur\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusWithin.module.js.map\n\n;// ./node_modules/@react-aria/focus/dist/useFocusRing.mjs\n\n\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n    let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        isFocusVisible: autoFocus || (0, $507fabe10e71c6fb$export$b9b3dfddab17db27)()\n    });\n    let [isFocused, setFocused] = (0, external_React_namespaceObject.useState)(false);\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n    let updateState = (0, external_React_namespaceObject.useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n    let onFocusChange = (0, external_React_namespaceObject.useCallback)((isFocused)=>{\n        state.current.isFocused = isFocused;\n        setFocused(isFocused);\n        updateState();\n    }, [\n        updateState\n    ]);\n    (0, $507fabe10e71c6fb$export$ec71b4b83ac08ec3)((isFocusVisible)=>{\n        state.current.isFocusVisible = isFocusVisible;\n        updateState();\n    }, [], {\n        isTextInput: isTextInput\n    });\n    let { focusProps: focusProps } = (0, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6)({\n        isDisabled: within,\n        onFocusChange: onFocusChange\n    });\n    let { focusWithinProps: focusWithinProps } = (0, $9ab94262bd0047c7$export$420e68273165f4ec)({\n        isDisabled: !within,\n        onFocusWithinChange: onFocusChange\n    });\n    return {\n        isFocused: isFocused,\n        isFocusVisible: isFocusVisibleState,\n        focusProps: within ? focusWithinProps : focusProps\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusRing.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useHover.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n    $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n    // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n    // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n    // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n    // the distant future because a user previously touched the element.\n    setTimeout(()=>{\n        $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n    }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n    if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n    if (typeof document === 'undefined') return;\n    if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n    else document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    $6179b936705e76d3$var$hoverCount++;\n    return ()=>{\n        $6179b936705e76d3$var$hoverCount--;\n        if ($6179b936705e76d3$var$hoverCount > 0) return;\n        if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n        else document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n    let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n    let [isHovered, setHovered] = (0, external_React_namespaceObject.useState)(false);\n    let state = (0, external_React_namespaceObject.useRef)({\n        isHovered: false,\n        ignoreEmulatedMouseEvents: false,\n        pointerType: '',\n        target: null\n    }).current;\n    (0, external_React_namespaceObject.useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, external_React_namespaceObject.useMemo)(()=>{\n        let triggerHoverStart = (event, pointerType)=>{\n            state.pointerType = pointerType;\n            if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n            state.isHovered = true;\n            let target = event.currentTarget;\n            state.target = target;\n            // When an element that is hovered over is removed, no pointerleave event is fired by the browser,\n            // even though the originally hovered target may have shrunk in size so it is no longer hovered.\n            // However, a pointerover event will be fired on the new target the mouse is over.\n            // In Chrome this happens immediately. In Safari and Firefox, it happens upon moving the mouse one pixel.\n            addGlobalListener((0, $431fbd86ca7dc216$export$b204af158042fbac)(event.target), 'pointerover', (e)=>{\n                if (state.isHovered && state.target && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(state.target, e.target)) triggerHoverEnd(e, e.pointerType);\n            }, {\n                capture: true\n            });\n            if (onHoverStart) onHoverStart({\n                type: 'hoverstart',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(true);\n            setHovered(true);\n        };\n        let triggerHoverEnd = (event, pointerType)=>{\n            let target = state.target;\n            state.pointerType = '';\n            state.target = null;\n            if (pointerType === 'touch' || !state.isHovered || !target) return;\n            state.isHovered = false;\n            removeAllGlobalListeners();\n            if (onHoverEnd) onHoverEnd({\n                type: 'hoverend',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(false);\n            setHovered(false);\n        };\n        let hoverProps = {};\n        if (typeof PointerEvent !== 'undefined') {\n            hoverProps.onPointerEnter = (e)=>{\n                if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n                triggerHoverStart(e, e.pointerType);\n            };\n            hoverProps.onPointerLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n            };\n        } else {\n            hoverProps.onTouchStart = ()=>{\n                state.ignoreEmulatedMouseEvents = true;\n            };\n            hoverProps.onMouseEnter = (e)=>{\n                if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n                state.ignoreEmulatedMouseEvents = false;\n            };\n            hoverProps.onMouseLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n            };\n        }\n        return {\n            hoverProps: hoverProps,\n            triggerHoverEnd: triggerHoverEnd\n        };\n    }, [\n        onHoverStart,\n        onHoverChange,\n        onHoverEnd,\n        isDisabled,\n        state,\n        addGlobalListener,\n        removeAllGlobalListeners\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        // Call the triggerHoverEnd as soon as isDisabled changes to true\n        // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n        if (isDisabled) triggerHoverEnd({\n            currentTarget: state.target\n        }, state.pointerType);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        isDisabled\n    ]);\n    return {\n        hoverProps: hoverProps,\n        isHovered: isHovered\n    };\n}\n\n\n\n//# sourceMappingURL=useHover.module.js.map\n\n;// ./node_modules/@headlessui/react/dist/utils/owner.js\nfunction owner_u(r){return s.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-active-press.js\nfunction E(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function use_active_press_P(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function use_active_press_w({disabled:e=!1}={}){let t=(0,external_React_namespaceObject.useRef)(null),[n,l]=(0,external_React_namespaceObject.useState)(!1),r=use_disposables_p(),o=use_event_o(()=>{t.current=null,l(!1),r.dispose()}),f=use_event_o(s=>{if(r.dispose(),t.current===null){t.current=s.currentTarget,l(!0);{let i=owner_u(s.currentTarget);r.addEventListener(i,\"pointerup\",o,!1),r.addEventListener(i,\"pointermove\",c=>{if(t.current){let p=E(c);l(use_active_press_P(p,t.current.getBoundingClientRect()))}},!1),r.addEventListener(i,\"pointercancel\",o,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:f,onPointerUp:o,onClick:o}}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js\nfunction use_resolve_button_type_e(t,u){return (0,external_React_namespaceObject.useMemo)(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:\"button\";if(typeof r==\"string\"&&r.toLowerCase()===\"button\"||(u==null?void 0:u.tagName)===\"BUTTON\"&&!u.hasAttribute(\"type\"))return\"button\"},[t.type,t.as,u])}\n\n;// ./node_modules/@headlessui/react/dist/internal/hidden.js\nlet a=\"span\";var hidden_s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(hidden_s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return render_L()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let hidden_f=K(l);\n\n;// ./node_modules/@headlessui/react/dist/internal/focus-sentinel.js\nfunction focus_sentinel_b({onFocus:n}){let[r,o]=(0,external_React_namespaceObject.useState)(!0),u=f();return r?external_React_namespaceObject.createElement(hidden_f,{as:\"button\",type:\"button\",features:hidden_s.Focusable,onFocus:a=>{a.preventDefault();let e,i=50;function t(){if(i--<=0){e&&cancelAnimationFrame(e);return}if(n()){if(cancelAnimationFrame(e),!u.current)return;o(!1);return}e=requestAnimationFrame(t)}e=requestAnimationFrame(t)}}):null}\n\n;// ./node_modules/@headlessui/react/dist/utils/focus-management.js\nlet focus_management_f=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),p=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var focus_management_F=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n[n.AutoFocus=64]=\"AutoFocus\",n))(focus_management_F||{}),focus_management_T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(focus_management_T||{}),y=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(y||{});function focus_management_b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(focus_management_f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var focus_management_h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(focus_management_h||{});function A(e,r=0){var t;return e===((t=owner_u(e))==null?void 0:t.body)?!1:match_u(r,{[0](){return e.matches(focus_management_f)},[1](){let u=e;for(;u!==null;){if(u.matches(focus_management_f))return!0;u=u.parentElement}return!1}})}function G(e){let r=owner_u(e);disposables_o().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var focus_management_H=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(focus_management_H||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function I(e){e==null||e.focus({preventScroll:!0})}let focus_management_w=[\"textarea\",\"input\"].join(\",\");function focus_management_O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,focus_management_w))!=null?t:!1}function focus_management_(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function focus_management_j(e,r){return focus_management_P(focus_management_b(),r,{relativeTo:e})}function focus_management_P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?focus_management_(e):e:r&64?S(e):focus_management_b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&\"current\"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&focus_management_O(i)&&i.select(),2}\n\n;// ./node_modules/@headlessui/react/dist/utils/stable-collection.js\nconst stable_collection_s=external_React_namespaceObject.createContext(null);function stable_collection_a(){return{groups:new Map,get(o,e){var i;let t=this.groups.get(o);t||(t=new Map,this.groups.set(o,t));let n=(i=t.get(e))!=null?i:0;t.set(e,n+1);let r=Array.from(t.keys()).indexOf(e);function u(){let c=t.get(e);c>1?t.set(e,c-1):t.delete(e)}return[r,u]}}}function stable_collection_f({children:o}){let e=external_React_namespaceObject.useRef(stable_collection_a());return external_React_namespaceObject.createElement(stable_collection_s.Provider,{value:e},o)}function stable_collection_C(o){let e=external_React_namespaceObject.useContext(stable_collection_s);if(!e)throw new Error(\"You must wrap your component in a <StableCollection>\");let t=external_React_namespaceObject.useId(),[n,r]=e.current.get(o,t);return external_React_namespaceObject.useEffect(()=>r,[]),n}\n\n;// ./node_modules/@headlessui/react/dist/components/keyboard.js\nvar keyboard_o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(keyboard_o||{});\n\n;// ./node_modules/@headlessui/react/dist/components/tabs/tabs.js\n\"use client\";var tabs_Le=(t=>(t[t.Forwards=0]=\"Forwards\",t[t.Backwards=1]=\"Backwards\",t))(tabs_Le||{}),tabs_e=(l=>(l[l.Less=-1]=\"Less\",l[l.Equal=0]=\"Equal\",l[l.Greater=1]=\"Greater\",l))(tabs_e||{}),tabs_De=(n=>(n[n.SetSelectedIndex=0]=\"SetSelectedIndex\",n[n.RegisterTab=1]=\"RegisterTab\",n[n.UnregisterTab=2]=\"UnregisterTab\",n[n.RegisterPanel=3]=\"RegisterPanel\",n[n.UnregisterPanel=4]=\"UnregisterPanel\",n))(tabs_De||{});let Se={[0](e,r){var d;let t=focus_management_(e.tabs,u=>u.current),l=focus_management_(e.panels,u=>u.current),a=t.filter(u=>{var T;return!((T=u.current)!=null&&T.hasAttribute(\"disabled\"))}),n={...e,tabs:t,panels:l};if(r.index<0||r.index>t.length-1){let u=match_u(Math.sign(r.index-e.selectedIndex),{[-1]:()=>1,[0]:()=>match_u(Math.sign(r.index),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0});if(a.length===0)return n;let T=match_u(u,{[0]:()=>t.indexOf(a[0]),[1]:()=>t.indexOf(a[a.length-1])});return{...n,selectedIndex:T===-1?e.selectedIndex:T}}let s=t.slice(0,r.index),b=[...t.slice(r.index),...s].find(u=>a.includes(u));if(!b)return n;let f=(d=t.indexOf(b))!=null?d:e.selectedIndex;return f===-1&&(f=e.selectedIndex),{...n,selectedIndex:f}},[1](e,r){if(e.tabs.includes(r.tab))return e;let t=e.tabs[e.selectedIndex],l=focus_management_([...e.tabs,r.tab],n=>n.current),a=e.selectedIndex;return e.info.current.isControlled||(a=l.indexOf(t),a===-1&&(a=e.selectedIndex)),{...e,tabs:l,selectedIndex:a}},[2](e,r){return{...e,tabs:e.tabs.filter(t=>t!==r.tab)}},[3](e,r){return e.panels.includes(r.panel)?e:{...e,panels:focus_management_([...e.panels,r.panel],t=>t.current)}},[4](e,r){return{...e,panels:e.panels.filter(t=>t!==r.panel)}}},V=(0,external_React_namespaceObject.createContext)(null);V.displayName=\"TabsDataContext\";function tabs_C(e){let r=(0,external_React_namespaceObject.useContext)(V);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,tabs_C),t}return r}let Q=(0,external_React_namespaceObject.createContext)(null);Q.displayName=\"TabsActionsContext\";function Y(e){let r=(0,external_React_namespaceObject.useContext)(Q);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Y),t}return r}function tabs_Fe(e,r){return match_u(r.type,Se,e,r)}let tabs_Ie=\"div\";function he(e,r){let{defaultIndex:t=0,vertical:l=!1,manual:a=!1,onChange:n,selectedIndex:s=null,...g}=e;const b=l?\"vertical\":\"horizontal\",f=a?\"manual\":\"auto\";let d=s!==null,u=use_latest_value_s({isControlled:d}),T=use_sync_refs_y(r),[p,c]=(0,external_React_namespaceObject.useReducer)(tabs_Fe,{info:u,selectedIndex:s!=null?s:t,tabs:[],panels:[]}),h=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:p.selectedIndex}),[p.selectedIndex]),m=use_latest_value_s(n||(()=>{})),M=use_latest_value_s(p.tabs),S=(0,external_React_namespaceObject.useMemo)(()=>({orientation:b,activation:f,...p}),[b,f,p]),P=use_event_o(i=>(c({type:1,tab:i}),()=>c({type:2,tab:i}))),A=use_event_o(i=>(c({type:3,panel:i}),()=>c({type:4,panel:i}))),E=use_event_o(i=>{_.current!==i&&m.current(i),d||c({type:0,index:i})}),_=use_latest_value_s(d?e.selectedIndex:p.selectedIndex),D=(0,external_React_namespaceObject.useMemo)(()=>({registerTab:P,registerPanel:A,change:E}),[]);use_iso_morphic_effect_n(()=>{c({type:0,index:s!=null?s:t})},[s]),use_iso_morphic_effect_n(()=>{if(_.current===void 0||p.tabs.length<=0)return;let i=focus_management_(p.tabs,R=>R.current);i.some((R,X)=>p.tabs[X]!==R)&&E(i.indexOf(p.tabs[_.current]))});let K={ref:T},J=render_L();return external_React_namespaceObject.createElement(stable_collection_f,null,external_React_namespaceObject.createElement(Q.Provider,{value:D},external_React_namespaceObject.createElement(V.Provider,{value:S},S.tabs.length<=0&&external_React_namespaceObject.createElement(focus_sentinel_b,{onFocus:()=>{var i,G;for(let R of M.current)if(((i=R.current)==null?void 0:i.tabIndex)===0)return(G=R.current)==null||G.focus(),!0;return!1}}),J({ourProps:K,theirProps:g,slot:h,defaultTag:tabs_Ie,name:\"Tabs\"}))))}let ve=\"div\";function Ce(e,r){let{orientation:t,selectedIndex:l}=tabs_C(\"Tab.List\"),a=use_sync_refs_y(r),n=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:l}),[l]),s=e,g={ref:a,role:\"tablist\",\"aria-orientation\":t};return render_L()({ourProps:g,theirProps:s,slot:n,defaultTag:ve,name:\"Tabs.List\"})}let Me=\"button\";function Ge(e,r){var ee,te;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-tab-${t}`,disabled:a=!1,autoFocus:n=!1,...s}=e,{orientation:g,activation:b,selectedIndex:f,tabs:d,panels:u}=tabs_C(\"Tab\"),T=Y(\"Tab\"),p=tabs_C(\"Tab\"),[c,h]=(0,external_React_namespaceObject.useState)(null),m=(0,external_React_namespaceObject.useRef)(null),M=use_sync_refs_y(m,r,h);use_iso_morphic_effect_n(()=>T.registerTab(m),[T,m]);let S=stable_collection_C(\"tabs\"),P=d.indexOf(m);P===-1&&(P=S);let A=P===f,E=use_event_o(o=>{var $;let L=o();if(L===focus_management_T.Success&&b===\"auto\"){let q=($=owner_u(m))==null?void 0:$.activeElement,re=p.tabs.findIndex(ce=>ce.current===q);re!==-1&&T.change(re)}return L}),_=use_event_o(o=>{let L=d.map(q=>q.current).filter(Boolean);if(o.key===keyboard_o.Space||o.key===keyboard_o.Enter){o.preventDefault(),o.stopPropagation(),T.change(P);return}switch(o.key){case keyboard_o.Home:case keyboard_o.PageUp:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.First));case keyboard_o.End:case keyboard_o.PageDown:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.Last))}if(E(()=>match_u(g,{vertical(){return o.key===keyboard_o.ArrowUp?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowDown?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error},horizontal(){return o.key===keyboard_o.ArrowLeft?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowRight?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error}}))===focus_management_T.Success)return o.preventDefault()}),D=(0,external_React_namespaceObject.useRef)(!1),K=use_event_o(()=>{var o;D.current||(D.current=!0,(o=m.current)==null||o.focus({preventScroll:!0}),T.change(P),micro_task_t(()=>{D.current=!1}))}),J=use_event_o(o=>{o.preventDefault()}),{isFocusVisible:i,focusProps:G}=$f7dceffc5ad7768b$export$4e328f61c538687f({autoFocus:n}),{isHovered:R,hoverProps:X}=$6179b936705e76d3$export$ae780daf29e6d456({isDisabled:a}),{pressed:Z,pressProps:ue}=use_active_press_w({disabled:a}),Te=(0,external_React_namespaceObject.useMemo)(()=>({selected:A,hover:R,active:Z,focus:i,autofocus:n,disabled:a}),[A,R,i,Z,n,a]),de=render_({ref:M,onKeyDown:_,onMouseDown:J,onClick:K,id:l,role:\"tab\",type:use_resolve_button_type_e(e,c),\"aria-controls\":(te=(ee=u[P])==null?void 0:ee.current)==null?void 0:te.id,\"aria-selected\":A,tabIndex:A?0:-1,disabled:a||void 0,autoFocus:n},G,X,ue);return render_L()({ourProps:de,theirProps:s,slot:Te,defaultTag:Me,name:\"Tabs.Tab\"})}let Ue=\"div\";function tabs_He(e,r){let{selectedIndex:t}=tabs_C(\"Tab.Panels\"),l=use_sync_refs_y(r),a=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:t}),[t]),n=e,s={ref:l};return render_L()({ourProps:s,theirProps:n,slot:a,defaultTag:Ue,name:\"Tabs.Panels\"})}let we=\"div\",Oe=O.RenderStrategy|O.Static;function Ne(e,r){var A,E,_,D;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-panel-${t}`,tabIndex:a=0,...n}=e,{selectedIndex:s,tabs:g,panels:b}=tabs_C(\"Tab.Panel\"),f=Y(\"Tab.Panel\"),d=(0,external_React_namespaceObject.useRef)(null),u=use_sync_refs_y(d,r);use_iso_morphic_effect_n(()=>f.registerPanel(d),[f,d]);let T=stable_collection_C(\"panels\"),p=b.indexOf(d);p===-1&&(p=T);let c=p===s,{isFocusVisible:h,focusProps:m}=$f7dceffc5ad7768b$export$4e328f61c538687f(),M=(0,external_React_namespaceObject.useMemo)(()=>({selected:c,focus:h}),[c,h]),S=render_({ref:u,id:l,role:\"tabpanel\",\"aria-labelledby\":(E=(A=g[p])==null?void 0:A.current)==null?void 0:E.id,tabIndex:c?a:-1},m),P=render_L();return!c&&((_=n.unmount)==null||_)&&!((D=n.static)!=null&&D)?external_React_namespaceObject.createElement(hidden_f,{\"aria-hidden\":\"true\",...S}):P({ourProps:S,theirProps:n,slot:M,defaultTag:we,features:Oe,visible:c,name:\"Tabs.Panel\"})}let ke=K(Ge),Be=K(he),We=K(Ce),je=K(tabs_He),Ke=K(Ne),Tt=Object.assign(ke,{Group:Be,List:We,Panels:je,Panel:Ke});\n\n;// ./src/images/login-playground.png\n/* harmony default export */ const login_playground = (__webpack_require__.p + \"020bb5f9e6abbf80f12321f0e7771a22.png\");\n;// ./src/images/feature-code.svg\n/* harmony default export */ const feature_code = (__webpack_require__.p + \"a7b10863bbe3fbfc41866841fa68b986.svg\");\n;// ./src/images/feature-users.svg\n/* harmony default export */ const feature_users = (__webpack_require__.p + \"f333a678e8afc5ee2a0d5213d6496862.svg\");\n;// ./src/images/feature-unlock.svg\n/* harmony default export */ const feature_unlock = (__webpack_require__.p + \"511bf24fada771734184ab0703182525.svg\");\n;// ./src/components/step/Features.tsx\n\n\n\nfunction replaceWithBr(str) {\n    return str.replace(/\\n/g, '<br />');\n}\n\n\n\n\nconst tabs = [\n    {\n        name: 'Overview',\n        features: [\n            {\n                name: 'Overview',\n                description: ' Regularly updating your installation, along with its installed plugins and themes, is crucial for maintaining security.\\n\\n' +\n                    'On a standard installation, this plugin provides protection for logins and comments. Since WordPress doesn’t support forms without plugins, we’ve made an effort to support the most widely used form plugins. If your preferred form plugin isn&rsquo;t supported, please contact us, and we&rsquo;ll do our best to add it to the development roadmap.\\n\\n' +\n                    'You can also use this plugin in development mode or in the WordPress playground. A test version of the plugin, complete with examples, has been made available for you to experiment with.',\n                imageSrc: login_playground,\n                imageAlt: 'Isometric preview of the login page.',\n            },\n        ],\n    },\n    {\n        name: 'How does it work?',\n        features: [\n            {\n                name: 'How does it work?',\n                description: 'This plugin works by requesting a captcha to be generated by our cloud service. This captcha is delivered to your site with some encrypted data. When a user attempts to solve the captcha, the service uses this data to validate their response. The plugin then passes or fails the action, thereby protecting your site.',\n                imageSrc: feature_code,\n                imageAlt: 'Isometric screenshot illustraitng a code sample',\n            },\n        ],\n    },\n    {\n        name: 'Authorised roles',\n        features: [\n            {\n                name: 'Authorised roles',\n                description: 'These are the roles that won&rsquo;t be presented a captcha: Administrator and Editor roles are always treated as Authorised roles. However, since WordPress allows for open registration without email authentication, we don&rsquo;t assume that other roles are safe.',\n                imageSrc: feature_users,\n                imageAlt: 'Isometric illustration of users',\n            },\n        ],\n    },\n    {\n        name: 'Protect',\n        features: [\n            {\n                name: 'Protect',\n                description: 'You can configure what you want this plugin to protect, forms, comments and login can be individually managed. Toggling options applies the settings immediately.\\n\\n' +\n                    'We fund the development of this plugin by making a tiny charge for each successful login or submission, we believe is the fairest way to charge as it encourages us to deal with the issue in an efficient way.\\n\\n' +\n                    'New customers get free credits to try out the service and see if it fits their needs.',\n                imageSrc: feature_unlock,\n                imageAlt: 'Isometric illustration of a lock',\n            },\n        ],\n    },\n];\nfunction Features() {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"section\", { \"aria-labelledby\": \"features-heading\", className: \"border-b border-white/20 pb-4 pt-4 text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mx-auto max-w-2xl px-8 lg:max-w-none lg:px-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"max-w-3xl\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl/7\", children: \"Web-Engine Sentry is a plugin that offers protection for comments, administrative login, and form submissions. While it won\\u2019t prevent human submissions, its primary objective is to make it challenging for automated programs to access your site.\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(Be, { className: \"my-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"-mx-4 flex overflow-x-auto sm:mx-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex-auto border-b border-white/20 px-4 sm:px-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(We, { className: \"-mb-px flex space-x-10\", children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Tt, { className: \"whitespace-nowrap border-b-2 border-transparent py-6 text-sm font-medium text-white/90 hover:border-sky-200 hover:text-sky-400 data-[selected]:border-sky-300 data-[selected]:text-sky-400\", children: tab.name }, tab.name))) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(je, { as: external_React_namespaceObject.Fragment, children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Ke, { className: \"space-y-16 pt-10 lg:pt-16\", children: tab.features.map((feature) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex flex-col-reverse lg:grid lg:grid-cols-12 lg:gap-x-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-6 lg:col-span-5 lg:mt-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-lg font-medium text-white\", children: feature.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2 text-sm text-white/90\", dangerouslySetInnerHTML: {\n                                                            __html: replaceWithBr(feature.description),\n                                                        } })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"lg:col-span-7\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: feature.imageAlt, src: feature.imageSrc, className: \"w-full object-cover\" }) })] }, feature.name))) }, tab.name))) })] })] }) }) }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckIcon.js\n\nfunction CheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.916 4.626a.75.75 0 0 1 .208 1.04l-9 13.5a.75.75 0 0 1-1.154.114l-6-6a.75.75 0 0 1 1.06-1.06l5.353 5.353 8.493-12.74a.75.75 0 0 1 1.04-.207Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckIcon);\n/* harmony default export */ const esm_CheckIcon = (CheckIcon_ForwardRef);\n;// ./src/components/step/Documentation.tsx\n\n\n\n\n\n\n\n\n\nfunction Documentation({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [plugins, setPlugins] = (0,external_React_namespaceObject.useState)([]);\n    const [installed, setInstalled] = (0,external_React_namespaceObject.useState)(['']);\n    const [selected, setSelected] = (0,external_React_namespaceObject.useState)('');\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        if (false === loaded) {\n            const data = {\n                action: 'we360cloud_sentry',\n                token: webEngineCaptcha.token,\n                we360cloud_sentry_route: 'plugins',\n            };\n            fetch(webEngineCaptcha.url, {\n                method: 'POST',\n                headers: {\n                    'content-type': 'application/x-www-form-urlencoded',\n                },\n                body: query_string.stringify(data),\n            })\n                .then((response) => response.json())\n                .then((json) => {\n                if (false === json ||\n                    undefined === json.payload ||\n                    undefined === json.payload.we360cloud_sentry_plugins) {\n                }\n                else {\n                    setPlugins(json.payload.we360cloud_sentry_plugins);\n                    setInstalled(json.payload.we360cloud_sentry_installed);\n                    if (json.payload.we360cloud_sentry_installed) {\n                        setSelected(json.payload.we360cloud_sentry_installed[0]);\n                    }\n                }\n                setLoaded(true);\n            });\n        }\n    }, [loaded]);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-5xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-12\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Features, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-4 mt-8 max-w-screen-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-black text-lg\", children: \"Supported forms plugins\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Plugins are listed alphabetically; support for a plugin doesn\\u2019t imply endorsement of its functionality. We recommend choosing a form plugin that best suits your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Captchas are enabled\" }), \" and will appear for all forms. The following supported plugins appear to be installed. Plugin-specific notes are listed below each one.\"] }), loaded && selected === '' ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-bold text-lg border-b border-white/20 pb-4\", children: \"It looks like you don't have any of the supported form plugins installed or activated. See the list of supported plugins below. Contact us if you'd like support for another form plugin.\" }) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex gap-4 border-b border-white/20 pb-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: plugins.map((plugin) => installed.includes(plugin.name) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { className: \"py-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: plugin.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckIcon, { className: \"w-4 h-4 ml-2 align-top inline\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), plugin.notes] }) }, plugin.name))) }) }) })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"You can also toggle the protection of comments and logins. We recommend enabling these options, but you can choose to disable this protection if it doesn\\u2019t suit your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Full list of officially supported plugins -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { className: \"list-disc ml-4\", children: plugins.map((plugin) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { children: plugin.name +\n                                                            ' ' +\n                                                            plugin.version }, plugin.name))) }) })] })] })] })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\n\nfunction CheckCircleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n  }));\n}\nconst CheckCircleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckCircleIcon);\n/* harmony default export */ const esm_CheckCircleIcon = (CheckCircleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\n\nfunction ExclamationTriangleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\"\n  }));\n}\nconst ExclamationTriangleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ExclamationTriangleIcon);\n/* harmony default export */ const esm_ExclamationTriangleIcon = (ExclamationTriangleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/20/solid/esm/XMarkIcon.js\n\nfunction XMarkIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z\"\n  }));\n}\nconst XMarkIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(XMarkIcon);\n/* harmony default export */ const esm_XMarkIcon = (XMarkIcon_ForwardRef);\n;// ./src/components/Alert.tsx\n'use client';\n\n\n\n\n\nfunction Alert({ text, type, title, visible }) {\n    const [show, setShow] = (0,external_React_namespaceObject.useState)(visible);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { \"aria-live\": \"assertive\", className: \"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex w-full flex-col items-center space-y-4 sm:items-end\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { show: show, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black/5 transition data-[closed]:data-[enter]:translate-y-2 data-[enter]:transform data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-100 data-[enter]:ease-out data-[leave]:ease-in data-[closed]:data-[enter]:sm:translate-x-2 data-[closed]:data-[enter]:sm:translate-y-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"p-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"shrink-0\", children: [('' === type ||\n                                                'success' === type) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckCircleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-green-400\" })), 'warning' === type && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ExclamationTriangleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-orange-500-400\" })), ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"ml-3 w-0 flex-1 pt-0.5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sm font-medium text-gray-900\", children: title }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-1 text-sm text-gray-500\", children: text })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-4 flex shrink-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { type: \"button\", onClick: () => {\n                                                setShow(false);\n                                            }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Close\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_XMarkIcon, { \"aria-hidden\": \"true\", className: \"size-5\" })] }) })] }) }) }) }) }) }) }));\n}\n\n;// ./src/components/Window.tsx\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction Window({ registrationStep, onStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, onPin, pin, balance, newUser, notice, testMode, logged, expires, }) {\n    const [showReg, setShowReg] = (0,external_React_namespaceObject.useState)(false);\n    const getPin = () => {\n        onStep('pin');\n    };\n    const retryLoad = () => {\n        onStep('reload');\n    };\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-12\", children: [undefined !== notice && notice.text && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Alert, { text: notice.text, title: notice.title ? notice.title : '', visible: true, type: notice.type ? notice.type : 'warning' })), undefined === registrationStep ||\n                                ('error' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"Unable to connect to cloud service,\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \" please\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => retryLoad(), className: \"underline inline-block\", children: \"try again in a moment\" }), \".\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"If the problem persists the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"a\", { href: \"https://www.web-engineer.co.uk/doc/sentry-wordpress\", target: \"_blank\", className: \"underline\", rel: \"noreferrer\", children: \"support page\" }), ' ', \"provides information, frequently asked questions and access to raise a request.\"] })] }))), 'init' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-zinc-100\", children: \"Loading.\" })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [!showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Intro, { onSetShowReg: setShowReg })), showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: [\"This plugin uses the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"to generate secure challenges, registration is required to use this service\"] }))] })), 'activate' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: \"The Web-Engine cloud service is connected, however sentry isn\\u2019t enabled.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('sentry-setup'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Enable \", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Sentry\" })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('force-disconnect'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Disconnect from all\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Web-Engine cloud\" }), ' ', \"services\"] }) })] })), 'pin' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Check your email to verify your account to validate your account\" })), 'verified' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Account registered\" }))] })] }), 'manage' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Manage, { registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, testMode: testMode, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt, true);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt, true);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt, true);\n                }, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged, expires: expires })), ('register' === registrationStep ||\n                'registering' === registrationStep) &&\n                showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Register, { setShowReg: setShowReg, getPin: getPin, registrationStep: registrationStep, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onRegistrationEmail: (email) => {\n                    onRegistrationEmail(email);\n                }, onRegistrationName: (name) => {\n                    onRegistrationName(name);\n                }, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } })), (registrationStep === 'pin sent' ||\n                registrationStep === 'bad pin' ||\n                registrationStep === 'error pin' ||\n                registrationStep === 'pin check') && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(PinCheck, { registrationStep: registrationStep, registrationEmail: registrationEmail, pin: pin, onPin: (val) => {\n                    onPin(val);\n                }, onStep: (step) => {\n                    onStep(step);\n                } })), registrationStep === 'documentation' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'authenticated' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Options, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'welcome' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-xl text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mb-2\", children: \"Welcome to the Web-Engine cloud captcha service, your site is now connected.\" }), newUser === true ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mb-2\", children: [\"To use the optional\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"premium services\" }), ' ', \"you will need to complete setting up your account and login to the our cloud services, an email has been sent with instructions.\"] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: Number(balance) > 0 && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { children: [' ', \"Your existing balance is\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: undefined === balance\n                                                            ? '-'\n                                                            : Number(balance).toLocaleString() }), ' ', \"credits\"] })) }))] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"w-full mt-4 justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700\", children: \"Get started\" })] })] })), (registrationStep === 'unregister' ||\n                registrationStep === 'force-disconnect') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), registrationStep === 'unregister' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site from the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Sentry\" }), \" service, this site will no longer be protected\"] })), registrationStep === 'force-disconnect' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site entirely from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap\", children: \"Web-Engine Cloud\" }), \".\"] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep(registrationStep === 'unregister'\n                                    ? 'unregister-confirmed'\n                                    : 'force-disconnect-confirmed'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: \"Yes\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"No\" })] })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"text-center text-sm mt-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { href: \"https://www.web-engineer.co.uk/terms-conditions/privacy-policy\", target: \"_blank\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", rel: \"noreferrer\", children: [\"Privacy policy\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { rel: \"noopener noreferrer\", target: \"_blank\", href: \"https://www.we360.cloud\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", children: [\"Web-Engine cloud\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] })] })] }));\n}\n\n;// ./src/components/Loader.tsx\n'use client';\n\n\n\nfunction Loader({ visible, error, onRetry }) {\n    const dataProps = false === visible ? { 'data-closed': true } : {};\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", Object.assign({}, dataProps, { className: \"container min-w-[420px] relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in sm:my-8 max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-10 h-[15rem] w-[15rem] -translate-y-[3.8rem] translate-x-[1rem] opacity-50\", isLoading: true }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 512 512\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-4/4 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 256, cx: 256, cy: 256, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), error && error !== '' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl text-white font-bold\", children: error }), error && error !== '' && onRetry && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => {\n                            onRetry();\n                        }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Retry\" }) }))] }))] })));\n}\n\n;// ./src/components/App.tsx\n\n\n\n\n\n\n\nconst App = () => {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [status, setStatus] = (0,external_React_namespaceObject.useState)('init');\n    const [error, setError] = (0,external_React_namespaceObject.useState)('');\n    const [pin, setPin] = (0,external_React_namespaceObject.useState)('');\n    const [mailStep, setMailStep] = (0,external_React_namespaceObject.useState)(0);\n    const [notice, setNotice] = (0,external_React_namespaceObject.useState)();\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)(0);\n    const [newUser, setNewUser] = (0,external_React_namespaceObject.useState)(false);\n    const [registrationEmail, setRegistrationEmail] = (0,external_React_namespaceObject.useState)('');\n    const [registrationName, setRegistrationName] = (0,external_React_namespaceObject.useState)('');\n    const [testMode, setTestMode] = (0,external_React_namespaceObject.useState)(false);\n    const [logged, setLogged] = (0,external_React_namespaceObject.useState)(false);\n    const [expires, setExpires] = (0,external_React_namespaceObject.useState)(-1);\n    const [commAdministrative, setCommAdministrative] = (0,external_React_namespaceObject.useState)(false);\n    const [commNews, setCommNews] = (0,external_React_namespaceObject.useState)(false);\n    const [commDeveloper, setCommDeveloper] = (0,external_React_namespaceObject.useState)(false);\n    function handleCommAdministrativeChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_administrative', opt, setCommAdministrative);\n        }\n        else {\n            setCommAdministrative(opt);\n        }\n    }\n    function handleCommNewsChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_news', opt, setCommNews);\n        }\n        else {\n            setCommNews(opt);\n        }\n    }\n    function handleCommDeveloperChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_developer', opt, setCommDeveloper);\n        }\n        else {\n            setCommDeveloper(opt);\n        }\n    }\n    function updateComm(option, value, callback) {\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'updatecomm',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.payload.value === true);\n        });\n    }\n    const onStep = (requestedStep) => {\n        switch (requestedStep) {\n            case 'reload':\n                init();\n                break;\n            case 'manage':\n                setStatus('manage');\n                break;\n            case 'documentation':\n                setStatus('documentation');\n                break;\n            case 'authenticated':\n                setStatus('authenticated');\n                break;\n            case 'newly-authenticated':\n                init();\n                setStatus('authenticated');\n                break;\n            case 'force-disconnect':\n                setStatus('force-disconnect');\n                break;\n            case 'force-disconnect-confirmed':\n                const udata2 = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata2),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'unregister':\n                setStatus('unregister');\n                break;\n            case 'unregister-confirmed':\n                setLoaded(false);\n                const udata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'exit-testmode':\n                setLoaded(false);\n                const capdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(capdata),\n                })\n                    .then((response) => response.json())\n                    .then((capjson) => {\n                    setLoaded(true);\n                    if (capjson.code === 200) {\n                        setTestMode(false);\n                        setStatus('register');\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'pin':\n                setStatus('registering');\n                const pdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setStatus('pin sent');\n                    }\n                    else {\n                        setStatus('register');\n                    }\n                });\n                break;\n            case 'bad pin':\n                setStatus('bad pin');\n                break;\n            case 'pin check':\n                setStatus('pin check');\n                const pcdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                    commAdministrative,\n                    commNews,\n                    commDeveloper,\n                    pin,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pcdata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (false === data.success ||\n                        Number(data.code) !== 200) {\n                        setStatus('error pin');\n                    }\n                    else if ('authenticated' === data.status) {\n                        if (false === data.success ||\n                            Number(data.code) !== 200) {\n                            setStatus('error pin');\n                        }\n                        else if ('authenticated' === data.status) {\n                            onStep('sentry-setup');\n                            setBalance(data.balance);\n                            setNewUser(data.newUser);\n                            setLogged(data.logged);\n                        }\n                        else {\n                            setStatus('bad pin');\n                        }\n                    }\n                });\n                break;\n            case 'sentry-setup':\n                setLoaded(false);\n                const setupdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'sentrysetup',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(setupdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setLoaded(true);\n                        setStatus('welcome');\n                        setMailStep(0);\n                    }\n                    else {\n                        setError('Error with sentry setup');\n                        window.setTimeout(() => {\n                            location.reload();\n                        }, 10000);\n                    }\n                });\n                break;\n            case 'password-setup':\n                setMailStep(1);\n                const psdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'resetemail',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(psdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setMailStep(2);\n                    }\n                    else {\n                        setMailStep(3);\n                    }\n                });\n                break;\n            default:\n                setStatus('register');\n        }\n    };\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        setLoaded(false);\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'hello',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data ||\n                (data.code && Number(data.code) !== 200)) {\n                setLoaded(true);\n                setStatus('error');\n            }\n            else {\n                if (data.email) {\n                    setRegistrationEmail(data.email);\n                }\n                if (data.name) {\n                    setRegistrationName(data.name);\n                }\n                setLogged(data.logged);\n                setExpires(data.expires);\n                if (!data.products ||\n                    !data.products.includes('sentry')) {\n                    if (data.status === 'register') {\n                        setLoaded(true);\n                        setStatus(data.status);\n                    }\n                    else if (data.status === 'reset') {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    return;\n                }\n                const rqdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'testmode',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(rqdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    setLoaded(true);\n                    if (json.code === 200) {\n                        setTestMode(json.testmode);\n                        if (false === data.success) {\n                            setStatus('error');\n                        }\n                        else if ('authenticated' !== data.status) {\n                            setStatus(data.status);\n                        }\n                        if (data.notice) {\n                            setNotice(data.notice);\n                        }\n                        else {\n                            setNotice(undefined);\n                        }\n                        setCommAdministrative(data.communications.commAdministrative === 1);\n                        setCommNews(data.communications.commNews === 1);\n                        setCommDeveloper(data.communications.commDeveloper === 1);\n                        setBalance(data.balance);\n                        if (true === json.testmode) {\n                            setStatus('authenticated');\n                        }\n                        else {\n                            setStatus('manage');\n                        }\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n            }\n        });\n    }, []);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto relative top-0 left-0 w-full pr-[20px] pt-[20px]\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"inset-0 z-10 w-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex min-h-full items-end sm:p-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded &&\n                                'documentation' !== status &&\n                                'manage' !== status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"opacity-0 -translate-x-full\", enterTo: \"opacity-100 translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100 translate-x-0\", leaveTo: \"opacity-0 translate-x-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'documentation' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                                    onStep(step);\n                                }, logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'manage' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), true !== loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Loader, { visible: !loaded, error: error }))] }) }) }) }));\n};\n/* harmony default export */ const components_App = (App);\n\n// EXTERNAL MODULE: ./src/components/styles/index.css\nvar components_styles = __webpack_require__(\"./src/components/styles/index.css\");\n;// ./src/components/DocRoot.tsx\n\n\n\n\n\nclass DocRoot extends HTMLElement {\n    constructor() {\n        super();\n        this._uiContainer = document.createElement('div');\n        const styles = new CSSStyleSheet();\n        const shadowRoot = this.attachShadow({ mode: 'closed' });\n        const uiRoot = (0,client.createRoot)(this._uiContainer);\n        shadowRoot.append(this._uiContainer);\n        styles.replace(components_styles[\"default\"].toString());\n        shadowRoot.adoptedStyleSheets = [styles];\n        uiRoot.render((0,external_ReactJSXRuntime_namespaceObject.jsx)(App, {}));\n    }\n}\n\n;// ./src/index.ts\n\ncustomElements.define('wp-we-captcha', DocRoot);\n\n\n//# sourceURL=webpack://we-capture-wordpress/./src/index.ts_+_86_modules?");
     59eval("\n// NAMESPACE OBJECT: ./node_modules/query-string/base.js\nvar base_namespaceObject = {};\n__webpack_require__.r(base_namespaceObject);\n__webpack_require__.d(base_namespaceObject, {\n  exclude: () => (exclude),\n  extract: () => (extract),\n  parse: () => (parse),\n  parseUrl: () => (parseUrl),\n  pick: () => (pick),\n  stringify: () => (stringify),\n  stringifyUrl: () => (stringifyUrl)\n});\n\n;// external \"ReactJSXRuntime\"\nconst external_ReactJSXRuntime_namespaceObject = window[\"ReactJSXRuntime\"];\n// EXTERNAL MODULE: ./node_modules/react-dom/client.js\nvar client = __webpack_require__(\"./node_modules/react-dom/client.js\");\n;// external \"React\"\nconst external_React_namespaceObject = window[\"React\"];\nvar external_React_namespaceObject_0 = /*#__PURE__*/__webpack_require__.t(external_React_namespaceObject, 2);\n;// ./src/components/WebUiLogo.tsx\n\n\nconst WebUiLogo = ({ isLoading, className, }) => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: className, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: ` ${isLoading ? 'animate-[spin_6s_infinite]' : ''}`, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1727.29,904.649L1832.46,1009.82L1743.76,944.049C1711.49,971.549 1670.7,989.341 1625.94,992.893L1609.34,1104.72L1592.74,992.893C1560.53,990.338 1530.39,980.412 1503.99,964.802L1533.56,935.235C1556.31,946.833 1582.07,953.376 1609.34,953.376C1655.35,953.376 1697.04,934.755 1727.29,904.649Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1430.12,681.758L1459.74,711.378C1448.46,733.883 1442.11,759.279 1442.11,786.146C1442.11,831.566 1460.26,872.78 1489.68,902.921L1392.35,1000.25L1451.44,920.562C1423.94,888.294 1406.14,847.511 1402.59,802.747L1290.77,786.146L1402.59,769.546C1405.12,737.729 1414.83,707.925 1430.12,681.758Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1830.85,563.667L1834.6,560.883L1767.24,651.731C1794.74,683.999 1812.53,724.782 1816.09,769.546L1927.91,786.146L1816.09,802.747C1813.58,834.358 1803.97,863.982 1788.86,890.025L1759.21,860.378C1770.32,838.009 1776.57,812.802 1776.57,786.146C1776.57,739.749 1757.63,697.739 1727.08,667.436L1830.85,563.667Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1389.34,564.783L1474.92,628.244C1507.19,600.744 1547.97,582.952 1592.74,579.4L1609.34,467.575L1625.94,579.4C1657.16,581.877 1686.44,591.281 1712.25,606.072L1682.55,635.775C1660.43,624.978 1635.59,618.917 1609.34,618.917C1563.53,618.917 1522,637.374 1491.8,667.242L1389.34,564.783Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) })] }) })] }) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"absolute top-0 right-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1693.55,711.864C1704.35,743.391 1704.53,851.487 1611.63,912.994C1520.21,852.414 1520.39,743.689 1529.72,711.864C1555.26,700.92 1578.06,693.3 1611.63,693.49C1643.32,693.669 1668.78,698.809 1693.55,711.864ZM1543.69,727.081C1543.63,727.108 1543.57,727.135 1543.5,727.162C1535.73,753.659 1535.58,844.181 1611.7,894.619C1688.46,843.796 1688.9,754.764 1680.1,727.766C1686.79,759.409 1681.87,838.522 1611.71,884.976C1542.12,838.863 1537.75,758.469 1543.69,727.081Z\", style: { fill: 'white' } }) }) })] }) }) }) })] }));\n};\n\n;// ./node_modules/@heroicons/react/20/solid/esm/ArrowTopRightOnSquareIcon.js\n\nfunction ArrowTopRightOnSquareIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4.25 5.5a.75.75 0 0 0-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-4a.75.75 0 0 1 1.5 0v4A2.25 2.25 0 0 1 12.75 17h-8.5A2.25 2.25 0 0 1 2 14.75v-8.5A2.25 2.25 0 0 1 4.25 4h5a.75.75 0 0 1 0 1.5h-5Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M6.194 12.753a.75.75 0 0 0 1.06.053L16.5 4.44v2.81a.75.75 0 0 0 1.5 0v-4.5a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0 0 1.5h2.553l-9.056 8.194a.75.75 0 0 0-.053 1.06Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowTopRightOnSquareIcon);\n/* harmony default export */ const esm_ArrowTopRightOnSquareIcon = (ForwardRef);\n;// ./src/components/step/Intro.tsx\n\nfunction Intro({ onSetShowReg }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-2xl text-zinc-100\", children: \"Registration with the service provider is required in order to use this service.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-xl text-zinc-100\", children: [\"This service is designed to enhance the security of form submissions and admin access. It\\u2019s\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"privacy-first\" }), \" plugin, our servers only use data strictly necessary to provide the service and authenticate users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"The\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"basic service is entirely free to use\" }), \"; however, it uses a simple challenge that can be easily solved by bots using AI. Our premium service offers comprehensive protection and is available to all registered users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onSetShowReg(true), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"Begin\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"Note that this plugin should be integrated into your overall security strategy. Documentation and support are provided, but appropriate configuration is necessary. The plugin has been tested on the current versions of the most popular form plugins.\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"It is crucial to keep your installation and its installed plugins and themes up-to-date.\" })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\n\nfunction ArrowPathIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"\n  }));\n}\nconst ArrowPathIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowPathIcon);\n/* harmony default export */ const esm_ArrowPathIcon = (ArrowPathIcon_ForwardRef);\n;// ./src/components/CheckOption.tsx\n\n\n\nfunction CheckOption({ checked, disabled, onChange, name, title, description, loading = false, }) {\n    const toggleCheck = (e) => {\n        const newChecked = !checked;\n        setOurChecked(newChecked);\n        onChange(newChecked);\n        e.preventDefault();\n    };\n    const [ourChecked, setOurChecked] = (0,external_React_namespaceObject.useState)(checked);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex h-6 items-center\", children: [(ourChecked !== checked || loading) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 animate-spin inline\" })), ourChecked === checked && checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" })), ourChecked === checked && !checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-3 text-sm/6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { className: \"text-left\", onClick: toggleCheck, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: name, className: \"font-medium text-white\", children: title }), undefined !== description && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sky-100\", children: description }))] }) })] }));\n}\n\n;// ./src/components/step/Communications.tsx\n\n\nfunction Communications({ registrationStep, onCommAdministrative, onCommNews, onCommDeveloper, commAdministrative, commNews, commDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Communication preferences -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commAdministrative, onChange: onCommAdministrative, name: \"administrative\", title: \"Administrative\", description: \"Adminmistrative notifications\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commNews, onChange: onCommNews, name: \"information\", title: \"News & information\", description: \"Tips and tricks on how to use this and related products\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commDeveloper, onChange: onCommDeveloper, name: \"devel\", title: \"Developer notices\", description: \"Notification of updates to services plugins and API's\" })] })] }));\n}\n\n;// ./src/components/step/Register.tsx\n\n\n\nfunction Register({ setShowReg, getPin, registrationStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Name\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: 'register' !== registrationStep, id: \"name\", name: \"name\", defaultValue: registrationName, onChange: (e) => onRegistrationName(e.target.value), onBlur: (e) => onRegistrationName(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Email address\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: \"email\", name: \"email\", type: \"email\", disabled: 'register' !== registrationStep, defaultValue: registrationEmail, onChange: (e) => onRegistrationEmail(e.target.value), onBlur: (e) => onRegistrationEmail(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: \"We will send a \\u201Cpin\\u201D to this email address which you will need on the next step to complete the registration process - this must be a valid email address to progress.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: registrationStep, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", disabled: 'registering' === registrationStep, className: 'inline-flex w-full justify-center rounded-md bg-sky-700 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm ' +\n                            ('register' === registrationStep\n                                ? 'hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700'\n                                : 'opacity-80'), onClick: () => setShowReg(false), children: \"Back\" }), 'registering' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Registering\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", className: \"inline-flex w-full justify-center rounded-md bg-sky-500 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500\", onClick: () => getPin(), children: \"Register\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", {})] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/InboxArrowDownIcon.js\n\nfunction InboxArrowDownIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 3.75H6.912a2.25 2.25 0 0 0-2.15 1.588L2.35 13.177a2.25 2.25 0 0 0-.1.661V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 0 0-2.15-1.588H15M2.25 13.5h3.86a2.25 2.25 0 0 1 2.012 1.244l.256.512a2.25 2.25 0 0 0 2.013 1.244h3.218a2.25 2.25 0 0 0 2.013-1.244l.256-.512a2.25 2.25 0 0 1 2.013-1.244h3.859M12 3v8.25m0 0-3-3m3 3 3-3\"\n  }));\n}\nconst InboxArrowDownIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(InboxArrowDownIcon);\n/* harmony default export */ const esm_InboxArrowDownIcon = (InboxArrowDownIcon_ForwardRef);\n;// ./src/components/step/PinCheck.tsx\n\n\nfunction PinCheck({ pin, registrationStep, registrationEmail, onPin, onStep, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", method: \"POST\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate inline-flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100 ring-1 ring-inset ring-zinc-300/10\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_InboxArrowDownIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"To\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/40 px-3 py-2 text-sm font-semibold text-white ring-1 ring-inset ring-zinc-300/10\", children: registrationEmail })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"label\", { htmlFor: \"pin\", className: \"mt-6 mb-1 text-pretty text-lg/8 text-zinc-100\", children: [\"An email has been sent from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"containing a pin, please enter below to continue -\"] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-2 inline-flex items-center\", children: [registrationStep !== 'bad pin' &&\n                                registrationStep !== 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: registrationStep === 'pin check', name: \"pin\", type: \"text\", onChange: (e) => onPin(e.target.value), onBlur: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950 ring-white ring-2\" })), (registrationStep === 'bad pin' ||\n                                registrationStep === 'error pin') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { name: \"pin\", type: \"text\", defaultValue: \"\", onFocus: (e) => onPin(e.target.value), onChange: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950/50 ring-white ring-2\" }), registrationStep === 'bad pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"that didn't work, please try again\"] })), registrationStep === 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"unable to connect to verify pin, please try later\"] }))] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-white\", children: \"Please check Junk / Spam folders and the addressed used, the email should arrive within a few minuites and will expire after a short while. You can always refresh and try again if your having trouble.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-2\", children: [registrationStep === 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900/50 px-3 py-2 text-sm font-semibold text-white/50 shadow-sm  focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { disabled: true, className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Verifying\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] }) })] })), registrationStep !== 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-800\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { disabled: pin && pin.length === 6 ? false : true, className: 'inline-flex w-full justify-center rounded-md px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500' +\n                                        (pin && pin.length === 6\n                                            ? ' bg-sky-500 hover:bg-sky-400'\n                                            : ' bg-sky-900'), onClick: () => pin && pin.length === 6\n                                        ? onStep('pin check')\n                                        : onStep('bad pin'), children: \"Verify\" }) })] }))] })] }));\n}\n\n;// ./node_modules/@headlessui/react/dist/utils/micro-task.js\nfunction micro_task_t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}\n\n;// ./node_modules/@headlessui/react/dist/utils/disposables.js\nfunction disposables_o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return micro_task_t(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=disposables_o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-disposables.js\nfunction use_disposables_p(){let[e]=(0,external_React_namespaceObject.useState)(disposables_o);return (0,external_React_namespaceObject.useEffect)(()=>()=>e.dispose(),[e]),e}\n\n;// ./node_modules/@headlessui/react/dist/utils/env.js\nvar i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js\nlet use_iso_morphic_effect_n=(e,t)=>{s.isServer?(0,external_React_namespaceObject.useEffect)(e,t):(0,external_React_namespaceObject.useLayoutEffect)(e,t)};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-latest-value.js\nfunction use_latest_value_s(e){let r=(0,external_React_namespaceObject.useRef)(e);return use_iso_morphic_effect_n(()=>{r.current=e},[e]),r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-event.js\nlet use_event_o=function(t){let e=use_latest_value_s(t);return external_React_namespaceObject.useCallback((...r)=>e.current(...r),[e])};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-is-mounted.js\nfunction f(){let e=(0,external_React_namespaceObject.useRef)(!1);return use_iso_morphic_effect_n(()=>(e.current=!0,()=>{e.current=!1}),[]),e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js\nfunction use_server_handoff_complete_s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\" in external_React_namespaceObject_0?(o=>o.useSyncExternalStore)(external_React_namespaceObject_0)(()=>()=>{},()=>!1,()=>!r):!1}function use_server_handoff_complete_l(){let r=use_server_handoff_complete_s(),[e,n]=external_React_namespaceObject.useState(s.isHandoffComplete);return e&&s.isHandoffComplete===!1&&n(!1),external_React_namespaceObject.useEffect(()=>{e!==!0&&n(!0)},[e]),external_React_namespaceObject.useEffect(()=>s.handoff(),[]),r?!1:e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-sync-refs.js\nlet u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function use_sync_refs_y(...t){let n=(0,external_React_namespaceObject.useRef)(t);(0,external_React_namespaceObject.useEffect)(()=>{n.current=t},[t]);let c=use_event_o(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-flags.js\nfunction c(u=0){let[t,l]=(0,external_React_namespaceObject.useState)(u),g=(0,external_React_namespaceObject.useCallback)(e=>l(e),[t]),s=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a|e),[t]),m=(0,external_React_namespaceObject.useCallback)(e=>(t&e)===e,[t]),n=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a&~e),[l]),F=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-transition.js\nvar use_transition_T,b;typeof process!=\"undefined\"&&typeof globalThis!=\"undefined\"&&typeof Element!=\"undefined\"&&((use_transition_T=process==null?void 0:process.env)==null?void 0:use_transition_T[\"NODE_ENV\"])===\"test\"&&typeof((b=Element==null?void 0:Element.prototype)==null?void 0:b.getAnimations)==\"undefined\"&&(Element.prototype.getAnimations=function(){return console.warn([\"Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\",\"Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\",\"\",\"Example usage:\",\"```js\",\"import { mockAnimationsApi } from 'jsdom-testing-mocks'\",\"mockAnimationsApi()\",\"```\"].join(`\n`)),[]});var L=(r=>(r[r.None=0]=\"None\",r[r.Closed=1]=\"Closed\",r[r.Enter=2]=\"Enter\",r[r.Leave=4]=\"Leave\",r))(L||{});function use_transition_R(t){let n={};for(let e in t)t[e]===!0&&(n[`data-${e}`]=\"\");return n}function x(t,n,e,i){let[r,o]=(0,external_React_namespaceObject.useState)(e),{hasFlag:s,addFlag:a,removeFlag:l}=c(t&&r?3:0),u=(0,external_React_namespaceObject.useRef)(!1),f=(0,external_React_namespaceObject.useRef)(!1),E=use_disposables_p();return use_iso_morphic_effect_n(()=>{var d;if(t){if(e&&o(!0),!n){e&&a(3);return}return(d=i==null?void 0:i.start)==null||d.call(i,e),C(n,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(e?(a(3),l(4)):(a(4),l(2)))},run(){f.current?e?(l(3),a(4)):(l(4),a(3)):e?l(1):a(1)},done(){var p;f.current&&typeof n.getAnimations==\"function\"&&n.getAnimations().length>0||(u.current=!1,l(7),e||o(!1),(p=i==null?void 0:i.end)==null||p.call(i,e))}})}},[t,e,n,E]),t?[r,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(t,{prepare:n,run:e,done:i,inFlight:r}){let o=disposables_o();return j(t,{prepare:n,inFlight:r}),o.nextFrame(()=>{e(),o.requestAnimationFrame(()=>{o.add(M(t,i))})}),o.dispose}function M(t,n){var o,s;let e=disposables_o();if(!t)return e.dispose;let i=!1;e.add(()=>{i=!0});let r=(s=(o=t.getAnimations)==null?void 0:o.call(t).filter(a=>a instanceof CSSTransition))!=null?s:[];return r.length===0?(n(),e.dispose):(Promise.allSettled(r.map(a=>a.finished)).then(()=>{i||n()}),e.dispose)}function j(t,{inFlight:n,prepare:e}){if(n!=null&&n.current){e();return}let i=t.style.transition;t.style.transition=\"none\",e(),t.offsetHeight,t.style.transition=i}\n\n;// ./node_modules/@headlessui/react/dist/internal/open-closed.js\nlet n=(0,external_React_namespaceObject.createContext)(null);n.displayName=\"OpenClosedContext\";var open_closed_i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(open_closed_i||{});function open_closed_u(){return (0,external_React_namespaceObject.useContext)(n)}function open_closed_c({value:o,children:t}){return external_React_namespaceObject.createElement(n.Provider,{value:o},t)}function open_closed_s({children:o}){return external_React_namespaceObject.createElement(n.Provider,{value:null},o)}\n\n;// ./node_modules/@headlessui/react/dist/utils/class-names.js\nfunction class_names_t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}\n\n;// ./node_modules/@headlessui/react/dist/utils/match.js\nfunction match_u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,match_u),t}\n\n;// ./node_modules/@headlessui/react/dist/utils/render.js\nvar O=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(O||{}),render_A=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(render_A||{});function render_L(){let n=U();return (0,external_React_namespaceObject.useCallback)(r=>render_C({mergeRefs:n,...r}),[n])}function render_C({ourProps:n,theirProps:r,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:$;let o=P(r,n);if(t)return F(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return F(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return match_u(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return F(o,e,a,l,i)}function F(n,r={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(n,[\"unmount\",\"static\"]),y=n.ref!==void 0?{[i]:n.ref}:{},f=typeof l==\"function\"?l(r):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(r)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(t===external_React_namespaceObject.Fragment&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!(0,external_React_namespaceObject.isValidElement)(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>`  - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>`  - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...R)=>class_names_t(p(...R),o.className):class_names_t(p,o.className),T=c?{className:c}:{},g=P(f.props,m(h(o,[\"ref\"])));for(let R in u)R in g&&delete u[R];return (0,external_React_namespaceObject.cloneElement)(f,Object.assign({},g,u,y,{ref:s(H(f),y.ref)},T))}return (0,external_React_namespaceObject.createElement)(t,Object.assign({},h(o,[\"ref\"]),t!==external_React_namespaceObject.Fragment&&y,t!==external_React_namespaceObject.Fragment&&u),f)}function U(){let n=(0,external_React_namespaceObject.useRef)([]),r=(0,external_React_namespaceObject.useCallback)(e=>{for(let a of n.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return n.current=e,r}}function $(...n){return n.every(r=>r==null)?void 0:r=>{for(let e of n)e!=null&&(typeof e==\"function\"?e(r):e.current=r)}}function P(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];if(r.disabled||r[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(r,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return r}function render_(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];for(let s in e)Object.assign(r,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return r}function K(n){var r;return Object.assign((0,external_React_namespaceObject.forwardRef)(n),{displayName:(r=n.displayName)!=null?r:n.name})}function m(n){let r=Object.assign({},n);for(let e in r)r[e]===void 0&&delete r[e];return r}function h(n,r=[]){let e=Object.assign({},n);for(let a of r)a in e&&delete e[a];return e}function H(n){return external_React_namespaceObject.version.split(\".\")[0]>=\"19\"?n.props.ref:n.ref}\n\n;// ./node_modules/@headlessui/react/dist/components/transition/transition.js\n\"use client\";function ue(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:de)!==external_React_namespaceObject.Fragment||external_React_namespaceObject.Children.count(e.children)===1}let w=(0,external_React_namespaceObject.createContext)(null);w.displayName=\"TransitionContext\";var _e=(n=>(n.Visible=\"visible\",n.Hidden=\"hidden\",n))(_e||{});function De(){let e=(0,external_React_namespaceObject.useContext)(w);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}function He(){let e=(0,external_React_namespaceObject.useContext)(transition_M);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}let transition_M=(0,external_React_namespaceObject.createContext)(null);transition_M.displayName=\"NestingContext\";function transition_U(e){return\"children\"in e?transition_U(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t===\"visible\").length>0}function Te(e,t){let n=use_latest_value_s(e),l=(0,external_React_namespaceObject.useRef)([]),S=f(),R=use_disposables_p(),d=use_event_o((o,i=render_A.Hidden)=>{let a=l.current.findIndex(({el:s})=>s===o);a!==-1&&(match_u(i,{[render_A.Unmount](){l.current.splice(a,1)},[render_A.Hidden](){l.current[a].state=\"hidden\"}}),R.microTask(()=>{var s;!transition_U(l)&&S.current&&((s=n.current)==null||s.call(n))}))}),y=use_event_o(o=>{let i=l.current.find(({el:a})=>a===o);return i?i.state!==\"visible\"&&(i.state=\"visible\"):l.current.push({el:o,state:\"visible\"}),()=>d(o,render_A.Unmount)}),p=(0,external_React_namespaceObject.useRef)([]),c=(0,external_React_namespaceObject.useRef)(Promise.resolve()),C=(0,external_React_namespaceObject.useRef)({enter:[],leave:[]}),h=use_event_o((o,i,a)=>{p.current.splice(0),t&&(t.chains.current[i]=t.chains.current[i].filter(([s])=>s!==o)),t==null||t.chains.current[i].push([o,new Promise(s=>{p.current.push(s)})]),t==null||t.chains.current[i].push([o,new Promise(s=>{Promise.all(C.current[i].map(([r,f])=>f)).then(()=>s())})]),i===\"enter\"?c.current=c.current.then(()=>t==null?void 0:t.wait.current).then(()=>a(i)):a(i)}),g=use_event_o((o,i,a)=>{Promise.all(C.current[i].splice(0).map(([s,r])=>r)).then(()=>{var s;(s=p.current.shift())==null||s()}).then(()=>a(i))});return (0,external_React_namespaceObject.useMemo)(()=>({children:l,register:y,unregister:d,onStart:h,onStop:g,wait:c,chains:C}),[y,d,l,h,g,C,c])}let de=external_React_namespaceObject.Fragment,fe=O.RenderStrategy;function Ae(e,t){var ee,te;let{transition:n=!0,beforeEnter:l,afterEnter:S,beforeLeave:R,afterLeave:d,enter:y,enterFrom:p,enterTo:c,entered:C,leave:h,leaveFrom:g,leaveTo:o,...i}=e,[a,s]=(0,external_React_namespaceObject.useState)(null),r=(0,external_React_namespaceObject.useRef)(null),f=ue(e),j=use_sync_refs_y(...f?[r,t,s]:t===null?[]:[t]),H=(ee=i.unmount)==null||ee?render_A.Unmount:render_A.Hidden,{show:u,appear:z,initial:K}=De(),[v,G]=(0,external_React_namespaceObject.useState)(u?\"visible\":\"hidden\"),Q=He(),{register:A,unregister:I}=Q;use_iso_morphic_effect_n(()=>A(r),[A,r]),use_iso_morphic_effect_n(()=>{if(H===render_A.Hidden&&r.current){if(u&&v!==\"visible\"){G(\"visible\");return}return match_u(v,{[\"hidden\"]:()=>I(r),[\"visible\"]:()=>A(r)})}},[v,r,A,I,u,H]);let B=use_server_handoff_complete_l();use_iso_morphic_effect_n(()=>{if(f&&B&&v===\"visible\"&&r.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[r,v,B,f]);let ce=K&&!z,Y=z&&u&&K,W=(0,external_React_namespaceObject.useRef)(!1),L=Te(()=>{W.current||(G(\"hidden\"),I(r))},Q),Z=use_event_o(k=>{W.current=!0;let F=k?\"enter\":\"leave\";L.onStart(r,F,_=>{_===\"enter\"?l==null||l():_===\"leave\"&&(R==null||R())})}),$=use_event_o(k=>{let F=k?\"enter\":\"leave\";W.current=!1,L.onStop(r,F,_=>{_===\"enter\"?S==null||S():_===\"leave\"&&(d==null||d())}),F===\"leave\"&&!transition_U(L)&&(G(\"hidden\"),I(r))});(0,external_React_namespaceObject.useEffect)(()=>{f&&n||(Z(u),$(u))},[u,f,n]);let pe=(()=>!(!n||!f||!B||ce))(),[,T]=x(pe,a,u,{start:Z,end:$}),Ce=m({ref:j,className:((te=class_names_t(i.className,Y&&y,Y&&p,T.enter&&y,T.enter&&T.closed&&p,T.enter&&!T.closed&&c,T.leave&&h,T.leave&&!T.closed&&g,T.leave&&T.closed&&o,!T.transition&&u&&C))==null?void 0:te.trim())||void 0,...use_transition_R(T)}),N=0;v===\"visible\"&&(N|=open_closed_i.Open),v===\"hidden\"&&(N|=open_closed_i.Closed),T.enter&&(N|=open_closed_i.Opening),T.leave&&(N|=open_closed_i.Closing);let he=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:L},external_React_namespaceObject.createElement(open_closed_c,{value:N},he({ourProps:Ce,theirProps:i,defaultTag:de,features:fe,visible:v===\"visible\",name:\"Transition.Child\"})))}function Ie(e,t){let{show:n,appear:l=!1,unmount:S=!0,...R}=e,d=(0,external_React_namespaceObject.useRef)(null),y=ue(e),p=use_sync_refs_y(...y?[d,t]:t===null?[]:[t]);use_server_handoff_complete_l();let c=open_closed_u();if(n===void 0&&c!==null&&(n=(c&open_closed_i.Open)===open_closed_i.Open),n===void 0)throw new Error(\"A <Transition /> is used but it is missing a `show={true | false}` prop.\");let[C,h]=(0,external_React_namespaceObject.useState)(n?\"visible\":\"hidden\"),g=Te(()=>{n||h(\"hidden\")}),[o,i]=(0,external_React_namespaceObject.useState)(!0),a=(0,external_React_namespaceObject.useRef)([n]);use_iso_morphic_effect_n(()=>{o!==!1&&a.current[a.current.length-1]!==n&&(a.current.push(n),i(!1))},[a,n]);let s=(0,external_React_namespaceObject.useMemo)(()=>({show:n,appear:l,initial:o}),[n,l,o]);use_iso_morphic_effect_n(()=>{n?h(\"visible\"):!transition_U(g)&&d.current!==null&&h(\"hidden\")},[n,g]);let r={unmount:S},f=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeEnter)==null||u.call(e)}),j=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeLeave)==null||u.call(e)}),H=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:g},external_React_namespaceObject.createElement(w.Provider,{value:s},H({ourProps:{...r,as:external_React_namespaceObject.Fragment,children:external_React_namespaceObject.createElement(me,{ref:p,...r,...R,beforeEnter:f,beforeLeave:j})},theirProps:{},defaultTag:external_React_namespaceObject.Fragment,features:fe,visible:C===\"visible\",name:\"Transition\"})))}function Le(e,t){let n=(0,external_React_namespaceObject.useContext)(w)!==null,l=open_closed_u()!==null;return external_React_namespaceObject.createElement(external_React_namespaceObject.Fragment,null,!n&&l?external_React_namespaceObject.createElement(X,{ref:t,...e}):external_React_namespaceObject.createElement(me,{ref:t,...e}))}let X=K(Ie),me=K(Ae),Fe=K(Le),ze=Object.assign(X,{Child:Fe,Root:X});\n\n;// ./node_modules/decode-uri-component/index.js\nconst token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nfunction decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n\n;// ./node_modules/filter-obj/index.js\nfunction includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n\n;// ./node_modules/split-on-first/index.js\nfunction splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n\n;// ./node_modules/query-string/base.js\n\n\n\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && base_decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? base_decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => base_decode(item, options)) : (value === null ? value : base_decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? base_decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: base_decode(value, options).split(options.arrayFormatSeparator);\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction base_decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeUriComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options, type) {\n\tif (type === 'string' && typeof value === 'string') {\n\t\treturn value;\n\t}\n\n\tif (typeof type === 'function' && typeof value === 'string') {\n\t\treturn type(value);\n\t}\n\n\tif (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (type === 'number' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\treturn value;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\ttypes: Object.create(null),\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : base_decode(value, options));\n\t\tformatter(base_decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null && options.types[key] !== 'string') {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tconst type = options.types[key] ? options.types[key].replace('[]', '') : undefined;\n\t\t\t\tvalue[key2] = parseValue(value2, options, type);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && options.types[key] === 'string') {\n\t\t\treturnValue[key] = Object.values(value).join(options.arrayFormatSeparator);\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options, options.types[key]);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nfunction stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nfunction parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: base_decode(hash, options)} : {}),\n\t};\n}\n\nfunction stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nfunction pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nfunction exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n\n;// ./node_modules/query-string/index.js\n\n\n/* harmony default export */ const query_string = (base_namespaceObject);\n\n;// ./node_modules/@heroicons/react/24/solid/esm/LinkSlashIcon.js\n\nfunction LinkSlashIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.892 4.09a3.75 3.75 0 0 0-5.303 0l-4.5 4.5c-.074.074-.144.15-.21.229l4.965 4.966a3.75 3.75 0 0 0-1.986-4.428.75.75 0 0 1 .646-1.353 5.253 5.253 0 0 1 2.502 6.944l5.515 5.515a.75.75 0 0 1-1.061 1.06l-18-18.001A.75.75 0 0 1 3.521 2.46l5.294 5.295a5.31 5.31 0 0 1 .213-.227l4.5-4.5a5.25 5.25 0 1 1 7.425 7.425l-1.757 1.757a.75.75 0 1 1-1.06-1.06l1.756-1.757a3.75 3.75 0 0 0 0-5.304ZM5.846 11.773a.75.75 0 0 1 0 1.06l-1.757 1.758a3.75 3.75 0 0 0 5.303 5.304l3.129-3.13a.75.75 0 1 1 1.06 1.061l-3.128 3.13a5.25 5.25 0 1 1-7.425-7.426l1.757-1.757a.75.75 0 0 1 1.061 0Zm2.401.26a.75.75 0 0 1 .957.458c.18.512.474.992.885 1.403.31.311.661.555 1.035.733a.75.75 0 0 1-.647 1.354 5.244 5.244 0 0 1-1.449-1.026 5.232 5.232 0 0 1-1.24-1.965.75.75 0 0 1 .46-.957Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst LinkSlashIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(LinkSlashIcon);\n/* harmony default export */ const esm_LinkSlashIcon = (LinkSlashIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/ShieldCheckIcon.js\n\nfunction ShieldCheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M12.516 2.17a.75.75 0 0 0-1.032 0 11.209 11.209 0 0 1-7.877 3.08.75.75 0 0 0-.722.515A12.74 12.74 0 0 0 2.25 9.75c0 5.942 4.064 10.933 9.563 12.348a.749.749 0 0 0 .374 0c5.499-1.415 9.563-6.406 9.563-12.348 0-1.39-.223-2.73-.635-3.985a.75.75 0 0 0-.722-.516l-.143.001c-2.996 0-5.717-1.17-7.734-3.08Zm3.094 8.016a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ShieldCheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ShieldCheckIcon);\n/* harmony default export */ const esm_ShieldCheckIcon = (ShieldCheckIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M1.5 8.67v8.58a3 3 0 0 0 3 3h15a3 3 0 0 0 3-3V8.67l-8.928 5.493a3 3 0 0 1-3.144 0L1.5 8.67Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M22.5 6.908V6.75a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3v.158l9.714 5.978a1.5 1.5 0 0 0 1.572 0L22.5 6.908Z\"\n  }));\n}\nconst EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon);\n/* harmony default export */ const esm_EnvelopeIcon = (EnvelopeIcon_ForwardRef);\n;// ./src/components/step/FinishSetup.tsx\n\n\nfunction FinishSetup({ logged = false }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [logged && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ShieldCheckIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" })), !logged && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"Basic\"] }))] }));\n}\n\n;// ./src/components/panel/User.tsx\n\n\n\nfunction User({ registrationEmail, registrationName, testMode = false, logged, }) {\n    if (testMode) {\n        return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"my-2 p-4 text-md rounded-md bg-black/20 max-w-96\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_LinkSlashIcon, { \"aria-hidden\": \"true\", className: \"size-8 text-white/50 float-right\" }), \"Currently\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"in offline testing mode\" }), \",\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"Your site uses a known local development address\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Only a sample captcha will be shown\" }), \".\"] }) }));\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(FinishSetup, { logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/20 px-2 text-sm font-semibold text-white flex-grow\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"text-white/70 font-thin mr-2\", children: [\"<\", registrationName, \">\"] }), ' ', registrationEmail] }) })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckBadgeIcon.js\n\nfunction CheckBadgeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M8.603 3.799A4.49 4.49 0 0 1 12 2.25c1.357 0 2.573.6 3.397 1.549a4.49 4.49 0 0 1 3.498 1.307 4.491 4.491 0 0 1 1.307 3.497A4.49 4.49 0 0 1 21.75 12a4.49 4.49 0 0 1-1.549 3.397 4.491 4.491 0 0 1-1.307 3.497 4.491 4.491 0 0 1-3.497 1.307A4.49 4.49 0 0 1 12 21.75a4.49 4.49 0 0 1-3.397-1.549 4.49 4.49 0 0 1-3.498-1.306 4.491 4.491 0 0 1-1.307-3.498A4.49 4.49 0 0 1 2.25 12c0-1.357.6-2.573 1.549-3.397a4.49 4.49 0 0 1 1.307-3.497 4.49 4.49 0 0 1 3.497-1.307Zm7.007 6.387a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckBadgeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckBadgeIcon);\n/* harmony default export */ const esm_CheckBadgeIcon = (CheckBadgeIcon_ForwardRef);\n;// ./src/components/step/Options.tsx\n\n\n\n\n\n\n\n\nfunction Options({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [forms, setProtectForms] = (0,external_React_namespaceObject.useState)(true);\n    const [login, setProtectLogin] = (0,external_React_namespaceObject.useState)(true);\n    const [comments, setProtectComments] = (0,external_React_namespaceObject.useState)(true);\n    const [roles, setRoles] = (0,external_React_namespaceObject.useState)([]);\n    const [exempt, setExempt] = (0,external_React_namespaceObject.useState)([]);\n    const [roleLoading, setRoleloading] = (0,external_React_namespaceObject.useState)(false);\n    const [users, setUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [exemptUsers, setExemptUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [selectedUser, setSelectedUser] = (0,external_React_namespaceObject.useState)('');\n    const [wcCheckout, setWcCheckout] = (0,external_React_namespaceObject.useState)(true);\n    const [lostPassword, setLostPassword] = (0,external_React_namespaceObject.useState)(false);\n    function updateOption(option, value, callback) {\n        if (option === 'we360cloud_sentry_exempt') {\n            setRoleloading(true);\n        }\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'update_option',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.applied);\n            if (option === 'we360cloud_sentry_exempt') {\n                setRoleloading(false);\n            }\n        });\n    }\n    function updateProtectForms(opt) {\n        updateOption('we360cloud_sentry_protectforms', opt, setProtectForms);\n    }\n    function updateProtectLogin(opt) {\n        updateOption('we360cloud_sentry_protectlogin', opt, setProtectLogin);\n    }\n    function updateWcCheckout(opt) {\n        updateOption('we360cloud_sentry_wccheckout', opt, setWcCheckout);\n    }\n    function updateLostPassword(opt) {\n        updateOption('we360cloud_sentry_lostpassword', opt, setLostPassword);\n    }\n    function updateProtectComments(opt) {\n        updateOption('we360cloud_sentry_protectcomments', opt, setProtectComments);\n    }\n    function updateExempt(role) {\n        if (!roleLoading) {\n            updateOption('we360cloud_sentry_exempt', role, setExempt);\n        }\n    }\n    function updateExemptUser(user) {\n        if (user !== '') {\n            updateOption('we360cloud_sentry_exempt_user', user, setExemptUsers);\n        }\n    }\n    const init = () => {\n        setLoaded(false);\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'options',\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (false === json || undefined === json.payload) {\n            }\n            else {\n                setProtectForms(json.payload.we360cloud_sentry_protectforms);\n                setProtectLogin(json.payload.we360cloud_sentry_protectlogin);\n                setProtectComments(json.payload.we360cloud_sentry_protectcomments);\n                setRoles(json.payload.wp_roles);\n                setExempt(json.payload.wp_roles_exempt);\n                setUsers(json.payload.wp_users);\n                setExemptUsers(json.payload.we360cloud_sentry_exempt_user);\n                setWcCheckout(json.payload.we360cloud_sentry_wccheckout);\n                setLostPassword(json.payload.we360cloud_sentry_lostpassword);\n            }\n            setLoaded(true);\n        });\n    };\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, []);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", onClick: () => onStep('documentation'), children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, onChange: updateProtectForms, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, onChange: updateProtectComments, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, onChange: updateProtectLogin, name: \"admin\", title: \"Protect login\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: lostPassword, onChange: updateLostPassword, name: \"lostpassword\", title: \"Protect forgot password\" }), wcCheckout !== undefined && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: wcCheckout, onChange: updateWcCheckout, name: \"wecheckout\", title: \"Protect WooCommerce checkout\" }))] })), !loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5 opacity-80\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, loading: true, onChange: () => null, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, loading: true, onChange: () => null, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, loading: true, onChange: () => null, name: \"admin\", title: \"Protect login\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: lostPassword, loading: true, onChange: () => null, name: \"lostpassword\", title: \"Protect forgot password\" })] })), testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"hr\", { className: \"mb-4 opacity-50\" }), \"Test mode allows you to observe how the plugin functions in a test environment.\"] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure roles\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Some roles require user validation to setup an account - those checked won\\u2019t be given challenges when logged in. Toggle this option for each role below.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 my-2 px-1 py-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                        (roleLoading && 'opacity-50'), children: roles && roles.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [exempt &&\n                                                exempt.map((role) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [role, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, role))), roles.map((role) => (exempt\n                                                ? !exempt.includes(role)\n                                                : true) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/10 px-1 m-1 rounded-md animate-fade hover:bg-sky-200/50\", children: role }, role)))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex justify-center w-full opacity-50 p-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" }) })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"p-2 bg-black/10 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure users\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"These users will bypass the checks on login.\" }), users && users.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/20 py-2 px-2 my-2 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 mb-2 px-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                                        (loaded && 'opacity-50'), children: exemptUsers &&\n                                                        exemptUsers.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"my-1\", children: exemptUsers.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExemptUser(user), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [user, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, user))) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"p-1 my-1 italic text-gray-300\", children: \"No users are exempt\" })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 w-full\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"select\", { onChange: (e) => setSelectedUser(e.target.value), defaultValue: selectedUser, value: selectedUser, className: \"col-start-1 w-full row-start-1 appearance-none w-full border-y border-l bg-black/10 border-black/10 focus:ring-none rounded-l-md px-2 text-white sm:text-sm/6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { value: \"\", disabled: true, selected: true, children: \"Select a user\" }), users.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { children: user }, user))), \";\"] }), exemptUsers &&\n                                                            exemptUsers.includes(selectedUser) ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none px-2 border-y border-r border-black/10 bg-red-500/40 hover:bg-red-500/60\", children: \"Remove\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none border-y border-r border-black/10 px-2 bg-sky-500/40 hover:bg-sky-500/60\", children: \"Add\" }))] })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex justify-center w-full bg-black/10 py-2 px-2 mt-2 rounded-md\", children: [users, (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please make sure the user-name is not easily guessed and that your password is sufficiently secure; this account will otherwise be unprotected by Sentry.\", ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"This option is provided to facilitate the situation where some accounts are used via wp-cli or similar third-party integration.\" })] })] })] }) })] }));\n}\n\n;// ./src/components/panel/Credits.tsx\n\n\n\n\n\nfunction Credits({ testMode = false }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)();\n    (0,external_React_namespaceObject.useEffect)(() => {\n        setLoaded(false);\n        if (true === testMode) {\n            setBalance(undefined);\n            setLoaded(true);\n            return;\n        }\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'balance',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data || undefined === data.payload) {\n                setBalance(undefined);\n            }\n            else {\n                setBalance(data.payload.balance);\n            }\n            setLoaded(true);\n        });\n        return () => {\n        };\n    }, [testMode]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/10 p-4 rounded-md shadow-inner\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Available credit\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"bg-black/10 p-4 py-8 rounded-md text-center shadow-inner\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"h-8\", children: [!loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin inline\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: loaded, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"hidden\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"order-first text-3xl tracking-tight font-black text\", children: undefined === balance\n                                                ? '-'\n                                                : Math.max(0, Number(balance)).toLocaleString() }) })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"Visit the service site to manage your balance.\" })] })] }) }));\n}\n\n;// ./node_modules/@heroicons/react/20/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon_EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M3 4a2 2 0 0 0-2 2v1.161l8.441 4.221a1.25 1.25 0 0 0 1.118 0L19 7.162V6a2 2 0 0 0-2-2H3Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"m19 8.839-7.77 3.885a2.75 2.75 0 0 1-2.46 0L1 8.839V14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.839Z\"\n  }));\n}\nconst esm_EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon_EnvelopeIcon);\n/* harmony default export */ const solid_esm_EnvelopeIcon = (esm_EnvelopeIcon_ForwardRef);\n;// ./src/components/step/Manage.tsx\n\n\n\n\n\n\n\n\nfunction forHumans(seconds) {\n    const levels = [\n        [Math.floor(seconds / 31536000), 'years'],\n        [Math.floor((seconds % 31536000) / 86400), 'days'],\n        [Math.floor(((seconds % 31536000) % 86400) / 3600), 'hours'],\n        [\n            Math.floor((((seconds % 31536000) % 86400) % 3600) / 60),\n            'minutes',\n        ],\n        [(((seconds % 31536000) % 86400) % 3600) % 60, 'seconds'],\n    ];\n    let returntext = '';\n    for (let i = 0, max = levels.length; i < max; i++) {\n        if (levels[i][0] === 0) {\n            continue;\n        }\n        returntext +=\n            ' ' +\n                levels[i][0] +\n                ' ' +\n                (levels[i][0] === 1\n                    ? levels[i][1].slice(0, -1)\n                    : levels[i][1]);\n    }\n    return returntext.trim();\n}\nfunction Manage({ registrationEmail, registrationName, onStep, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, testMode, logged, expires, }) {\n    const [remainingTime, setRemainingTime] = (0,external_React_namespaceObject.useState)(expires);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        const interval = setInterval(() => {\n            setRemainingTime((prevTime) => prevTime > 0 ? prevTime - 1 : 0);\n        }, 1000);\n        return () => clearInterval(interval);\n    }, []);\n    function resend() {\n        const psdata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'resetemail',\n            name: registrationName,\n            email: registrationEmail,\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(psdata),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (true === json.success) {\n                setRemainingTime(3600);\n            }\n        });\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('documentation'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Documentation\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Manage account\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: 'register', commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                                onCommAdministrative(opt);\n                            }, onCommNews: (opt) => {\n                                onCommNews(opt);\n                            }, onCommDeveloper: (opt) => {\n                                onCommDeveloper(opt);\n                            } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [logged ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Credits, { testMode: testMode }), testMode ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Test mode allows you to observe how the plugin functions in a test environment.\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Credits are charges for successfully solving enhanced challenges or for premium add on services such as mail or text based checks.\" }))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"rounded-md bg-black/10 p-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"flex mb-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(solid_esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 mr-2 size-5 text-white\" }), \"Basic account\"] }), remainingTime > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please check your inbox for instructions on how to finish setting up your Web-Engine cloud account to utilise the premium features - note this email will\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"b\", { children: [\"expire in\", ' ', forHumans(remainingTime)] }), \".\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => location.reload(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Done\" })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Your invitation to complete registration has expired.\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => resend(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Resend email\" })] }))] })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => testMode ? null : onStep('unregister'), className: 'w-1/2 inline-flex mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600 ' +\n                                        (testMode && 'opacity-50'), children: \"Disconnect\" })] })] }) })] }));\n}\n\n;// ./src/images/sentry-word-mark.webp\n/* harmony default export */ const sentry_word_mark = (__webpack_require__.p + \"a78cd683c8225bae89d4852048b57bc6.webp\");\n;// ./src/components/Wordmark.tsx\n\n\nconst Wordmark = () => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-left text-white p-2 inline-block relative\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: \"Web-Engine Sentry logo\", src: sentry_word_mark, style: { paddingRight: '220px', width: '510px' } }) }));\n};\n\n;// ./node_modules/@react-aria/utils/dist/useLayoutEffect.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, external_React_namespaceObject).useLayoutEffect : ()=>{};\n\n\n\n//# sourceMappingURL=useLayoutEffect.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useEffectEvent.mjs\n\n\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n    const ref = (0, external_React_namespaceObject.useRef)(null);\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        ref.current = fn;\n    }, [\n        fn\n    ]);\n    // @ts-ignore\n    return (0, external_React_namespaceObject.useCallback)((...args)=>{\n        const f = ref.current;\n        return f === null || f === void 0 ? void 0 : f(...args);\n    }, []);\n}\n\n\n\n//# sourceMappingURL=useEffectEvent.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isFocusable.mjs\nconst $b4b717babfbb907b$var$focusableElements = [\n    'input:not([disabled]):not([type=hidden])',\n    'select:not([disabled])',\n    'textarea:not([disabled])',\n    'button:not([disabled])',\n    'a[href]',\n    'area[href]',\n    'summary',\n    'iframe',\n    'object',\n    'embed',\n    'audio[controls]',\n    'video[controls]',\n    '[contenteditable]:not([contenteditable^=\"false\"])'\n];\nconst $b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n$b4b717babfbb907b$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst $b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\nfunction $b4b717babfbb907b$export$4c063cf1350e6fed(element) {\n    return element.matches($b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR);\n}\nfunction $b4b717babfbb907b$export$bebd5a1431fec25d(element) {\n    return element.matches($b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR);\n}\n\n\n\n//# sourceMappingURL=isFocusable.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/domHelpers.mjs\nconst $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n    var _el_ownerDocument;\n    return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n    if (el && 'window' in el && el.window === el) return el;\n    const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n    return doc.defaultView || window;\n};\n/**\n * Type guard that checks if a value is a Node. Verifies the presence and type of the nodeType property.\n */ function $431fbd86ca7dc216$var$isNode(value) {\n    return value !== null && typeof value === 'object' && 'nodeType' in value && typeof value.nodeType === 'number';\n}\nfunction $431fbd86ca7dc216$export$af51f0f06c0f328a(node) {\n    return $431fbd86ca7dc216$var$isNode(node) && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;\n}\n\n\n\n//# sourceMappingURL=domHelpers.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n    if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n        preventScroll: true\n    });\n    else {\n        let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n        element.focus();\n        $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n    }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n    if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n        $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n        try {\n            let focusElem = document.createElement('div');\n            focusElem.focus({\n                get preventScroll () {\n                    $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n                    return true;\n                }\n            });\n        } catch  {\n        // Ignore\n        }\n    }\n    return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n    let parent = element.parentNode;\n    let scrollableElements = [];\n    let rootScrollingElement = document.scrollingElement || document.documentElement;\n    while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n        if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n            element: parent,\n            scrollTop: parent.scrollTop,\n            scrollLeft: parent.scrollLeft\n        });\n        parent = parent.parentNode;\n    }\n    if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n        element: rootScrollingElement,\n        scrollTop: rootScrollingElement.scrollTop,\n        scrollLeft: rootScrollingElement.scrollLeft\n    });\n    return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n    for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n        element.scrollTop = scrollTop;\n        element.scrollLeft = scrollLeft;\n    }\n}\n\n\n\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/utils.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n    isDefaultPrevented() {\n        return this.nativeEvent.defaultPrevented;\n    }\n    preventDefault() {\n        this.defaultPrevented = true;\n        this.nativeEvent.preventDefault();\n    }\n    stopPropagation() {\n        this.nativeEvent.stopPropagation();\n        this.isPropagationStopped = ()=>true;\n    }\n    isPropagationStopped() {\n        return false;\n    }\n    persist() {}\n    constructor(type, nativeEvent){\n        this.nativeEvent = nativeEvent;\n        this.target = nativeEvent.target;\n        this.currentTarget = nativeEvent.currentTarget;\n        this.relatedTarget = nativeEvent.relatedTarget;\n        this.bubbles = nativeEvent.bubbles;\n        this.cancelable = nativeEvent.cancelable;\n        this.defaultPrevented = nativeEvent.defaultPrevented;\n        this.eventPhase = nativeEvent.eventPhase;\n        this.isTrusted = nativeEvent.isTrusted;\n        this.timeStamp = nativeEvent.timeStamp;\n        this.type = type;\n    }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n    let stateRef = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        observer: null\n    });\n    // Clean up MutationObserver on unmount. See below.\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        const state = stateRef.current;\n        return ()=>{\n            if (state.observer) {\n                state.observer.disconnect();\n                state.observer = null;\n            }\n        };\n    }, []);\n    let dispatchBlur = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((e)=>{\n        onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n    });\n    // This function is called during a React onFocus event.\n    return (0, external_React_namespaceObject.useCallback)((e)=>{\n        // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n        // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n        // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n        // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n        if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n            stateRef.current.isFocused = true;\n            let target = e.target;\n            let onBlurHandler = (e)=>{\n                stateRef.current.isFocused = false;\n                if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n                dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36('blur', e));\n                // We no longer need the MutationObserver once the target is blurred.\n                if (stateRef.current.observer) {\n                    stateRef.current.observer.disconnect();\n                    stateRef.current.observer = null;\n                }\n            };\n            target.addEventListener('focusout', onBlurHandler, {\n                once: true\n            });\n            stateRef.current.observer = new MutationObserver(()=>{\n                if (stateRef.current.isFocused && target.disabled) {\n                    var _stateRef_current_observer;\n                    (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();\n                    let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n                    target.dispatchEvent(new FocusEvent('blur', {\n                        relatedTarget: relatedTargetEl\n                    }));\n                    target.dispatchEvent(new FocusEvent('focusout', {\n                        bubbles: true,\n                        relatedTarget: relatedTargetEl\n                    }));\n                }\n            });\n            stateRef.current.observer.observe(target, {\n                attributes: true,\n                attributeFilter: [\n                    'disabled'\n                ]\n            });\n        }\n    }, [\n        dispatchBlur\n    ]);\n}\nlet $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\nfunction $8a9cb279dc87e130$export$cabe61c495ee3649(target) {\n    // The browser will focus the nearest focusable ancestor of our target.\n    while(target && !(0, $b4b717babfbb907b$export$4c063cf1350e6fed)(target))target = target.parentElement;\n    let window = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(target);\n    let activeElement = window.document.activeElement;\n    if (!activeElement || activeElement === target) return;\n    $8a9cb279dc87e130$export$fda7da73ab5d4c48 = true;\n    let isRefocusing = false;\n    let onBlur = (e)=>{\n        if (e.target === activeElement || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusOut = (e)=>{\n        if (e.target === activeElement || isRefocusing) {\n            e.stopImmediatePropagation();\n            // If there was no focusable ancestor, we don't expect a focus event.\n            // Re-focus the original active element here.\n            if (!target && !isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    let onFocus = (e)=>{\n        if (e.target === target || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusIn = (e)=>{\n        if (e.target === target || isRefocusing) {\n            e.stopImmediatePropagation();\n            if (!isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    window.addEventListener('blur', onBlur, true);\n    window.addEventListener('focusout', onFocusOut, true);\n    window.addEventListener('focusin', onFocusIn, true);\n    window.addEventListener('focus', onFocus, true);\n    let cleanup = ()=>{\n        cancelAnimationFrame(raf);\n        window.removeEventListener('blur', onBlur, true);\n        window.removeEventListener('focusout', onFocusOut, true);\n        window.removeEventListener('focusin', onFocusIn, true);\n        window.removeEventListener('focus', onFocus, true);\n        $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\n        isRefocusing = false;\n    };\n    let raf = requestAnimationFrame(cleanup);\n    return cleanup;\n}\n\n\n\n//# sourceMappingURL=utils.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/platform.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n    var _window_navigator_userAgentData;\n    if (typeof window === 'undefined' || window.navigator == null) return false;\n    return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n    var _window_navigator_userAgentData;\n    return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n    let res = null;\n    return ()=>{\n        if (res == null) res = fn();\n        return res;\n    };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\n\n//# sourceMappingURL=platform.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isVirtualEvent.mjs\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n    // JAWS/NVDA with Firefox.\n    if (event.mozInputSource === 0 && event.isTrusted) return true;\n    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n    // to detect TalkBack virtual clicks.\n    if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n    return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n    // If the pointer size is zero, then we assume it's from a screen reader.\n    // Android TalkBack double tap will sometimes return a event with width and height of 1\n    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n    // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n    // Talkback double tap from Windows Firefox touch screen press\n    return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\n\n//# sourceMappingURL=isVirtualEvent.module.js.map\n\n;// ./node_modules/@react-aria/ssr/dist/SSRProvider.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $b5e257d569688ac6$var$defaultContext = {\n    prefix: String(Math.round(Math.random() * 10000000000)),\n    current: 0\n};\nconst $b5e257d569688ac6$var$SSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext($b5e257d569688ac6$var$defaultContext);\nconst $b5e257d569688ac6$var$IsSSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext(false);\n// This is only used in React < 18.\nfunction $b5e257d569688ac6$var$LegacySSRProvider(props) {\n    let cur = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let counter = $b5e257d569688ac6$var$useCounter(cur === $b5e257d569688ac6$var$defaultContext);\n    let [isSSR, setIsSSR] = (0, external_React_namespaceObject.useState)(true);\n    let value = (0, external_React_namespaceObject.useMemo)(()=>({\n            // If this is the first SSRProvider, start with an empty string prefix, otherwise\n            // append and increment the counter.\n            prefix: cur === $b5e257d569688ac6$var$defaultContext ? '' : `${cur.prefix}-${counter}`,\n            current: 0\n        }), [\n        cur,\n        counter\n    ]);\n    // If on the client, and the component was initially server rendered,\n    // then schedule a layout effect to update the component after hydration.\n    if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n    // because the condition never changes after mounting.\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    (0, external_React_namespaceObject.useLayoutEffect)(()=>{\n        setIsSSR(false);\n    }, []);\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$SSRContext.Provider, {\n        value: value\n    }, /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$IsSSRContext.Provider, {\n        value: isSSR\n    }, props.children));\n}\nlet $b5e257d569688ac6$var$warnedAboutSSRProvider = false;\nfunction $b5e257d569688ac6$export$9f8ac96af4b1b2ae(props) {\n    if (typeof (0, external_React_namespaceObject)['useId'] === 'function') {\n        if ( true && !$b5e257d569688ac6$var$warnedAboutSSRProvider) {\n            console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n            $b5e257d569688ac6$var$warnedAboutSSRProvider = true;\n        }\n        return /*#__PURE__*/ (0, external_React_namespaceObject).createElement((0, external_React_namespaceObject).Fragment, null, props.children);\n    }\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$LegacySSRProvider, props);\n}\nlet $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $b5e257d569688ac6$var$componentIds = new WeakMap();\nfunction $b5e257d569688ac6$var$useCounter(isDisabled = false) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let ref = (0, external_React_namespaceObject.useRef)(null);\n    // eslint-disable-next-line rulesdir/pure-render\n    if (ref.current === null && !isDisabled) {\n        var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n        // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n        // This means our id counter will be incremented twice instead of once. This is a problem because on the\n        // server, components are only rendered once and so ids generated on the server won't match the client.\n        // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n        // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n        // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n        // To ensure that we only increment the global counter once, we store the starting id for this component in\n        // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n        // Since React runs the second render immediately after the first, this is safe.\n        // @ts-ignore\n        let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, external_React_namespaceObject).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n        if (currentOwner) {\n            let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);\n            if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n            $b5e257d569688ac6$var$componentIds.set(currentOwner, {\n                id: ctx.current,\n                state: currentOwner.memoizedState\n            });\n            else if (currentOwner.memoizedState !== prevComponentValue.state) {\n                // On the second render, the memoizedState gets reset by React.\n                // Reset the counter, and remove from the weak map so we don't\n                // do this for subsequent useId calls.\n                ctx.current = prevComponentValue.id;\n                $b5e257d569688ac6$var$componentIds.delete(currentOwner);\n            }\n        }\n        // eslint-disable-next-line rulesdir/pure-render\n        ref.current = ++ctx.current;\n    }\n    // eslint-disable-next-line rulesdir/pure-render\n    return ref.current;\n}\nfunction $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n    // provide a warning to hint to the developer to add one.\n    if (ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM) console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n    let counter = $b5e257d569688ac6$var$useCounter(!!defaultId);\n    let prefix = ctx === $b5e257d569688ac6$var$defaultContext && \"development\" === 'test' ? 0 : `react-aria${ctx.prefix}`;\n    return defaultId || `${prefix}-${counter}`;\n}\nfunction $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {\n    let id = (0, external_React_namespaceObject).useId();\n    let [didSSR] = (0, external_React_namespaceObject.useState)($b5e257d569688ac6$export$535bd6ca7f90a273());\n    let prefix = didSSR || \"development\" === 'test' ? 'react-aria' : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;\n    return defaultId || `${prefix}-${id}`;\n}\nconst $b5e257d569688ac6$export$619500959fc48b26 = typeof (0, external_React_namespaceObject)['useId'] === 'function' ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;\nfunction $b5e257d569688ac6$var$getSnapshot() {\n    return false;\n}\nfunction $b5e257d569688ac6$var$getServerSnapshot() {\n    return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction $b5e257d569688ac6$var$subscribe(onStoreChange) {\n    // noop\n    return ()=>{};\n}\nfunction $b5e257d569688ac6$export$535bd6ca7f90a273() {\n    // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n    if (typeof (0, external_React_namespaceObject)['useSyncExternalStore'] === 'function') return (0, external_React_namespaceObject)['useSyncExternalStore']($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    return (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$IsSSRContext);\n}\n\n\n\n//# sourceMappingURL=SSRProvider.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusVisible.mjs\n\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n    Tab: true,\n    Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n    for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n    // Control and Shift keys trigger when navigating back to the tab with keyboard.\n    return !(e.metaKey || !(0, $c87311424ea30a05$export$9ac100e40613ea10)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n    if ($507fabe10e71c6fb$var$isValidKey(e)) {\n        $507fabe10e71c6fb$var$currentModality = 'keyboard';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n    $507fabe10e71c6fb$var$currentModality = 'pointer';\n    if (e.type === 'mousedown' || e.type === 'pointerdown') {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n    if ((0, $6a7db85432448f7f$export$60278871457622de)(e)) {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n    }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n    // Firefox fires two extra focus events when the user first clicks into an iframe:\n    // first on the window, then on the document. We ignore these events so they don't\n    // cause keyboard focus rings to appear.\n    if (e.target === window || e.target === document || (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) || !e.isTrusted) return;\n    // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n    // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n    if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n    }\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n    if (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) return;\n    // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n    // for example, since a subsequent focus event won't be fired.\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n    if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element))) return;\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    // Programmatic focus() calls shouldn't affect the current input modality.\n    // However, we need to detect other cases when a focus event occurs without\n    // a preceding user event (e.g. screen reader focus). Overriding the focus\n    // method on HTMLElement.prototype is a bit hacky, but works.\n    let focus = windowObject.HTMLElement.prototype.focus;\n    windowObject.HTMLElement.prototype.focus = function() {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        focus.apply(this, arguments);\n    };\n    documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    // Register focus events on the window so they are sure to happen\n    // before React's event listeners (registered on the document).\n    windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    // Add unmount handler\n    windowObject.addEventListener('beforeunload', ()=>{\n        $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n    }, {\n        once: true\n    });\n    $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n        focus: focus\n    });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n    if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n    windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n    documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    let loadListener;\n    if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n    else {\n        loadListener = ()=>{\n            $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n        };\n        documentObject.addEventListener('DOMContentLoaded', loadListener);\n    }\n    return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n    return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n    return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n    $507fabe10e71c6fb$var$currentModality = modality;\n    $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    let [modality, setModality] = (0, external_React_namespaceObject.useState)($507fabe10e71c6fb$var$currentModality);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = ()=>{\n            setModality($507fabe10e71c6fb$var$currentModality);\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    }, []);\n    return (0, $b5e257d569688ac6$export$535bd6ca7f90a273)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n    'checkbox',\n    'radio',\n    'range',\n    'color',\n    'file',\n    'image',\n    'button',\n    'submit',\n    'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n    let document1 = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e === null || e === void 0 ? void 0 : e.target);\n    const IHTMLInputElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n    const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n    const IHTMLElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n    const IKeyboardEvent = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n    // For keyboard events that occur on a non-input element that will move focus into input element (aka ArrowLeft going from Datepicker button to the main input group)\n    // we need to rely on the user passing isTextInput into here. This way we can skip toggling focus visiblity for said input element\n    isTextInput = isTextInput || document1.activeElement instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(document1.activeElement.type) || document1.activeElement instanceof IHTMLTextAreaElement || document1.activeElement instanceof IHTMLElement && document1.activeElement.isContentEditable;\n    return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n    let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n    $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n        setFocusVisible(isFocusVisible);\n    }, [\n        isTextInput\n    ], {\n        isTextInput: isTextInput\n    });\n    return {\n        isFocusVisible: isFocusVisibleState\n    };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = (modality, e)=>{\n            // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n            if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n            fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, deps);\n}\n\n\n\n//# sourceMappingURL=useFocusVisible.module.js.map\n\n;// ./node_modules/@react-stately/flags/dist/import.mjs\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ let $f4e2df6bd15f8569$var$_tableNestedRows = false;\nlet $f4e2df6bd15f8569$var$_shadowDOM = false;\nfunction $f4e2df6bd15f8569$export$d9d8a0f82de49530() {\n    $f4e2df6bd15f8569$var$_tableNestedRows = true;\n}\nfunction $f4e2df6bd15f8569$export$1b00cb14a96194e6() {\n    return $f4e2df6bd15f8569$var$_tableNestedRows;\n}\nfunction $f4e2df6bd15f8569$export$12b151d9882e9985() {\n    $f4e2df6bd15f8569$var$_shadowDOM = true;\n}\nfunction $f4e2df6bd15f8569$export$98658e8c59125e6a() {\n    return $f4e2df6bd15f8569$var$_shadowDOM;\n}\n\n\n\n//# sourceMappingURL=module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/DOMFunctions.mjs\n\n\n\n// Source: https://github.com/microsoft/tabster/blob/a89fc5d7e332d48f68d03b1ca6e344489d1c3898/src/Shadowdomize/DOMFunctions.ts#L16\n\n\nfunction $d4ee10de306f2510$export$4282f70798064fe0(node, otherNode) {\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return otherNode && node ? node.contains(otherNode) : false;\n    if (!node || !otherNode) return false;\n    let currentNode = otherNode;\n    while(currentNode !== null){\n        if (currentNode === node) return true;\n        if (currentNode.tagName === 'SLOT' && currentNode.assignedSlot) // Element is slotted\n        currentNode = currentNode.assignedSlot.parentNode;\n        else if ((0, $431fbd86ca7dc216$export$af51f0f06c0f328a)(currentNode)) // Element is in shadow root\n        currentNode = currentNode.host;\n        else currentNode = currentNode.parentNode;\n    }\n    return false;\n}\nconst $d4ee10de306f2510$export$cd4e5573fbe2b576 = (doc = document)=>{\n    var _activeElement_shadowRoot;\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return doc.activeElement;\n    let activeElement = doc.activeElement;\n    while(activeElement && 'shadowRoot' in activeElement && ((_activeElement_shadowRoot = activeElement.shadowRoot) === null || _activeElement_shadowRoot === void 0 ? void 0 : _activeElement_shadowRoot.activeElement))activeElement = activeElement.shadowRoot.activeElement;\n    return activeElement;\n};\nfunction $d4ee10de306f2510$export$e58f029f0fbfdb29(event) {\n    if ((0, $f4e2df6bd15f8569$export$98658e8c59125e6a)() && event.target.shadowRoot) {\n        if (event.composedPath) return event.composedPath()[0];\n    }\n    return event.target;\n}\n\n\n\n//# sourceMappingURL=DOMFunctions.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocus.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n    let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n    const onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        if (e.target === e.currentTarget) {\n            if (onBlurProp) onBlurProp(e);\n            if (onFocusChange) onFocusChange(false);\n            return true;\n        }\n    }, [\n        onBlurProp,\n        onFocusChange\n    ]);\n    const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    const onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = ownerDocument ? (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument) : (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)();\n        if (e.target === e.currentTarget && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusProp) onFocusProp(e);\n            if (onFocusChange) onFocusChange(true);\n            onSyntheticFocus(e);\n        }\n    }, [\n        onFocusChange,\n        onFocusProp,\n        onSyntheticFocus\n    ]);\n    return {\n        focusProps: {\n            onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n            onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocus.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useGlobalListeners.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $03deb23ff14920c4$export$4eaf04e54aa8eed6() {\n    let globalListeners = (0, external_React_namespaceObject.useRef)(new Map());\n    let addGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        // Make sure we remove the listener after it is called with the `once` option.\n        let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{\n            globalListeners.current.delete(listener);\n            listener(...args);\n        } : listener;\n        globalListeners.current.set(listener, {\n            type: type,\n            eventTarget: eventTarget,\n            fn: fn,\n            options: options\n        });\n        eventTarget.addEventListener(type, fn, options);\n    }, []);\n    let removeGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        var _globalListeners_current_get;\n        let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;\n        eventTarget.removeEventListener(type, fn, options);\n        globalListeners.current.delete(listener);\n    }, []);\n    let removeAllGlobalListeners = (0, external_React_namespaceObject.useCallback)(()=>{\n        globalListeners.current.forEach((value, key)=>{\n            removeGlobalListener(value.eventTarget, value.type, key, value.options);\n        });\n    }, [\n        removeGlobalListener\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        return removeAllGlobalListeners;\n    }, [\n        removeAllGlobalListeners\n    ]);\n    return {\n        addGlobalListener: addGlobalListener,\n        removeGlobalListener: removeGlobalListener,\n        removeAllGlobalListeners: removeAllGlobalListeners\n    };\n}\n\n\n\n//# sourceMappingURL=useGlobalListeners.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusWithin.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n    let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocusWithin: false\n    });\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n        // when moving focus inside the element. Only trigger if the currentTarget doesn't\n        // include the relatedTarget (where focus is moving).\n        if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n            state.current.isFocusWithin = false;\n            removeAllGlobalListeners();\n            if (onBlurWithin) onBlurWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(false);\n        }\n    }, [\n        onBlurWithin,\n        onFocusWithinChange,\n        state,\n        removeAllGlobalListeners\n    ]);\n    let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    let onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument);\n        if (!state.current.isFocusWithin && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusWithin) onFocusWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(true);\n            state.current.isFocusWithin = true;\n            onSyntheticFocus(e);\n            // Browsers don't fire blur events when elements are removed from the DOM.\n            // However, if a focus event occurs outside the element we're tracking, we\n            // can manually fire onBlur.\n            let currentTarget = e.currentTarget;\n            addGlobalListener(ownerDocument, 'focus', (e)=>{\n                if (state.current.isFocusWithin && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(currentTarget, e.target)) {\n                    let event = new (0, $8a9cb279dc87e130$export$905e7fc544a71f36)('blur', new ownerDocument.defaultView.FocusEvent('blur', {\n                        relatedTarget: e.target\n                    }));\n                    event.target = currentTarget;\n                    event.currentTarget = currentTarget;\n                    onBlur(event);\n                }\n            }, {\n                capture: true\n            });\n        }\n    }, [\n        onFocusWithin,\n        onFocusWithinChange,\n        onSyntheticFocus,\n        addGlobalListener,\n        onBlur\n    ]);\n    if (isDisabled) return {\n        focusWithinProps: {\n            // These cannot be null, that would conflict in mergeProps\n            onFocus: undefined,\n            onBlur: undefined\n        }\n    };\n    return {\n        focusWithinProps: {\n            onFocus: onFocus,\n            onBlur: onBlur\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusWithin.module.js.map\n\n;// ./node_modules/@react-aria/focus/dist/useFocusRing.mjs\n\n\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n    let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        isFocusVisible: autoFocus || (0, $507fabe10e71c6fb$export$b9b3dfddab17db27)()\n    });\n    let [isFocused, setFocused] = (0, external_React_namespaceObject.useState)(false);\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n    let updateState = (0, external_React_namespaceObject.useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n    let onFocusChange = (0, external_React_namespaceObject.useCallback)((isFocused)=>{\n        state.current.isFocused = isFocused;\n        setFocused(isFocused);\n        updateState();\n    }, [\n        updateState\n    ]);\n    (0, $507fabe10e71c6fb$export$ec71b4b83ac08ec3)((isFocusVisible)=>{\n        state.current.isFocusVisible = isFocusVisible;\n        updateState();\n    }, [], {\n        isTextInput: isTextInput\n    });\n    let { focusProps: focusProps } = (0, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6)({\n        isDisabled: within,\n        onFocusChange: onFocusChange\n    });\n    let { focusWithinProps: focusWithinProps } = (0, $9ab94262bd0047c7$export$420e68273165f4ec)({\n        isDisabled: !within,\n        onFocusWithinChange: onFocusChange\n    });\n    return {\n        isFocused: isFocused,\n        isFocusVisible: isFocusVisibleState,\n        focusProps: within ? focusWithinProps : focusProps\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusRing.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useHover.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n    $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n    // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n    // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n    // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n    // the distant future because a user previously touched the element.\n    setTimeout(()=>{\n        $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n    }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n    if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n    if (typeof document === 'undefined') return;\n    if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n    else document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    $6179b936705e76d3$var$hoverCount++;\n    return ()=>{\n        $6179b936705e76d3$var$hoverCount--;\n        if ($6179b936705e76d3$var$hoverCount > 0) return;\n        if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n        else document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n    let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n    let [isHovered, setHovered] = (0, external_React_namespaceObject.useState)(false);\n    let state = (0, external_React_namespaceObject.useRef)({\n        isHovered: false,\n        ignoreEmulatedMouseEvents: false,\n        pointerType: '',\n        target: null\n    }).current;\n    (0, external_React_namespaceObject.useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, external_React_namespaceObject.useMemo)(()=>{\n        let triggerHoverStart = (event, pointerType)=>{\n            state.pointerType = pointerType;\n            if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n            state.isHovered = true;\n            let target = event.currentTarget;\n            state.target = target;\n            // When an element that is hovered over is removed, no pointerleave event is fired by the browser,\n            // even though the originally hovered target may have shrunk in size so it is no longer hovered.\n            // However, a pointerover event will be fired on the new target the mouse is over.\n            // In Chrome this happens immediately. In Safari and Firefox, it happens upon moving the mouse one pixel.\n            addGlobalListener((0, $431fbd86ca7dc216$export$b204af158042fbac)(event.target), 'pointerover', (e)=>{\n                if (state.isHovered && state.target && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(state.target, e.target)) triggerHoverEnd(e, e.pointerType);\n            }, {\n                capture: true\n            });\n            if (onHoverStart) onHoverStart({\n                type: 'hoverstart',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(true);\n            setHovered(true);\n        };\n        let triggerHoverEnd = (event, pointerType)=>{\n            let target = state.target;\n            state.pointerType = '';\n            state.target = null;\n            if (pointerType === 'touch' || !state.isHovered || !target) return;\n            state.isHovered = false;\n            removeAllGlobalListeners();\n            if (onHoverEnd) onHoverEnd({\n                type: 'hoverend',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(false);\n            setHovered(false);\n        };\n        let hoverProps = {};\n        if (typeof PointerEvent !== 'undefined') {\n            hoverProps.onPointerEnter = (e)=>{\n                if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n                triggerHoverStart(e, e.pointerType);\n            };\n            hoverProps.onPointerLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n            };\n        } else {\n            hoverProps.onTouchStart = ()=>{\n                state.ignoreEmulatedMouseEvents = true;\n            };\n            hoverProps.onMouseEnter = (e)=>{\n                if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n                state.ignoreEmulatedMouseEvents = false;\n            };\n            hoverProps.onMouseLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n            };\n        }\n        return {\n            hoverProps: hoverProps,\n            triggerHoverEnd: triggerHoverEnd\n        };\n    }, [\n        onHoverStart,\n        onHoverChange,\n        onHoverEnd,\n        isDisabled,\n        state,\n        addGlobalListener,\n        removeAllGlobalListeners\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        // Call the triggerHoverEnd as soon as isDisabled changes to true\n        // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n        if (isDisabled) triggerHoverEnd({\n            currentTarget: state.target\n        }, state.pointerType);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        isDisabled\n    ]);\n    return {\n        hoverProps: hoverProps,\n        isHovered: isHovered\n    };\n}\n\n\n\n//# sourceMappingURL=useHover.module.js.map\n\n;// ./node_modules/@headlessui/react/dist/utils/owner.js\nfunction owner_u(r){return s.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-active-press.js\nfunction E(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function use_active_press_P(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function use_active_press_w({disabled:e=!1}={}){let t=(0,external_React_namespaceObject.useRef)(null),[n,l]=(0,external_React_namespaceObject.useState)(!1),r=use_disposables_p(),o=use_event_o(()=>{t.current=null,l(!1),r.dispose()}),f=use_event_o(s=>{if(r.dispose(),t.current===null){t.current=s.currentTarget,l(!0);{let i=owner_u(s.currentTarget);r.addEventListener(i,\"pointerup\",o,!1),r.addEventListener(i,\"pointermove\",c=>{if(t.current){let p=E(c);l(use_active_press_P(p,t.current.getBoundingClientRect()))}},!1),r.addEventListener(i,\"pointercancel\",o,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:f,onPointerUp:o,onClick:o}}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js\nfunction use_resolve_button_type_e(t,u){return (0,external_React_namespaceObject.useMemo)(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:\"button\";if(typeof r==\"string\"&&r.toLowerCase()===\"button\"||(u==null?void 0:u.tagName)===\"BUTTON\"&&!u.hasAttribute(\"type\"))return\"button\"},[t.type,t.as,u])}\n\n;// ./node_modules/@headlessui/react/dist/internal/hidden.js\nlet a=\"span\";var hidden_s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(hidden_s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return render_L()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let hidden_f=K(l);\n\n;// ./node_modules/@headlessui/react/dist/internal/focus-sentinel.js\nfunction focus_sentinel_b({onFocus:n}){let[r,o]=(0,external_React_namespaceObject.useState)(!0),u=f();return r?external_React_namespaceObject.createElement(hidden_f,{as:\"button\",type:\"button\",features:hidden_s.Focusable,onFocus:a=>{a.preventDefault();let e,i=50;function t(){if(i--<=0){e&&cancelAnimationFrame(e);return}if(n()){if(cancelAnimationFrame(e),!u.current)return;o(!1);return}e=requestAnimationFrame(t)}e=requestAnimationFrame(t)}}):null}\n\n;// ./node_modules/@headlessui/react/dist/utils/focus-management.js\nlet focus_management_f=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),p=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var focus_management_F=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n[n.AutoFocus=64]=\"AutoFocus\",n))(focus_management_F||{}),focus_management_T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(focus_management_T||{}),y=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(y||{});function focus_management_b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(focus_management_f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var focus_management_h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(focus_management_h||{});function A(e,r=0){var t;return e===((t=owner_u(e))==null?void 0:t.body)?!1:match_u(r,{[0](){return e.matches(focus_management_f)},[1](){let u=e;for(;u!==null;){if(u.matches(focus_management_f))return!0;u=u.parentElement}return!1}})}function G(e){let r=owner_u(e);disposables_o().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var focus_management_H=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(focus_management_H||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function I(e){e==null||e.focus({preventScroll:!0})}let focus_management_w=[\"textarea\",\"input\"].join(\",\");function focus_management_O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,focus_management_w))!=null?t:!1}function focus_management_(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function focus_management_j(e,r){return focus_management_P(focus_management_b(),r,{relativeTo:e})}function focus_management_P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?focus_management_(e):e:r&64?S(e):focus_management_b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&\"current\"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&focus_management_O(i)&&i.select(),2}\n\n;// ./node_modules/@headlessui/react/dist/utils/stable-collection.js\nconst stable_collection_s=external_React_namespaceObject.createContext(null);function stable_collection_a(){return{groups:new Map,get(o,e){var i;let t=this.groups.get(o);t||(t=new Map,this.groups.set(o,t));let n=(i=t.get(e))!=null?i:0;t.set(e,n+1);let r=Array.from(t.keys()).indexOf(e);function u(){let c=t.get(e);c>1?t.set(e,c-1):t.delete(e)}return[r,u]}}}function stable_collection_f({children:o}){let e=external_React_namespaceObject.useRef(stable_collection_a());return external_React_namespaceObject.createElement(stable_collection_s.Provider,{value:e},o)}function stable_collection_C(o){let e=external_React_namespaceObject.useContext(stable_collection_s);if(!e)throw new Error(\"You must wrap your component in a <StableCollection>\");let t=external_React_namespaceObject.useId(),[n,r]=e.current.get(o,t);return external_React_namespaceObject.useEffect(()=>r,[]),n}\n\n;// ./node_modules/@headlessui/react/dist/components/keyboard.js\nvar keyboard_o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(keyboard_o||{});\n\n;// ./node_modules/@headlessui/react/dist/components/tabs/tabs.js\n\"use client\";var tabs_Le=(t=>(t[t.Forwards=0]=\"Forwards\",t[t.Backwards=1]=\"Backwards\",t))(tabs_Le||{}),tabs_e=(l=>(l[l.Less=-1]=\"Less\",l[l.Equal=0]=\"Equal\",l[l.Greater=1]=\"Greater\",l))(tabs_e||{}),tabs_De=(n=>(n[n.SetSelectedIndex=0]=\"SetSelectedIndex\",n[n.RegisterTab=1]=\"RegisterTab\",n[n.UnregisterTab=2]=\"UnregisterTab\",n[n.RegisterPanel=3]=\"RegisterPanel\",n[n.UnregisterPanel=4]=\"UnregisterPanel\",n))(tabs_De||{});let Se={[0](e,r){var d;let t=focus_management_(e.tabs,u=>u.current),l=focus_management_(e.panels,u=>u.current),a=t.filter(u=>{var T;return!((T=u.current)!=null&&T.hasAttribute(\"disabled\"))}),n={...e,tabs:t,panels:l};if(r.index<0||r.index>t.length-1){let u=match_u(Math.sign(r.index-e.selectedIndex),{[-1]:()=>1,[0]:()=>match_u(Math.sign(r.index),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0});if(a.length===0)return n;let T=match_u(u,{[0]:()=>t.indexOf(a[0]),[1]:()=>t.indexOf(a[a.length-1])});return{...n,selectedIndex:T===-1?e.selectedIndex:T}}let s=t.slice(0,r.index),b=[...t.slice(r.index),...s].find(u=>a.includes(u));if(!b)return n;let f=(d=t.indexOf(b))!=null?d:e.selectedIndex;return f===-1&&(f=e.selectedIndex),{...n,selectedIndex:f}},[1](e,r){if(e.tabs.includes(r.tab))return e;let t=e.tabs[e.selectedIndex],l=focus_management_([...e.tabs,r.tab],n=>n.current),a=e.selectedIndex;return e.info.current.isControlled||(a=l.indexOf(t),a===-1&&(a=e.selectedIndex)),{...e,tabs:l,selectedIndex:a}},[2](e,r){return{...e,tabs:e.tabs.filter(t=>t!==r.tab)}},[3](e,r){return e.panels.includes(r.panel)?e:{...e,panels:focus_management_([...e.panels,r.panel],t=>t.current)}},[4](e,r){return{...e,panels:e.panels.filter(t=>t!==r.panel)}}},V=(0,external_React_namespaceObject.createContext)(null);V.displayName=\"TabsDataContext\";function tabs_C(e){let r=(0,external_React_namespaceObject.useContext)(V);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,tabs_C),t}return r}let Q=(0,external_React_namespaceObject.createContext)(null);Q.displayName=\"TabsActionsContext\";function Y(e){let r=(0,external_React_namespaceObject.useContext)(Q);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Y),t}return r}function tabs_Fe(e,r){return match_u(r.type,Se,e,r)}let tabs_Ie=\"div\";function he(e,r){let{defaultIndex:t=0,vertical:l=!1,manual:a=!1,onChange:n,selectedIndex:s=null,...g}=e;const b=l?\"vertical\":\"horizontal\",f=a?\"manual\":\"auto\";let d=s!==null,u=use_latest_value_s({isControlled:d}),T=use_sync_refs_y(r),[p,c]=(0,external_React_namespaceObject.useReducer)(tabs_Fe,{info:u,selectedIndex:s!=null?s:t,tabs:[],panels:[]}),h=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:p.selectedIndex}),[p.selectedIndex]),m=use_latest_value_s(n||(()=>{})),M=use_latest_value_s(p.tabs),S=(0,external_React_namespaceObject.useMemo)(()=>({orientation:b,activation:f,...p}),[b,f,p]),P=use_event_o(i=>(c({type:1,tab:i}),()=>c({type:2,tab:i}))),A=use_event_o(i=>(c({type:3,panel:i}),()=>c({type:4,panel:i}))),E=use_event_o(i=>{_.current!==i&&m.current(i),d||c({type:0,index:i})}),_=use_latest_value_s(d?e.selectedIndex:p.selectedIndex),D=(0,external_React_namespaceObject.useMemo)(()=>({registerTab:P,registerPanel:A,change:E}),[]);use_iso_morphic_effect_n(()=>{c({type:0,index:s!=null?s:t})},[s]),use_iso_morphic_effect_n(()=>{if(_.current===void 0||p.tabs.length<=0)return;let i=focus_management_(p.tabs,R=>R.current);i.some((R,X)=>p.tabs[X]!==R)&&E(i.indexOf(p.tabs[_.current]))});let K={ref:T},J=render_L();return external_React_namespaceObject.createElement(stable_collection_f,null,external_React_namespaceObject.createElement(Q.Provider,{value:D},external_React_namespaceObject.createElement(V.Provider,{value:S},S.tabs.length<=0&&external_React_namespaceObject.createElement(focus_sentinel_b,{onFocus:()=>{var i,G;for(let R of M.current)if(((i=R.current)==null?void 0:i.tabIndex)===0)return(G=R.current)==null||G.focus(),!0;return!1}}),J({ourProps:K,theirProps:g,slot:h,defaultTag:tabs_Ie,name:\"Tabs\"}))))}let ve=\"div\";function Ce(e,r){let{orientation:t,selectedIndex:l}=tabs_C(\"Tab.List\"),a=use_sync_refs_y(r),n=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:l}),[l]),s=e,g={ref:a,role:\"tablist\",\"aria-orientation\":t};return render_L()({ourProps:g,theirProps:s,slot:n,defaultTag:ve,name:\"Tabs.List\"})}let Me=\"button\";function Ge(e,r){var ee,te;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-tab-${t}`,disabled:a=!1,autoFocus:n=!1,...s}=e,{orientation:g,activation:b,selectedIndex:f,tabs:d,panels:u}=tabs_C(\"Tab\"),T=Y(\"Tab\"),p=tabs_C(\"Tab\"),[c,h]=(0,external_React_namespaceObject.useState)(null),m=(0,external_React_namespaceObject.useRef)(null),M=use_sync_refs_y(m,r,h);use_iso_morphic_effect_n(()=>T.registerTab(m),[T,m]);let S=stable_collection_C(\"tabs\"),P=d.indexOf(m);P===-1&&(P=S);let A=P===f,E=use_event_o(o=>{var $;let L=o();if(L===focus_management_T.Success&&b===\"auto\"){let q=($=owner_u(m))==null?void 0:$.activeElement,re=p.tabs.findIndex(ce=>ce.current===q);re!==-1&&T.change(re)}return L}),_=use_event_o(o=>{let L=d.map(q=>q.current).filter(Boolean);if(o.key===keyboard_o.Space||o.key===keyboard_o.Enter){o.preventDefault(),o.stopPropagation(),T.change(P);return}switch(o.key){case keyboard_o.Home:case keyboard_o.PageUp:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.First));case keyboard_o.End:case keyboard_o.PageDown:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.Last))}if(E(()=>match_u(g,{vertical(){return o.key===keyboard_o.ArrowUp?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowDown?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error},horizontal(){return o.key===keyboard_o.ArrowLeft?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowRight?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error}}))===focus_management_T.Success)return o.preventDefault()}),D=(0,external_React_namespaceObject.useRef)(!1),K=use_event_o(()=>{var o;D.current||(D.current=!0,(o=m.current)==null||o.focus({preventScroll:!0}),T.change(P),micro_task_t(()=>{D.current=!1}))}),J=use_event_o(o=>{o.preventDefault()}),{isFocusVisible:i,focusProps:G}=$f7dceffc5ad7768b$export$4e328f61c538687f({autoFocus:n}),{isHovered:R,hoverProps:X}=$6179b936705e76d3$export$ae780daf29e6d456({isDisabled:a}),{pressed:Z,pressProps:ue}=use_active_press_w({disabled:a}),Te=(0,external_React_namespaceObject.useMemo)(()=>({selected:A,hover:R,active:Z,focus:i,autofocus:n,disabled:a}),[A,R,i,Z,n,a]),de=render_({ref:M,onKeyDown:_,onMouseDown:J,onClick:K,id:l,role:\"tab\",type:use_resolve_button_type_e(e,c),\"aria-controls\":(te=(ee=u[P])==null?void 0:ee.current)==null?void 0:te.id,\"aria-selected\":A,tabIndex:A?0:-1,disabled:a||void 0,autoFocus:n},G,X,ue);return render_L()({ourProps:de,theirProps:s,slot:Te,defaultTag:Me,name:\"Tabs.Tab\"})}let Ue=\"div\";function tabs_He(e,r){let{selectedIndex:t}=tabs_C(\"Tab.Panels\"),l=use_sync_refs_y(r),a=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:t}),[t]),n=e,s={ref:l};return render_L()({ourProps:s,theirProps:n,slot:a,defaultTag:Ue,name:\"Tabs.Panels\"})}let we=\"div\",Oe=O.RenderStrategy|O.Static;function Ne(e,r){var A,E,_,D;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-panel-${t}`,tabIndex:a=0,...n}=e,{selectedIndex:s,tabs:g,panels:b}=tabs_C(\"Tab.Panel\"),f=Y(\"Tab.Panel\"),d=(0,external_React_namespaceObject.useRef)(null),u=use_sync_refs_y(d,r);use_iso_morphic_effect_n(()=>f.registerPanel(d),[f,d]);let T=stable_collection_C(\"panels\"),p=b.indexOf(d);p===-1&&(p=T);let c=p===s,{isFocusVisible:h,focusProps:m}=$f7dceffc5ad7768b$export$4e328f61c538687f(),M=(0,external_React_namespaceObject.useMemo)(()=>({selected:c,focus:h}),[c,h]),S=render_({ref:u,id:l,role:\"tabpanel\",\"aria-labelledby\":(E=(A=g[p])==null?void 0:A.current)==null?void 0:E.id,tabIndex:c?a:-1},m),P=render_L();return!c&&((_=n.unmount)==null||_)&&!((D=n.static)!=null&&D)?external_React_namespaceObject.createElement(hidden_f,{\"aria-hidden\":\"true\",...S}):P({ourProps:S,theirProps:n,slot:M,defaultTag:we,features:Oe,visible:c,name:\"Tabs.Panel\"})}let ke=K(Ge),Be=K(he),We=K(Ce),je=K(tabs_He),Ke=K(Ne),Tt=Object.assign(ke,{Group:Be,List:We,Panels:je,Panel:Ke});\n\n;// ./src/images/login-playground.png\n/* harmony default export */ const login_playground = (__webpack_require__.p + \"020bb5f9e6abbf80f12321f0e7771a22.png\");\n;// ./src/images/feature-code.svg\n/* harmony default export */ const feature_code = (__webpack_require__.p + \"a7b10863bbe3fbfc41866841fa68b986.svg\");\n;// ./src/images/feature-users.svg\n/* harmony default export */ const feature_users = (__webpack_require__.p + \"f333a678e8afc5ee2a0d5213d6496862.svg\");\n;// ./src/images/feature-unlock.svg\n/* harmony default export */ const feature_unlock = (__webpack_require__.p + \"511bf24fada771734184ab0703182525.svg\");\n;// ./src/components/step/Features.tsx\n\n\n\nfunction replaceWithBr(str) {\n    return str.replace(/\\n/g, '<br />');\n}\n\n\n\n\nconst tabs = [\n    {\n        name: 'Overview',\n        features: [\n            {\n                name: 'Overview',\n                description: ' Regularly updating your installation, along with its installed plugins and themes, is crucial for maintaining security.\\n\\n' +\n                    'On a standard installation, this plugin provides protection for logins and comments. Since WordPress doesn’t support forms without plugins, we’ve made an effort to support the most widely used form plugins. If your preferred form plugin isn&rsquo;t supported, please contact us, and we&rsquo;ll do our best to add it to the development roadmap.\\n\\n' +\n                    'You can also use this plugin in development mode or in the WordPress playground. A test version of the plugin, complete with examples, has been made available for you to experiment with.',\n                imageSrc: login_playground,\n                imageAlt: 'Isometric preview of the login page.',\n            },\n        ],\n    },\n    {\n        name: 'How does it work?',\n        features: [\n            {\n                name: 'How does it work?',\n                description: 'This plugin works by requesting a captcha to be generated by our cloud service. This captcha is delivered to your site with some encrypted data. When a user attempts to solve the captcha, the service uses this data to validate their response. The plugin then passes or fails the action, thereby protecting your site.',\n                imageSrc: feature_code,\n                imageAlt: 'Isometric screenshot illustraitng a code sample',\n            },\n        ],\n    },\n    {\n        name: 'Authorised roles',\n        features: [\n            {\n                name: 'Authorised roles',\n                description: 'These are the roles that won&rsquo;t be presented a captcha: Administrator and Editor roles are always treated as Authorised roles. However, since WordPress allows for open registration without email authentication, we don&rsquo;t assume that other roles are safe.',\n                imageSrc: feature_users,\n                imageAlt: 'Isometric illustration of users',\n            },\n        ],\n    },\n    {\n        name: 'Protect',\n        features: [\n            {\n                name: 'Protect',\n                description: 'You can configure what you want this plugin to protect, forms, comments and login can be individually managed. Toggling options applies the settings immediately.\\n\\n' +\n                    'We fund the development of this plugin by making a tiny charge for each successful login or submission, we believe is the fairest way to charge as it encourages us to deal with the issue in an efficient way.\\n\\n' +\n                    'New customers get free credits to try out the service and see if it fits their needs.',\n                imageSrc: feature_unlock,\n                imageAlt: 'Isometric illustration of a lock',\n            },\n        ],\n    },\n];\nfunction Features() {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"section\", { \"aria-labelledby\": \"features-heading\", className: \"border-b border-white/20 pb-4 pt-4 text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mx-auto max-w-2xl px-8 lg:max-w-none lg:px-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"max-w-3xl\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl/7\", children: \"Web-Engine Sentry is a plugin that offers protection for comments, administrative login, and form submissions. While it won\\u2019t prevent human submissions, its primary objective is to make it challenging for automated programs to access your site.\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(Be, { className: \"my-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"-mx-4 flex overflow-x-auto sm:mx-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex-auto border-b border-white/20 px-4 sm:px-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(We, { className: \"-mb-px flex space-x-10\", children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Tt, { className: \"whitespace-nowrap border-b-2 border-transparent py-6 text-sm font-medium text-white/90 hover:border-sky-200 hover:text-sky-400 data-[selected]:border-sky-300 data-[selected]:text-sky-400\", children: tab.name }, tab.name))) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(je, { as: external_React_namespaceObject.Fragment, children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Ke, { className: \"space-y-16 pt-10 lg:pt-16\", children: tab.features.map((feature) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex flex-col-reverse lg:grid lg:grid-cols-12 lg:gap-x-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-6 lg:col-span-5 lg:mt-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-lg font-medium text-white\", children: feature.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2 text-sm text-white/90\", dangerouslySetInnerHTML: {\n                                                            __html: replaceWithBr(feature.description),\n                                                        } })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"lg:col-span-7\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: feature.imageAlt, src: feature.imageSrc, className: \"w-full object-cover\" }) })] }, feature.name))) }, tab.name))) })] })] }) }) }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckIcon.js\n\nfunction CheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.916 4.626a.75.75 0 0 1 .208 1.04l-9 13.5a.75.75 0 0 1-1.154.114l-6-6a.75.75 0 0 1 1.06-1.06l5.353 5.353 8.493-12.74a.75.75 0 0 1 1.04-.207Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckIcon);\n/* harmony default export */ const esm_CheckIcon = (CheckIcon_ForwardRef);\n;// ./src/components/step/Documentation.tsx\n\n\n\n\n\n\n\n\n\nfunction Documentation({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [plugins, setPlugins] = (0,external_React_namespaceObject.useState)([]);\n    const [installed, setInstalled] = (0,external_React_namespaceObject.useState)(['']);\n    const [selected, setSelected] = (0,external_React_namespaceObject.useState)('');\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        if (false === loaded) {\n            const data = {\n                action: 'we360cloud_sentry',\n                token: webEngineCaptcha.token,\n                we360cloud_sentry_route: 'plugins',\n            };\n            fetch(webEngineCaptcha.url, {\n                method: 'POST',\n                headers: {\n                    'content-type': 'application/x-www-form-urlencoded',\n                },\n                body: query_string.stringify(data),\n            })\n                .then((response) => response.json())\n                .then((json) => {\n                if (false === json ||\n                    undefined === json.payload ||\n                    undefined === json.payload.we360cloud_sentry_plugins) {\n                }\n                else {\n                    setPlugins(json.payload.we360cloud_sentry_plugins);\n                    setInstalled(json.payload.we360cloud_sentry_installed);\n                    if (json.payload.we360cloud_sentry_installed) {\n                        setSelected(json.payload.we360cloud_sentry_installed[0]);\n                    }\n                }\n                setLoaded(true);\n            });\n        }\n    }, [loaded]);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-5xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-12\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Features, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-4 mt-8 max-w-screen-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-black text-lg\", children: \"Supported forms plugins\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Plugins are listed alphabetically; support for a plugin doesn\\u2019t imply endorsement of its functionality. We recommend choosing a form plugin that best suits your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Captchas are enabled\" }), \" and will appear for all forms. The following supported plugins appear to be installed. Plugin-specific notes are listed below each one.\"] }), loaded && selected === '' ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-bold text-lg border-b border-white/20 pb-4\", children: \"It looks like you don't have any of the supported form plugins installed or activated. See the list of supported plugins below. Contact us if you'd like support for another form plugin.\" }) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex gap-4 border-b border-white/20 pb-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: plugins.map((plugin) => installed.includes(plugin.name) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { className: \"py-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: plugin.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckIcon, { className: \"w-4 h-4 ml-2 align-top inline\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), plugin.notes] }) }, plugin.name))) }) }) })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"You can also toggle the protection of comments and logins. We recommend enabling these options, but you can choose to disable this protection if it doesn\\u2019t suit your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Full list of officially supported plugins -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { className: \"list-disc ml-4\", children: plugins.map((plugin) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { children: plugin.name +\n                                                            ' ' +\n                                                            plugin.version }, plugin.name))) }) })] })] })] })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\n\nfunction CheckCircleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n  }));\n}\nconst CheckCircleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckCircleIcon);\n/* harmony default export */ const esm_CheckCircleIcon = (CheckCircleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\n\nfunction ExclamationTriangleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\"\n  }));\n}\nconst ExclamationTriangleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ExclamationTriangleIcon);\n/* harmony default export */ const esm_ExclamationTriangleIcon = (ExclamationTriangleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/20/solid/esm/XMarkIcon.js\n\nfunction XMarkIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z\"\n  }));\n}\nconst XMarkIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(XMarkIcon);\n/* harmony default export */ const esm_XMarkIcon = (XMarkIcon_ForwardRef);\n;// ./src/components/Alert.tsx\n'use client';\n\n\n\n\n\nfunction Alert({ text, type, title, visible }) {\n    const [show, setShow] = (0,external_React_namespaceObject.useState)(visible);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { \"aria-live\": \"assertive\", className: \"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex w-full flex-col items-center space-y-4 sm:items-end\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { show: show, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black/5 transition data-[closed]:data-[enter]:translate-y-2 data-[enter]:transform data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-100 data-[enter]:ease-out data-[leave]:ease-in data-[closed]:data-[enter]:sm:translate-x-2 data-[closed]:data-[enter]:sm:translate-y-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"p-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"shrink-0\", children: [('' === type ||\n                                                'success' === type) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckCircleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-green-400\" })), 'warning' === type && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ExclamationTriangleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-orange-500-400\" })), ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"ml-3 w-0 flex-1 pt-0.5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sm font-medium text-gray-900\", children: title }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-1 text-sm text-gray-500\", children: text })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-4 flex shrink-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { type: \"button\", onClick: () => {\n                                                setShow(false);\n                                            }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Close\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_XMarkIcon, { \"aria-hidden\": \"true\", className: \"size-5\" })] }) })] }) }) }) }) }) }) }));\n}\n\n;// ./src/components/Window.tsx\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction Window({ registrationStep, onStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, onPin, pin, balance, newUser, notice, testMode, logged, expires, }) {\n    const [showReg, setShowReg] = (0,external_React_namespaceObject.useState)(false);\n    const getPin = () => {\n        onStep('pin');\n    };\n    const retryLoad = () => {\n        onStep('reload');\n    };\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-12\", children: [undefined !== notice && notice.text && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Alert, { text: notice.text, title: notice.title ? notice.title : '', visible: true, type: notice.type ? notice.type : 'warning' })), undefined === registrationStep ||\n                                ('error' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"Unable to connect to cloud service,\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \" please\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => retryLoad(), className: \"underline inline-block\", children: \"try again in a moment\" }), \".\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"If the problem persists the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"a\", { href: \"https://www.web-engineer.co.uk/doc/sentry-wordpress\", target: \"_blank\", className: \"underline\", rel: \"noreferrer\", children: \"support page\" }), ' ', \"provides information, frequently asked questions and access to raise a request.\"] })] }))), 'init' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-zinc-100\", children: \"Loading.\" })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [!showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Intro, { onSetShowReg: setShowReg })), showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: [\"This plugin uses the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"to generate secure challenges, registration is required to use this service\"] }))] })), 'activate' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: \"The Web-Engine cloud service is connected, however sentry isn\\u2019t enabled.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('sentry-setup'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Enable \", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Sentry\" })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('force-disconnect'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Disconnect from all\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Web-Engine cloud\" }), ' ', \"services\"] }) })] })), 'pin' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Check your email to verify your account to validate your account\" })), 'verified' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Account registered\" }))] })] }), 'manage' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Manage, { registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, testMode: testMode, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt, true);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt, true);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt, true);\n                }, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged, expires: expires })), ('register' === registrationStep ||\n                'registering' === registrationStep) &&\n                showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Register, { setShowReg: setShowReg, getPin: getPin, registrationStep: registrationStep, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onRegistrationEmail: (email) => {\n                    onRegistrationEmail(email);\n                }, onRegistrationName: (name) => {\n                    onRegistrationName(name);\n                }, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } })), (registrationStep === 'pin sent' ||\n                registrationStep === 'bad pin' ||\n                registrationStep === 'error pin' ||\n                registrationStep === 'pin check') && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(PinCheck, { registrationStep: registrationStep, registrationEmail: registrationEmail, pin: pin, onPin: (val) => {\n                    onPin(val);\n                }, onStep: (step) => {\n                    onStep(step);\n                } })), registrationStep === 'documentation' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'authenticated' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Options, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'welcome' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-xl text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mb-2\", children: \"Welcome to the Web-Engine cloud captcha service, your site is now connected.\" }), newUser === true ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mb-2\", children: [\"To use the optional\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"premium services\" }), ' ', \"you will need to complete setting up your account and login to the our cloud services, an email has been sent with instructions.\"] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: Number(balance) > 0 && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { children: [' ', \"Your existing balance is\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: undefined === balance\n                                                            ? '-'\n                                                            : Number(balance).toLocaleString() }), ' ', \"credits\"] })) }))] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"w-full mt-4 justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700\", children: \"Get started\" })] })] })), (registrationStep === 'unregister' ||\n                registrationStep === 'force-disconnect') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), registrationStep === 'unregister' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site from the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Sentry\" }), \" service, this site will no longer be protected\"] })), registrationStep === 'force-disconnect' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site entirely from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap\", children: \"Web-Engine Cloud\" }), \".\"] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep(registrationStep === 'unregister'\n                                    ? 'unregister-confirmed'\n                                    : 'force-disconnect-confirmed'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: \"Yes\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"No\" })] })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"text-center text-sm mt-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { href: \"https://www.web-engineer.co.uk/terms-conditions/privacy-policy\", target: \"_blank\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", rel: \"noreferrer\", children: [\"Privacy policy\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { rel: \"noopener noreferrer\", target: \"_blank\", href: \"https://www.we360.cloud\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", children: [\"Web-Engine cloud\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] })] })] }));\n}\n\n;// ./src/components/Loader.tsx\n'use client';\n\n\n\nfunction Loader({ visible, error, onRetry }) {\n    const dataProps = false === visible ? { 'data-closed': true } : {};\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", Object.assign({}, dataProps, { className: \"container min-w-[420px] relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in sm:my-8 max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-10 h-[15rem] w-[15rem] -translate-y-[3.8rem] translate-x-[1rem] opacity-50\", isLoading: true }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 512 512\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-4/4 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 256, cx: 256, cy: 256, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), error && error !== '' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl text-white font-bold\", children: error }), error && error !== '' && onRetry && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => {\n                            onRetry();\n                        }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Retry\" }) }))] }))] })));\n}\n\n;// ./src/components/App.tsx\n\n\n\n\n\n\n\nconst App = () => {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [status, setStatus] = (0,external_React_namespaceObject.useState)('init');\n    const [error, setError] = (0,external_React_namespaceObject.useState)('');\n    const [pin, setPin] = (0,external_React_namespaceObject.useState)('');\n    const [mailStep, setMailStep] = (0,external_React_namespaceObject.useState)(0);\n    const [notice, setNotice] = (0,external_React_namespaceObject.useState)();\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)(0);\n    const [newUser, setNewUser] = (0,external_React_namespaceObject.useState)(false);\n    const [registrationEmail, setRegistrationEmail] = (0,external_React_namespaceObject.useState)('');\n    const [registrationName, setRegistrationName] = (0,external_React_namespaceObject.useState)('');\n    const [testMode, setTestMode] = (0,external_React_namespaceObject.useState)(false);\n    const [logged, setLogged] = (0,external_React_namespaceObject.useState)(false);\n    const [expires, setExpires] = (0,external_React_namespaceObject.useState)(-1);\n    const [commAdministrative, setCommAdministrative] = (0,external_React_namespaceObject.useState)(false);\n    const [commNews, setCommNews] = (0,external_React_namespaceObject.useState)(false);\n    const [commDeveloper, setCommDeveloper] = (0,external_React_namespaceObject.useState)(false);\n    function handleCommAdministrativeChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_administrative', opt, setCommAdministrative);\n        }\n        else {\n            setCommAdministrative(opt);\n        }\n    }\n    function handleCommNewsChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_news', opt, setCommNews);\n        }\n        else {\n            setCommNews(opt);\n        }\n    }\n    function handleCommDeveloperChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_developer', opt, setCommDeveloper);\n        }\n        else {\n            setCommDeveloper(opt);\n        }\n    }\n    function updateComm(option, value, callback) {\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'updatecomm',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.payload.value === true);\n        });\n    }\n    const onStep = (requestedStep) => {\n        switch (requestedStep) {\n            case 'reload':\n                init();\n                break;\n            case 'manage':\n                setStatus('manage');\n                break;\n            case 'documentation':\n                setStatus('documentation');\n                break;\n            case 'authenticated':\n                setStatus('authenticated');\n                break;\n            case 'newly-authenticated':\n                init();\n                setStatus('authenticated');\n                break;\n            case 'force-disconnect':\n                setStatus('force-disconnect');\n                break;\n            case 'force-disconnect-confirmed':\n                const udata2 = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata2),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'unregister':\n                setStatus('unregister');\n                break;\n            case 'unregister-confirmed':\n                setLoaded(false);\n                const udata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'exit-testmode':\n                setLoaded(false);\n                const capdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(capdata),\n                })\n                    .then((response) => response.json())\n                    .then((capjson) => {\n                    setLoaded(true);\n                    if (capjson.code === 200) {\n                        setTestMode(false);\n                        setStatus('register');\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'pin':\n                setStatus('registering');\n                const pdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setStatus('pin sent');\n                    }\n                    else {\n                        setStatus('register');\n                    }\n                });\n                break;\n            case 'bad pin':\n                setStatus('bad pin');\n                break;\n            case 'pin check':\n                setStatus('pin check');\n                const pcdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                    commAdministrative,\n                    commNews,\n                    commDeveloper,\n                    pin,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pcdata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (false === data.success ||\n                        Number(data.code) !== 200) {\n                        setStatus('error pin');\n                    }\n                    else if ('authenticated' === data.status) {\n                        if (false === data.success ||\n                            Number(data.code) !== 200) {\n                            setStatus('error pin');\n                        }\n                        else if ('authenticated' === data.status) {\n                            onStep('sentry-setup');\n                            setBalance(data.balance);\n                            setNewUser(data.newUser);\n                            setLogged(data.logged);\n                        }\n                        else {\n                            setStatus('bad pin');\n                        }\n                    }\n                });\n                break;\n            case 'sentry-setup':\n                setLoaded(false);\n                const setupdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'sentrysetup',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(setupdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setLoaded(true);\n                        setStatus('welcome');\n                        setMailStep(0);\n                    }\n                    else {\n                        setError('Error with sentry setup');\n                        window.setTimeout(() => {\n                            location.reload();\n                        }, 10000);\n                    }\n                });\n                break;\n            case 'password-setup':\n                setMailStep(1);\n                const psdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'resetemail',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(psdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setMailStep(2);\n                    }\n                    else {\n                        setMailStep(3);\n                    }\n                });\n                break;\n            default:\n                setStatus('register');\n        }\n    };\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        setLoaded(false);\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'hello',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data ||\n                (data.code && Number(data.code) !== 200)) {\n                setLoaded(true);\n                setStatus('error');\n            }\n            else {\n                if (data.email) {\n                    setRegistrationEmail(data.email);\n                }\n                if (data.name) {\n                    setRegistrationName(data.name);\n                }\n                setLogged(data.logged);\n                setExpires(data.expires);\n                if (!data.products ||\n                    !data.products.includes('sentry')) {\n                    if (data.status === 'register') {\n                        setLoaded(true);\n                        setStatus(data.status);\n                    }\n                    else if (data.status === 'reset') {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    return;\n                }\n                const rqdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'testmode',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(rqdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    setLoaded(true);\n                    if (json.code === 200) {\n                        setTestMode(json.testmode);\n                        if (false === data.success) {\n                            setStatus('error');\n                        }\n                        else if ('authenticated' !== data.status) {\n                            setStatus(data.status);\n                        }\n                        if (data.notice) {\n                            setNotice(data.notice);\n                        }\n                        else {\n                            setNotice(undefined);\n                        }\n                        setCommAdministrative(data.communications.commAdministrative === 1);\n                        setCommNews(data.communications.commNews === 1);\n                        setCommDeveloper(data.communications.commDeveloper === 1);\n                        setBalance(data.balance);\n                        if (true === json.testmode) {\n                            setStatus('authenticated');\n                        }\n                        else {\n                            setStatus('manage');\n                        }\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n            }\n        });\n    }, []);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto relative top-0 left-0 w-full pr-[20px] pt-[20px]\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"inset-0 z-10 w-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex min-h-full items-end sm:p-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded &&\n                                'documentation' !== status &&\n                                'manage' !== status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"opacity-0 -translate-x-full\", enterTo: \"opacity-100 translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100 translate-x-0\", leaveTo: \"opacity-0 translate-x-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'documentation' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                                    onStep(step);\n                                }, logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'manage' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), true !== loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Loader, { visible: !loaded, error: error }))] }) }) }) }));\n};\n/* harmony default export */ const components_App = (App);\n\n// EXTERNAL MODULE: ./src/components/styles/index.css\nvar components_styles = __webpack_require__(\"./src/components/styles/index.css\");\n;// ./src/components/DocRoot.tsx\n\n\n\n\n\nclass DocRoot extends HTMLElement {\n    constructor() {\n        super();\n        this._uiContainer = document.createElement('div');\n        const styles = new CSSStyleSheet();\n        const shadowRoot = this.attachShadow({ mode: 'closed' });\n        const uiRoot = (0,client.createRoot)(this._uiContainer);\n        shadowRoot.append(this._uiContainer);\n        styles.replace(components_styles[\"default\"].toString());\n        shadowRoot.adoptedStyleSheets = [styles];\n        uiRoot.render((0,external_ReactJSXRuntime_namespaceObject.jsx)(App, {}));\n    }\n}\n\n;// ./src/index.ts\n\ncustomElements.define('wp-we-captcha', DocRoot);\n\n\n//# sourceURL=webpack://we-capture-wordpress/./src/index.ts_+_86_modules?");
    6060
    6161/***/ }),
  • web-engine-sentry/tags/1.0.14442/build/sentry.js

    r3267777 r3268515  
    99            script.type = 'text/javascript';
    1010            script.src =
    11                 'https://cdn.we360.cloud/sentry/v1/client-1.0.14434.js';
     11                'https://cdn.we360.cloud/sentry/v1/client-1.0.14442.js';
    1212            script.id = 'web-engine-sentry-script';
    1313            document.head.appendChild(script);
  • web-engine-sentry/tags/1.0.14442/lib/weCap-wp-plugin-libs/src/Captcha.php

    r3267777 r3268515  
    3434    public static $instance;
    3535
    36     public const USERMETA_PASSWORD = 'we360cloud_sentry_password_reset_at';
    37     public const OPTION_PROTECT_FORMS = 'we360cloud_sentry_protectforms';
    38     public const OPTION_PROTECT_LOGIN = 'we360cloud_sentry_protectlogin';
     36    public const USERMETA_PASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_password_reset_at';
     37    public const OPTION_PROTECT_FORMS = Account::OPTION_NAME_PREFIX . 'sentry_protectforms';
     38    public const OPTION_PROTECT_LOGIN = Account::OPTION_NAME_PREFIX . 'sentry_protectlogin';
    3939    // public const OPTION_BLOCK_EXPIRE = 'we360cloud_sentry_blockonexpire';
    40     public const OPTION_PROTECT_COMMENTS = 'we360cloud_sentry_protectcomments';
    41     public const OPTION_EXEMPT = 'we360cloud_sentry_exempt';
    42     public const OPTION_TEST_MODE = 'we360cloud_sentry_testmode';
    43     public const OPTION_EXEMPT_USER = 'we360cloud_sentry_exempt_user';
    44     public const OPTION_DOMAIN = 'we360cloud_sentry_domain';
    45     public const OPTION_WCCHECKOUT = 'we360cloud_sentry_wccheckout';
     40    public const OPTION_PROTECT_COMMENTS = Account::OPTION_NAME_PREFIX . 'sentry_protectcomments';
     41    public const OPTION_EXEMPT = Account::OPTION_NAME_PREFIX . 'sentry_exempt';
     42    public const OPTION_TEST_MODE = Account::OPTION_NAME_PREFIX . 'entry_testmode';
     43    public const OPTION_EXEMPT_USER = Account::OPTION_NAME_PREFIX . 'sentry_exempt_user';
     44    public const OPTION_DOMAIN = Account::OPTION_NAME_PREFIX . 'sentry_domain';
     45    public const OPTION_LOSTPASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_lostpassword';
     46    public const OPTION_WCCHECKOUT = Account::OPTION_NAME_PREFIX . 'sentry_wccheckout';
    4647    public const NONCE = '_wesentry_nonce';
    4748    public const ACTION = 'web-engine_sentry-validate';
    4849
    49     public const CHALLENGE_TOKEN = 'we360cloud_sentry_challenge';
    50     public const MANAGE_TOKEN = 'we360cloud_sentry_manage';
     50    public const CHALLENGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_challenge';
     51    public const MANAGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_manage';
    5152
    5253    // Default exempt roles
     
    6667        ['name' => 'WPForms', 'version' => '1.9', 'notes' => 'Has custom field', 'classname' => 'WPForms_Field'],
    6768        ['name' => 'Gutena Forms', 'version' => '1.2.7', 'notes' => '', 'classname' => 'Gutena_Forms'],
    68         ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Login, register and checkout forms', 'classname' => 'WooCommerce']
     69        ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Enabled with protect login, protect forgot password and protect checkout', 'classname' => 'WooCommerce']
    6970    ];
    7071    // How long should a captcha be valid in the cache for (seconds)
     
    182183                        case Captcha::OPTION_PROTECT_COMMENTS:
    183184                        case Captcha::OPTION_WCCHECKOUT:
     185                        case Captcha::OPTION_LOSTPASSWORD:
    184186                            // case Captcha::OPTION_BLOCK_EXPIRE:
    185187                            update_option($option, $value);
     
    204206                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    205207                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     208                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    206209
    207210                    if (class_exists('WooCommerce')) {
     
    348351                        case Captcha::OPTION_PROTECT_COMMENTS:
    349352                        case Captcha::OPTION_WCCHECKOUT:
     353                        case Captcha::OPTION_LOSTPASSWORD:
    350354                            // case Captcha::OPTION_BLOCK_EXPIRE:
    351355                            update_option($option, $value);
     
    370374                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    371375                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     376                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    372377
    373378                    if (class_exists('WooCommerce')) {
     
    462467            }
    463468
     469            if ((bool) (get_option(Captcha::OPTION_LOSTPASSWORD, false) === 'true')) {
     470                // add captcha to lost password form
     471                add_action('lostpassword_form', [$this, 'wp_wecap']);
     472                add_action('woocommerce_lostpassword_form', [$this, 'wp_wecap']);
     473                // validate captcha on lost password form
     474                add_filter('lostpassword_post', [$this, 'wp_lost_password_check']);
     475            }
     476
    464477            // if protect comments is enabled
    465478            if ((bool) (get_option(Captcha::OPTION_PROTECT_COMMENTS, false) === 'true')) {
     
    591604    }
    592605
     606    public function wp_lost_password_check($errors) {
     607        if (!array_key_exists(Captcha::NONCE, $_POST) || (!wp_verify_nonce(sanitize_key($_POST[Captcha::NONCE]), Captcha::ACTION))) {
     608            $errors->add('user_captcha_error', 'Could not verify nonce');
     609        }
     610
     611        $pass = $this->captchaSubmit(sanitize_key(wp_unslash($_POST[Captcha::NONCE])), Captcha::ACTION);
     612        if (!$pass) {
     613            $errors->add('user_captcha_error', 'Captcha did not pass!');
     614        }
     615
     616        return $errors;
     617    }
     618
    593619    /**
    594620     * WordPress captcha validation
  • web-engine-sentry/tags/1.0.14442/readme.txt

    r3267777 r3268515  
    55Tested up to: 6.7
    66Requires PHP: 8.1
    7 Stable tag: 1.0.14434
     7Stable tag: 1.0.14442
    88License: Apache-2.0
    99License URI: https://www.apache.org/licenses/LICENSE-2.0
     
    4242= Is there a demo available?  =
    4343
    44 Yes, you can access the WordPress Playground at <a target="_blank" href="playground">link</a> to test the plugin’s development features, including examples.
     44Yes, you can access the WordPress Playground at <a target="_blank" href="?preview=1">link</a> to test the plugin’s development features, including examples.
    4545
    4646You can also use the plugin in development mode on locally hosted domains. The plugin, like the WordPress Playground, operates in a demonstration mode without requiring access to supporting services.
     
    9393
    9494= Stable =
     95* Added option for captchas on the forgotten password form
     96* Updated playground template
     97
     98= 1.0.14434 =
    9599* Added WooCommerce support. If WooCommerce is installed, an option to protect both legacy and new checkout experiences will be avaliable.
    96100
  • web-engine-sentry/tags/1.0.14442/src/components/step/Options.tsx

    r3267777 r3268515  
    4040
    4141    const [ wcCheckout, setWcCheckout ] = useState( true );
     42    const [ lostPassword, setLostPassword ] = useState( false );
    4243
    4344    function updateOption( option: string, value: any, callback: Function ) {
     
    8283    function updateWcCheckout( opt: boolean ) {
    8384        updateOption( 'we360cloud_sentry_wccheckout', opt, setWcCheckout );
     85    }
     86    function updateLostPassword( opt: boolean ) {
     87        updateOption( 'we360cloud_sentry_lostpassword', opt, setLostPassword );
    8488    }
    8589    function updateProtectComments( opt: boolean ) {
     
    142146                    );
    143147                    setWcCheckout( json.payload.we360cloud_sentry_wccheckout );
     148                    setLostPassword(
     149                        json.payload.we360cloud_sentry_lostpassword
     150                    );
    144151                }
    145152                setLoaded( true );
     
    225232                                    title="Protect login"
    226233                                />
     234                                <CheckOption
     235                                    checked={ lostPassword }
     236                                    onChange={ updateLostPassword }
     237                                    name="lostpassword"
     238                                    title="Protect forgot password"
     239                                />
    227240                                { wcCheckout !== undefined && (
    228241                                    <CheckOption
     
    258271                                    name="admin"
    259272                                    title="Protect login"
     273                                />
     274                                <CheckOption
     275                                    checked={ lostPassword }
     276                                    loading={ true }
     277                                    onChange={ () => null }
     278                                    name="lostpassword"
     279                                    title="Protect forgot password"
    260280                                />
    261281                            </div>
  • web-engine-sentry/tags/1.0.14442/vendor/autoload.php

    r3267777 r3268515  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5::getLoader();
     7return ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b::getLoader();
  • web-engine-sentry/tags/1.0.14442/vendor/composer/autoload_real.php

    r3267777 r3268515  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5
     5class ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b', 'loadClassLoader'));
    3030
    3131        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3333            require __DIR__ . '/autoload_static.php';
    3434
    35             call_user_func(\Composer\Autoload\ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::getInitializer($loader));
     35            call_user_func(\Composer\Autoload\ComposerStaticInit3c335db606d74991a94627a99c8ff48b::getInitializer($loader));
    3636        } else {
    3737            $map = require __DIR__ . '/autoload_namespaces.php';
     
    5454
    5555        if ($useStaticLoader) {
    56             $includeFiles = Composer\Autoload\ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$files;
     56            $includeFiles = Composer\Autoload\ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$files;
    5757        } else {
    5858            $includeFiles = require __DIR__ . '/autoload_files.php';
    5959        }
    6060        foreach ($includeFiles as $fileIdentifier => $file) {
    61             composerRequire50422d41ab0db97f3064beacfa8f8de5($fileIdentifier, $file);
     61            composerRequire3c335db606d74991a94627a99c8ff48b($fileIdentifier, $file);
    6262        }
    6363
     
    7171 * @return void
    7272 */
    73 function composerRequire50422d41ab0db97f3064beacfa8f8de5($fileIdentifier, $file)
     73function composerRequire3c335db606d74991a94627a99c8ff48b($fileIdentifier, $file)
    7474{
    7575    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • web-engine-sentry/tags/1.0.14442/vendor/composer/autoload_static.php

    r3267777 r3268515  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5
     7class ComposerStaticInit3c335db606d74991a94627a99c8ff48b
    88{
    99    public static $files = array (
     
    7171    {
    7272        return \Closure::bind(function () use ($loader) {
    73             $loader->prefixLengthsPsr4 = ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$prefixLengthsPsr4;
    74             $loader->prefixDirsPsr4 = ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$prefixDirsPsr4;
    75             $loader->classMap = ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$classMap;
     73            $loader->prefixLengthsPsr4 = ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$prefixLengthsPsr4;
     74            $loader->prefixDirsPsr4 = ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$prefixDirsPsr4;
     75            $loader->classMap = ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$classMap;
    7676
    7777        }, null, ClassLoader::class);
  • web-engine-sentry/tags/1.0.14442/vendor/composer/installed.php

    r3267777 r3268515  
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => '58aa40a7ec669363498f64889874822bb2433b24',
     8        'reference' => 'c064f992ea19d1f677833f69b0438c25ec6ebdba',
    99        'name' => '__root__',
    1010        'dev' => true,
     
    1717            'install_path' => __DIR__ . '/../../',
    1818            'aliases' => array(),
    19             'reference' => '58aa40a7ec669363498f64889874822bb2433b24',
     19            'reference' => 'c064f992ea19d1f677833f69b0438c25ec6ebdba',
    2020            'dev_requirement' => false,
    2121        ),
  • web-engine-sentry/tags/1.0.14442/vendor/web-engine/wecap/src/Captcha.php

    r3267777 r3268515  
    3434    public static $instance;
    3535
    36     public const USERMETA_PASSWORD = 'we360cloud_sentry_password_reset_at';
    37     public const OPTION_PROTECT_FORMS = 'we360cloud_sentry_protectforms';
    38     public const OPTION_PROTECT_LOGIN = 'we360cloud_sentry_protectlogin';
     36    public const USERMETA_PASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_password_reset_at';
     37    public const OPTION_PROTECT_FORMS = Account::OPTION_NAME_PREFIX . 'sentry_protectforms';
     38    public const OPTION_PROTECT_LOGIN = Account::OPTION_NAME_PREFIX . 'sentry_protectlogin';
    3939    // public const OPTION_BLOCK_EXPIRE = 'we360cloud_sentry_blockonexpire';
    40     public const OPTION_PROTECT_COMMENTS = 'we360cloud_sentry_protectcomments';
    41     public const OPTION_EXEMPT = 'we360cloud_sentry_exempt';
    42     public const OPTION_TEST_MODE = 'we360cloud_sentry_testmode';
    43     public const OPTION_EXEMPT_USER = 'we360cloud_sentry_exempt_user';
    44     public const OPTION_DOMAIN = 'we360cloud_sentry_domain';
    45     public const OPTION_WCCHECKOUT = 'we360cloud_sentry_wccheckout';
     40    public const OPTION_PROTECT_COMMENTS = Account::OPTION_NAME_PREFIX . 'sentry_protectcomments';
     41    public const OPTION_EXEMPT = Account::OPTION_NAME_PREFIX . 'sentry_exempt';
     42    public const OPTION_TEST_MODE = Account::OPTION_NAME_PREFIX . 'entry_testmode';
     43    public const OPTION_EXEMPT_USER = Account::OPTION_NAME_PREFIX . 'sentry_exempt_user';
     44    public const OPTION_DOMAIN = Account::OPTION_NAME_PREFIX . 'sentry_domain';
     45    public const OPTION_LOSTPASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_lostpassword';
     46    public const OPTION_WCCHECKOUT = Account::OPTION_NAME_PREFIX . 'sentry_wccheckout';
    4647    public const NONCE = '_wesentry_nonce';
    4748    public const ACTION = 'web-engine_sentry-validate';
    4849
    49     public const CHALLENGE_TOKEN = 'we360cloud_sentry_challenge';
    50     public const MANAGE_TOKEN = 'we360cloud_sentry_manage';
     50    public const CHALLENGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_challenge';
     51    public const MANAGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_manage';
    5152
    5253    // Default exempt roles
     
    6667        ['name' => 'WPForms', 'version' => '1.9', 'notes' => 'Has custom field', 'classname' => 'WPForms_Field'],
    6768        ['name' => 'Gutena Forms', 'version' => '1.2.7', 'notes' => '', 'classname' => 'Gutena_Forms'],
    68         ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Login, register and checkout forms', 'classname' => 'WooCommerce']
     69        ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Enabled with protect login, protect forgot password and protect checkout', 'classname' => 'WooCommerce']
    6970    ];
    7071    // How long should a captcha be valid in the cache for (seconds)
     
    182183                        case Captcha::OPTION_PROTECT_COMMENTS:
    183184                        case Captcha::OPTION_WCCHECKOUT:
     185                        case Captcha::OPTION_LOSTPASSWORD:
    184186                            // case Captcha::OPTION_BLOCK_EXPIRE:
    185187                            update_option($option, $value);
     
    204206                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    205207                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     208                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    206209
    207210                    if (class_exists('WooCommerce')) {
     
    348351                        case Captcha::OPTION_PROTECT_COMMENTS:
    349352                        case Captcha::OPTION_WCCHECKOUT:
     353                        case Captcha::OPTION_LOSTPASSWORD:
    350354                            // case Captcha::OPTION_BLOCK_EXPIRE:
    351355                            update_option($option, $value);
     
    370374                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    371375                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     376                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    372377
    373378                    if (class_exists('WooCommerce')) {
     
    462467            }
    463468
     469            if ((bool) (get_option(Captcha::OPTION_LOSTPASSWORD, false) === 'true')) {
     470                // add captcha to lost password form
     471                add_action('lostpassword_form', [$this, 'wp_wecap']);
     472                add_action('woocommerce_lostpassword_form', [$this, 'wp_wecap']);
     473                // validate captcha on lost password form
     474                add_filter('lostpassword_post', [$this, 'wp_lost_password_check']);
     475            }
     476
    464477            // if protect comments is enabled
    465478            if ((bool) (get_option(Captcha::OPTION_PROTECT_COMMENTS, false) === 'true')) {
     
    591604    }
    592605
     606    public function wp_lost_password_check($errors) {
     607        if (!array_key_exists(Captcha::NONCE, $_POST) || (!wp_verify_nonce(sanitize_key($_POST[Captcha::NONCE]), Captcha::ACTION))) {
     608            $errors->add('user_captcha_error', 'Could not verify nonce');
     609        }
     610
     611        $pass = $this->captchaSubmit(sanitize_key(wp_unslash($_POST[Captcha::NONCE])), Captcha::ACTION);
     612        if (!$pass) {
     613            $errors->add('user_captcha_error', 'Captcha did not pass!');
     614        }
     615
     616        return $errors;
     617    }
     618
    593619    /**
    594620     * WordPress captcha validation
  • web-engine-sentry/tags/1.0.14442/web-engine-sentry.php

    r3267777 r3268515  
    55 * Plugin URI: https://www.web-engineer.co.uk/doc/sentry-wordpress
    66 * description: Secure your forms and login
    7  * Version: 1.0.14434
     7 * Version: 1.0.14442
    88 * Author: Web Engineer
    99 * Author URI: https://www.web-engineer.co.uk
  • web-engine-sentry/trunk/build/main.asset.php

    r3267777 r3268515  
    1 <?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime'), 'version' => '3ce3badd024859a4a6de');
     1<?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime'), 'version' => 'd35cadbc8d8ab84e6339');
  • web-engine-sentry/trunk/build/main.js

    r3267777 r3268515  
    5757/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
    5858
    59 eval("\n// NAMESPACE OBJECT: ./node_modules/query-string/base.js\nvar base_namespaceObject = {};\n__webpack_require__.r(base_namespaceObject);\n__webpack_require__.d(base_namespaceObject, {\n  exclude: () => (exclude),\n  extract: () => (extract),\n  parse: () => (parse),\n  parseUrl: () => (parseUrl),\n  pick: () => (pick),\n  stringify: () => (stringify),\n  stringifyUrl: () => (stringifyUrl)\n});\n\n;// external \"ReactJSXRuntime\"\nconst external_ReactJSXRuntime_namespaceObject = window[\"ReactJSXRuntime\"];\n// EXTERNAL MODULE: ./node_modules/react-dom/client.js\nvar client = __webpack_require__(\"./node_modules/react-dom/client.js\");\n;// external \"React\"\nconst external_React_namespaceObject = window[\"React\"];\nvar external_React_namespaceObject_0 = /*#__PURE__*/__webpack_require__.t(external_React_namespaceObject, 2);\n;// ./src/components/WebUiLogo.tsx\n\n\nconst WebUiLogo = ({ isLoading, className, }) => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: className, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: ` ${isLoading ? 'animate-[spin_6s_infinite]' : ''}`, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1727.29,904.649L1832.46,1009.82L1743.76,944.049C1711.49,971.549 1670.7,989.341 1625.94,992.893L1609.34,1104.72L1592.74,992.893C1560.53,990.338 1530.39,980.412 1503.99,964.802L1533.56,935.235C1556.31,946.833 1582.07,953.376 1609.34,953.376C1655.35,953.376 1697.04,934.755 1727.29,904.649Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1430.12,681.758L1459.74,711.378C1448.46,733.883 1442.11,759.279 1442.11,786.146C1442.11,831.566 1460.26,872.78 1489.68,902.921L1392.35,1000.25L1451.44,920.562C1423.94,888.294 1406.14,847.511 1402.59,802.747L1290.77,786.146L1402.59,769.546C1405.12,737.729 1414.83,707.925 1430.12,681.758Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1830.85,563.667L1834.6,560.883L1767.24,651.731C1794.74,683.999 1812.53,724.782 1816.09,769.546L1927.91,786.146L1816.09,802.747C1813.58,834.358 1803.97,863.982 1788.86,890.025L1759.21,860.378C1770.32,838.009 1776.57,812.802 1776.57,786.146C1776.57,739.749 1757.63,697.739 1727.08,667.436L1830.85,563.667Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1389.34,564.783L1474.92,628.244C1507.19,600.744 1547.97,582.952 1592.74,579.4L1609.34,467.575L1625.94,579.4C1657.16,581.877 1686.44,591.281 1712.25,606.072L1682.55,635.775C1660.43,624.978 1635.59,618.917 1609.34,618.917C1563.53,618.917 1522,637.374 1491.8,667.242L1389.34,564.783Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) })] }) })] }) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"absolute top-0 right-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1693.55,711.864C1704.35,743.391 1704.53,851.487 1611.63,912.994C1520.21,852.414 1520.39,743.689 1529.72,711.864C1555.26,700.92 1578.06,693.3 1611.63,693.49C1643.32,693.669 1668.78,698.809 1693.55,711.864ZM1543.69,727.081C1543.63,727.108 1543.57,727.135 1543.5,727.162C1535.73,753.659 1535.58,844.181 1611.7,894.619C1688.46,843.796 1688.9,754.764 1680.1,727.766C1686.79,759.409 1681.87,838.522 1611.71,884.976C1542.12,838.863 1537.75,758.469 1543.69,727.081Z\", style: { fill: 'white' } }) }) })] }) }) }) })] }));\n};\n\n;// ./node_modules/@heroicons/react/20/solid/esm/ArrowTopRightOnSquareIcon.js\n\nfunction ArrowTopRightOnSquareIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4.25 5.5a.75.75 0 0 0-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-4a.75.75 0 0 1 1.5 0v4A2.25 2.25 0 0 1 12.75 17h-8.5A2.25 2.25 0 0 1 2 14.75v-8.5A2.25 2.25 0 0 1 4.25 4h5a.75.75 0 0 1 0 1.5h-5Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M6.194 12.753a.75.75 0 0 0 1.06.053L16.5 4.44v2.81a.75.75 0 0 0 1.5 0v-4.5a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0 0 1.5h2.553l-9.056 8.194a.75.75 0 0 0-.053 1.06Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowTopRightOnSquareIcon);\n/* harmony default export */ const esm_ArrowTopRightOnSquareIcon = (ForwardRef);\n;// ./src/components/step/Intro.tsx\n\nfunction Intro({ onSetShowReg }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-2xl text-zinc-100\", children: \"Registration with the service provider is required in order to use this service.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-xl text-zinc-100\", children: [\"This service is designed to enhance the security of form submissions and admin access. It\\u2019s\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"privacy-first\" }), \" plugin, our servers only use data strictly necessary to provide the service and authenticate users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"The\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"basic service is entirely free to use\" }), \"; however, it uses a simple challenge that can be easily solved by bots using AI. Our premium service offers comprehensive protection and is available to all registered users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onSetShowReg(true), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"Begin\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"Note that this plugin should be integrated into your overall security strategy. Documentation and support are provided, but appropriate configuration is necessary. The plugin has been tested on the current versions of the most popular form plugins.\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"It is crucial to keep your installation and its installed plugins and themes up-to-date.\" })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\n\nfunction ArrowPathIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"\n  }));\n}\nconst ArrowPathIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowPathIcon);\n/* harmony default export */ const esm_ArrowPathIcon = (ArrowPathIcon_ForwardRef);\n;// ./src/components/CheckOption.tsx\n\n\n\nfunction CheckOption({ checked, disabled, onChange, name, title, description, loading = false, }) {\n    const toggleCheck = (e) => {\n        const newChecked = !checked;\n        setOurChecked(newChecked);\n        onChange(newChecked);\n        e.preventDefault();\n    };\n    const [ourChecked, setOurChecked] = (0,external_React_namespaceObject.useState)(checked);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex h-6 items-center\", children: [(ourChecked !== checked || loading) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 animate-spin inline\" })), ourChecked === checked && checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" })), ourChecked === checked && !checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-3 text-sm/6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { className: \"text-left\", onClick: toggleCheck, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: name, className: \"font-medium text-white\", children: title }), undefined !== description && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sky-100\", children: description }))] }) })] }));\n}\n\n;// ./src/components/step/Communications.tsx\n\n\nfunction Communications({ registrationStep, onCommAdministrative, onCommNews, onCommDeveloper, commAdministrative, commNews, commDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Communication preferences -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commAdministrative, onChange: onCommAdministrative, name: \"administrative\", title: \"Administrative\", description: \"Adminmistrative notifications\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commNews, onChange: onCommNews, name: \"information\", title: \"News & information\", description: \"Tips and tricks on how to use this and related products\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commDeveloper, onChange: onCommDeveloper, name: \"devel\", title: \"Developer notices\", description: \"Notification of updates to services plugins and API's\" })] })] }));\n}\n\n;// ./src/components/step/Register.tsx\n\n\n\nfunction Register({ setShowReg, getPin, registrationStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Name\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: 'register' !== registrationStep, id: \"name\", name: \"name\", defaultValue: registrationName, onChange: (e) => onRegistrationName(e.target.value), onBlur: (e) => onRegistrationName(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Email address\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: \"email\", name: \"email\", type: \"email\", disabled: 'register' !== registrationStep, defaultValue: registrationEmail, onChange: (e) => onRegistrationEmail(e.target.value), onBlur: (e) => onRegistrationEmail(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: \"We will send a \\u201Cpin\\u201D to this email address which you will need on the next step to complete the registration process - this must be a valid email address to progress.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: registrationStep, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", disabled: 'registering' === registrationStep, className: 'inline-flex w-full justify-center rounded-md bg-sky-700 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm ' +\n                            ('register' === registrationStep\n                                ? 'hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700'\n                                : 'opacity-80'), onClick: () => setShowReg(false), children: \"Back\" }), 'registering' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Registering\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", className: \"inline-flex w-full justify-center rounded-md bg-sky-500 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500\", onClick: () => getPin(), children: \"Register\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", {})] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/InboxArrowDownIcon.js\n\nfunction InboxArrowDownIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 3.75H6.912a2.25 2.25 0 0 0-2.15 1.588L2.35 13.177a2.25 2.25 0 0 0-.1.661V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 0 0-2.15-1.588H15M2.25 13.5h3.86a2.25 2.25 0 0 1 2.012 1.244l.256.512a2.25 2.25 0 0 0 2.013 1.244h3.218a2.25 2.25 0 0 0 2.013-1.244l.256-.512a2.25 2.25 0 0 1 2.013-1.244h3.859M12 3v8.25m0 0-3-3m3 3 3-3\"\n  }));\n}\nconst InboxArrowDownIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(InboxArrowDownIcon);\n/* harmony default export */ const esm_InboxArrowDownIcon = (InboxArrowDownIcon_ForwardRef);\n;// ./src/components/step/PinCheck.tsx\n\n\nfunction PinCheck({ pin, registrationStep, registrationEmail, onPin, onStep, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", method: \"POST\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate inline-flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100 ring-1 ring-inset ring-zinc-300/10\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_InboxArrowDownIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"To\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/40 px-3 py-2 text-sm font-semibold text-white ring-1 ring-inset ring-zinc-300/10\", children: registrationEmail })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"label\", { htmlFor: \"pin\", className: \"mt-6 mb-1 text-pretty text-lg/8 text-zinc-100\", children: [\"An email has been sent from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"containing a pin, please enter below to continue -\"] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-2 inline-flex items-center\", children: [registrationStep !== 'bad pin' &&\n                                registrationStep !== 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: registrationStep === 'pin check', name: \"pin\", type: \"text\", onChange: (e) => onPin(e.target.value), onBlur: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950 ring-white ring-2\" })), (registrationStep === 'bad pin' ||\n                                registrationStep === 'error pin') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { name: \"pin\", type: \"text\", defaultValue: \"\", onFocus: (e) => onPin(e.target.value), onChange: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950/50 ring-white ring-2\" }), registrationStep === 'bad pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"that didn't work, please try again\"] })), registrationStep === 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"unable to connect to verify pin, please try later\"] }))] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-white\", children: \"Please check Junk / Spam folders and the addressed used, the email should arrive within a few minuites and will expire after a short while. You can always refresh and try again if your having trouble.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-2\", children: [registrationStep === 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900/50 px-3 py-2 text-sm font-semibold text-white/50 shadow-sm  focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { disabled: true, className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Verifying\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] }) })] })), registrationStep !== 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-800\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { disabled: pin && pin.length === 6 ? false : true, className: 'inline-flex w-full justify-center rounded-md px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500' +\n                                        (pin && pin.length === 6\n                                            ? ' bg-sky-500 hover:bg-sky-400'\n                                            : ' bg-sky-900'), onClick: () => pin && pin.length === 6\n                                        ? onStep('pin check')\n                                        : onStep('bad pin'), children: \"Verify\" }) })] }))] })] }));\n}\n\n;// ./node_modules/@headlessui/react/dist/utils/micro-task.js\nfunction micro_task_t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}\n\n;// ./node_modules/@headlessui/react/dist/utils/disposables.js\nfunction disposables_o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return micro_task_t(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=disposables_o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-disposables.js\nfunction use_disposables_p(){let[e]=(0,external_React_namespaceObject.useState)(disposables_o);return (0,external_React_namespaceObject.useEffect)(()=>()=>e.dispose(),[e]),e}\n\n;// ./node_modules/@headlessui/react/dist/utils/env.js\nvar i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js\nlet use_iso_morphic_effect_n=(e,t)=>{s.isServer?(0,external_React_namespaceObject.useEffect)(e,t):(0,external_React_namespaceObject.useLayoutEffect)(e,t)};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-latest-value.js\nfunction use_latest_value_s(e){let r=(0,external_React_namespaceObject.useRef)(e);return use_iso_morphic_effect_n(()=>{r.current=e},[e]),r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-event.js\nlet use_event_o=function(t){let e=use_latest_value_s(t);return external_React_namespaceObject.useCallback((...r)=>e.current(...r),[e])};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-is-mounted.js\nfunction f(){let e=(0,external_React_namespaceObject.useRef)(!1);return use_iso_morphic_effect_n(()=>(e.current=!0,()=>{e.current=!1}),[]),e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js\nfunction use_server_handoff_complete_s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\" in external_React_namespaceObject_0?(o=>o.useSyncExternalStore)(external_React_namespaceObject_0)(()=>()=>{},()=>!1,()=>!r):!1}function use_server_handoff_complete_l(){let r=use_server_handoff_complete_s(),[e,n]=external_React_namespaceObject.useState(s.isHandoffComplete);return e&&s.isHandoffComplete===!1&&n(!1),external_React_namespaceObject.useEffect(()=>{e!==!0&&n(!0)},[e]),external_React_namespaceObject.useEffect(()=>s.handoff(),[]),r?!1:e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-sync-refs.js\nlet u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function use_sync_refs_y(...t){let n=(0,external_React_namespaceObject.useRef)(t);(0,external_React_namespaceObject.useEffect)(()=>{n.current=t},[t]);let c=use_event_o(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-flags.js\nfunction c(u=0){let[t,l]=(0,external_React_namespaceObject.useState)(u),g=(0,external_React_namespaceObject.useCallback)(e=>l(e),[t]),s=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a|e),[t]),m=(0,external_React_namespaceObject.useCallback)(e=>(t&e)===e,[t]),n=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a&~e),[l]),F=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-transition.js\nvar use_transition_T,b;typeof process!=\"undefined\"&&typeof globalThis!=\"undefined\"&&typeof Element!=\"undefined\"&&((use_transition_T=process==null?void 0:process.env)==null?void 0:use_transition_T[\"NODE_ENV\"])===\"test\"&&typeof((b=Element==null?void 0:Element.prototype)==null?void 0:b.getAnimations)==\"undefined\"&&(Element.prototype.getAnimations=function(){return console.warn([\"Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\",\"Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\",\"\",\"Example usage:\",\"```js\",\"import { mockAnimationsApi } from 'jsdom-testing-mocks'\",\"mockAnimationsApi()\",\"```\"].join(`\n`)),[]});var L=(r=>(r[r.None=0]=\"None\",r[r.Closed=1]=\"Closed\",r[r.Enter=2]=\"Enter\",r[r.Leave=4]=\"Leave\",r))(L||{});function use_transition_R(t){let n={};for(let e in t)t[e]===!0&&(n[`data-${e}`]=\"\");return n}function x(t,n,e,i){let[r,o]=(0,external_React_namespaceObject.useState)(e),{hasFlag:s,addFlag:a,removeFlag:l}=c(t&&r?3:0),u=(0,external_React_namespaceObject.useRef)(!1),f=(0,external_React_namespaceObject.useRef)(!1),E=use_disposables_p();return use_iso_morphic_effect_n(()=>{var d;if(t){if(e&&o(!0),!n){e&&a(3);return}return(d=i==null?void 0:i.start)==null||d.call(i,e),C(n,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(e?(a(3),l(4)):(a(4),l(2)))},run(){f.current?e?(l(3),a(4)):(l(4),a(3)):e?l(1):a(1)},done(){var p;f.current&&typeof n.getAnimations==\"function\"&&n.getAnimations().length>0||(u.current=!1,l(7),e||o(!1),(p=i==null?void 0:i.end)==null||p.call(i,e))}})}},[t,e,n,E]),t?[r,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(t,{prepare:n,run:e,done:i,inFlight:r}){let o=disposables_o();return j(t,{prepare:n,inFlight:r}),o.nextFrame(()=>{e(),o.requestAnimationFrame(()=>{o.add(M(t,i))})}),o.dispose}function M(t,n){var o,s;let e=disposables_o();if(!t)return e.dispose;let i=!1;e.add(()=>{i=!0});let r=(s=(o=t.getAnimations)==null?void 0:o.call(t).filter(a=>a instanceof CSSTransition))!=null?s:[];return r.length===0?(n(),e.dispose):(Promise.allSettled(r.map(a=>a.finished)).then(()=>{i||n()}),e.dispose)}function j(t,{inFlight:n,prepare:e}){if(n!=null&&n.current){e();return}let i=t.style.transition;t.style.transition=\"none\",e(),t.offsetHeight,t.style.transition=i}\n\n;// ./node_modules/@headlessui/react/dist/internal/open-closed.js\nlet n=(0,external_React_namespaceObject.createContext)(null);n.displayName=\"OpenClosedContext\";var open_closed_i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(open_closed_i||{});function open_closed_u(){return (0,external_React_namespaceObject.useContext)(n)}function open_closed_c({value:o,children:t}){return external_React_namespaceObject.createElement(n.Provider,{value:o},t)}function open_closed_s({children:o}){return external_React_namespaceObject.createElement(n.Provider,{value:null},o)}\n\n;// ./node_modules/@headlessui/react/dist/utils/class-names.js\nfunction class_names_t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}\n\n;// ./node_modules/@headlessui/react/dist/utils/match.js\nfunction match_u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,match_u),t}\n\n;// ./node_modules/@headlessui/react/dist/utils/render.js\nvar O=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(O||{}),render_A=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(render_A||{});function render_L(){let n=U();return (0,external_React_namespaceObject.useCallback)(r=>render_C({mergeRefs:n,...r}),[n])}function render_C({ourProps:n,theirProps:r,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:$;let o=P(r,n);if(t)return F(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return F(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return match_u(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return F(o,e,a,l,i)}function F(n,r={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(n,[\"unmount\",\"static\"]),y=n.ref!==void 0?{[i]:n.ref}:{},f=typeof l==\"function\"?l(r):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(r)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(t===external_React_namespaceObject.Fragment&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!(0,external_React_namespaceObject.isValidElement)(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>`  - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>`  - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...R)=>class_names_t(p(...R),o.className):class_names_t(p,o.className),T=c?{className:c}:{},g=P(f.props,m(h(o,[\"ref\"])));for(let R in u)R in g&&delete u[R];return (0,external_React_namespaceObject.cloneElement)(f,Object.assign({},g,u,y,{ref:s(H(f),y.ref)},T))}return (0,external_React_namespaceObject.createElement)(t,Object.assign({},h(o,[\"ref\"]),t!==external_React_namespaceObject.Fragment&&y,t!==external_React_namespaceObject.Fragment&&u),f)}function U(){let n=(0,external_React_namespaceObject.useRef)([]),r=(0,external_React_namespaceObject.useCallback)(e=>{for(let a of n.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return n.current=e,r}}function $(...n){return n.every(r=>r==null)?void 0:r=>{for(let e of n)e!=null&&(typeof e==\"function\"?e(r):e.current=r)}}function P(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];if(r.disabled||r[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(r,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return r}function render_(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];for(let s in e)Object.assign(r,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return r}function K(n){var r;return Object.assign((0,external_React_namespaceObject.forwardRef)(n),{displayName:(r=n.displayName)!=null?r:n.name})}function m(n){let r=Object.assign({},n);for(let e in r)r[e]===void 0&&delete r[e];return r}function h(n,r=[]){let e=Object.assign({},n);for(let a of r)a in e&&delete e[a];return e}function H(n){return external_React_namespaceObject.version.split(\".\")[0]>=\"19\"?n.props.ref:n.ref}\n\n;// ./node_modules/@headlessui/react/dist/components/transition/transition.js\n\"use client\";function ue(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:de)!==external_React_namespaceObject.Fragment||external_React_namespaceObject.Children.count(e.children)===1}let w=(0,external_React_namespaceObject.createContext)(null);w.displayName=\"TransitionContext\";var _e=(n=>(n.Visible=\"visible\",n.Hidden=\"hidden\",n))(_e||{});function De(){let e=(0,external_React_namespaceObject.useContext)(w);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}function He(){let e=(0,external_React_namespaceObject.useContext)(transition_M);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}let transition_M=(0,external_React_namespaceObject.createContext)(null);transition_M.displayName=\"NestingContext\";function transition_U(e){return\"children\"in e?transition_U(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t===\"visible\").length>0}function Te(e,t){let n=use_latest_value_s(e),l=(0,external_React_namespaceObject.useRef)([]),S=f(),R=use_disposables_p(),d=use_event_o((o,i=render_A.Hidden)=>{let a=l.current.findIndex(({el:s})=>s===o);a!==-1&&(match_u(i,{[render_A.Unmount](){l.current.splice(a,1)},[render_A.Hidden](){l.current[a].state=\"hidden\"}}),R.microTask(()=>{var s;!transition_U(l)&&S.current&&((s=n.current)==null||s.call(n))}))}),y=use_event_o(o=>{let i=l.current.find(({el:a})=>a===o);return i?i.state!==\"visible\"&&(i.state=\"visible\"):l.current.push({el:o,state:\"visible\"}),()=>d(o,render_A.Unmount)}),p=(0,external_React_namespaceObject.useRef)([]),c=(0,external_React_namespaceObject.useRef)(Promise.resolve()),C=(0,external_React_namespaceObject.useRef)({enter:[],leave:[]}),h=use_event_o((o,i,a)=>{p.current.splice(0),t&&(t.chains.current[i]=t.chains.current[i].filter(([s])=>s!==o)),t==null||t.chains.current[i].push([o,new Promise(s=>{p.current.push(s)})]),t==null||t.chains.current[i].push([o,new Promise(s=>{Promise.all(C.current[i].map(([r,f])=>f)).then(()=>s())})]),i===\"enter\"?c.current=c.current.then(()=>t==null?void 0:t.wait.current).then(()=>a(i)):a(i)}),g=use_event_o((o,i,a)=>{Promise.all(C.current[i].splice(0).map(([s,r])=>r)).then(()=>{var s;(s=p.current.shift())==null||s()}).then(()=>a(i))});return (0,external_React_namespaceObject.useMemo)(()=>({children:l,register:y,unregister:d,onStart:h,onStop:g,wait:c,chains:C}),[y,d,l,h,g,C,c])}let de=external_React_namespaceObject.Fragment,fe=O.RenderStrategy;function Ae(e,t){var ee,te;let{transition:n=!0,beforeEnter:l,afterEnter:S,beforeLeave:R,afterLeave:d,enter:y,enterFrom:p,enterTo:c,entered:C,leave:h,leaveFrom:g,leaveTo:o,...i}=e,[a,s]=(0,external_React_namespaceObject.useState)(null),r=(0,external_React_namespaceObject.useRef)(null),f=ue(e),j=use_sync_refs_y(...f?[r,t,s]:t===null?[]:[t]),H=(ee=i.unmount)==null||ee?render_A.Unmount:render_A.Hidden,{show:u,appear:z,initial:K}=De(),[v,G]=(0,external_React_namespaceObject.useState)(u?\"visible\":\"hidden\"),Q=He(),{register:A,unregister:I}=Q;use_iso_morphic_effect_n(()=>A(r),[A,r]),use_iso_morphic_effect_n(()=>{if(H===render_A.Hidden&&r.current){if(u&&v!==\"visible\"){G(\"visible\");return}return match_u(v,{[\"hidden\"]:()=>I(r),[\"visible\"]:()=>A(r)})}},[v,r,A,I,u,H]);let B=use_server_handoff_complete_l();use_iso_morphic_effect_n(()=>{if(f&&B&&v===\"visible\"&&r.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[r,v,B,f]);let ce=K&&!z,Y=z&&u&&K,W=(0,external_React_namespaceObject.useRef)(!1),L=Te(()=>{W.current||(G(\"hidden\"),I(r))},Q),Z=use_event_o(k=>{W.current=!0;let F=k?\"enter\":\"leave\";L.onStart(r,F,_=>{_===\"enter\"?l==null||l():_===\"leave\"&&(R==null||R())})}),$=use_event_o(k=>{let F=k?\"enter\":\"leave\";W.current=!1,L.onStop(r,F,_=>{_===\"enter\"?S==null||S():_===\"leave\"&&(d==null||d())}),F===\"leave\"&&!transition_U(L)&&(G(\"hidden\"),I(r))});(0,external_React_namespaceObject.useEffect)(()=>{f&&n||(Z(u),$(u))},[u,f,n]);let pe=(()=>!(!n||!f||!B||ce))(),[,T]=x(pe,a,u,{start:Z,end:$}),Ce=m({ref:j,className:((te=class_names_t(i.className,Y&&y,Y&&p,T.enter&&y,T.enter&&T.closed&&p,T.enter&&!T.closed&&c,T.leave&&h,T.leave&&!T.closed&&g,T.leave&&T.closed&&o,!T.transition&&u&&C))==null?void 0:te.trim())||void 0,...use_transition_R(T)}),N=0;v===\"visible\"&&(N|=open_closed_i.Open),v===\"hidden\"&&(N|=open_closed_i.Closed),T.enter&&(N|=open_closed_i.Opening),T.leave&&(N|=open_closed_i.Closing);let he=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:L},external_React_namespaceObject.createElement(open_closed_c,{value:N},he({ourProps:Ce,theirProps:i,defaultTag:de,features:fe,visible:v===\"visible\",name:\"Transition.Child\"})))}function Ie(e,t){let{show:n,appear:l=!1,unmount:S=!0,...R}=e,d=(0,external_React_namespaceObject.useRef)(null),y=ue(e),p=use_sync_refs_y(...y?[d,t]:t===null?[]:[t]);use_server_handoff_complete_l();let c=open_closed_u();if(n===void 0&&c!==null&&(n=(c&open_closed_i.Open)===open_closed_i.Open),n===void 0)throw new Error(\"A <Transition /> is used but it is missing a `show={true | false}` prop.\");let[C,h]=(0,external_React_namespaceObject.useState)(n?\"visible\":\"hidden\"),g=Te(()=>{n||h(\"hidden\")}),[o,i]=(0,external_React_namespaceObject.useState)(!0),a=(0,external_React_namespaceObject.useRef)([n]);use_iso_morphic_effect_n(()=>{o!==!1&&a.current[a.current.length-1]!==n&&(a.current.push(n),i(!1))},[a,n]);let s=(0,external_React_namespaceObject.useMemo)(()=>({show:n,appear:l,initial:o}),[n,l,o]);use_iso_morphic_effect_n(()=>{n?h(\"visible\"):!transition_U(g)&&d.current!==null&&h(\"hidden\")},[n,g]);let r={unmount:S},f=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeEnter)==null||u.call(e)}),j=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeLeave)==null||u.call(e)}),H=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:g},external_React_namespaceObject.createElement(w.Provider,{value:s},H({ourProps:{...r,as:external_React_namespaceObject.Fragment,children:external_React_namespaceObject.createElement(me,{ref:p,...r,...R,beforeEnter:f,beforeLeave:j})},theirProps:{},defaultTag:external_React_namespaceObject.Fragment,features:fe,visible:C===\"visible\",name:\"Transition\"})))}function Le(e,t){let n=(0,external_React_namespaceObject.useContext)(w)!==null,l=open_closed_u()!==null;return external_React_namespaceObject.createElement(external_React_namespaceObject.Fragment,null,!n&&l?external_React_namespaceObject.createElement(X,{ref:t,...e}):external_React_namespaceObject.createElement(me,{ref:t,...e}))}let X=K(Ie),me=K(Ae),Fe=K(Le),ze=Object.assign(X,{Child:Fe,Root:X});\n\n;// ./node_modules/decode-uri-component/index.js\nconst token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nfunction decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n\n;// ./node_modules/filter-obj/index.js\nfunction includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n\n;// ./node_modules/split-on-first/index.js\nfunction splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n\n;// ./node_modules/query-string/base.js\n\n\n\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && base_decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? base_decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => base_decode(item, options)) : (value === null ? value : base_decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? base_decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: base_decode(value, options).split(options.arrayFormatSeparator);\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction base_decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeUriComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options, type) {\n\tif (type === 'string' && typeof value === 'string') {\n\t\treturn value;\n\t}\n\n\tif (typeof type === 'function' && typeof value === 'string') {\n\t\treturn type(value);\n\t}\n\n\tif (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (type === 'number' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\treturn value;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\ttypes: Object.create(null),\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : base_decode(value, options));\n\t\tformatter(base_decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null && options.types[key] !== 'string') {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tconst type = options.types[key] ? options.types[key].replace('[]', '') : undefined;\n\t\t\t\tvalue[key2] = parseValue(value2, options, type);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && options.types[key] === 'string') {\n\t\t\treturnValue[key] = Object.values(value).join(options.arrayFormatSeparator);\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options, options.types[key]);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nfunction stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nfunction parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: base_decode(hash, options)} : {}),\n\t};\n}\n\nfunction stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nfunction pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nfunction exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n\n;// ./node_modules/query-string/index.js\n\n\n/* harmony default export */ const query_string = (base_namespaceObject);\n\n;// ./node_modules/@heroicons/react/24/solid/esm/LinkSlashIcon.js\n\nfunction LinkSlashIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.892 4.09a3.75 3.75 0 0 0-5.303 0l-4.5 4.5c-.074.074-.144.15-.21.229l4.965 4.966a3.75 3.75 0 0 0-1.986-4.428.75.75 0 0 1 .646-1.353 5.253 5.253 0 0 1 2.502 6.944l5.515 5.515a.75.75 0 0 1-1.061 1.06l-18-18.001A.75.75 0 0 1 3.521 2.46l5.294 5.295a5.31 5.31 0 0 1 .213-.227l4.5-4.5a5.25 5.25 0 1 1 7.425 7.425l-1.757 1.757a.75.75 0 1 1-1.06-1.06l1.756-1.757a3.75 3.75 0 0 0 0-5.304ZM5.846 11.773a.75.75 0 0 1 0 1.06l-1.757 1.758a3.75 3.75 0 0 0 5.303 5.304l3.129-3.13a.75.75 0 1 1 1.06 1.061l-3.128 3.13a5.25 5.25 0 1 1-7.425-7.426l1.757-1.757a.75.75 0 0 1 1.061 0Zm2.401.26a.75.75 0 0 1 .957.458c.18.512.474.992.885 1.403.31.311.661.555 1.035.733a.75.75 0 0 1-.647 1.354 5.244 5.244 0 0 1-1.449-1.026 5.232 5.232 0 0 1-1.24-1.965.75.75 0 0 1 .46-.957Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst LinkSlashIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(LinkSlashIcon);\n/* harmony default export */ const esm_LinkSlashIcon = (LinkSlashIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/ShieldCheckIcon.js\n\nfunction ShieldCheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M12.516 2.17a.75.75 0 0 0-1.032 0 11.209 11.209 0 0 1-7.877 3.08.75.75 0 0 0-.722.515A12.74 12.74 0 0 0 2.25 9.75c0 5.942 4.064 10.933 9.563 12.348a.749.749 0 0 0 .374 0c5.499-1.415 9.563-6.406 9.563-12.348 0-1.39-.223-2.73-.635-3.985a.75.75 0 0 0-.722-.516l-.143.001c-2.996 0-5.717-1.17-7.734-3.08Zm3.094 8.016a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ShieldCheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ShieldCheckIcon);\n/* harmony default export */ const esm_ShieldCheckIcon = (ShieldCheckIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M1.5 8.67v8.58a3 3 0 0 0 3 3h15a3 3 0 0 0 3-3V8.67l-8.928 5.493a3 3 0 0 1-3.144 0L1.5 8.67Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M22.5 6.908V6.75a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3v.158l9.714 5.978a1.5 1.5 0 0 0 1.572 0L22.5 6.908Z\"\n  }));\n}\nconst EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon);\n/* harmony default export */ const esm_EnvelopeIcon = (EnvelopeIcon_ForwardRef);\n;// ./src/components/step/FinishSetup.tsx\n\n\nfunction FinishSetup({ logged = false }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [logged && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ShieldCheckIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" })), !logged && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"Basic\"] }))] }));\n}\n\n;// ./src/components/panel/User.tsx\n\n\n\nfunction User({ registrationEmail, registrationName, testMode = false, logged, }) {\n    if (testMode) {\n        return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"my-2 p-4 text-md rounded-md bg-black/20 max-w-96\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_LinkSlashIcon, { \"aria-hidden\": \"true\", className: \"size-8 text-white/50 float-right\" }), \"Currently\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"in offline testing mode\" }), \",\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"Your site uses a known local development address\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Only a sample captcha will be shown\" }), \".\"] }) }));\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(FinishSetup, { logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/20 px-2 text-sm font-semibold text-white flex-grow\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"text-white/70 font-thin mr-2\", children: [\"<\", registrationName, \">\"] }), ' ', registrationEmail] }) })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckBadgeIcon.js\n\nfunction CheckBadgeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M8.603 3.799A4.49 4.49 0 0 1 12 2.25c1.357 0 2.573.6 3.397 1.549a4.49 4.49 0 0 1 3.498 1.307 4.491 4.491 0 0 1 1.307 3.497A4.49 4.49 0 0 1 21.75 12a4.49 4.49 0 0 1-1.549 3.397 4.491 4.491 0 0 1-1.307 3.497 4.491 4.491 0 0 1-3.497 1.307A4.49 4.49 0 0 1 12 21.75a4.49 4.49 0 0 1-3.397-1.549 4.49 4.49 0 0 1-3.498-1.306 4.491 4.491 0 0 1-1.307-3.498A4.49 4.49 0 0 1 2.25 12c0-1.357.6-2.573 1.549-3.397a4.49 4.49 0 0 1 1.307-3.497 4.49 4.49 0 0 1 3.497-1.307Zm7.007 6.387a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckBadgeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckBadgeIcon);\n/* harmony default export */ const esm_CheckBadgeIcon = (CheckBadgeIcon_ForwardRef);\n;// ./src/components/step/Options.tsx\n\n\n\n\n\n\n\n\nfunction Options({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [forms, setProtectForms] = (0,external_React_namespaceObject.useState)(true);\n    const [login, setProtectLogin] = (0,external_React_namespaceObject.useState)(true);\n    const [comments, setProtectComments] = (0,external_React_namespaceObject.useState)(true);\n    const [roles, setRoles] = (0,external_React_namespaceObject.useState)([]);\n    const [exempt, setExempt] = (0,external_React_namespaceObject.useState)([]);\n    const [roleLoading, setRoleloading] = (0,external_React_namespaceObject.useState)(false);\n    const [users, setUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [exemptUsers, setExemptUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [selectedUser, setSelectedUser] = (0,external_React_namespaceObject.useState)('');\n    const [wcCheckout, setWcCheckout] = (0,external_React_namespaceObject.useState)(true);\n    function updateOption(option, value, callback) {\n        if (option === 'we360cloud_sentry_exempt') {\n            setRoleloading(true);\n        }\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'update_option',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.applied);\n            if (option === 'we360cloud_sentry_exempt') {\n                setRoleloading(false);\n            }\n        });\n    }\n    function updateProtectForms(opt) {\n        updateOption('we360cloud_sentry_protectforms', opt, setProtectForms);\n    }\n    function updateProtectLogin(opt) {\n        updateOption('we360cloud_sentry_protectlogin', opt, setProtectLogin);\n    }\n    function updateWcCheckout(opt) {\n        updateOption('we360cloud_sentry_wccheckout', opt, setWcCheckout);\n    }\n    function updateProtectComments(opt) {\n        updateOption('we360cloud_sentry_protectcomments', opt, setProtectComments);\n    }\n    function updateExempt(role) {\n        if (!roleLoading) {\n            updateOption('we360cloud_sentry_exempt', role, setExempt);\n        }\n    }\n    function updateExemptUser(user) {\n        if (user !== '') {\n            updateOption('we360cloud_sentry_exempt_user', user, setExemptUsers);\n        }\n    }\n    const init = () => {\n        setLoaded(false);\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'options',\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (false === json || undefined === json.payload) {\n            }\n            else {\n                setProtectForms(json.payload.we360cloud_sentry_protectforms);\n                setProtectLogin(json.payload.we360cloud_sentry_protectlogin);\n                setProtectComments(json.payload.we360cloud_sentry_protectcomments);\n                setRoles(json.payload.wp_roles);\n                setExempt(json.payload.wp_roles_exempt);\n                setUsers(json.payload.wp_users);\n                setExemptUsers(json.payload.we360cloud_sentry_exempt_user);\n                setWcCheckout(json.payload.we360cloud_sentry_wccheckout);\n            }\n            setLoaded(true);\n        });\n    };\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, []);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", onClick: () => onStep('documentation'), children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, onChange: updateProtectForms, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, onChange: updateProtectComments, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, onChange: updateProtectLogin, name: \"admin\", title: \"Protect login\" }), wcCheckout !== undefined && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: wcCheckout, onChange: updateWcCheckout, name: \"wecheckout\", title: \"Protect WooCommerce checkout\" }))] })), !loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5 opacity-80\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, loading: true, onChange: () => null, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, loading: true, onChange: () => null, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, loading: true, onChange: () => null, name: \"admin\", title: \"Protect login\" })] })), testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"hr\", { className: \"mb-4 opacity-50\" }), \"Test mode allows you to observe how the plugin functions in a test environment.\"] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure roles\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Some roles require user validation to setup an account - those checked won\\u2019t be given challenges when logged in. Toggle this option for each role below.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 my-2 px-1 py-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                        (roleLoading && 'opacity-50'), children: roles && roles.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [exempt &&\n                                                exempt.map((role) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [role, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, role))), roles.map((role) => (exempt\n                                                ? !exempt.includes(role)\n                                                : true) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/10 px-1 m-1 rounded-md animate-fade hover:bg-sky-200/50\", children: role }, role)))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex justify-center w-full opacity-50 p-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" }) })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"p-2 bg-black/10 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure users\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"These users will bypass the checks on login.\" }), users && users.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/20 py-2 px-2 my-2 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 mb-2 px-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                                        (loaded && 'opacity-50'), children: exemptUsers &&\n                                                        exemptUsers.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"my-1\", children: exemptUsers.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExemptUser(user), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [user, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, user))) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"p-1 my-1 italic text-gray-300\", children: \"No users are exempt\" })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 w-full\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"select\", { onChange: (e) => setSelectedUser(e.target.value), defaultValue: selectedUser, value: selectedUser, className: \"col-start-1 w-full row-start-1 appearance-none w-full border-y border-l bg-black/10 border-black/10 focus:ring-none rounded-l-md px-2 text-white sm:text-sm/6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { value: \"\", disabled: true, selected: true, children: \"Select a user\" }), users.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { children: user }, user))), \";\"] }), exemptUsers &&\n                                                            exemptUsers.includes(selectedUser) ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none px-2 border-y border-r border-black/10 bg-red-500/40 hover:bg-red-500/60\", children: \"Remove\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none border-y border-r border-black/10 px-2 bg-sky-500/40 hover:bg-sky-500/60\", children: \"Add\" }))] })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex justify-center w-full bg-black/10 py-2 px-2 mt-2 rounded-md\", children: [users, (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please make sure the user-name is not easily guessed and that your password is sufficiently secure; this account will otherwise be unprotected by Sentry.\", ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"This option is provided to facilitate the situation where some accounts are used via wp-cli or similar third-party integration.\" })] })] })] }) })] }));\n}\n\n;// ./src/components/panel/Credits.tsx\n\n\n\n\n\nfunction Credits({ testMode = false }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)();\n    (0,external_React_namespaceObject.useEffect)(() => {\n        setLoaded(false);\n        if (true === testMode) {\n            setBalance(undefined);\n            setLoaded(true);\n            return;\n        }\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'balance',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data || undefined === data.payload) {\n                setBalance(undefined);\n            }\n            else {\n                setBalance(data.payload.balance);\n            }\n            setLoaded(true);\n        });\n        return () => {\n        };\n    }, [testMode]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/10 p-4 rounded-md shadow-inner\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Available credit\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"bg-black/10 p-4 py-8 rounded-md text-center shadow-inner\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"h-8\", children: [!loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin inline\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: loaded, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"hidden\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"order-first text-3xl tracking-tight font-black text\", children: undefined === balance\n                                                ? '-'\n                                                : Math.max(0, Number(balance)).toLocaleString() }) })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"Visit the service site to manage your balance.\" })] })] }) }));\n}\n\n;// ./node_modules/@heroicons/react/20/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon_EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M3 4a2 2 0 0 0-2 2v1.161l8.441 4.221a1.25 1.25 0 0 0 1.118 0L19 7.162V6a2 2 0 0 0-2-2H3Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"m19 8.839-7.77 3.885a2.75 2.75 0 0 1-2.46 0L1 8.839V14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.839Z\"\n  }));\n}\nconst esm_EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon_EnvelopeIcon);\n/* harmony default export */ const solid_esm_EnvelopeIcon = (esm_EnvelopeIcon_ForwardRef);\n;// ./src/components/step/Manage.tsx\n\n\n\n\n\n\n\n\nfunction forHumans(seconds) {\n    const levels = [\n        [Math.floor(seconds / 31536000), 'years'],\n        [Math.floor((seconds % 31536000) / 86400), 'days'],\n        [Math.floor(((seconds % 31536000) % 86400) / 3600), 'hours'],\n        [\n            Math.floor((((seconds % 31536000) % 86400) % 3600) / 60),\n            'minutes',\n        ],\n        [(((seconds % 31536000) % 86400) % 3600) % 60, 'seconds'],\n    ];\n    let returntext = '';\n    for (let i = 0, max = levels.length; i < max; i++) {\n        if (levels[i][0] === 0) {\n            continue;\n        }\n        returntext +=\n            ' ' +\n                levels[i][0] +\n                ' ' +\n                (levels[i][0] === 1\n                    ? levels[i][1].slice(0, -1)\n                    : levels[i][1]);\n    }\n    return returntext.trim();\n}\nfunction Manage({ registrationEmail, registrationName, onStep, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, testMode, logged, expires, }) {\n    const [remainingTime, setRemainingTime] = (0,external_React_namespaceObject.useState)(expires);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        const interval = setInterval(() => {\n            setRemainingTime((prevTime) => prevTime > 0 ? prevTime - 1 : 0);\n        }, 1000);\n        return () => clearInterval(interval);\n    }, []);\n    function resend() {\n        const psdata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'resetemail',\n            name: registrationName,\n            email: registrationEmail,\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(psdata),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (true === json.success) {\n                setRemainingTime(3600);\n            }\n        });\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('documentation'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Documentation\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Manage account\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: 'register', commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                                onCommAdministrative(opt);\n                            }, onCommNews: (opt) => {\n                                onCommNews(opt);\n                            }, onCommDeveloper: (opt) => {\n                                onCommDeveloper(opt);\n                            } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [logged ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Credits, { testMode: testMode }), testMode ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Test mode allows you to observe how the plugin functions in a test environment.\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Credits are charges for successfully solving enhanced challenges or for premium add on services such as mail or text based checks.\" }))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"rounded-md bg-black/10 p-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"flex mb-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(solid_esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 mr-2 size-5 text-white\" }), \"Basic account\"] }), remainingTime > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please check your inbox for instructions on how to finish setting up your Web-Engine cloud account to utilise the premium features - note this email will\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"b\", { children: [\"expire in\", ' ', forHumans(remainingTime)] }), \".\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => location.reload(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Done\" })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Your invitation to complete registration has expired.\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => resend(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Resend email\" })] }))] })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => testMode ? null : onStep('unregister'), className: 'w-1/2 inline-flex mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600 ' +\n                                        (testMode && 'opacity-50'), children: \"Disconnect\" })] })] }) })] }));\n}\n\n;// ./src/images/sentry-word-mark.webp\n/* harmony default export */ const sentry_word_mark = (__webpack_require__.p + \"a78cd683c8225bae89d4852048b57bc6.webp\");\n;// ./src/components/Wordmark.tsx\n\n\nconst Wordmark = () => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-left text-white p-2 inline-block relative\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: \"Web-Engine Sentry logo\", src: sentry_word_mark, style: { paddingRight: '220px', width: '510px' } }) }));\n};\n\n;// ./node_modules/@react-aria/utils/dist/useLayoutEffect.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, external_React_namespaceObject).useLayoutEffect : ()=>{};\n\n\n\n//# sourceMappingURL=useLayoutEffect.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useEffectEvent.mjs\n\n\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n    const ref = (0, external_React_namespaceObject.useRef)(null);\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        ref.current = fn;\n    }, [\n        fn\n    ]);\n    // @ts-ignore\n    return (0, external_React_namespaceObject.useCallback)((...args)=>{\n        const f = ref.current;\n        return f === null || f === void 0 ? void 0 : f(...args);\n    }, []);\n}\n\n\n\n//# sourceMappingURL=useEffectEvent.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isFocusable.mjs\nconst $b4b717babfbb907b$var$focusableElements = [\n    'input:not([disabled]):not([type=hidden])',\n    'select:not([disabled])',\n    'textarea:not([disabled])',\n    'button:not([disabled])',\n    'a[href]',\n    'area[href]',\n    'summary',\n    'iframe',\n    'object',\n    'embed',\n    'audio[controls]',\n    'video[controls]',\n    '[contenteditable]:not([contenteditable^=\"false\"])'\n];\nconst $b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n$b4b717babfbb907b$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst $b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\nfunction $b4b717babfbb907b$export$4c063cf1350e6fed(element) {\n    return element.matches($b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR);\n}\nfunction $b4b717babfbb907b$export$bebd5a1431fec25d(element) {\n    return element.matches($b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR);\n}\n\n\n\n//# sourceMappingURL=isFocusable.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/domHelpers.mjs\nconst $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n    var _el_ownerDocument;\n    return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n    if (el && 'window' in el && el.window === el) return el;\n    const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n    return doc.defaultView || window;\n};\n/**\n * Type guard that checks if a value is a Node. Verifies the presence and type of the nodeType property.\n */ function $431fbd86ca7dc216$var$isNode(value) {\n    return value !== null && typeof value === 'object' && 'nodeType' in value && typeof value.nodeType === 'number';\n}\nfunction $431fbd86ca7dc216$export$af51f0f06c0f328a(node) {\n    return $431fbd86ca7dc216$var$isNode(node) && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;\n}\n\n\n\n//# sourceMappingURL=domHelpers.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n    if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n        preventScroll: true\n    });\n    else {\n        let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n        element.focus();\n        $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n    }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n    if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n        $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n        try {\n            let focusElem = document.createElement('div');\n            focusElem.focus({\n                get preventScroll () {\n                    $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n                    return true;\n                }\n            });\n        } catch  {\n        // Ignore\n        }\n    }\n    return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n    let parent = element.parentNode;\n    let scrollableElements = [];\n    let rootScrollingElement = document.scrollingElement || document.documentElement;\n    while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n        if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n            element: parent,\n            scrollTop: parent.scrollTop,\n            scrollLeft: parent.scrollLeft\n        });\n        parent = parent.parentNode;\n    }\n    if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n        element: rootScrollingElement,\n        scrollTop: rootScrollingElement.scrollTop,\n        scrollLeft: rootScrollingElement.scrollLeft\n    });\n    return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n    for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n        element.scrollTop = scrollTop;\n        element.scrollLeft = scrollLeft;\n    }\n}\n\n\n\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/utils.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n    isDefaultPrevented() {\n        return this.nativeEvent.defaultPrevented;\n    }\n    preventDefault() {\n        this.defaultPrevented = true;\n        this.nativeEvent.preventDefault();\n    }\n    stopPropagation() {\n        this.nativeEvent.stopPropagation();\n        this.isPropagationStopped = ()=>true;\n    }\n    isPropagationStopped() {\n        return false;\n    }\n    persist() {}\n    constructor(type, nativeEvent){\n        this.nativeEvent = nativeEvent;\n        this.target = nativeEvent.target;\n        this.currentTarget = nativeEvent.currentTarget;\n        this.relatedTarget = nativeEvent.relatedTarget;\n        this.bubbles = nativeEvent.bubbles;\n        this.cancelable = nativeEvent.cancelable;\n        this.defaultPrevented = nativeEvent.defaultPrevented;\n        this.eventPhase = nativeEvent.eventPhase;\n        this.isTrusted = nativeEvent.isTrusted;\n        this.timeStamp = nativeEvent.timeStamp;\n        this.type = type;\n    }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n    let stateRef = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        observer: null\n    });\n    // Clean up MutationObserver on unmount. See below.\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        const state = stateRef.current;\n        return ()=>{\n            if (state.observer) {\n                state.observer.disconnect();\n                state.observer = null;\n            }\n        };\n    }, []);\n    let dispatchBlur = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((e)=>{\n        onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n    });\n    // This function is called during a React onFocus event.\n    return (0, external_React_namespaceObject.useCallback)((e)=>{\n        // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n        // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n        // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n        // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n        if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n            stateRef.current.isFocused = true;\n            let target = e.target;\n            let onBlurHandler = (e)=>{\n                stateRef.current.isFocused = false;\n                if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n                dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36('blur', e));\n                // We no longer need the MutationObserver once the target is blurred.\n                if (stateRef.current.observer) {\n                    stateRef.current.observer.disconnect();\n                    stateRef.current.observer = null;\n                }\n            };\n            target.addEventListener('focusout', onBlurHandler, {\n                once: true\n            });\n            stateRef.current.observer = new MutationObserver(()=>{\n                if (stateRef.current.isFocused && target.disabled) {\n                    var _stateRef_current_observer;\n                    (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();\n                    let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n                    target.dispatchEvent(new FocusEvent('blur', {\n                        relatedTarget: relatedTargetEl\n                    }));\n                    target.dispatchEvent(new FocusEvent('focusout', {\n                        bubbles: true,\n                        relatedTarget: relatedTargetEl\n                    }));\n                }\n            });\n            stateRef.current.observer.observe(target, {\n                attributes: true,\n                attributeFilter: [\n                    'disabled'\n                ]\n            });\n        }\n    }, [\n        dispatchBlur\n    ]);\n}\nlet $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\nfunction $8a9cb279dc87e130$export$cabe61c495ee3649(target) {\n    // The browser will focus the nearest focusable ancestor of our target.\n    while(target && !(0, $b4b717babfbb907b$export$4c063cf1350e6fed)(target))target = target.parentElement;\n    let window = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(target);\n    let activeElement = window.document.activeElement;\n    if (!activeElement || activeElement === target) return;\n    $8a9cb279dc87e130$export$fda7da73ab5d4c48 = true;\n    let isRefocusing = false;\n    let onBlur = (e)=>{\n        if (e.target === activeElement || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusOut = (e)=>{\n        if (e.target === activeElement || isRefocusing) {\n            e.stopImmediatePropagation();\n            // If there was no focusable ancestor, we don't expect a focus event.\n            // Re-focus the original active element here.\n            if (!target && !isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    let onFocus = (e)=>{\n        if (e.target === target || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusIn = (e)=>{\n        if (e.target === target || isRefocusing) {\n            e.stopImmediatePropagation();\n            if (!isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    window.addEventListener('blur', onBlur, true);\n    window.addEventListener('focusout', onFocusOut, true);\n    window.addEventListener('focusin', onFocusIn, true);\n    window.addEventListener('focus', onFocus, true);\n    let cleanup = ()=>{\n        cancelAnimationFrame(raf);\n        window.removeEventListener('blur', onBlur, true);\n        window.removeEventListener('focusout', onFocusOut, true);\n        window.removeEventListener('focusin', onFocusIn, true);\n        window.removeEventListener('focus', onFocus, true);\n        $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\n        isRefocusing = false;\n    };\n    let raf = requestAnimationFrame(cleanup);\n    return cleanup;\n}\n\n\n\n//# sourceMappingURL=utils.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/platform.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n    var _window_navigator_userAgentData;\n    if (typeof window === 'undefined' || window.navigator == null) return false;\n    return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n    var _window_navigator_userAgentData;\n    return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n    let res = null;\n    return ()=>{\n        if (res == null) res = fn();\n        return res;\n    };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\n\n//# sourceMappingURL=platform.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isVirtualEvent.mjs\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n    // JAWS/NVDA with Firefox.\n    if (event.mozInputSource === 0 && event.isTrusted) return true;\n    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n    // to detect TalkBack virtual clicks.\n    if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n    return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n    // If the pointer size is zero, then we assume it's from a screen reader.\n    // Android TalkBack double tap will sometimes return a event with width and height of 1\n    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n    // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n    // Talkback double tap from Windows Firefox touch screen press\n    return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\n\n//# sourceMappingURL=isVirtualEvent.module.js.map\n\n;// ./node_modules/@react-aria/ssr/dist/SSRProvider.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $b5e257d569688ac6$var$defaultContext = {\n    prefix: String(Math.round(Math.random() * 10000000000)),\n    current: 0\n};\nconst $b5e257d569688ac6$var$SSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext($b5e257d569688ac6$var$defaultContext);\nconst $b5e257d569688ac6$var$IsSSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext(false);\n// This is only used in React < 18.\nfunction $b5e257d569688ac6$var$LegacySSRProvider(props) {\n    let cur = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let counter = $b5e257d569688ac6$var$useCounter(cur === $b5e257d569688ac6$var$defaultContext);\n    let [isSSR, setIsSSR] = (0, external_React_namespaceObject.useState)(true);\n    let value = (0, external_React_namespaceObject.useMemo)(()=>({\n            // If this is the first SSRProvider, start with an empty string prefix, otherwise\n            // append and increment the counter.\n            prefix: cur === $b5e257d569688ac6$var$defaultContext ? '' : `${cur.prefix}-${counter}`,\n            current: 0\n        }), [\n        cur,\n        counter\n    ]);\n    // If on the client, and the component was initially server rendered,\n    // then schedule a layout effect to update the component after hydration.\n    if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n    // because the condition never changes after mounting.\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    (0, external_React_namespaceObject.useLayoutEffect)(()=>{\n        setIsSSR(false);\n    }, []);\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$SSRContext.Provider, {\n        value: value\n    }, /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$IsSSRContext.Provider, {\n        value: isSSR\n    }, props.children));\n}\nlet $b5e257d569688ac6$var$warnedAboutSSRProvider = false;\nfunction $b5e257d569688ac6$export$9f8ac96af4b1b2ae(props) {\n    if (typeof (0, external_React_namespaceObject)['useId'] === 'function') {\n        if ( true && !$b5e257d569688ac6$var$warnedAboutSSRProvider) {\n            console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n            $b5e257d569688ac6$var$warnedAboutSSRProvider = true;\n        }\n        return /*#__PURE__*/ (0, external_React_namespaceObject).createElement((0, external_React_namespaceObject).Fragment, null, props.children);\n    }\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$LegacySSRProvider, props);\n}\nlet $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $b5e257d569688ac6$var$componentIds = new WeakMap();\nfunction $b5e257d569688ac6$var$useCounter(isDisabled = false) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let ref = (0, external_React_namespaceObject.useRef)(null);\n    // eslint-disable-next-line rulesdir/pure-render\n    if (ref.current === null && !isDisabled) {\n        var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n        // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n        // This means our id counter will be incremented twice instead of once. This is a problem because on the\n        // server, components are only rendered once and so ids generated on the server won't match the client.\n        // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n        // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n        // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n        // To ensure that we only increment the global counter once, we store the starting id for this component in\n        // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n        // Since React runs the second render immediately after the first, this is safe.\n        // @ts-ignore\n        let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, external_React_namespaceObject).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n        if (currentOwner) {\n            let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);\n            if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n            $b5e257d569688ac6$var$componentIds.set(currentOwner, {\n                id: ctx.current,\n                state: currentOwner.memoizedState\n            });\n            else if (currentOwner.memoizedState !== prevComponentValue.state) {\n                // On the second render, the memoizedState gets reset by React.\n                // Reset the counter, and remove from the weak map so we don't\n                // do this for subsequent useId calls.\n                ctx.current = prevComponentValue.id;\n                $b5e257d569688ac6$var$componentIds.delete(currentOwner);\n            }\n        }\n        // eslint-disable-next-line rulesdir/pure-render\n        ref.current = ++ctx.current;\n    }\n    // eslint-disable-next-line rulesdir/pure-render\n    return ref.current;\n}\nfunction $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n    // provide a warning to hint to the developer to add one.\n    if (ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM) console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n    let counter = $b5e257d569688ac6$var$useCounter(!!defaultId);\n    let prefix = ctx === $b5e257d569688ac6$var$defaultContext && \"development\" === 'test' ? 0 : `react-aria${ctx.prefix}`;\n    return defaultId || `${prefix}-${counter}`;\n}\nfunction $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {\n    let id = (0, external_React_namespaceObject).useId();\n    let [didSSR] = (0, external_React_namespaceObject.useState)($b5e257d569688ac6$export$535bd6ca7f90a273());\n    let prefix = didSSR || \"development\" === 'test' ? 'react-aria' : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;\n    return defaultId || `${prefix}-${id}`;\n}\nconst $b5e257d569688ac6$export$619500959fc48b26 = typeof (0, external_React_namespaceObject)['useId'] === 'function' ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;\nfunction $b5e257d569688ac6$var$getSnapshot() {\n    return false;\n}\nfunction $b5e257d569688ac6$var$getServerSnapshot() {\n    return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction $b5e257d569688ac6$var$subscribe(onStoreChange) {\n    // noop\n    return ()=>{};\n}\nfunction $b5e257d569688ac6$export$535bd6ca7f90a273() {\n    // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n    if (typeof (0, external_React_namespaceObject)['useSyncExternalStore'] === 'function') return (0, external_React_namespaceObject)['useSyncExternalStore']($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    return (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$IsSSRContext);\n}\n\n\n\n//# sourceMappingURL=SSRProvider.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusVisible.mjs\n\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n    Tab: true,\n    Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n    for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n    // Control and Shift keys trigger when navigating back to the tab with keyboard.\n    return !(e.metaKey || !(0, $c87311424ea30a05$export$9ac100e40613ea10)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n    if ($507fabe10e71c6fb$var$isValidKey(e)) {\n        $507fabe10e71c6fb$var$currentModality = 'keyboard';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n    $507fabe10e71c6fb$var$currentModality = 'pointer';\n    if (e.type === 'mousedown' || e.type === 'pointerdown') {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n    if ((0, $6a7db85432448f7f$export$60278871457622de)(e)) {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n    }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n    // Firefox fires two extra focus events when the user first clicks into an iframe:\n    // first on the window, then on the document. We ignore these events so they don't\n    // cause keyboard focus rings to appear.\n    if (e.target === window || e.target === document || (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) || !e.isTrusted) return;\n    // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n    // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n    if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n    }\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n    if (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) return;\n    // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n    // for example, since a subsequent focus event won't be fired.\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n    if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element))) return;\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    // Programmatic focus() calls shouldn't affect the current input modality.\n    // However, we need to detect other cases when a focus event occurs without\n    // a preceding user event (e.g. screen reader focus). Overriding the focus\n    // method on HTMLElement.prototype is a bit hacky, but works.\n    let focus = windowObject.HTMLElement.prototype.focus;\n    windowObject.HTMLElement.prototype.focus = function() {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        focus.apply(this, arguments);\n    };\n    documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    // Register focus events on the window so they are sure to happen\n    // before React's event listeners (registered on the document).\n    windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    // Add unmount handler\n    windowObject.addEventListener('beforeunload', ()=>{\n        $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n    }, {\n        once: true\n    });\n    $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n        focus: focus\n    });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n    if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n    windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n    documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    let loadListener;\n    if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n    else {\n        loadListener = ()=>{\n            $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n        };\n        documentObject.addEventListener('DOMContentLoaded', loadListener);\n    }\n    return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n    return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n    return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n    $507fabe10e71c6fb$var$currentModality = modality;\n    $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    let [modality, setModality] = (0, external_React_namespaceObject.useState)($507fabe10e71c6fb$var$currentModality);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = ()=>{\n            setModality($507fabe10e71c6fb$var$currentModality);\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    }, []);\n    return (0, $b5e257d569688ac6$export$535bd6ca7f90a273)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n    'checkbox',\n    'radio',\n    'range',\n    'color',\n    'file',\n    'image',\n    'button',\n    'submit',\n    'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n    let document1 = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e === null || e === void 0 ? void 0 : e.target);\n    const IHTMLInputElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n    const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n    const IHTMLElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n    const IKeyboardEvent = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n    // For keyboard events that occur on a non-input element that will move focus into input element (aka ArrowLeft going from Datepicker button to the main input group)\n    // we need to rely on the user passing isTextInput into here. This way we can skip toggling focus visiblity for said input element\n    isTextInput = isTextInput || document1.activeElement instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(document1.activeElement.type) || document1.activeElement instanceof IHTMLTextAreaElement || document1.activeElement instanceof IHTMLElement && document1.activeElement.isContentEditable;\n    return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n    let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n    $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n        setFocusVisible(isFocusVisible);\n    }, [\n        isTextInput\n    ], {\n        isTextInput: isTextInput\n    });\n    return {\n        isFocusVisible: isFocusVisibleState\n    };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = (modality, e)=>{\n            // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n            if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n            fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, deps);\n}\n\n\n\n//# sourceMappingURL=useFocusVisible.module.js.map\n\n;// ./node_modules/@react-stately/flags/dist/import.mjs\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ let $f4e2df6bd15f8569$var$_tableNestedRows = false;\nlet $f4e2df6bd15f8569$var$_shadowDOM = false;\nfunction $f4e2df6bd15f8569$export$d9d8a0f82de49530() {\n    $f4e2df6bd15f8569$var$_tableNestedRows = true;\n}\nfunction $f4e2df6bd15f8569$export$1b00cb14a96194e6() {\n    return $f4e2df6bd15f8569$var$_tableNestedRows;\n}\nfunction $f4e2df6bd15f8569$export$12b151d9882e9985() {\n    $f4e2df6bd15f8569$var$_shadowDOM = true;\n}\nfunction $f4e2df6bd15f8569$export$98658e8c59125e6a() {\n    return $f4e2df6bd15f8569$var$_shadowDOM;\n}\n\n\n\n//# sourceMappingURL=module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/DOMFunctions.mjs\n\n\n\n// Source: https://github.com/microsoft/tabster/blob/a89fc5d7e332d48f68d03b1ca6e344489d1c3898/src/Shadowdomize/DOMFunctions.ts#L16\n\n\nfunction $d4ee10de306f2510$export$4282f70798064fe0(node, otherNode) {\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return otherNode && node ? node.contains(otherNode) : false;\n    if (!node || !otherNode) return false;\n    let currentNode = otherNode;\n    while(currentNode !== null){\n        if (currentNode === node) return true;\n        if (currentNode.tagName === 'SLOT' && currentNode.assignedSlot) // Element is slotted\n        currentNode = currentNode.assignedSlot.parentNode;\n        else if ((0, $431fbd86ca7dc216$export$af51f0f06c0f328a)(currentNode)) // Element is in shadow root\n        currentNode = currentNode.host;\n        else currentNode = currentNode.parentNode;\n    }\n    return false;\n}\nconst $d4ee10de306f2510$export$cd4e5573fbe2b576 = (doc = document)=>{\n    var _activeElement_shadowRoot;\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return doc.activeElement;\n    let activeElement = doc.activeElement;\n    while(activeElement && 'shadowRoot' in activeElement && ((_activeElement_shadowRoot = activeElement.shadowRoot) === null || _activeElement_shadowRoot === void 0 ? void 0 : _activeElement_shadowRoot.activeElement))activeElement = activeElement.shadowRoot.activeElement;\n    return activeElement;\n};\nfunction $d4ee10de306f2510$export$e58f029f0fbfdb29(event) {\n    if ((0, $f4e2df6bd15f8569$export$98658e8c59125e6a)() && event.target.shadowRoot) {\n        if (event.composedPath) return event.composedPath()[0];\n    }\n    return event.target;\n}\n\n\n\n//# sourceMappingURL=DOMFunctions.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocus.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n    let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n    const onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        if (e.target === e.currentTarget) {\n            if (onBlurProp) onBlurProp(e);\n            if (onFocusChange) onFocusChange(false);\n            return true;\n        }\n    }, [\n        onBlurProp,\n        onFocusChange\n    ]);\n    const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    const onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = ownerDocument ? (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument) : (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)();\n        if (e.target === e.currentTarget && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusProp) onFocusProp(e);\n            if (onFocusChange) onFocusChange(true);\n            onSyntheticFocus(e);\n        }\n    }, [\n        onFocusChange,\n        onFocusProp,\n        onSyntheticFocus\n    ]);\n    return {\n        focusProps: {\n            onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n            onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocus.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useGlobalListeners.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $03deb23ff14920c4$export$4eaf04e54aa8eed6() {\n    let globalListeners = (0, external_React_namespaceObject.useRef)(new Map());\n    let addGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        // Make sure we remove the listener after it is called with the `once` option.\n        let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{\n            globalListeners.current.delete(listener);\n            listener(...args);\n        } : listener;\n        globalListeners.current.set(listener, {\n            type: type,\n            eventTarget: eventTarget,\n            fn: fn,\n            options: options\n        });\n        eventTarget.addEventListener(type, fn, options);\n    }, []);\n    let removeGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        var _globalListeners_current_get;\n        let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;\n        eventTarget.removeEventListener(type, fn, options);\n        globalListeners.current.delete(listener);\n    }, []);\n    let removeAllGlobalListeners = (0, external_React_namespaceObject.useCallback)(()=>{\n        globalListeners.current.forEach((value, key)=>{\n            removeGlobalListener(value.eventTarget, value.type, key, value.options);\n        });\n    }, [\n        removeGlobalListener\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        return removeAllGlobalListeners;\n    }, [\n        removeAllGlobalListeners\n    ]);\n    return {\n        addGlobalListener: addGlobalListener,\n        removeGlobalListener: removeGlobalListener,\n        removeAllGlobalListeners: removeAllGlobalListeners\n    };\n}\n\n\n\n//# sourceMappingURL=useGlobalListeners.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusWithin.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n    let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocusWithin: false\n    });\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n        // when moving focus inside the element. Only trigger if the currentTarget doesn't\n        // include the relatedTarget (where focus is moving).\n        if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n            state.current.isFocusWithin = false;\n            removeAllGlobalListeners();\n            if (onBlurWithin) onBlurWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(false);\n        }\n    }, [\n        onBlurWithin,\n        onFocusWithinChange,\n        state,\n        removeAllGlobalListeners\n    ]);\n    let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    let onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument);\n        if (!state.current.isFocusWithin && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusWithin) onFocusWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(true);\n            state.current.isFocusWithin = true;\n            onSyntheticFocus(e);\n            // Browsers don't fire blur events when elements are removed from the DOM.\n            // However, if a focus event occurs outside the element we're tracking, we\n            // can manually fire onBlur.\n            let currentTarget = e.currentTarget;\n            addGlobalListener(ownerDocument, 'focus', (e)=>{\n                if (state.current.isFocusWithin && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(currentTarget, e.target)) {\n                    let event = new (0, $8a9cb279dc87e130$export$905e7fc544a71f36)('blur', new ownerDocument.defaultView.FocusEvent('blur', {\n                        relatedTarget: e.target\n                    }));\n                    event.target = currentTarget;\n                    event.currentTarget = currentTarget;\n                    onBlur(event);\n                }\n            }, {\n                capture: true\n            });\n        }\n    }, [\n        onFocusWithin,\n        onFocusWithinChange,\n        onSyntheticFocus,\n        addGlobalListener,\n        onBlur\n    ]);\n    if (isDisabled) return {\n        focusWithinProps: {\n            // These cannot be null, that would conflict in mergeProps\n            onFocus: undefined,\n            onBlur: undefined\n        }\n    };\n    return {\n        focusWithinProps: {\n            onFocus: onFocus,\n            onBlur: onBlur\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusWithin.module.js.map\n\n;// ./node_modules/@react-aria/focus/dist/useFocusRing.mjs\n\n\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n    let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        isFocusVisible: autoFocus || (0, $507fabe10e71c6fb$export$b9b3dfddab17db27)()\n    });\n    let [isFocused, setFocused] = (0, external_React_namespaceObject.useState)(false);\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n    let updateState = (0, external_React_namespaceObject.useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n    let onFocusChange = (0, external_React_namespaceObject.useCallback)((isFocused)=>{\n        state.current.isFocused = isFocused;\n        setFocused(isFocused);\n        updateState();\n    }, [\n        updateState\n    ]);\n    (0, $507fabe10e71c6fb$export$ec71b4b83ac08ec3)((isFocusVisible)=>{\n        state.current.isFocusVisible = isFocusVisible;\n        updateState();\n    }, [], {\n        isTextInput: isTextInput\n    });\n    let { focusProps: focusProps } = (0, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6)({\n        isDisabled: within,\n        onFocusChange: onFocusChange\n    });\n    let { focusWithinProps: focusWithinProps } = (0, $9ab94262bd0047c7$export$420e68273165f4ec)({\n        isDisabled: !within,\n        onFocusWithinChange: onFocusChange\n    });\n    return {\n        isFocused: isFocused,\n        isFocusVisible: isFocusVisibleState,\n        focusProps: within ? focusWithinProps : focusProps\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusRing.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useHover.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n    $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n    // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n    // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n    // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n    // the distant future because a user previously touched the element.\n    setTimeout(()=>{\n        $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n    }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n    if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n    if (typeof document === 'undefined') return;\n    if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n    else document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    $6179b936705e76d3$var$hoverCount++;\n    return ()=>{\n        $6179b936705e76d3$var$hoverCount--;\n        if ($6179b936705e76d3$var$hoverCount > 0) return;\n        if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n        else document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n    let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n    let [isHovered, setHovered] = (0, external_React_namespaceObject.useState)(false);\n    let state = (0, external_React_namespaceObject.useRef)({\n        isHovered: false,\n        ignoreEmulatedMouseEvents: false,\n        pointerType: '',\n        target: null\n    }).current;\n    (0, external_React_namespaceObject.useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, external_React_namespaceObject.useMemo)(()=>{\n        let triggerHoverStart = (event, pointerType)=>{\n            state.pointerType = pointerType;\n            if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n            state.isHovered = true;\n            let target = event.currentTarget;\n            state.target = target;\n            // When an element that is hovered over is removed, no pointerleave event is fired by the browser,\n            // even though the originally hovered target may have shrunk in size so it is no longer hovered.\n            // However, a pointerover event will be fired on the new target the mouse is over.\n            // In Chrome this happens immediately. In Safari and Firefox, it happens upon moving the mouse one pixel.\n            addGlobalListener((0, $431fbd86ca7dc216$export$b204af158042fbac)(event.target), 'pointerover', (e)=>{\n                if (state.isHovered && state.target && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(state.target, e.target)) triggerHoverEnd(e, e.pointerType);\n            }, {\n                capture: true\n            });\n            if (onHoverStart) onHoverStart({\n                type: 'hoverstart',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(true);\n            setHovered(true);\n        };\n        let triggerHoverEnd = (event, pointerType)=>{\n            let target = state.target;\n            state.pointerType = '';\n            state.target = null;\n            if (pointerType === 'touch' || !state.isHovered || !target) return;\n            state.isHovered = false;\n            removeAllGlobalListeners();\n            if (onHoverEnd) onHoverEnd({\n                type: 'hoverend',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(false);\n            setHovered(false);\n        };\n        let hoverProps = {};\n        if (typeof PointerEvent !== 'undefined') {\n            hoverProps.onPointerEnter = (e)=>{\n                if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n                triggerHoverStart(e, e.pointerType);\n            };\n            hoverProps.onPointerLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n            };\n        } else {\n            hoverProps.onTouchStart = ()=>{\n                state.ignoreEmulatedMouseEvents = true;\n            };\n            hoverProps.onMouseEnter = (e)=>{\n                if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n                state.ignoreEmulatedMouseEvents = false;\n            };\n            hoverProps.onMouseLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n            };\n        }\n        return {\n            hoverProps: hoverProps,\n            triggerHoverEnd: triggerHoverEnd\n        };\n    }, [\n        onHoverStart,\n        onHoverChange,\n        onHoverEnd,\n        isDisabled,\n        state,\n        addGlobalListener,\n        removeAllGlobalListeners\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        // Call the triggerHoverEnd as soon as isDisabled changes to true\n        // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n        if (isDisabled) triggerHoverEnd({\n            currentTarget: state.target\n        }, state.pointerType);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        isDisabled\n    ]);\n    return {\n        hoverProps: hoverProps,\n        isHovered: isHovered\n    };\n}\n\n\n\n//# sourceMappingURL=useHover.module.js.map\n\n;// ./node_modules/@headlessui/react/dist/utils/owner.js\nfunction owner_u(r){return s.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-active-press.js\nfunction E(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function use_active_press_P(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function use_active_press_w({disabled:e=!1}={}){let t=(0,external_React_namespaceObject.useRef)(null),[n,l]=(0,external_React_namespaceObject.useState)(!1),r=use_disposables_p(),o=use_event_o(()=>{t.current=null,l(!1),r.dispose()}),f=use_event_o(s=>{if(r.dispose(),t.current===null){t.current=s.currentTarget,l(!0);{let i=owner_u(s.currentTarget);r.addEventListener(i,\"pointerup\",o,!1),r.addEventListener(i,\"pointermove\",c=>{if(t.current){let p=E(c);l(use_active_press_P(p,t.current.getBoundingClientRect()))}},!1),r.addEventListener(i,\"pointercancel\",o,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:f,onPointerUp:o,onClick:o}}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js\nfunction use_resolve_button_type_e(t,u){return (0,external_React_namespaceObject.useMemo)(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:\"button\";if(typeof r==\"string\"&&r.toLowerCase()===\"button\"||(u==null?void 0:u.tagName)===\"BUTTON\"&&!u.hasAttribute(\"type\"))return\"button\"},[t.type,t.as,u])}\n\n;// ./node_modules/@headlessui/react/dist/internal/hidden.js\nlet a=\"span\";var hidden_s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(hidden_s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return render_L()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let hidden_f=K(l);\n\n;// ./node_modules/@headlessui/react/dist/internal/focus-sentinel.js\nfunction focus_sentinel_b({onFocus:n}){let[r,o]=(0,external_React_namespaceObject.useState)(!0),u=f();return r?external_React_namespaceObject.createElement(hidden_f,{as:\"button\",type:\"button\",features:hidden_s.Focusable,onFocus:a=>{a.preventDefault();let e,i=50;function t(){if(i--<=0){e&&cancelAnimationFrame(e);return}if(n()){if(cancelAnimationFrame(e),!u.current)return;o(!1);return}e=requestAnimationFrame(t)}e=requestAnimationFrame(t)}}):null}\n\n;// ./node_modules/@headlessui/react/dist/utils/focus-management.js\nlet focus_management_f=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),p=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var focus_management_F=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n[n.AutoFocus=64]=\"AutoFocus\",n))(focus_management_F||{}),focus_management_T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(focus_management_T||{}),y=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(y||{});function focus_management_b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(focus_management_f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var focus_management_h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(focus_management_h||{});function A(e,r=0){var t;return e===((t=owner_u(e))==null?void 0:t.body)?!1:match_u(r,{[0](){return e.matches(focus_management_f)},[1](){let u=e;for(;u!==null;){if(u.matches(focus_management_f))return!0;u=u.parentElement}return!1}})}function G(e){let r=owner_u(e);disposables_o().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var focus_management_H=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(focus_management_H||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function I(e){e==null||e.focus({preventScroll:!0})}let focus_management_w=[\"textarea\",\"input\"].join(\",\");function focus_management_O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,focus_management_w))!=null?t:!1}function focus_management_(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function focus_management_j(e,r){return focus_management_P(focus_management_b(),r,{relativeTo:e})}function focus_management_P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?focus_management_(e):e:r&64?S(e):focus_management_b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&\"current\"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&focus_management_O(i)&&i.select(),2}\n\n;// ./node_modules/@headlessui/react/dist/utils/stable-collection.js\nconst stable_collection_s=external_React_namespaceObject.createContext(null);function stable_collection_a(){return{groups:new Map,get(o,e){var i;let t=this.groups.get(o);t||(t=new Map,this.groups.set(o,t));let n=(i=t.get(e))!=null?i:0;t.set(e,n+1);let r=Array.from(t.keys()).indexOf(e);function u(){let c=t.get(e);c>1?t.set(e,c-1):t.delete(e)}return[r,u]}}}function stable_collection_f({children:o}){let e=external_React_namespaceObject.useRef(stable_collection_a());return external_React_namespaceObject.createElement(stable_collection_s.Provider,{value:e},o)}function stable_collection_C(o){let e=external_React_namespaceObject.useContext(stable_collection_s);if(!e)throw new Error(\"You must wrap your component in a <StableCollection>\");let t=external_React_namespaceObject.useId(),[n,r]=e.current.get(o,t);return external_React_namespaceObject.useEffect(()=>r,[]),n}\n\n;// ./node_modules/@headlessui/react/dist/components/keyboard.js\nvar keyboard_o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(keyboard_o||{});\n\n;// ./node_modules/@headlessui/react/dist/components/tabs/tabs.js\n\"use client\";var tabs_Le=(t=>(t[t.Forwards=0]=\"Forwards\",t[t.Backwards=1]=\"Backwards\",t))(tabs_Le||{}),tabs_e=(l=>(l[l.Less=-1]=\"Less\",l[l.Equal=0]=\"Equal\",l[l.Greater=1]=\"Greater\",l))(tabs_e||{}),tabs_De=(n=>(n[n.SetSelectedIndex=0]=\"SetSelectedIndex\",n[n.RegisterTab=1]=\"RegisterTab\",n[n.UnregisterTab=2]=\"UnregisterTab\",n[n.RegisterPanel=3]=\"RegisterPanel\",n[n.UnregisterPanel=4]=\"UnregisterPanel\",n))(tabs_De||{});let Se={[0](e,r){var d;let t=focus_management_(e.tabs,u=>u.current),l=focus_management_(e.panels,u=>u.current),a=t.filter(u=>{var T;return!((T=u.current)!=null&&T.hasAttribute(\"disabled\"))}),n={...e,tabs:t,panels:l};if(r.index<0||r.index>t.length-1){let u=match_u(Math.sign(r.index-e.selectedIndex),{[-1]:()=>1,[0]:()=>match_u(Math.sign(r.index),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0});if(a.length===0)return n;let T=match_u(u,{[0]:()=>t.indexOf(a[0]),[1]:()=>t.indexOf(a[a.length-1])});return{...n,selectedIndex:T===-1?e.selectedIndex:T}}let s=t.slice(0,r.index),b=[...t.slice(r.index),...s].find(u=>a.includes(u));if(!b)return n;let f=(d=t.indexOf(b))!=null?d:e.selectedIndex;return f===-1&&(f=e.selectedIndex),{...n,selectedIndex:f}},[1](e,r){if(e.tabs.includes(r.tab))return e;let t=e.tabs[e.selectedIndex],l=focus_management_([...e.tabs,r.tab],n=>n.current),a=e.selectedIndex;return e.info.current.isControlled||(a=l.indexOf(t),a===-1&&(a=e.selectedIndex)),{...e,tabs:l,selectedIndex:a}},[2](e,r){return{...e,tabs:e.tabs.filter(t=>t!==r.tab)}},[3](e,r){return e.panels.includes(r.panel)?e:{...e,panels:focus_management_([...e.panels,r.panel],t=>t.current)}},[4](e,r){return{...e,panels:e.panels.filter(t=>t!==r.panel)}}},V=(0,external_React_namespaceObject.createContext)(null);V.displayName=\"TabsDataContext\";function tabs_C(e){let r=(0,external_React_namespaceObject.useContext)(V);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,tabs_C),t}return r}let Q=(0,external_React_namespaceObject.createContext)(null);Q.displayName=\"TabsActionsContext\";function Y(e){let r=(0,external_React_namespaceObject.useContext)(Q);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Y),t}return r}function tabs_Fe(e,r){return match_u(r.type,Se,e,r)}let tabs_Ie=\"div\";function he(e,r){let{defaultIndex:t=0,vertical:l=!1,manual:a=!1,onChange:n,selectedIndex:s=null,...g}=e;const b=l?\"vertical\":\"horizontal\",f=a?\"manual\":\"auto\";let d=s!==null,u=use_latest_value_s({isControlled:d}),T=use_sync_refs_y(r),[p,c]=(0,external_React_namespaceObject.useReducer)(tabs_Fe,{info:u,selectedIndex:s!=null?s:t,tabs:[],panels:[]}),h=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:p.selectedIndex}),[p.selectedIndex]),m=use_latest_value_s(n||(()=>{})),M=use_latest_value_s(p.tabs),S=(0,external_React_namespaceObject.useMemo)(()=>({orientation:b,activation:f,...p}),[b,f,p]),P=use_event_o(i=>(c({type:1,tab:i}),()=>c({type:2,tab:i}))),A=use_event_o(i=>(c({type:3,panel:i}),()=>c({type:4,panel:i}))),E=use_event_o(i=>{_.current!==i&&m.current(i),d||c({type:0,index:i})}),_=use_latest_value_s(d?e.selectedIndex:p.selectedIndex),D=(0,external_React_namespaceObject.useMemo)(()=>({registerTab:P,registerPanel:A,change:E}),[]);use_iso_morphic_effect_n(()=>{c({type:0,index:s!=null?s:t})},[s]),use_iso_morphic_effect_n(()=>{if(_.current===void 0||p.tabs.length<=0)return;let i=focus_management_(p.tabs,R=>R.current);i.some((R,X)=>p.tabs[X]!==R)&&E(i.indexOf(p.tabs[_.current]))});let K={ref:T},J=render_L();return external_React_namespaceObject.createElement(stable_collection_f,null,external_React_namespaceObject.createElement(Q.Provider,{value:D},external_React_namespaceObject.createElement(V.Provider,{value:S},S.tabs.length<=0&&external_React_namespaceObject.createElement(focus_sentinel_b,{onFocus:()=>{var i,G;for(let R of M.current)if(((i=R.current)==null?void 0:i.tabIndex)===0)return(G=R.current)==null||G.focus(),!0;return!1}}),J({ourProps:K,theirProps:g,slot:h,defaultTag:tabs_Ie,name:\"Tabs\"}))))}let ve=\"div\";function Ce(e,r){let{orientation:t,selectedIndex:l}=tabs_C(\"Tab.List\"),a=use_sync_refs_y(r),n=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:l}),[l]),s=e,g={ref:a,role:\"tablist\",\"aria-orientation\":t};return render_L()({ourProps:g,theirProps:s,slot:n,defaultTag:ve,name:\"Tabs.List\"})}let Me=\"button\";function Ge(e,r){var ee,te;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-tab-${t}`,disabled:a=!1,autoFocus:n=!1,...s}=e,{orientation:g,activation:b,selectedIndex:f,tabs:d,panels:u}=tabs_C(\"Tab\"),T=Y(\"Tab\"),p=tabs_C(\"Tab\"),[c,h]=(0,external_React_namespaceObject.useState)(null),m=(0,external_React_namespaceObject.useRef)(null),M=use_sync_refs_y(m,r,h);use_iso_morphic_effect_n(()=>T.registerTab(m),[T,m]);let S=stable_collection_C(\"tabs\"),P=d.indexOf(m);P===-1&&(P=S);let A=P===f,E=use_event_o(o=>{var $;let L=o();if(L===focus_management_T.Success&&b===\"auto\"){let q=($=owner_u(m))==null?void 0:$.activeElement,re=p.tabs.findIndex(ce=>ce.current===q);re!==-1&&T.change(re)}return L}),_=use_event_o(o=>{let L=d.map(q=>q.current).filter(Boolean);if(o.key===keyboard_o.Space||o.key===keyboard_o.Enter){o.preventDefault(),o.stopPropagation(),T.change(P);return}switch(o.key){case keyboard_o.Home:case keyboard_o.PageUp:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.First));case keyboard_o.End:case keyboard_o.PageDown:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.Last))}if(E(()=>match_u(g,{vertical(){return o.key===keyboard_o.ArrowUp?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowDown?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error},horizontal(){return o.key===keyboard_o.ArrowLeft?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowRight?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error}}))===focus_management_T.Success)return o.preventDefault()}),D=(0,external_React_namespaceObject.useRef)(!1),K=use_event_o(()=>{var o;D.current||(D.current=!0,(o=m.current)==null||o.focus({preventScroll:!0}),T.change(P),micro_task_t(()=>{D.current=!1}))}),J=use_event_o(o=>{o.preventDefault()}),{isFocusVisible:i,focusProps:G}=$f7dceffc5ad7768b$export$4e328f61c538687f({autoFocus:n}),{isHovered:R,hoverProps:X}=$6179b936705e76d3$export$ae780daf29e6d456({isDisabled:a}),{pressed:Z,pressProps:ue}=use_active_press_w({disabled:a}),Te=(0,external_React_namespaceObject.useMemo)(()=>({selected:A,hover:R,active:Z,focus:i,autofocus:n,disabled:a}),[A,R,i,Z,n,a]),de=render_({ref:M,onKeyDown:_,onMouseDown:J,onClick:K,id:l,role:\"tab\",type:use_resolve_button_type_e(e,c),\"aria-controls\":(te=(ee=u[P])==null?void 0:ee.current)==null?void 0:te.id,\"aria-selected\":A,tabIndex:A?0:-1,disabled:a||void 0,autoFocus:n},G,X,ue);return render_L()({ourProps:de,theirProps:s,slot:Te,defaultTag:Me,name:\"Tabs.Tab\"})}let Ue=\"div\";function tabs_He(e,r){let{selectedIndex:t}=tabs_C(\"Tab.Panels\"),l=use_sync_refs_y(r),a=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:t}),[t]),n=e,s={ref:l};return render_L()({ourProps:s,theirProps:n,slot:a,defaultTag:Ue,name:\"Tabs.Panels\"})}let we=\"div\",Oe=O.RenderStrategy|O.Static;function Ne(e,r){var A,E,_,D;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-panel-${t}`,tabIndex:a=0,...n}=e,{selectedIndex:s,tabs:g,panels:b}=tabs_C(\"Tab.Panel\"),f=Y(\"Tab.Panel\"),d=(0,external_React_namespaceObject.useRef)(null),u=use_sync_refs_y(d,r);use_iso_morphic_effect_n(()=>f.registerPanel(d),[f,d]);let T=stable_collection_C(\"panels\"),p=b.indexOf(d);p===-1&&(p=T);let c=p===s,{isFocusVisible:h,focusProps:m}=$f7dceffc5ad7768b$export$4e328f61c538687f(),M=(0,external_React_namespaceObject.useMemo)(()=>({selected:c,focus:h}),[c,h]),S=render_({ref:u,id:l,role:\"tabpanel\",\"aria-labelledby\":(E=(A=g[p])==null?void 0:A.current)==null?void 0:E.id,tabIndex:c?a:-1},m),P=render_L();return!c&&((_=n.unmount)==null||_)&&!((D=n.static)!=null&&D)?external_React_namespaceObject.createElement(hidden_f,{\"aria-hidden\":\"true\",...S}):P({ourProps:S,theirProps:n,slot:M,defaultTag:we,features:Oe,visible:c,name:\"Tabs.Panel\"})}let ke=K(Ge),Be=K(he),We=K(Ce),je=K(tabs_He),Ke=K(Ne),Tt=Object.assign(ke,{Group:Be,List:We,Panels:je,Panel:Ke});\n\n;// ./src/images/login-playground.png\n/* harmony default export */ const login_playground = (__webpack_require__.p + \"020bb5f9e6abbf80f12321f0e7771a22.png\");\n;// ./src/images/feature-code.svg\n/* harmony default export */ const feature_code = (__webpack_require__.p + \"a7b10863bbe3fbfc41866841fa68b986.svg\");\n;// ./src/images/feature-users.svg\n/* harmony default export */ const feature_users = (__webpack_require__.p + \"f333a678e8afc5ee2a0d5213d6496862.svg\");\n;// ./src/images/feature-unlock.svg\n/* harmony default export */ const feature_unlock = (__webpack_require__.p + \"511bf24fada771734184ab0703182525.svg\");\n;// ./src/components/step/Features.tsx\n\n\n\nfunction replaceWithBr(str) {\n    return str.replace(/\\n/g, '<br />');\n}\n\n\n\n\nconst tabs = [\n    {\n        name: 'Overview',\n        features: [\n            {\n                name: 'Overview',\n                description: ' Regularly updating your installation, along with its installed plugins and themes, is crucial for maintaining security.\\n\\n' +\n                    'On a standard installation, this plugin provides protection for logins and comments. Since WordPress doesn’t support forms without plugins, we’ve made an effort to support the most widely used form plugins. If your preferred form plugin isn&rsquo;t supported, please contact us, and we&rsquo;ll do our best to add it to the development roadmap.\\n\\n' +\n                    'You can also use this plugin in development mode or in the WordPress playground. A test version of the plugin, complete with examples, has been made available for you to experiment with.',\n                imageSrc: login_playground,\n                imageAlt: 'Isometric preview of the login page.',\n            },\n        ],\n    },\n    {\n        name: 'How does it work?',\n        features: [\n            {\n                name: 'How does it work?',\n                description: 'This plugin works by requesting a captcha to be generated by our cloud service. This captcha is delivered to your site with some encrypted data. When a user attempts to solve the captcha, the service uses this data to validate their response. The plugin then passes or fails the action, thereby protecting your site.',\n                imageSrc: feature_code,\n                imageAlt: 'Isometric screenshot illustraitng a code sample',\n            },\n        ],\n    },\n    {\n        name: 'Authorised roles',\n        features: [\n            {\n                name: 'Authorised roles',\n                description: 'These are the roles that won&rsquo;t be presented a captcha: Administrator and Editor roles are always treated as Authorised roles. However, since WordPress allows for open registration without email authentication, we don&rsquo;t assume that other roles are safe.',\n                imageSrc: feature_users,\n                imageAlt: 'Isometric illustration of users',\n            },\n        ],\n    },\n    {\n        name: 'Protect',\n        features: [\n            {\n                name: 'Protect',\n                description: 'You can configure what you want this plugin to protect, forms, comments and login can be individually managed. Toggling options applies the settings immediately.\\n\\n' +\n                    'We fund the development of this plugin by making a tiny charge for each successful login or submission, we believe is the fairest way to charge as it encourages us to deal with the issue in an efficient way.\\n\\n' +\n                    'New customers get free credits to try out the service and see if it fits their needs.',\n                imageSrc: feature_unlock,\n                imageAlt: 'Isometric illustration of a lock',\n            },\n        ],\n    },\n];\nfunction Features() {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"section\", { \"aria-labelledby\": \"features-heading\", className: \"border-b border-white/20 pb-4 pt-4 text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mx-auto max-w-2xl px-8 lg:max-w-none lg:px-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"max-w-3xl\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl/7\", children: \"Web-Engine Sentry is a plugin that offers protection for comments, administrative login, and form submissions. While it won\\u2019t prevent human submissions, its primary objective is to make it challenging for automated programs to access your site.\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(Be, { className: \"my-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"-mx-4 flex overflow-x-auto sm:mx-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex-auto border-b border-white/20 px-4 sm:px-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(We, { className: \"-mb-px flex space-x-10\", children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Tt, { className: \"whitespace-nowrap border-b-2 border-transparent py-6 text-sm font-medium text-white/90 hover:border-sky-200 hover:text-sky-400 data-[selected]:border-sky-300 data-[selected]:text-sky-400\", children: tab.name }, tab.name))) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(je, { as: external_React_namespaceObject.Fragment, children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Ke, { className: \"space-y-16 pt-10 lg:pt-16\", children: tab.features.map((feature) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex flex-col-reverse lg:grid lg:grid-cols-12 lg:gap-x-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-6 lg:col-span-5 lg:mt-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-lg font-medium text-white\", children: feature.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2 text-sm text-white/90\", dangerouslySetInnerHTML: {\n                                                            __html: replaceWithBr(feature.description),\n                                                        } })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"lg:col-span-7\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: feature.imageAlt, src: feature.imageSrc, className: \"w-full object-cover\" }) })] }, feature.name))) }, tab.name))) })] })] }) }) }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckIcon.js\n\nfunction CheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.916 4.626a.75.75 0 0 1 .208 1.04l-9 13.5a.75.75 0 0 1-1.154.114l-6-6a.75.75 0 0 1 1.06-1.06l5.353 5.353 8.493-12.74a.75.75 0 0 1 1.04-.207Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckIcon);\n/* harmony default export */ const esm_CheckIcon = (CheckIcon_ForwardRef);\n;// ./src/components/step/Documentation.tsx\n\n\n\n\n\n\n\n\n\nfunction Documentation({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [plugins, setPlugins] = (0,external_React_namespaceObject.useState)([]);\n    const [installed, setInstalled] = (0,external_React_namespaceObject.useState)(['']);\n    const [selected, setSelected] = (0,external_React_namespaceObject.useState)('');\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        if (false === loaded) {\n            const data = {\n                action: 'we360cloud_sentry',\n                token: webEngineCaptcha.token,\n                we360cloud_sentry_route: 'plugins',\n            };\n            fetch(webEngineCaptcha.url, {\n                method: 'POST',\n                headers: {\n                    'content-type': 'application/x-www-form-urlencoded',\n                },\n                body: query_string.stringify(data),\n            })\n                .then((response) => response.json())\n                .then((json) => {\n                if (false === json ||\n                    undefined === json.payload ||\n                    undefined === json.payload.we360cloud_sentry_plugins) {\n                }\n                else {\n                    setPlugins(json.payload.we360cloud_sentry_plugins);\n                    setInstalled(json.payload.we360cloud_sentry_installed);\n                    if (json.payload.we360cloud_sentry_installed) {\n                        setSelected(json.payload.we360cloud_sentry_installed[0]);\n                    }\n                }\n                setLoaded(true);\n            });\n        }\n    }, [loaded]);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-5xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-12\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Features, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-4 mt-8 max-w-screen-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-black text-lg\", children: \"Supported forms plugins\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Plugins are listed alphabetically; support for a plugin doesn\\u2019t imply endorsement of its functionality. We recommend choosing a form plugin that best suits your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Captchas are enabled\" }), \" and will appear for all forms. The following supported plugins appear to be installed. Plugin-specific notes are listed below each one.\"] }), loaded && selected === '' ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-bold text-lg border-b border-white/20 pb-4\", children: \"It looks like you don't have any of the supported form plugins installed or activated. See the list of supported plugins below. Contact us if you'd like support for another form plugin.\" }) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex gap-4 border-b border-white/20 pb-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: plugins.map((plugin) => installed.includes(plugin.name) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { className: \"py-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: plugin.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckIcon, { className: \"w-4 h-4 ml-2 align-top inline\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), plugin.notes] }) }, plugin.name))) }) }) })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"You can also toggle the protection of comments and logins. We recommend enabling these options, but you can choose to disable this protection if it doesn\\u2019t suit your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Full list of officially supported plugins -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { className: \"list-disc ml-4\", children: plugins.map((plugin) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { children: plugin.name +\n                                                            ' ' +\n                                                            plugin.version }, plugin.name))) }) })] })] })] })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\n\nfunction CheckCircleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n  }));\n}\nconst CheckCircleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckCircleIcon);\n/* harmony default export */ const esm_CheckCircleIcon = (CheckCircleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\n\nfunction ExclamationTriangleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\"\n  }));\n}\nconst ExclamationTriangleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ExclamationTriangleIcon);\n/* harmony default export */ const esm_ExclamationTriangleIcon = (ExclamationTriangleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/20/solid/esm/XMarkIcon.js\n\nfunction XMarkIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z\"\n  }));\n}\nconst XMarkIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(XMarkIcon);\n/* harmony default export */ const esm_XMarkIcon = (XMarkIcon_ForwardRef);\n;// ./src/components/Alert.tsx\n'use client';\n\n\n\n\n\nfunction Alert({ text, type, title, visible }) {\n    const [show, setShow] = (0,external_React_namespaceObject.useState)(visible);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { \"aria-live\": \"assertive\", className: \"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex w-full flex-col items-center space-y-4 sm:items-end\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { show: show, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black/5 transition data-[closed]:data-[enter]:translate-y-2 data-[enter]:transform data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-100 data-[enter]:ease-out data-[leave]:ease-in data-[closed]:data-[enter]:sm:translate-x-2 data-[closed]:data-[enter]:sm:translate-y-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"p-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"shrink-0\", children: [('' === type ||\n                                                'success' === type) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckCircleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-green-400\" })), 'warning' === type && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ExclamationTriangleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-orange-500-400\" })), ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"ml-3 w-0 flex-1 pt-0.5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sm font-medium text-gray-900\", children: title }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-1 text-sm text-gray-500\", children: text })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-4 flex shrink-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { type: \"button\", onClick: () => {\n                                                setShow(false);\n                                            }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Close\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_XMarkIcon, { \"aria-hidden\": \"true\", className: \"size-5\" })] }) })] }) }) }) }) }) }) }));\n}\n\n;// ./src/components/Window.tsx\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction Window({ registrationStep, onStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, onPin, pin, balance, newUser, notice, testMode, logged, expires, }) {\n    const [showReg, setShowReg] = (0,external_React_namespaceObject.useState)(false);\n    const getPin = () => {\n        onStep('pin');\n    };\n    const retryLoad = () => {\n        onStep('reload');\n    };\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-12\", children: [undefined !== notice && notice.text && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Alert, { text: notice.text, title: notice.title ? notice.title : '', visible: true, type: notice.type ? notice.type : 'warning' })), undefined === registrationStep ||\n                                ('error' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"Unable to connect to cloud service,\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \" please\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => retryLoad(), className: \"underline inline-block\", children: \"try again in a moment\" }), \".\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"If the problem persists the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"a\", { href: \"https://www.web-engineer.co.uk/doc/sentry-wordpress\", target: \"_blank\", className: \"underline\", rel: \"noreferrer\", children: \"support page\" }), ' ', \"provides information, frequently asked questions and access to raise a request.\"] })] }))), 'init' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-zinc-100\", children: \"Loading.\" })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [!showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Intro, { onSetShowReg: setShowReg })), showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: [\"This plugin uses the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"to generate secure challenges, registration is required to use this service\"] }))] })), 'activate' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: \"The Web-Engine cloud service is connected, however sentry isn\\u2019t enabled.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('sentry-setup'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Enable \", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Sentry\" })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('force-disconnect'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Disconnect from all\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Web-Engine cloud\" }), ' ', \"services\"] }) })] })), 'pin' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Check your email to verify your account to validate your account\" })), 'verified' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Account registered\" }))] })] }), 'manage' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Manage, { registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, testMode: testMode, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt, true);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt, true);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt, true);\n                }, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged, expires: expires })), ('register' === registrationStep ||\n                'registering' === registrationStep) &&\n                showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Register, { setShowReg: setShowReg, getPin: getPin, registrationStep: registrationStep, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onRegistrationEmail: (email) => {\n                    onRegistrationEmail(email);\n                }, onRegistrationName: (name) => {\n                    onRegistrationName(name);\n                }, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } })), (registrationStep === 'pin sent' ||\n                registrationStep === 'bad pin' ||\n                registrationStep === 'error pin' ||\n                registrationStep === 'pin check') && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(PinCheck, { registrationStep: registrationStep, registrationEmail: registrationEmail, pin: pin, onPin: (val) => {\n                    onPin(val);\n                }, onStep: (step) => {\n                    onStep(step);\n                } })), registrationStep === 'documentation' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'authenticated' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Options, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'welcome' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-xl text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mb-2\", children: \"Welcome to the Web-Engine cloud captcha service, your site is now connected.\" }), newUser === true ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mb-2\", children: [\"To use the optional\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"premium services\" }), ' ', \"you will need to complete setting up your account and login to the our cloud services, an email has been sent with instructions.\"] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: Number(balance) > 0 && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { children: [' ', \"Your existing balance is\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: undefined === balance\n                                                            ? '-'\n                                                            : Number(balance).toLocaleString() }), ' ', \"credits\"] })) }))] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"w-full mt-4 justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700\", children: \"Get started\" })] })] })), (registrationStep === 'unregister' ||\n                registrationStep === 'force-disconnect') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), registrationStep === 'unregister' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site from the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Sentry\" }), \" service, this site will no longer be protected\"] })), registrationStep === 'force-disconnect' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site entirely from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap\", children: \"Web-Engine Cloud\" }), \".\"] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep(registrationStep === 'unregister'\n                                    ? 'unregister-confirmed'\n                                    : 'force-disconnect-confirmed'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: \"Yes\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"No\" })] })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"text-center text-sm mt-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { href: \"https://www.web-engineer.co.uk/terms-conditions/privacy-policy\", target: \"_blank\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", rel: \"noreferrer\", children: [\"Privacy policy\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { rel: \"noopener noreferrer\", target: \"_blank\", href: \"https://www.we360.cloud\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", children: [\"Web-Engine cloud\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] })] })] }));\n}\n\n;// ./src/components/Loader.tsx\n'use client';\n\n\n\nfunction Loader({ visible, error, onRetry }) {\n    const dataProps = false === visible ? { 'data-closed': true } : {};\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", Object.assign({}, dataProps, { className: \"container min-w-[420px] relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in sm:my-8 max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-10 h-[15rem] w-[15rem] -translate-y-[3.8rem] translate-x-[1rem] opacity-50\", isLoading: true }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 512 512\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-4/4 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 256, cx: 256, cy: 256, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), error && error !== '' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl text-white font-bold\", children: error }), error && error !== '' && onRetry && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => {\n                            onRetry();\n                        }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Retry\" }) }))] }))] })));\n}\n\n;// ./src/components/App.tsx\n\n\n\n\n\n\n\nconst App = () => {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [status, setStatus] = (0,external_React_namespaceObject.useState)('init');\n    const [error, setError] = (0,external_React_namespaceObject.useState)('');\n    const [pin, setPin] = (0,external_React_namespaceObject.useState)('');\n    const [mailStep, setMailStep] = (0,external_React_namespaceObject.useState)(0);\n    const [notice, setNotice] = (0,external_React_namespaceObject.useState)();\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)(0);\n    const [newUser, setNewUser] = (0,external_React_namespaceObject.useState)(false);\n    const [registrationEmail, setRegistrationEmail] = (0,external_React_namespaceObject.useState)('');\n    const [registrationName, setRegistrationName] = (0,external_React_namespaceObject.useState)('');\n    const [testMode, setTestMode] = (0,external_React_namespaceObject.useState)(false);\n    const [logged, setLogged] = (0,external_React_namespaceObject.useState)(false);\n    const [expires, setExpires] = (0,external_React_namespaceObject.useState)(-1);\n    const [commAdministrative, setCommAdministrative] = (0,external_React_namespaceObject.useState)(false);\n    const [commNews, setCommNews] = (0,external_React_namespaceObject.useState)(false);\n    const [commDeveloper, setCommDeveloper] = (0,external_React_namespaceObject.useState)(false);\n    function handleCommAdministrativeChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_administrative', opt, setCommAdministrative);\n        }\n        else {\n            setCommAdministrative(opt);\n        }\n    }\n    function handleCommNewsChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_news', opt, setCommNews);\n        }\n        else {\n            setCommNews(opt);\n        }\n    }\n    function handleCommDeveloperChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_developer', opt, setCommDeveloper);\n        }\n        else {\n            setCommDeveloper(opt);\n        }\n    }\n    function updateComm(option, value, callback) {\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'updatecomm',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.payload.value === true);\n        });\n    }\n    const onStep = (requestedStep) => {\n        switch (requestedStep) {\n            case 'reload':\n                init();\n                break;\n            case 'manage':\n                setStatus('manage');\n                break;\n            case 'documentation':\n                setStatus('documentation');\n                break;\n            case 'authenticated':\n                setStatus('authenticated');\n                break;\n            case 'newly-authenticated':\n                init();\n                setStatus('authenticated');\n                break;\n            case 'force-disconnect':\n                setStatus('force-disconnect');\n                break;\n            case 'force-disconnect-confirmed':\n                const udata2 = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata2),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'unregister':\n                setStatus('unregister');\n                break;\n            case 'unregister-confirmed':\n                setLoaded(false);\n                const udata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'exit-testmode':\n                setLoaded(false);\n                const capdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(capdata),\n                })\n                    .then((response) => response.json())\n                    .then((capjson) => {\n                    setLoaded(true);\n                    if (capjson.code === 200) {\n                        setTestMode(false);\n                        setStatus('register');\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'pin':\n                setStatus('registering');\n                const pdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setStatus('pin sent');\n                    }\n                    else {\n                        setStatus('register');\n                    }\n                });\n                break;\n            case 'bad pin':\n                setStatus('bad pin');\n                break;\n            case 'pin check':\n                setStatus('pin check');\n                const pcdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                    commAdministrative,\n                    commNews,\n                    commDeveloper,\n                    pin,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pcdata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (false === data.success ||\n                        Number(data.code) !== 200) {\n                        setStatus('error pin');\n                    }\n                    else if ('authenticated' === data.status) {\n                        if (false === data.success ||\n                            Number(data.code) !== 200) {\n                            setStatus('error pin');\n                        }\n                        else if ('authenticated' === data.status) {\n                            onStep('sentry-setup');\n                            setBalance(data.balance);\n                            setNewUser(data.newUser);\n                            setLogged(data.logged);\n                        }\n                        else {\n                            setStatus('bad pin');\n                        }\n                    }\n                });\n                break;\n            case 'sentry-setup':\n                setLoaded(false);\n                const setupdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'sentrysetup',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(setupdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setLoaded(true);\n                        setStatus('welcome');\n                        setMailStep(0);\n                    }\n                    else {\n                        setError('Error with sentry setup');\n                        window.setTimeout(() => {\n                            location.reload();\n                        }, 10000);\n                    }\n                });\n                break;\n            case 'password-setup':\n                setMailStep(1);\n                const psdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'resetemail',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(psdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setMailStep(2);\n                    }\n                    else {\n                        setMailStep(3);\n                    }\n                });\n                break;\n            default:\n                setStatus('register');\n        }\n    };\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        setLoaded(false);\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'hello',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data ||\n                (data.code && Number(data.code) !== 200)) {\n                setLoaded(true);\n                setStatus('error');\n            }\n            else {\n                if (data.email) {\n                    setRegistrationEmail(data.email);\n                }\n                if (data.name) {\n                    setRegistrationName(data.name);\n                }\n                setLogged(data.logged);\n                setExpires(data.expires);\n                if (!data.products ||\n                    !data.products.includes('sentry')) {\n                    if (data.status === 'register') {\n                        setLoaded(true);\n                        setStatus(data.status);\n                    }\n                    else if (data.status === 'reset') {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    return;\n                }\n                const rqdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'testmode',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(rqdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    setLoaded(true);\n                    if (json.code === 200) {\n                        setTestMode(json.testmode);\n                        if (false === data.success) {\n                            setStatus('error');\n                        }\n                        else if ('authenticated' !== data.status) {\n                            setStatus(data.status);\n                        }\n                        if (data.notice) {\n                            setNotice(data.notice);\n                        }\n                        else {\n                            setNotice(undefined);\n                        }\n                        setCommAdministrative(data.communications.commAdministrative === 1);\n                        setCommNews(data.communications.commNews === 1);\n                        setCommDeveloper(data.communications.commDeveloper === 1);\n                        setBalance(data.balance);\n                        if (true === json.testmode) {\n                            setStatus('authenticated');\n                        }\n                        else {\n                            setStatus('manage');\n                        }\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n            }\n        });\n    }, []);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto relative top-0 left-0 w-full pr-[20px] pt-[20px]\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"inset-0 z-10 w-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex min-h-full items-end sm:p-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded &&\n                                'documentation' !== status &&\n                                'manage' !== status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"opacity-0 -translate-x-full\", enterTo: \"opacity-100 translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100 translate-x-0\", leaveTo: \"opacity-0 translate-x-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'documentation' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                                    onStep(step);\n                                }, logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'manage' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), true !== loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Loader, { visible: !loaded, error: error }))] }) }) }) }));\n};\n/* harmony default export */ const components_App = (App);\n\n// EXTERNAL MODULE: ./src/components/styles/index.css\nvar components_styles = __webpack_require__(\"./src/components/styles/index.css\");\n;// ./src/components/DocRoot.tsx\n\n\n\n\n\nclass DocRoot extends HTMLElement {\n    constructor() {\n        super();\n        this._uiContainer = document.createElement('div');\n        const styles = new CSSStyleSheet();\n        const shadowRoot = this.attachShadow({ mode: 'closed' });\n        const uiRoot = (0,client.createRoot)(this._uiContainer);\n        shadowRoot.append(this._uiContainer);\n        styles.replace(components_styles[\"default\"].toString());\n        shadowRoot.adoptedStyleSheets = [styles];\n        uiRoot.render((0,external_ReactJSXRuntime_namespaceObject.jsx)(App, {}));\n    }\n}\n\n;// ./src/index.ts\n\ncustomElements.define('wp-we-captcha', DocRoot);\n\n\n//# sourceURL=webpack://we-capture-wordpress/./src/index.ts_+_86_modules?");
     59eval("\n// NAMESPACE OBJECT: ./node_modules/query-string/base.js\nvar base_namespaceObject = {};\n__webpack_require__.r(base_namespaceObject);\n__webpack_require__.d(base_namespaceObject, {\n  exclude: () => (exclude),\n  extract: () => (extract),\n  parse: () => (parse),\n  parseUrl: () => (parseUrl),\n  pick: () => (pick),\n  stringify: () => (stringify),\n  stringifyUrl: () => (stringifyUrl)\n});\n\n;// external \"ReactJSXRuntime\"\nconst external_ReactJSXRuntime_namespaceObject = window[\"ReactJSXRuntime\"];\n// EXTERNAL MODULE: ./node_modules/react-dom/client.js\nvar client = __webpack_require__(\"./node_modules/react-dom/client.js\");\n;// external \"React\"\nconst external_React_namespaceObject = window[\"React\"];\nvar external_React_namespaceObject_0 = /*#__PURE__*/__webpack_require__.t(external_React_namespaceObject, 2);\n;// ./src/components/WebUiLogo.tsx\n\n\nconst WebUiLogo = ({ isLoading, className, }) => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: className, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: ` ${isLoading ? 'animate-[spin_6s_infinite]' : ''}`, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1727.29,904.649L1832.46,1009.82L1743.76,944.049C1711.49,971.549 1670.7,989.341 1625.94,992.893L1609.34,1104.72L1592.74,992.893C1560.53,990.338 1530.39,980.412 1503.99,964.802L1533.56,935.235C1556.31,946.833 1582.07,953.376 1609.34,953.376C1655.35,953.376 1697.04,934.755 1727.29,904.649Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1430.12,681.758L1459.74,711.378C1448.46,733.883 1442.11,759.279 1442.11,786.146C1442.11,831.566 1460.26,872.78 1489.68,902.921L1392.35,1000.25L1451.44,920.562C1423.94,888.294 1406.14,847.511 1402.59,802.747L1290.77,786.146L1402.59,769.546C1405.12,737.729 1414.83,707.925 1430.12,681.758Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1830.85,563.667L1834.6,560.883L1767.24,651.731C1794.74,683.999 1812.53,724.782 1816.09,769.546L1927.91,786.146L1816.09,802.747C1813.58,834.358 1803.97,863.982 1788.86,890.025L1759.21,860.378C1770.32,838.009 1776.57,812.802 1776.57,786.146C1776.57,739.749 1757.63,697.739 1727.08,667.436L1830.85,563.667Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1389.34,564.783L1474.92,628.244C1507.19,600.744 1547.97,582.952 1592.74,579.4L1609.34,467.575L1625.94,579.4C1657.16,581.877 1686.44,591.281 1712.25,606.072L1682.55,635.775C1660.43,624.978 1635.59,618.917 1609.34,618.917C1563.53,618.917 1522,637.374 1491.8,667.242L1389.34,564.783Z\", style: {\n                                                        fill: 'white',\n                                                        fillOpacity: '0.43',\n                                                    } }) })] }) })] }) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"absolute top-0 right-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"svg\", { width: \"100%\", height: \"100%\", viewBox: \"0 0 1395 1387\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1,0,0,1,-5794,0)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"g\", { id: \"captcha-mark-w\", transform: \"matrix(1.22819,0,0,1.22961,481.695,-153.536)\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"clipPath\", { id: \"_clip1\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"rect\", { x: \"4325.42\", y: \"124.866\", width: \"1135\", height: \"1128\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { clipPath: \"url(#_clip1)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"g\", { transform: \"matrix(1.77245,0,0,1.7704,2036.1,-702.932)\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"path\", { d: \"M1693.55,711.864C1704.35,743.391 1704.53,851.487 1611.63,912.994C1520.21,852.414 1520.39,743.689 1529.72,711.864C1555.26,700.92 1578.06,693.3 1611.63,693.49C1643.32,693.669 1668.78,698.809 1693.55,711.864ZM1543.69,727.081C1543.63,727.108 1543.57,727.135 1543.5,727.162C1535.73,753.659 1535.58,844.181 1611.7,894.619C1688.46,843.796 1688.9,754.764 1680.1,727.766C1686.79,759.409 1681.87,838.522 1611.71,884.976C1542.12,838.863 1537.75,758.469 1543.69,727.081Z\", style: { fill: 'white' } }) }) })] }) }) }) })] }));\n};\n\n;// ./node_modules/@heroicons/react/20/solid/esm/ArrowTopRightOnSquareIcon.js\n\nfunction ArrowTopRightOnSquareIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4.25 5.5a.75.75 0 0 0-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-4a.75.75 0 0 1 1.5 0v4A2.25 2.25 0 0 1 12.75 17h-8.5A2.25 2.25 0 0 1 2 14.75v-8.5A2.25 2.25 0 0 1 4.25 4h5a.75.75 0 0 1 0 1.5h-5Z\",\n    clipRule: \"evenodd\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M6.194 12.753a.75.75 0 0 0 1.06.053L16.5 4.44v2.81a.75.75 0 0 0 1.5 0v-4.5a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0 0 1.5h2.553l-9.056 8.194a.75.75 0 0 0-.053 1.06Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowTopRightOnSquareIcon);\n/* harmony default export */ const esm_ArrowTopRightOnSquareIcon = (ForwardRef);\n;// ./src/components/step/Intro.tsx\n\nfunction Intro({ onSetShowReg }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-2xl text-zinc-100\", children: \"Registration with the service provider is required in order to use this service.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-xl text-zinc-100\", children: [\"This service is designed to enhance the security of form submissions and admin access. It\\u2019s\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"privacy-first\" }), \" plugin, our servers only use data strictly necessary to provide the service and authenticate users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"The\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"basic service is entirely free to use\" }), \"; however, it uses a simple challenge that can be easily solved by bots using AI. Our premium service offers comprehensive protection and is available to all registered users.\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onSetShowReg(true), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"Begin\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: [\"Note that this plugin should be integrated into your overall security strategy. Documentation and support are provided, but appropriate configuration is necessary. The plugin has been tested on the current versions of the most popular form plugins.\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"It is crucial to keep your installation and its installed plugins and themes up-to-date.\" })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\n\nfunction ArrowPathIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"\n  }));\n}\nconst ArrowPathIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ArrowPathIcon);\n/* harmony default export */ const esm_ArrowPathIcon = (ArrowPathIcon_ForwardRef);\n;// ./src/components/CheckOption.tsx\n\n\n\nfunction CheckOption({ checked, disabled, onChange, name, title, description, loading = false, }) {\n    const toggleCheck = (e) => {\n        const newChecked = !checked;\n        setOurChecked(newChecked);\n        onChange(newChecked);\n        e.preventDefault();\n    };\n    const [ourChecked, setOurChecked] = (0,external_React_namespaceObject.useState)(checked);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex h-6 items-center\", children: [(ourChecked !== checked || loading) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 animate-spin inline\" })), ourChecked === checked && checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" })), ourChecked === checked && !checked && !loading && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: name, name: name, disabled: disabled, type: \"checkbox\", defaultChecked: checked, onChange: toggleCheck, \"aria-describedby\": name + '-description', className: \"h-4 w-4 rounded border-zinc-300 text-sky-600 focus:ring-sky-600\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-3 text-sm/6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { className: \"text-left\", onClick: toggleCheck, children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: name, className: \"font-medium text-white\", children: title }), undefined !== description && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sky-100\", children: description }))] }) })] }));\n}\n\n;// ./src/components/step/Communications.tsx\n\n\nfunction Communications({ registrationStep, onCommAdministrative, onCommNews, onCommDeveloper, commAdministrative, commNews, commDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Communication preferences -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commAdministrative, onChange: onCommAdministrative, name: \"administrative\", title: \"Administrative\", description: \"Adminmistrative notifications\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commNews, onChange: onCommNews, name: \"information\", title: \"News & information\", description: \"Tips and tricks on how to use this and related products\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { disabled: 'register' !== registrationStep, checked: commDeveloper, onChange: onCommDeveloper, name: \"devel\", title: \"Developer notices\", description: \"Notification of updates to services plugins and API's\" })] })] }));\n}\n\n;// ./src/components/step/Register.tsx\n\n\n\nfunction Register({ setShowReg, getPin, registrationStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Name\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: 'register' !== registrationStep, id: \"name\", name: \"name\", defaultValue: registrationName, onChange: (e) => onRegistrationName(e.target.value), onBlur: (e) => onRegistrationName(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"label\", { htmlFor: \"email\", className: \"block text-sm/6 font-medium text-white\", children: \"Email address\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { id: \"email\", name: \"email\", type: \"email\", disabled: 'register' !== registrationStep, defaultValue: registrationEmail, onChange: (e) => onRegistrationEmail(e.target.value), onBlur: (e) => onRegistrationEmail(e.target.value), required: true, autoComplete: \"email\", className: \"block w-full rounded-md border-0 bg-white/5 p-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring--500 sm:text-sm/6\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-md text-zinc-100\", children: \"We will send a \\u201Cpin\\u201D to this email address which you will need on the next step to complete the registration process - this must be a valid email address to progress.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: registrationStep, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", disabled: 'registering' === registrationStep, className: 'inline-flex w-full justify-center rounded-md bg-sky-700 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm ' +\n                            ('register' === registrationStep\n                                ? 'hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700'\n                                : 'opacity-80'), onClick: () => setShowReg(false), children: \"Back\" }), 'registering' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Registering\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"submit\", className: \"inline-flex w-full justify-center rounded-md bg-sky-500 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-sky-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500\", onClick: () => getPin(), children: \"Register\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", {})] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/InboxArrowDownIcon.js\n\nfunction InboxArrowDownIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 3.75H6.912a2.25 2.25 0 0 0-2.15 1.588L2.35 13.177a2.25 2.25 0 0 0-.1.661V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18v-4.162c0-.224-.034-.447-.1-.661L19.24 5.338a2.25 2.25 0 0 0-2.15-1.588H15M2.25 13.5h3.86a2.25 2.25 0 0 1 2.012 1.244l.256.512a2.25 2.25 0 0 0 2.013 1.244h3.218a2.25 2.25 0 0 0 2.013-1.244l.256-.512a2.25 2.25 0 0 1 2.013-1.244h3.859M12 3v8.25m0 0-3-3m3 3 3-3\"\n  }));\n}\nconst InboxArrowDownIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(InboxArrowDownIcon);\n/* harmony default export */ const esm_InboxArrowDownIcon = (InboxArrowDownIcon_ForwardRef);\n;// ./src/components/step/PinCheck.tsx\n\n\nfunction PinCheck({ pin, registrationStep, registrationEmail, onPin, onStep, }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"form\", { action: \"#\", method: \"POST\", className: \"space-y-6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate inline-flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100 ring-1 ring-inset ring-zinc-300/10\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_InboxArrowDownIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"To\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/40 px-3 py-2 text-sm font-semibold text-white ring-1 ring-inset ring-zinc-300/10\", children: registrationEmail })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"label\", { htmlFor: \"pin\", className: \"mt-6 mb-1 text-pretty text-lg/8 text-zinc-100\", children: [\"An email has been sent from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"containing a pin, please enter below to continue -\"] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-2 inline-flex items-center\", children: [registrationStep !== 'bad pin' &&\n                                registrationStep !== 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { disabled: registrationStep === 'pin check', name: \"pin\", type: \"text\", onChange: (e) => onPin(e.target.value), onBlur: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950 ring-white ring-2\" })), (registrationStep === 'bad pin' ||\n                                registrationStep === 'error pin') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"input\", { name: \"pin\", type: \"text\", defaultValue: \"\", onFocus: (e) => onPin(e.target.value), onChange: (e) => onPin(e.target.value), size: 6, maxLength: 6, required: true, className: \"text-center block w-[12rem] font-black rounded-md border-0 p-5 text-white shadow-sm ring-inset focus:ring-4 sm:text-3xl  bg-sky-950/50 ring-white ring-2\" }), registrationStep === 'bad pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"that didn't work, please try again\"] })), registrationStep === 'error pin' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"ml-2 inline text-pretty text-lg/8 text-zinc-100 font-black\", children: [' ', \"unable to connect to verify pin, please try later\"] }))] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-white\", children: \"Please check Junk / Spam folders and the addressed used, the email should arrive within a few minuites and will expire after a short while. You can always refresh and try again if your having trouble.\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-2\", children: [registrationStep === 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900/50 px-3 py-2 text-sm font-semibold text-white/50 shadow-sm  focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { disabled: true, className: \"inline-flex w-full justify-center items-center rounded-md bg-sky-300 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm \", children: [\"Verifying\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-4 h-4 ml-4 animate-spin inline\" })] }) })] })), registrationStep !== 'pin check' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('register'), className: \"inline-flex w-full justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-800\", children: \"Back\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"col-span-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { disabled: pin && pin.length === 6 ? false : true, className: 'inline-flex w-full justify-center rounded-md px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-500' +\n                                        (pin && pin.length === 6\n                                            ? ' bg-sky-500 hover:bg-sky-400'\n                                            : ' bg-sky-900'), onClick: () => pin && pin.length === 6\n                                        ? onStep('pin check')\n                                        : onStep('bad pin'), children: \"Verify\" }) })] }))] })] }));\n}\n\n;// ./node_modules/@headlessui/react/dist/utils/micro-task.js\nfunction micro_task_t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}\n\n;// ./node_modules/@headlessui/react/dist/utils/disposables.js\nfunction disposables_o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return micro_task_t(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=disposables_o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-disposables.js\nfunction use_disposables_p(){let[e]=(0,external_React_namespaceObject.useState)(disposables_o);return (0,external_React_namespaceObject.useEffect)(()=>()=>e.dispose(),[e]),e}\n\n;// ./node_modules/@headlessui/react/dist/utils/env.js\nvar i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js\nlet use_iso_morphic_effect_n=(e,t)=>{s.isServer?(0,external_React_namespaceObject.useEffect)(e,t):(0,external_React_namespaceObject.useLayoutEffect)(e,t)};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-latest-value.js\nfunction use_latest_value_s(e){let r=(0,external_React_namespaceObject.useRef)(e);return use_iso_morphic_effect_n(()=>{r.current=e},[e]),r}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-event.js\nlet use_event_o=function(t){let e=use_latest_value_s(t);return external_React_namespaceObject.useCallback((...r)=>e.current(...r),[e])};\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-is-mounted.js\nfunction f(){let e=(0,external_React_namespaceObject.useRef)(!1);return use_iso_morphic_effect_n(()=>(e.current=!0,()=>{e.current=!1}),[]),e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js\nfunction use_server_handoff_complete_s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\" in external_React_namespaceObject_0?(o=>o.useSyncExternalStore)(external_React_namespaceObject_0)(()=>()=>{},()=>!1,()=>!r):!1}function use_server_handoff_complete_l(){let r=use_server_handoff_complete_s(),[e,n]=external_React_namespaceObject.useState(s.isHandoffComplete);return e&&s.isHandoffComplete===!1&&n(!1),external_React_namespaceObject.useEffect(()=>{e!==!0&&n(!0)},[e]),external_React_namespaceObject.useEffect(()=>s.handoff(),[]),r?!1:e}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-sync-refs.js\nlet u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function use_sync_refs_y(...t){let n=(0,external_React_namespaceObject.useRef)(t);(0,external_React_namespaceObject.useEffect)(()=>{n.current=t},[t]);let c=use_event_o(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-flags.js\nfunction c(u=0){let[t,l]=(0,external_React_namespaceObject.useState)(u),g=(0,external_React_namespaceObject.useCallback)(e=>l(e),[t]),s=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a|e),[t]),m=(0,external_React_namespaceObject.useCallback)(e=>(t&e)===e,[t]),n=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a&~e),[l]),F=(0,external_React_namespaceObject.useCallback)(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-transition.js\nvar use_transition_T,b;typeof process!=\"undefined\"&&typeof globalThis!=\"undefined\"&&typeof Element!=\"undefined\"&&((use_transition_T=process==null?void 0:process.env)==null?void 0:use_transition_T[\"NODE_ENV\"])===\"test\"&&typeof((b=Element==null?void 0:Element.prototype)==null?void 0:b.getAnimations)==\"undefined\"&&(Element.prototype.getAnimations=function(){return console.warn([\"Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\",\"Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\",\"\",\"Example usage:\",\"```js\",\"import { mockAnimationsApi } from 'jsdom-testing-mocks'\",\"mockAnimationsApi()\",\"```\"].join(`\n`)),[]});var L=(r=>(r[r.None=0]=\"None\",r[r.Closed=1]=\"Closed\",r[r.Enter=2]=\"Enter\",r[r.Leave=4]=\"Leave\",r))(L||{});function use_transition_R(t){let n={};for(let e in t)t[e]===!0&&(n[`data-${e}`]=\"\");return n}function x(t,n,e,i){let[r,o]=(0,external_React_namespaceObject.useState)(e),{hasFlag:s,addFlag:a,removeFlag:l}=c(t&&r?3:0),u=(0,external_React_namespaceObject.useRef)(!1),f=(0,external_React_namespaceObject.useRef)(!1),E=use_disposables_p();return use_iso_morphic_effect_n(()=>{var d;if(t){if(e&&o(!0),!n){e&&a(3);return}return(d=i==null?void 0:i.start)==null||d.call(i,e),C(n,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(e?(a(3),l(4)):(a(4),l(2)))},run(){f.current?e?(l(3),a(4)):(l(4),a(3)):e?l(1):a(1)},done(){var p;f.current&&typeof n.getAnimations==\"function\"&&n.getAnimations().length>0||(u.current=!1,l(7),e||o(!1),(p=i==null?void 0:i.end)==null||p.call(i,e))}})}},[t,e,n,E]),t?[r,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(t,{prepare:n,run:e,done:i,inFlight:r}){let o=disposables_o();return j(t,{prepare:n,inFlight:r}),o.nextFrame(()=>{e(),o.requestAnimationFrame(()=>{o.add(M(t,i))})}),o.dispose}function M(t,n){var o,s;let e=disposables_o();if(!t)return e.dispose;let i=!1;e.add(()=>{i=!0});let r=(s=(o=t.getAnimations)==null?void 0:o.call(t).filter(a=>a instanceof CSSTransition))!=null?s:[];return r.length===0?(n(),e.dispose):(Promise.allSettled(r.map(a=>a.finished)).then(()=>{i||n()}),e.dispose)}function j(t,{inFlight:n,prepare:e}){if(n!=null&&n.current){e();return}let i=t.style.transition;t.style.transition=\"none\",e(),t.offsetHeight,t.style.transition=i}\n\n;// ./node_modules/@headlessui/react/dist/internal/open-closed.js\nlet n=(0,external_React_namespaceObject.createContext)(null);n.displayName=\"OpenClosedContext\";var open_closed_i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(open_closed_i||{});function open_closed_u(){return (0,external_React_namespaceObject.useContext)(n)}function open_closed_c({value:o,children:t}){return external_React_namespaceObject.createElement(n.Provider,{value:o},t)}function open_closed_s({children:o}){return external_React_namespaceObject.createElement(n.Provider,{value:null},o)}\n\n;// ./node_modules/@headlessui/react/dist/utils/class-names.js\nfunction class_names_t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}\n\n;// ./node_modules/@headlessui/react/dist/utils/match.js\nfunction match_u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,match_u),t}\n\n;// ./node_modules/@headlessui/react/dist/utils/render.js\nvar O=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(O||{}),render_A=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(render_A||{});function render_L(){let n=U();return (0,external_React_namespaceObject.useCallback)(r=>render_C({mergeRefs:n,...r}),[n])}function render_C({ourProps:n,theirProps:r,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:$;let o=P(r,n);if(t)return F(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return F(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return match_u(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return F(o,e,a,l,i)}function F(n,r={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(n,[\"unmount\",\"static\"]),y=n.ref!==void 0?{[i]:n.ref}:{},f=typeof l==\"function\"?l(r):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(r)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(t===external_React_namespaceObject.Fragment&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!(0,external_React_namespaceObject.isValidElement)(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>`  - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>`  - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...R)=>class_names_t(p(...R),o.className):class_names_t(p,o.className),T=c?{className:c}:{},g=P(f.props,m(h(o,[\"ref\"])));for(let R in u)R in g&&delete u[R];return (0,external_React_namespaceObject.cloneElement)(f,Object.assign({},g,u,y,{ref:s(H(f),y.ref)},T))}return (0,external_React_namespaceObject.createElement)(t,Object.assign({},h(o,[\"ref\"]),t!==external_React_namespaceObject.Fragment&&y,t!==external_React_namespaceObject.Fragment&&u),f)}function U(){let n=(0,external_React_namespaceObject.useRef)([]),r=(0,external_React_namespaceObject.useCallback)(e=>{for(let a of n.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return n.current=e,r}}function $(...n){return n.every(r=>r==null)?void 0:r=>{for(let e of n)e!=null&&(typeof e==\"function\"?e(r):e.current=r)}}function P(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];if(r.disabled||r[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(r,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return r}function render_(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];for(let s in e)Object.assign(r,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return r}function K(n){var r;return Object.assign((0,external_React_namespaceObject.forwardRef)(n),{displayName:(r=n.displayName)!=null?r:n.name})}function m(n){let r=Object.assign({},n);for(let e in r)r[e]===void 0&&delete r[e];return r}function h(n,r=[]){let e=Object.assign({},n);for(let a of r)a in e&&delete e[a];return e}function H(n){return external_React_namespaceObject.version.split(\".\")[0]>=\"19\"?n.props.ref:n.ref}\n\n;// ./node_modules/@headlessui/react/dist/components/transition/transition.js\n\"use client\";function ue(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:de)!==external_React_namespaceObject.Fragment||external_React_namespaceObject.Children.count(e.children)===1}let w=(0,external_React_namespaceObject.createContext)(null);w.displayName=\"TransitionContext\";var _e=(n=>(n.Visible=\"visible\",n.Hidden=\"hidden\",n))(_e||{});function De(){let e=(0,external_React_namespaceObject.useContext)(w);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}function He(){let e=(0,external_React_namespaceObject.useContext)(transition_M);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}let transition_M=(0,external_React_namespaceObject.createContext)(null);transition_M.displayName=\"NestingContext\";function transition_U(e){return\"children\"in e?transition_U(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t===\"visible\").length>0}function Te(e,t){let n=use_latest_value_s(e),l=(0,external_React_namespaceObject.useRef)([]),S=f(),R=use_disposables_p(),d=use_event_o((o,i=render_A.Hidden)=>{let a=l.current.findIndex(({el:s})=>s===o);a!==-1&&(match_u(i,{[render_A.Unmount](){l.current.splice(a,1)},[render_A.Hidden](){l.current[a].state=\"hidden\"}}),R.microTask(()=>{var s;!transition_U(l)&&S.current&&((s=n.current)==null||s.call(n))}))}),y=use_event_o(o=>{let i=l.current.find(({el:a})=>a===o);return i?i.state!==\"visible\"&&(i.state=\"visible\"):l.current.push({el:o,state:\"visible\"}),()=>d(o,render_A.Unmount)}),p=(0,external_React_namespaceObject.useRef)([]),c=(0,external_React_namespaceObject.useRef)(Promise.resolve()),C=(0,external_React_namespaceObject.useRef)({enter:[],leave:[]}),h=use_event_o((o,i,a)=>{p.current.splice(0),t&&(t.chains.current[i]=t.chains.current[i].filter(([s])=>s!==o)),t==null||t.chains.current[i].push([o,new Promise(s=>{p.current.push(s)})]),t==null||t.chains.current[i].push([o,new Promise(s=>{Promise.all(C.current[i].map(([r,f])=>f)).then(()=>s())})]),i===\"enter\"?c.current=c.current.then(()=>t==null?void 0:t.wait.current).then(()=>a(i)):a(i)}),g=use_event_o((o,i,a)=>{Promise.all(C.current[i].splice(0).map(([s,r])=>r)).then(()=>{var s;(s=p.current.shift())==null||s()}).then(()=>a(i))});return (0,external_React_namespaceObject.useMemo)(()=>({children:l,register:y,unregister:d,onStart:h,onStop:g,wait:c,chains:C}),[y,d,l,h,g,C,c])}let de=external_React_namespaceObject.Fragment,fe=O.RenderStrategy;function Ae(e,t){var ee,te;let{transition:n=!0,beforeEnter:l,afterEnter:S,beforeLeave:R,afterLeave:d,enter:y,enterFrom:p,enterTo:c,entered:C,leave:h,leaveFrom:g,leaveTo:o,...i}=e,[a,s]=(0,external_React_namespaceObject.useState)(null),r=(0,external_React_namespaceObject.useRef)(null),f=ue(e),j=use_sync_refs_y(...f?[r,t,s]:t===null?[]:[t]),H=(ee=i.unmount)==null||ee?render_A.Unmount:render_A.Hidden,{show:u,appear:z,initial:K}=De(),[v,G]=(0,external_React_namespaceObject.useState)(u?\"visible\":\"hidden\"),Q=He(),{register:A,unregister:I}=Q;use_iso_morphic_effect_n(()=>A(r),[A,r]),use_iso_morphic_effect_n(()=>{if(H===render_A.Hidden&&r.current){if(u&&v!==\"visible\"){G(\"visible\");return}return match_u(v,{[\"hidden\"]:()=>I(r),[\"visible\"]:()=>A(r)})}},[v,r,A,I,u,H]);let B=use_server_handoff_complete_l();use_iso_morphic_effect_n(()=>{if(f&&B&&v===\"visible\"&&r.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[r,v,B,f]);let ce=K&&!z,Y=z&&u&&K,W=(0,external_React_namespaceObject.useRef)(!1),L=Te(()=>{W.current||(G(\"hidden\"),I(r))},Q),Z=use_event_o(k=>{W.current=!0;let F=k?\"enter\":\"leave\";L.onStart(r,F,_=>{_===\"enter\"?l==null||l():_===\"leave\"&&(R==null||R())})}),$=use_event_o(k=>{let F=k?\"enter\":\"leave\";W.current=!1,L.onStop(r,F,_=>{_===\"enter\"?S==null||S():_===\"leave\"&&(d==null||d())}),F===\"leave\"&&!transition_U(L)&&(G(\"hidden\"),I(r))});(0,external_React_namespaceObject.useEffect)(()=>{f&&n||(Z(u),$(u))},[u,f,n]);let pe=(()=>!(!n||!f||!B||ce))(),[,T]=x(pe,a,u,{start:Z,end:$}),Ce=m({ref:j,className:((te=class_names_t(i.className,Y&&y,Y&&p,T.enter&&y,T.enter&&T.closed&&p,T.enter&&!T.closed&&c,T.leave&&h,T.leave&&!T.closed&&g,T.leave&&T.closed&&o,!T.transition&&u&&C))==null?void 0:te.trim())||void 0,...use_transition_R(T)}),N=0;v===\"visible\"&&(N|=open_closed_i.Open),v===\"hidden\"&&(N|=open_closed_i.Closed),T.enter&&(N|=open_closed_i.Opening),T.leave&&(N|=open_closed_i.Closing);let he=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:L},external_React_namespaceObject.createElement(open_closed_c,{value:N},he({ourProps:Ce,theirProps:i,defaultTag:de,features:fe,visible:v===\"visible\",name:\"Transition.Child\"})))}function Ie(e,t){let{show:n,appear:l=!1,unmount:S=!0,...R}=e,d=(0,external_React_namespaceObject.useRef)(null),y=ue(e),p=use_sync_refs_y(...y?[d,t]:t===null?[]:[t]);use_server_handoff_complete_l();let c=open_closed_u();if(n===void 0&&c!==null&&(n=(c&open_closed_i.Open)===open_closed_i.Open),n===void 0)throw new Error(\"A <Transition /> is used but it is missing a `show={true | false}` prop.\");let[C,h]=(0,external_React_namespaceObject.useState)(n?\"visible\":\"hidden\"),g=Te(()=>{n||h(\"hidden\")}),[o,i]=(0,external_React_namespaceObject.useState)(!0),a=(0,external_React_namespaceObject.useRef)([n]);use_iso_morphic_effect_n(()=>{o!==!1&&a.current[a.current.length-1]!==n&&(a.current.push(n),i(!1))},[a,n]);let s=(0,external_React_namespaceObject.useMemo)(()=>({show:n,appear:l,initial:o}),[n,l,o]);use_iso_morphic_effect_n(()=>{n?h(\"visible\"):!transition_U(g)&&d.current!==null&&h(\"hidden\")},[n,g]);let r={unmount:S},f=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeEnter)==null||u.call(e)}),j=use_event_o(()=>{var u;o&&i(!1),(u=e.beforeLeave)==null||u.call(e)}),H=render_L();return external_React_namespaceObject.createElement(transition_M.Provider,{value:g},external_React_namespaceObject.createElement(w.Provider,{value:s},H({ourProps:{...r,as:external_React_namespaceObject.Fragment,children:external_React_namespaceObject.createElement(me,{ref:p,...r,...R,beforeEnter:f,beforeLeave:j})},theirProps:{},defaultTag:external_React_namespaceObject.Fragment,features:fe,visible:C===\"visible\",name:\"Transition\"})))}function Le(e,t){let n=(0,external_React_namespaceObject.useContext)(w)!==null,l=open_closed_u()!==null;return external_React_namespaceObject.createElement(external_React_namespaceObject.Fragment,null,!n&&l?external_React_namespaceObject.createElement(X,{ref:t,...e}):external_React_namespaceObject.createElement(me,{ref:t,...e}))}let X=K(Ie),me=K(Ae),Fe=K(Le),ze=Object.assign(X,{Child:Fe,Root:X});\n\n;// ./node_modules/decode-uri-component/index.js\nconst token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nfunction decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n\n;// ./node_modules/filter-obj/index.js\nfunction includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n\n;// ./node_modules/split-on-first/index.js\nfunction splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n\n;// ./node_modules/query-string/base.js\n\n\n\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && base_decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? base_decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => base_decode(item, options)) : (value === null ? value : base_decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? base_decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: base_decode(value, options).split(options.arrayFormatSeparator);\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction base_decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeUriComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options, type) {\n\tif (type === 'string' && typeof value === 'string') {\n\t\treturn value;\n\t}\n\n\tif (typeof type === 'function' && typeof value === 'string') {\n\t\treturn type(value);\n\t}\n\n\tif (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (type === 'number' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\treturn value;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\ttypes: Object.create(null),\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : base_decode(value, options));\n\t\tformatter(base_decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null && options.types[key] !== 'string') {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tconst type = options.types[key] ? options.types[key].replace('[]', '') : undefined;\n\t\t\t\tvalue[key2] = parseValue(value2, options, type);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && options.types[key] === 'string') {\n\t\t\treturnValue[key] = Object.values(value).join(options.arrayFormatSeparator);\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options, options.types[key]);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nfunction stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nfunction parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: base_decode(hash, options)} : {}),\n\t};\n}\n\nfunction stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nfunction pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nfunction exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n\n;// ./node_modules/query-string/index.js\n\n\n/* harmony default export */ const query_string = (base_namespaceObject);\n\n;// ./node_modules/@heroicons/react/24/solid/esm/LinkSlashIcon.js\n\nfunction LinkSlashIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.892 4.09a3.75 3.75 0 0 0-5.303 0l-4.5 4.5c-.074.074-.144.15-.21.229l4.965 4.966a3.75 3.75 0 0 0-1.986-4.428.75.75 0 0 1 .646-1.353 5.253 5.253 0 0 1 2.502 6.944l5.515 5.515a.75.75 0 0 1-1.061 1.06l-18-18.001A.75.75 0 0 1 3.521 2.46l5.294 5.295a5.31 5.31 0 0 1 .213-.227l4.5-4.5a5.25 5.25 0 1 1 7.425 7.425l-1.757 1.757a.75.75 0 1 1-1.06-1.06l1.756-1.757a3.75 3.75 0 0 0 0-5.304ZM5.846 11.773a.75.75 0 0 1 0 1.06l-1.757 1.758a3.75 3.75 0 0 0 5.303 5.304l3.129-3.13a.75.75 0 1 1 1.06 1.061l-3.128 3.13a5.25 5.25 0 1 1-7.425-7.426l1.757-1.757a.75.75 0 0 1 1.061 0Zm2.401.26a.75.75 0 0 1 .957.458c.18.512.474.992.885 1.403.31.311.661.555 1.035.733a.75.75 0 0 1-.647 1.354 5.244 5.244 0 0 1-1.449-1.026 5.232 5.232 0 0 1-1.24-1.965.75.75 0 0 1 .46-.957Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst LinkSlashIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(LinkSlashIcon);\n/* harmony default export */ const esm_LinkSlashIcon = (LinkSlashIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/ShieldCheckIcon.js\n\nfunction ShieldCheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M12.516 2.17a.75.75 0 0 0-1.032 0 11.209 11.209 0 0 1-7.877 3.08.75.75 0 0 0-.722.515A12.74 12.74 0 0 0 2.25 9.75c0 5.942 4.064 10.933 9.563 12.348a.749.749 0 0 0 .374 0c5.499-1.415 9.563-6.406 9.563-12.348 0-1.39-.223-2.73-.635-3.985a.75.75 0 0 0-.722-.516l-.143.001c-2.996 0-5.717-1.17-7.734-3.08Zm3.094 8.016a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst ShieldCheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ShieldCheckIcon);\n/* harmony default export */ const esm_ShieldCheckIcon = (ShieldCheckIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M1.5 8.67v8.58a3 3 0 0 0 3 3h15a3 3 0 0 0 3-3V8.67l-8.928 5.493a3 3 0 0 1-3.144 0L1.5 8.67Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M22.5 6.908V6.75a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3v.158l9.714 5.978a1.5 1.5 0 0 0 1.572 0L22.5 6.908Z\"\n  }));\n}\nconst EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon);\n/* harmony default export */ const esm_EnvelopeIcon = (EnvelopeIcon_ForwardRef);\n;// ./src/components/step/FinishSetup.tsx\n\n\nfunction FinishSetup({ logged = false }) {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [logged && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ShieldCheckIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" })), !logged && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 size-5 text-white\" }), \"Basic\"] }))] }));\n}\n\n;// ./src/components/panel/User.tsx\n\n\n\nfunction User({ registrationEmail, registrationName, testMode = false, logged, }) {\n    if (testMode) {\n        return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"my-2 p-4 text-md rounded-md bg-black/20 max-w-96\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_LinkSlashIcon, { \"aria-hidden\": \"true\", className: \"size-8 text-white/50 float-right\" }), \"Currently\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"in offline testing mode\" }), \",\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"Your site uses a known local development address\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Only a sample captcha will be shown\" }), \".\"] }) }));\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"isolate flex rounded-md shadow-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative inline-flex items-center gap-x-1.5 rounded-l-md bg-black/20 px-3 py-2 text-sm font-semibold text-zinc-100\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(FinishSetup, { logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"relative -ml-px inline-flex items-center rounded-r-md bg-black/20 px-2 text-sm font-semibold text-white flex-grow\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { className: \"text-white/70 font-thin mr-2\", children: [\"<\", registrationName, \">\"] }), ' ', registrationEmail] }) })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckBadgeIcon.js\n\nfunction CheckBadgeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M8.603 3.799A4.49 4.49 0 0 1 12 2.25c1.357 0 2.573.6 3.397 1.549a4.49 4.49 0 0 1 3.498 1.307 4.491 4.491 0 0 1 1.307 3.497A4.49 4.49 0 0 1 21.75 12a4.49 4.49 0 0 1-1.549 3.397 4.491 4.491 0 0 1-1.307 3.497 4.491 4.491 0 0 1-3.497 1.307A4.49 4.49 0 0 1 12 21.75a4.49 4.49 0 0 1-3.397-1.549 4.49 4.49 0 0 1-3.498-1.306 4.491 4.491 0 0 1-1.307-3.498A4.49 4.49 0 0 1 2.25 12c0-1.357.6-2.573 1.549-3.397a4.49 4.49 0 0 1 1.307-3.497 4.49 4.49 0 0 1 3.497-1.307Zm7.007 6.387a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckBadgeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckBadgeIcon);\n/* harmony default export */ const esm_CheckBadgeIcon = (CheckBadgeIcon_ForwardRef);\n;// ./src/components/step/Options.tsx\n\n\n\n\n\n\n\n\nfunction Options({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [forms, setProtectForms] = (0,external_React_namespaceObject.useState)(true);\n    const [login, setProtectLogin] = (0,external_React_namespaceObject.useState)(true);\n    const [comments, setProtectComments] = (0,external_React_namespaceObject.useState)(true);\n    const [roles, setRoles] = (0,external_React_namespaceObject.useState)([]);\n    const [exempt, setExempt] = (0,external_React_namespaceObject.useState)([]);\n    const [roleLoading, setRoleloading] = (0,external_React_namespaceObject.useState)(false);\n    const [users, setUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [exemptUsers, setExemptUsers] = (0,external_React_namespaceObject.useState)([]);\n    const [selectedUser, setSelectedUser] = (0,external_React_namespaceObject.useState)('');\n    const [wcCheckout, setWcCheckout] = (0,external_React_namespaceObject.useState)(true);\n    const [lostPassword, setLostPassword] = (0,external_React_namespaceObject.useState)(false);\n    function updateOption(option, value, callback) {\n        if (option === 'we360cloud_sentry_exempt') {\n            setRoleloading(true);\n        }\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'update_option',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.applied);\n            if (option === 'we360cloud_sentry_exempt') {\n                setRoleloading(false);\n            }\n        });\n    }\n    function updateProtectForms(opt) {\n        updateOption('we360cloud_sentry_protectforms', opt, setProtectForms);\n    }\n    function updateProtectLogin(opt) {\n        updateOption('we360cloud_sentry_protectlogin', opt, setProtectLogin);\n    }\n    function updateWcCheckout(opt) {\n        updateOption('we360cloud_sentry_wccheckout', opt, setWcCheckout);\n    }\n    function updateLostPassword(opt) {\n        updateOption('we360cloud_sentry_lostpassword', opt, setLostPassword);\n    }\n    function updateProtectComments(opt) {\n        updateOption('we360cloud_sentry_protectcomments', opt, setProtectComments);\n    }\n    function updateExempt(role) {\n        if (!roleLoading) {\n            updateOption('we360cloud_sentry_exempt', role, setExempt);\n        }\n    }\n    function updateExemptUser(user) {\n        if (user !== '') {\n            updateOption('we360cloud_sentry_exempt_user', user, setExemptUsers);\n        }\n    }\n    const init = () => {\n        setLoaded(false);\n        const data = {\n            action: 'we360cloud_sentry',\n            token: webEngineCaptcha.token,\n            we360cloud_sentry_route: 'options',\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (false === json || undefined === json.payload) {\n            }\n            else {\n                setProtectForms(json.payload.we360cloud_sentry_protectforms);\n                setProtectLogin(json.payload.we360cloud_sentry_protectlogin);\n                setProtectComments(json.payload.we360cloud_sentry_protectcomments);\n                setRoles(json.payload.wp_roles);\n                setExempt(json.payload.wp_roles_exempt);\n                setUsers(json.payload.wp_users);\n                setExemptUsers(json.payload.we360cloud_sentry_exempt_user);\n                setWcCheckout(json.payload.we360cloud_sentry_wccheckout);\n                setLostPassword(json.payload.we360cloud_sentry_lostpassword);\n            }\n            setLoaded(true);\n        });\n    };\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, []);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", onClick: () => onStep('documentation'), children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"fieldset\", { className: \"max-w-sm\", children: [loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, onChange: updateProtectForms, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, onChange: updateProtectComments, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, onChange: updateProtectLogin, name: \"admin\", title: \"Protect login\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: lostPassword, onChange: updateLostPassword, name: \"lostpassword\", title: \"Protect forgot password\" }), wcCheckout !== undefined && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: wcCheckout, onChange: updateWcCheckout, name: \"wecheckout\", title: \"Protect WooCommerce checkout\" }))] })), !loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5 opacity-80\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: forms, loading: true, onChange: () => null, name: \"forms\", title: \"Protect forms\", description: \"Supported forms will be protected by this plugin, please check the documentation for a detailed breakdown of supported form types\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: comments, loading: true, onChange: () => null, name: \"comments\", title: \"Protect comments\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: login, loading: true, onChange: () => null, name: \"admin\", title: \"Protect login\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(CheckOption, { checked: lostPassword, loading: true, onChange: () => null, name: \"lostpassword\", title: \"Protect forgot password\" })] })), testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"hr\", { className: \"mb-4 opacity-50\" }), \"Test mode allows you to observe how the plugin functions in a test environment.\"] }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure roles\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Some roles require user validation to setup an account - those checked won\\u2019t be given challenges when logged in. Toggle this option for each role below.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 my-2 px-1 py-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                        (roleLoading && 'opacity-50'), children: roles && roles.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [exempt &&\n                                                exempt.map((role) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [role, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, role))), roles.map((role) => (exempt\n                                                ? !exempt.includes(role)\n                                                : true) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExempt(role), className: \"bg-sky-200/10 px-1 m-1 rounded-md animate-fade hover:bg-sky-200/50\", children: role }, role)))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex justify-center w-full opacity-50 p-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" }) })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"p-2 bg-black/10 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-lg font-bold\", children: \"Secure users\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"These users will bypass the checks on login.\" }), users && users.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/20 py-2 px-2 my-2 rounded-md\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: 'bg-black/20 mb-2 px-1 text-sm rounded-md flex flex-wrap transition-opacity' +\n                                                        (loaded && 'opacity-50'), children: exemptUsers &&\n                                                        exemptUsers.length > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"my-1\", children: exemptUsers.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { onClick: () => updateExemptUser(user), className: \"bg-sky-200/40 px-1 m-1 rounded-md animate-fade\", children: [user, ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckBadgeIcon, { className: \"w-4 h-4 inline -translate-y-px\" })] }, user))) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"p-1 my-1 italic text-gray-300\", children: \"No users are exempt\" })) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 w-full\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"select\", { onChange: (e) => setSelectedUser(e.target.value), defaultValue: selectedUser, value: selectedUser, className: \"col-start-1 w-full row-start-1 appearance-none w-full border-y border-l bg-black/10 border-black/10 focus:ring-none rounded-l-md px-2 text-white sm:text-sm/6\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { value: \"\", disabled: true, selected: true, children: \"Select a user\" }), users.map((user) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"option\", { children: user }, user))), \";\"] }), exemptUsers &&\n                                                            exemptUsers.includes(selectedUser) ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none px-2 border-y border-r border-black/10 bg-red-500/40 hover:bg-red-500/60\", children: \"Remove\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => updateExemptUser(selectedUser), className: \"inline w-fit rounded-r-md text-xs focus:ring-none border-y border-r border-black/10 px-2 bg-sky-500/40 hover:bg-sky-500/60\", children: \"Add\" }))] })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex justify-center w-full bg-black/10 py-2 px-2 mt-2 rounded-md\", children: [users, (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin\" })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please make sure the user-name is not easily guessed and that your password is sufficiently secure; this account will otherwise be unprotected by Sentry.\", ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"This option is provided to facilitate the situation where some accounts are used via wp-cli or similar third-party integration.\" })] })] })] }) })] }));\n}\n\n;// ./src/components/panel/Credits.tsx\n\n\n\n\n\nfunction Credits({ testMode = false }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)();\n    (0,external_React_namespaceObject.useEffect)(() => {\n        setLoaded(false);\n        if (true === testMode) {\n            setBalance(undefined);\n            setLoaded(true);\n            return;\n        }\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'balance',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data || undefined === data.payload) {\n                setBalance(undefined);\n            }\n            else {\n                setBalance(data.payload.balance);\n            }\n            setLoaded(true);\n        });\n        return () => {\n        };\n    }, [testMode]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"bg-black/10 p-4 rounded-md shadow-inner\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"legend\", { className: \"text-white mb-2\", children: \"Available credit\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"bg-black/10 p-4 py-8 rounded-md text-center shadow-inner\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"h-8\", children: [!loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowPathIcon, { className: \"w-8 h-8 animate-spin inline\" })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: loaded, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"hidden\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"order-first text-3xl tracking-tight font-black text\", children: undefined === balance\n                                                ? '-'\n                                                : Math.max(0, Number(balance)).toLocaleString() }) })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2\", children: \"Visit the service site to manage your balance.\" })] })] }) }));\n}\n\n;// ./node_modules/@heroicons/react/20/solid/esm/EnvelopeIcon.js\n\nfunction EnvelopeIcon_EnvelopeIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M3 4a2 2 0 0 0-2 2v1.161l8.441 4.221a1.25 1.25 0 0 0 1.118 0L19 7.162V6a2 2 0 0 0-2-2H3Z\"\n  }), /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"m19 8.839-7.77 3.885a2.75 2.75 0 0 1-2.46 0L1 8.839V14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.839Z\"\n  }));\n}\nconst esm_EnvelopeIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(EnvelopeIcon_EnvelopeIcon);\n/* harmony default export */ const solid_esm_EnvelopeIcon = (esm_EnvelopeIcon_ForwardRef);\n;// ./src/components/step/Manage.tsx\n\n\n\n\n\n\n\n\nfunction forHumans(seconds) {\n    const levels = [\n        [Math.floor(seconds / 31536000), 'years'],\n        [Math.floor((seconds % 31536000) / 86400), 'days'],\n        [Math.floor(((seconds % 31536000) % 86400) / 3600), 'hours'],\n        [\n            Math.floor((((seconds % 31536000) % 86400) % 3600) / 60),\n            'minutes',\n        ],\n        [(((seconds % 31536000) % 86400) % 3600) % 60, 'seconds'],\n    ];\n    let returntext = '';\n    for (let i = 0, max = levels.length; i < max; i++) {\n        if (levels[i][0] === 0) {\n            continue;\n        }\n        returntext +=\n            ' ' +\n                levels[i][0] +\n                ' ' +\n                (levels[i][0] === 1\n                    ? levels[i][1].slice(0, -1)\n                    : levels[i][1]);\n    }\n    return returntext.trim();\n}\nfunction Manage({ registrationEmail, registrationName, onStep, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, testMode, logged, expires, }) {\n    const [remainingTime, setRemainingTime] = (0,external_React_namespaceObject.useState)(expires);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        const interval = setInterval(() => {\n            setRemainingTime((prevTime) => prevTime > 0 ? prevTime - 1 : 0);\n        }, 1000);\n        return () => clearInterval(interval);\n    }, []);\n    function resend() {\n        const psdata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'resetemail',\n            name: registrationName,\n            email: registrationEmail,\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(psdata),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            if (true === json.success) {\n                setRemainingTime(3600);\n            }\n        });\n    }\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('documentation'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Documentation\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Manage account\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4 mt-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Communications, { registrationStep: 'register', commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onCommAdministrative: (opt) => {\n                                onCommAdministrative(opt);\n                            }, onCommNews: (opt) => {\n                                onCommNews(opt);\n                            }, onCommDeveloper: (opt) => {\n                                onCommDeveloper(opt);\n                            } }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [logged ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Credits, { testMode: testMode }), testMode ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Test mode allows you to observe how the plugin functions in a test environment.\" })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-4\", children: \"Credits are charges for successfully solving enhanced challenges or for premium add on services such as mail or text based checks.\" }))] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"rounded-md bg-black/10 p-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"flex mb-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(solid_esm_EnvelopeIcon, { \"aria-hidden\": \"true\", className: \"-ml-0.5 mr-2 size-5 text-white\" }), \"Basic account\"] }), remainingTime > 0 ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Please check your inbox for instructions on how to finish setting up your Web-Engine cloud account to utilise the premium features - note this email will\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"b\", { children: [\"expire in\", ' ', forHumans(remainingTime)] }), \".\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => location.reload(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Done\" })] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Your invitation to complete registration has expired.\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => resend(), className: \"mt-2 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Resend email\" })] }))] })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => testMode ? null : onStep('unregister'), className: 'w-1/2 inline-flex mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600 ' +\n                                        (testMode && 'opacity-50'), children: \"Disconnect\" })] })] }) })] }));\n}\n\n;// ./src/images/sentry-word-mark.webp\n/* harmony default export */ const sentry_word_mark = (__webpack_require__.p + \"a78cd683c8225bae89d4852048b57bc6.webp\");\n;// ./src/components/Wordmark.tsx\n\n\nconst Wordmark = () => {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-left text-white p-2 inline-block relative\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: \"Web-Engine Sentry logo\", src: sentry_word_mark, style: { paddingRight: '220px', width: '510px' } }) }));\n};\n\n;// ./node_modules/@react-aria/utils/dist/useLayoutEffect.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, external_React_namespaceObject).useLayoutEffect : ()=>{};\n\n\n\n//# sourceMappingURL=useLayoutEffect.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useEffectEvent.mjs\n\n\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n    const ref = (0, external_React_namespaceObject.useRef)(null);\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        ref.current = fn;\n    }, [\n        fn\n    ]);\n    // @ts-ignore\n    return (0, external_React_namespaceObject.useCallback)((...args)=>{\n        const f = ref.current;\n        return f === null || f === void 0 ? void 0 : f(...args);\n    }, []);\n}\n\n\n\n//# sourceMappingURL=useEffectEvent.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isFocusable.mjs\nconst $b4b717babfbb907b$var$focusableElements = [\n    'input:not([disabled]):not([type=hidden])',\n    'select:not([disabled])',\n    'textarea:not([disabled])',\n    'button:not([disabled])',\n    'a[href]',\n    'area[href]',\n    'summary',\n    'iframe',\n    'object',\n    'embed',\n    'audio[controls]',\n    'video[controls]',\n    '[contenteditable]:not([contenteditable^=\"false\"])'\n];\nconst $b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n$b4b717babfbb907b$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst $b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\nfunction $b4b717babfbb907b$export$4c063cf1350e6fed(element) {\n    return element.matches($b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR);\n}\nfunction $b4b717babfbb907b$export$bebd5a1431fec25d(element) {\n    return element.matches($b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR);\n}\n\n\n\n//# sourceMappingURL=isFocusable.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/domHelpers.mjs\nconst $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n    var _el_ownerDocument;\n    return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n    if (el && 'window' in el && el.window === el) return el;\n    const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n    return doc.defaultView || window;\n};\n/**\n * Type guard that checks if a value is a Node. Verifies the presence and type of the nodeType property.\n */ function $431fbd86ca7dc216$var$isNode(value) {\n    return value !== null && typeof value === 'object' && 'nodeType' in value && typeof value.nodeType === 'number';\n}\nfunction $431fbd86ca7dc216$export$af51f0f06c0f328a(node) {\n    return $431fbd86ca7dc216$var$isNode(node) && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;\n}\n\n\n\n//# sourceMappingURL=domHelpers.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n    if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n        preventScroll: true\n    });\n    else {\n        let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n        element.focus();\n        $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n    }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n    if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n        $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n        try {\n            let focusElem = document.createElement('div');\n            focusElem.focus({\n                get preventScroll () {\n                    $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n                    return true;\n                }\n            });\n        } catch  {\n        // Ignore\n        }\n    }\n    return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n    let parent = element.parentNode;\n    let scrollableElements = [];\n    let rootScrollingElement = document.scrollingElement || document.documentElement;\n    while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n        if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n            element: parent,\n            scrollTop: parent.scrollTop,\n            scrollLeft: parent.scrollLeft\n        });\n        parent = parent.parentNode;\n    }\n    if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n        element: rootScrollingElement,\n        scrollTop: rootScrollingElement.scrollTop,\n        scrollLeft: rootScrollingElement.scrollLeft\n    });\n    return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n    for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n        element.scrollTop = scrollTop;\n        element.scrollLeft = scrollLeft;\n    }\n}\n\n\n\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/utils.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n    isDefaultPrevented() {\n        return this.nativeEvent.defaultPrevented;\n    }\n    preventDefault() {\n        this.defaultPrevented = true;\n        this.nativeEvent.preventDefault();\n    }\n    stopPropagation() {\n        this.nativeEvent.stopPropagation();\n        this.isPropagationStopped = ()=>true;\n    }\n    isPropagationStopped() {\n        return false;\n    }\n    persist() {}\n    constructor(type, nativeEvent){\n        this.nativeEvent = nativeEvent;\n        this.target = nativeEvent.target;\n        this.currentTarget = nativeEvent.currentTarget;\n        this.relatedTarget = nativeEvent.relatedTarget;\n        this.bubbles = nativeEvent.bubbles;\n        this.cancelable = nativeEvent.cancelable;\n        this.defaultPrevented = nativeEvent.defaultPrevented;\n        this.eventPhase = nativeEvent.eventPhase;\n        this.isTrusted = nativeEvent.isTrusted;\n        this.timeStamp = nativeEvent.timeStamp;\n        this.type = type;\n    }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n    let stateRef = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        observer: null\n    });\n    // Clean up MutationObserver on unmount. See below.\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        const state = stateRef.current;\n        return ()=>{\n            if (state.observer) {\n                state.observer.disconnect();\n                state.observer = null;\n            }\n        };\n    }, []);\n    let dispatchBlur = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((e)=>{\n        onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n    });\n    // This function is called during a React onFocus event.\n    return (0, external_React_namespaceObject.useCallback)((e)=>{\n        // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n        // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n        // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n        // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n        if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n            stateRef.current.isFocused = true;\n            let target = e.target;\n            let onBlurHandler = (e)=>{\n                stateRef.current.isFocused = false;\n                if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n                dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36('blur', e));\n                // We no longer need the MutationObserver once the target is blurred.\n                if (stateRef.current.observer) {\n                    stateRef.current.observer.disconnect();\n                    stateRef.current.observer = null;\n                }\n            };\n            target.addEventListener('focusout', onBlurHandler, {\n                once: true\n            });\n            stateRef.current.observer = new MutationObserver(()=>{\n                if (stateRef.current.isFocused && target.disabled) {\n                    var _stateRef_current_observer;\n                    (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();\n                    let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n                    target.dispatchEvent(new FocusEvent('blur', {\n                        relatedTarget: relatedTargetEl\n                    }));\n                    target.dispatchEvent(new FocusEvent('focusout', {\n                        bubbles: true,\n                        relatedTarget: relatedTargetEl\n                    }));\n                }\n            });\n            stateRef.current.observer.observe(target, {\n                attributes: true,\n                attributeFilter: [\n                    'disabled'\n                ]\n            });\n        }\n    }, [\n        dispatchBlur\n    ]);\n}\nlet $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\nfunction $8a9cb279dc87e130$export$cabe61c495ee3649(target) {\n    // The browser will focus the nearest focusable ancestor of our target.\n    while(target && !(0, $b4b717babfbb907b$export$4c063cf1350e6fed)(target))target = target.parentElement;\n    let window = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(target);\n    let activeElement = window.document.activeElement;\n    if (!activeElement || activeElement === target) return;\n    $8a9cb279dc87e130$export$fda7da73ab5d4c48 = true;\n    let isRefocusing = false;\n    let onBlur = (e)=>{\n        if (e.target === activeElement || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusOut = (e)=>{\n        if (e.target === activeElement || isRefocusing) {\n            e.stopImmediatePropagation();\n            // If there was no focusable ancestor, we don't expect a focus event.\n            // Re-focus the original active element here.\n            if (!target && !isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    let onFocus = (e)=>{\n        if (e.target === target || isRefocusing) e.stopImmediatePropagation();\n    };\n    let onFocusIn = (e)=>{\n        if (e.target === target || isRefocusing) {\n            e.stopImmediatePropagation();\n            if (!isRefocusing) {\n                isRefocusing = true;\n                (0, $7215afc6de606d6b$export$de79e2c695e052f3)(activeElement);\n                cleanup();\n            }\n        }\n    };\n    window.addEventListener('blur', onBlur, true);\n    window.addEventListener('focusout', onFocusOut, true);\n    window.addEventListener('focusin', onFocusIn, true);\n    window.addEventListener('focus', onFocus, true);\n    let cleanup = ()=>{\n        cancelAnimationFrame(raf);\n        window.removeEventListener('blur', onBlur, true);\n        window.removeEventListener('focusout', onFocusOut, true);\n        window.removeEventListener('focusin', onFocusIn, true);\n        window.removeEventListener('focus', onFocus, true);\n        $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\n        isRefocusing = false;\n    };\n    let raf = requestAnimationFrame(cleanup);\n    return cleanup;\n}\n\n\n\n//# sourceMappingURL=utils.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/platform.mjs\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n    var _window_navigator_userAgentData;\n    if (typeof window === 'undefined' || window.navigator == null) return false;\n    return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n    var _window_navigator_userAgentData;\n    return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n    let res = null;\n    return ()=>{\n        if (res == null) res = fn();\n        return res;\n    };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\n\n//# sourceMappingURL=platform.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/isVirtualEvent.mjs\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n    // JAWS/NVDA with Firefox.\n    if (event.mozInputSource === 0 && event.isTrusted) return true;\n    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n    // to detect TalkBack virtual clicks.\n    if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n    return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n    // If the pointer size is zero, then we assume it's from a screen reader.\n    // Android TalkBack double tap will sometimes return a event with width and height of 1\n    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n    // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n    // Talkback double tap from Windows Firefox touch screen press\n    return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\n\n//# sourceMappingURL=isVirtualEvent.module.js.map\n\n;// ./node_modules/@react-aria/ssr/dist/SSRProvider.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $b5e257d569688ac6$var$defaultContext = {\n    prefix: String(Math.round(Math.random() * 10000000000)),\n    current: 0\n};\nconst $b5e257d569688ac6$var$SSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext($b5e257d569688ac6$var$defaultContext);\nconst $b5e257d569688ac6$var$IsSSRContext = /*#__PURE__*/ (0, external_React_namespaceObject).createContext(false);\n// This is only used in React < 18.\nfunction $b5e257d569688ac6$var$LegacySSRProvider(props) {\n    let cur = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let counter = $b5e257d569688ac6$var$useCounter(cur === $b5e257d569688ac6$var$defaultContext);\n    let [isSSR, setIsSSR] = (0, external_React_namespaceObject.useState)(true);\n    let value = (0, external_React_namespaceObject.useMemo)(()=>({\n            // If this is the first SSRProvider, start with an empty string prefix, otherwise\n            // append and increment the counter.\n            prefix: cur === $b5e257d569688ac6$var$defaultContext ? '' : `${cur.prefix}-${counter}`,\n            current: 0\n        }), [\n        cur,\n        counter\n    ]);\n    // If on the client, and the component was initially server rendered,\n    // then schedule a layout effect to update the component after hydration.\n    if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n    // because the condition never changes after mounting.\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    (0, external_React_namespaceObject.useLayoutEffect)(()=>{\n        setIsSSR(false);\n    }, []);\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$SSRContext.Provider, {\n        value: value\n    }, /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$IsSSRContext.Provider, {\n        value: isSSR\n    }, props.children));\n}\nlet $b5e257d569688ac6$var$warnedAboutSSRProvider = false;\nfunction $b5e257d569688ac6$export$9f8ac96af4b1b2ae(props) {\n    if (typeof (0, external_React_namespaceObject)['useId'] === 'function') {\n        if ( true && !$b5e257d569688ac6$var$warnedAboutSSRProvider) {\n            console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n            $b5e257d569688ac6$var$warnedAboutSSRProvider = true;\n        }\n        return /*#__PURE__*/ (0, external_React_namespaceObject).createElement((0, external_React_namespaceObject).Fragment, null, props.children);\n    }\n    return /*#__PURE__*/ (0, external_React_namespaceObject).createElement($b5e257d569688ac6$var$LegacySSRProvider, props);\n}\nlet $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $b5e257d569688ac6$var$componentIds = new WeakMap();\nfunction $b5e257d569688ac6$var$useCounter(isDisabled = false) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    let ref = (0, external_React_namespaceObject.useRef)(null);\n    // eslint-disable-next-line rulesdir/pure-render\n    if (ref.current === null && !isDisabled) {\n        var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n        // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n        // This means our id counter will be incremented twice instead of once. This is a problem because on the\n        // server, components are only rendered once and so ids generated on the server won't match the client.\n        // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n        // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n        // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n        // To ensure that we only increment the global counter once, we store the starting id for this component in\n        // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n        // Since React runs the second render immediately after the first, this is safe.\n        // @ts-ignore\n        let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, external_React_namespaceObject).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n        if (currentOwner) {\n            let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);\n            if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n            $b5e257d569688ac6$var$componentIds.set(currentOwner, {\n                id: ctx.current,\n                state: currentOwner.memoizedState\n            });\n            else if (currentOwner.memoizedState !== prevComponentValue.state) {\n                // On the second render, the memoizedState gets reset by React.\n                // Reset the counter, and remove from the weak map so we don't\n                // do this for subsequent useId calls.\n                ctx.current = prevComponentValue.id;\n                $b5e257d569688ac6$var$componentIds.delete(currentOwner);\n            }\n        }\n        // eslint-disable-next-line rulesdir/pure-render\n        ref.current = ++ctx.current;\n    }\n    // eslint-disable-next-line rulesdir/pure-render\n    return ref.current;\n}\nfunction $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {\n    let ctx = (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$SSRContext);\n    // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n    // provide a warning to hint to the developer to add one.\n    if (ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM) console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n    let counter = $b5e257d569688ac6$var$useCounter(!!defaultId);\n    let prefix = ctx === $b5e257d569688ac6$var$defaultContext && \"development\" === 'test' ? 0 : `react-aria${ctx.prefix}`;\n    return defaultId || `${prefix}-${counter}`;\n}\nfunction $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {\n    let id = (0, external_React_namespaceObject).useId();\n    let [didSSR] = (0, external_React_namespaceObject.useState)($b5e257d569688ac6$export$535bd6ca7f90a273());\n    let prefix = didSSR || \"development\" === 'test' ? 'react-aria' : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;\n    return defaultId || `${prefix}-${id}`;\n}\nconst $b5e257d569688ac6$export$619500959fc48b26 = typeof (0, external_React_namespaceObject)['useId'] === 'function' ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;\nfunction $b5e257d569688ac6$var$getSnapshot() {\n    return false;\n}\nfunction $b5e257d569688ac6$var$getServerSnapshot() {\n    return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction $b5e257d569688ac6$var$subscribe(onStoreChange) {\n    // noop\n    return ()=>{};\n}\nfunction $b5e257d569688ac6$export$535bd6ca7f90a273() {\n    // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n    if (typeof (0, external_React_namespaceObject)['useSyncExternalStore'] === 'function') return (0, external_React_namespaceObject)['useSyncExternalStore']($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    return (0, external_React_namespaceObject.useContext)($b5e257d569688ac6$var$IsSSRContext);\n}\n\n\n\n//# sourceMappingURL=SSRProvider.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusVisible.mjs\n\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n    Tab: true,\n    Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n    for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n    // Control and Shift keys trigger when navigating back to the tab with keyboard.\n    return !(e.metaKey || !(0, $c87311424ea30a05$export$9ac100e40613ea10)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n    if ($507fabe10e71c6fb$var$isValidKey(e)) {\n        $507fabe10e71c6fb$var$currentModality = 'keyboard';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n    $507fabe10e71c6fb$var$currentModality = 'pointer';\n    if (e.type === 'mousedown' || e.type === 'pointerdown') {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n    if ((0, $6a7db85432448f7f$export$60278871457622de)(e)) {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n    }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n    // Firefox fires two extra focus events when the user first clicks into an iframe:\n    // first on the window, then on the document. We ignore these events so they don't\n    // cause keyboard focus rings to appear.\n    if (e.target === window || e.target === document || (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) || !e.isTrusted) return;\n    // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n    // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n    if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n    }\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n    if (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) return;\n    // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n    // for example, since a subsequent focus event won't be fired.\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n    if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element))) return;\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    // Programmatic focus() calls shouldn't affect the current input modality.\n    // However, we need to detect other cases when a focus event occurs without\n    // a preceding user event (e.g. screen reader focus). Overriding the focus\n    // method on HTMLElement.prototype is a bit hacky, but works.\n    let focus = windowObject.HTMLElement.prototype.focus;\n    windowObject.HTMLElement.prototype.focus = function() {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        focus.apply(this, arguments);\n    };\n    documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    // Register focus events on the window so they are sure to happen\n    // before React's event listeners (registered on the document).\n    windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    // Add unmount handler\n    windowObject.addEventListener('beforeunload', ()=>{\n        $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n    }, {\n        once: true\n    });\n    $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n        focus: focus\n    });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n    const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n    if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n    windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n    documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n    const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);\n    let loadListener;\n    if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n    else {\n        loadListener = ()=>{\n            $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n        };\n        documentObject.addEventListener('DOMContentLoaded', loadListener);\n    }\n    return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n    return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n    return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n    $507fabe10e71c6fb$var$currentModality = modality;\n    $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    let [modality, setModality] = (0, external_React_namespaceObject.useState)($507fabe10e71c6fb$var$currentModality);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = ()=>{\n            setModality($507fabe10e71c6fb$var$currentModality);\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    }, []);\n    return (0, $b5e257d569688ac6$export$535bd6ca7f90a273)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n    'checkbox',\n    'radio',\n    'range',\n    'color',\n    'file',\n    'image',\n    'button',\n    'submit',\n    'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n    let document1 = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e === null || e === void 0 ? void 0 : e.target);\n    const IHTMLInputElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n    const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n    const IHTMLElement = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n    const IKeyboardEvent = typeof window !== 'undefined' ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n    // For keyboard events that occur on a non-input element that will move focus into input element (aka ArrowLeft going from Datepicker button to the main input group)\n    // we need to rely on the user passing isTextInput into here. This way we can skip toggling focus visiblity for said input element\n    isTextInput = isTextInput || document1.activeElement instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(document1.activeElement.type) || document1.activeElement instanceof IHTMLTextAreaElement || document1.activeElement instanceof IHTMLElement && document1.activeElement.isContentEditable;\n    return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n    let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n    $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n        setFocusVisible(isFocusVisible);\n    }, [\n        isTextInput\n    ], {\n        isTextInput: isTextInput\n    });\n    return {\n        isFocusVisible: isFocusVisibleState\n    };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        let handler = (modality, e)=>{\n            // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n            if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n            fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, deps);\n}\n\n\n\n//# sourceMappingURL=useFocusVisible.module.js.map\n\n;// ./node_modules/@react-stately/flags/dist/import.mjs\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ let $f4e2df6bd15f8569$var$_tableNestedRows = false;\nlet $f4e2df6bd15f8569$var$_shadowDOM = false;\nfunction $f4e2df6bd15f8569$export$d9d8a0f82de49530() {\n    $f4e2df6bd15f8569$var$_tableNestedRows = true;\n}\nfunction $f4e2df6bd15f8569$export$1b00cb14a96194e6() {\n    return $f4e2df6bd15f8569$var$_tableNestedRows;\n}\nfunction $f4e2df6bd15f8569$export$12b151d9882e9985() {\n    $f4e2df6bd15f8569$var$_shadowDOM = true;\n}\nfunction $f4e2df6bd15f8569$export$98658e8c59125e6a() {\n    return $f4e2df6bd15f8569$var$_shadowDOM;\n}\n\n\n\n//# sourceMappingURL=module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/DOMFunctions.mjs\n\n\n\n// Source: https://github.com/microsoft/tabster/blob/a89fc5d7e332d48f68d03b1ca6e344489d1c3898/src/Shadowdomize/DOMFunctions.ts#L16\n\n\nfunction $d4ee10de306f2510$export$4282f70798064fe0(node, otherNode) {\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return otherNode && node ? node.contains(otherNode) : false;\n    if (!node || !otherNode) return false;\n    let currentNode = otherNode;\n    while(currentNode !== null){\n        if (currentNode === node) return true;\n        if (currentNode.tagName === 'SLOT' && currentNode.assignedSlot) // Element is slotted\n        currentNode = currentNode.assignedSlot.parentNode;\n        else if ((0, $431fbd86ca7dc216$export$af51f0f06c0f328a)(currentNode)) // Element is in shadow root\n        currentNode = currentNode.host;\n        else currentNode = currentNode.parentNode;\n    }\n    return false;\n}\nconst $d4ee10de306f2510$export$cd4e5573fbe2b576 = (doc = document)=>{\n    var _activeElement_shadowRoot;\n    if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return doc.activeElement;\n    let activeElement = doc.activeElement;\n    while(activeElement && 'shadowRoot' in activeElement && ((_activeElement_shadowRoot = activeElement.shadowRoot) === null || _activeElement_shadowRoot === void 0 ? void 0 : _activeElement_shadowRoot.activeElement))activeElement = activeElement.shadowRoot.activeElement;\n    return activeElement;\n};\nfunction $d4ee10de306f2510$export$e58f029f0fbfdb29(event) {\n    if ((0, $f4e2df6bd15f8569$export$98658e8c59125e6a)() && event.target.shadowRoot) {\n        if (event.composedPath) return event.composedPath()[0];\n    }\n    return event.target;\n}\n\n\n\n//# sourceMappingURL=DOMFunctions.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocus.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n    let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n    const onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        if (e.target === e.currentTarget) {\n            if (onBlurProp) onBlurProp(e);\n            if (onFocusChange) onFocusChange(false);\n            return true;\n        }\n    }, [\n        onBlurProp,\n        onFocusChange\n    ]);\n    const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    const onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = ownerDocument ? (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument) : (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)();\n        if (e.target === e.currentTarget && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusProp) onFocusProp(e);\n            if (onFocusChange) onFocusChange(true);\n            onSyntheticFocus(e);\n        }\n    }, [\n        onFocusChange,\n        onFocusProp,\n        onSyntheticFocus\n    ]);\n    return {\n        focusProps: {\n            onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n            onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocus.module.js.map\n\n;// ./node_modules/@react-aria/utils/dist/useGlobalListeners.mjs\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $03deb23ff14920c4$export$4eaf04e54aa8eed6() {\n    let globalListeners = (0, external_React_namespaceObject.useRef)(new Map());\n    let addGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        // Make sure we remove the listener after it is called with the `once` option.\n        let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{\n            globalListeners.current.delete(listener);\n            listener(...args);\n        } : listener;\n        globalListeners.current.set(listener, {\n            type: type,\n            eventTarget: eventTarget,\n            fn: fn,\n            options: options\n        });\n        eventTarget.addEventListener(type, fn, options);\n    }, []);\n    let removeGlobalListener = (0, external_React_namespaceObject.useCallback)((eventTarget, type, listener, options)=>{\n        var _globalListeners_current_get;\n        let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;\n        eventTarget.removeEventListener(type, fn, options);\n        globalListeners.current.delete(listener);\n    }, []);\n    let removeAllGlobalListeners = (0, external_React_namespaceObject.useCallback)(()=>{\n        globalListeners.current.forEach((value, key)=>{\n            removeGlobalListener(value.eventTarget, value.type, key, value.options);\n        });\n    }, [\n        removeGlobalListener\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        return removeAllGlobalListeners;\n    }, [\n        removeAllGlobalListeners\n    ]);\n    return {\n        addGlobalListener: addGlobalListener,\n        removeGlobalListener: removeGlobalListener,\n        removeAllGlobalListeners: removeAllGlobalListeners\n    };\n}\n\n\n\n//# sourceMappingURL=useGlobalListeners.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useFocusWithin.mjs\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n    let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocusWithin: false\n    });\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let onBlur = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n        // when moving focus inside the element. Only trigger if the currentTarget doesn't\n        // include the relatedTarget (where focus is moving).\n        if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n            state.current.isFocusWithin = false;\n            removeAllGlobalListeners();\n            if (onBlurWithin) onBlurWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(false);\n        }\n    }, [\n        onBlurWithin,\n        onFocusWithinChange,\n        state,\n        removeAllGlobalListeners\n    ]);\n    let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    let onFocus = (0, external_React_namespaceObject.useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target);\n        const activeElement = (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument);\n        if (!state.current.isFocusWithin && activeElement === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) {\n            if (onFocusWithin) onFocusWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(true);\n            state.current.isFocusWithin = true;\n            onSyntheticFocus(e);\n            // Browsers don't fire blur events when elements are removed from the DOM.\n            // However, if a focus event occurs outside the element we're tracking, we\n            // can manually fire onBlur.\n            let currentTarget = e.currentTarget;\n            addGlobalListener(ownerDocument, 'focus', (e)=>{\n                if (state.current.isFocusWithin && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(currentTarget, e.target)) {\n                    let event = new (0, $8a9cb279dc87e130$export$905e7fc544a71f36)('blur', new ownerDocument.defaultView.FocusEvent('blur', {\n                        relatedTarget: e.target\n                    }));\n                    event.target = currentTarget;\n                    event.currentTarget = currentTarget;\n                    onBlur(event);\n                }\n            }, {\n                capture: true\n            });\n        }\n    }, [\n        onFocusWithin,\n        onFocusWithinChange,\n        onSyntheticFocus,\n        addGlobalListener,\n        onBlur\n    ]);\n    if (isDisabled) return {\n        focusWithinProps: {\n            // These cannot be null, that would conflict in mergeProps\n            onFocus: undefined,\n            onBlur: undefined\n        }\n    };\n    return {\n        focusWithinProps: {\n            onFocus: onFocus,\n            onBlur: onBlur\n        }\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusWithin.module.js.map\n\n;// ./node_modules/@react-aria/focus/dist/useFocusRing.mjs\n\n\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n    let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n    let state = (0, external_React_namespaceObject.useRef)({\n        isFocused: false,\n        isFocusVisible: autoFocus || (0, $507fabe10e71c6fb$export$b9b3dfddab17db27)()\n    });\n    let [isFocused, setFocused] = (0, external_React_namespaceObject.useState)(false);\n    let [isFocusVisibleState, setFocusVisible] = (0, external_React_namespaceObject.useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n    let updateState = (0, external_React_namespaceObject.useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n    let onFocusChange = (0, external_React_namespaceObject.useCallback)((isFocused)=>{\n        state.current.isFocused = isFocused;\n        setFocused(isFocused);\n        updateState();\n    }, [\n        updateState\n    ]);\n    (0, $507fabe10e71c6fb$export$ec71b4b83ac08ec3)((isFocusVisible)=>{\n        state.current.isFocusVisible = isFocusVisible;\n        updateState();\n    }, [], {\n        isTextInput: isTextInput\n    });\n    let { focusProps: focusProps } = (0, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6)({\n        isDisabled: within,\n        onFocusChange: onFocusChange\n    });\n    let { focusWithinProps: focusWithinProps } = (0, $9ab94262bd0047c7$export$420e68273165f4ec)({\n        isDisabled: !within,\n        onFocusWithinChange: onFocusChange\n    });\n    return {\n        isFocused: isFocused,\n        isFocusVisible: isFocusVisibleState,\n        focusProps: within ? focusWithinProps : focusProps\n    };\n}\n\n\n\n//# sourceMappingURL=useFocusRing.module.js.map\n\n;// ./node_modules/@react-aria/interactions/dist/useHover.mjs\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n    $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n    // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n    // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n    // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n    // the distant future because a user previously touched the element.\n    setTimeout(()=>{\n        $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n    }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n    if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n    if (typeof document === 'undefined') return;\n    if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n    else document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    $6179b936705e76d3$var$hoverCount++;\n    return ()=>{\n        $6179b936705e76d3$var$hoverCount--;\n        if ($6179b936705e76d3$var$hoverCount > 0) return;\n        if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n        else document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n    let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n    let [isHovered, setHovered] = (0, external_React_namespaceObject.useState)(false);\n    let state = (0, external_React_namespaceObject.useRef)({\n        isHovered: false,\n        ignoreEmulatedMouseEvents: false,\n        pointerType: '',\n        target: null\n    }).current;\n    (0, external_React_namespaceObject.useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)();\n    let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, external_React_namespaceObject.useMemo)(()=>{\n        let triggerHoverStart = (event, pointerType)=>{\n            state.pointerType = pointerType;\n            if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n            state.isHovered = true;\n            let target = event.currentTarget;\n            state.target = target;\n            // When an element that is hovered over is removed, no pointerleave event is fired by the browser,\n            // even though the originally hovered target may have shrunk in size so it is no longer hovered.\n            // However, a pointerover event will be fired on the new target the mouse is over.\n            // In Chrome this happens immediately. In Safari and Firefox, it happens upon moving the mouse one pixel.\n            addGlobalListener((0, $431fbd86ca7dc216$export$b204af158042fbac)(event.target), 'pointerover', (e)=>{\n                if (state.isHovered && state.target && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(state.target, e.target)) triggerHoverEnd(e, e.pointerType);\n            }, {\n                capture: true\n            });\n            if (onHoverStart) onHoverStart({\n                type: 'hoverstart',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(true);\n            setHovered(true);\n        };\n        let triggerHoverEnd = (event, pointerType)=>{\n            let target = state.target;\n            state.pointerType = '';\n            state.target = null;\n            if (pointerType === 'touch' || !state.isHovered || !target) return;\n            state.isHovered = false;\n            removeAllGlobalListeners();\n            if (onHoverEnd) onHoverEnd({\n                type: 'hoverend',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(false);\n            setHovered(false);\n        };\n        let hoverProps = {};\n        if (typeof PointerEvent !== 'undefined') {\n            hoverProps.onPointerEnter = (e)=>{\n                if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n                triggerHoverStart(e, e.pointerType);\n            };\n            hoverProps.onPointerLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n            };\n        } else {\n            hoverProps.onTouchStart = ()=>{\n                state.ignoreEmulatedMouseEvents = true;\n            };\n            hoverProps.onMouseEnter = (e)=>{\n                if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n                state.ignoreEmulatedMouseEvents = false;\n            };\n            hoverProps.onMouseLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n            };\n        }\n        return {\n            hoverProps: hoverProps,\n            triggerHoverEnd: triggerHoverEnd\n        };\n    }, [\n        onHoverStart,\n        onHoverChange,\n        onHoverEnd,\n        isDisabled,\n        state,\n        addGlobalListener,\n        removeAllGlobalListeners\n    ]);\n    (0, external_React_namespaceObject.useEffect)(()=>{\n        // Call the triggerHoverEnd as soon as isDisabled changes to true\n        // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n        if (isDisabled) triggerHoverEnd({\n            currentTarget: state.target\n        }, state.pointerType);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        isDisabled\n    ]);\n    return {\n        hoverProps: hoverProps,\n        isHovered: isHovered\n    };\n}\n\n\n\n//# sourceMappingURL=useHover.module.js.map\n\n;// ./node_modules/@headlessui/react/dist/utils/owner.js\nfunction owner_u(r){return s.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-active-press.js\nfunction E(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function use_active_press_P(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function use_active_press_w({disabled:e=!1}={}){let t=(0,external_React_namespaceObject.useRef)(null),[n,l]=(0,external_React_namespaceObject.useState)(!1),r=use_disposables_p(),o=use_event_o(()=>{t.current=null,l(!1),r.dispose()}),f=use_event_o(s=>{if(r.dispose(),t.current===null){t.current=s.currentTarget,l(!0);{let i=owner_u(s.currentTarget);r.addEventListener(i,\"pointerup\",o,!1),r.addEventListener(i,\"pointermove\",c=>{if(t.current){let p=E(c);l(use_active_press_P(p,t.current.getBoundingClientRect()))}},!1),r.addEventListener(i,\"pointercancel\",o,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:f,onPointerUp:o,onClick:o}}}\n\n;// ./node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js\nfunction use_resolve_button_type_e(t,u){return (0,external_React_namespaceObject.useMemo)(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:\"button\";if(typeof r==\"string\"&&r.toLowerCase()===\"button\"||(u==null?void 0:u.tagName)===\"BUTTON\"&&!u.hasAttribute(\"type\"))return\"button\"},[t.type,t.as,u])}\n\n;// ./node_modules/@headlessui/react/dist/internal/hidden.js\nlet a=\"span\";var hidden_s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(hidden_s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return render_L()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let hidden_f=K(l);\n\n;// ./node_modules/@headlessui/react/dist/internal/focus-sentinel.js\nfunction focus_sentinel_b({onFocus:n}){let[r,o]=(0,external_React_namespaceObject.useState)(!0),u=f();return r?external_React_namespaceObject.createElement(hidden_f,{as:\"button\",type:\"button\",features:hidden_s.Focusable,onFocus:a=>{a.preventDefault();let e,i=50;function t(){if(i--<=0){e&&cancelAnimationFrame(e);return}if(n()){if(cancelAnimationFrame(e),!u.current)return;o(!1);return}e=requestAnimationFrame(t)}e=requestAnimationFrame(t)}}):null}\n\n;// ./node_modules/@headlessui/react/dist/utils/focus-management.js\nlet focus_management_f=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),p=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var focus_management_F=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n[n.AutoFocus=64]=\"AutoFocus\",n))(focus_management_F||{}),focus_management_T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(focus_management_T||{}),y=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(y||{});function focus_management_b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(focus_management_f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var focus_management_h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(focus_management_h||{});function A(e,r=0){var t;return e===((t=owner_u(e))==null?void 0:t.body)?!1:match_u(r,{[0](){return e.matches(focus_management_f)},[1](){let u=e;for(;u!==null;){if(u.matches(focus_management_f))return!0;u=u.parentElement}return!1}})}function G(e){let r=owner_u(e);disposables_o().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var focus_management_H=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(focus_management_H||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function I(e){e==null||e.focus({preventScroll:!0})}let focus_management_w=[\"textarea\",\"input\"].join(\",\");function focus_management_O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,focus_management_w))!=null?t:!1}function focus_management_(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function focus_management_j(e,r){return focus_management_P(focus_management_b(),r,{relativeTo:e})}function focus_management_P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?focus_management_(e):e:r&64?S(e):focus_management_b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&\"current\"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&focus_management_O(i)&&i.select(),2}\n\n;// ./node_modules/@headlessui/react/dist/utils/stable-collection.js\nconst stable_collection_s=external_React_namespaceObject.createContext(null);function stable_collection_a(){return{groups:new Map,get(o,e){var i;let t=this.groups.get(o);t||(t=new Map,this.groups.set(o,t));let n=(i=t.get(e))!=null?i:0;t.set(e,n+1);let r=Array.from(t.keys()).indexOf(e);function u(){let c=t.get(e);c>1?t.set(e,c-1):t.delete(e)}return[r,u]}}}function stable_collection_f({children:o}){let e=external_React_namespaceObject.useRef(stable_collection_a());return external_React_namespaceObject.createElement(stable_collection_s.Provider,{value:e},o)}function stable_collection_C(o){let e=external_React_namespaceObject.useContext(stable_collection_s);if(!e)throw new Error(\"You must wrap your component in a <StableCollection>\");let t=external_React_namespaceObject.useId(),[n,r]=e.current.get(o,t);return external_React_namespaceObject.useEffect(()=>r,[]),n}\n\n;// ./node_modules/@headlessui/react/dist/components/keyboard.js\nvar keyboard_o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(keyboard_o||{});\n\n;// ./node_modules/@headlessui/react/dist/components/tabs/tabs.js\n\"use client\";var tabs_Le=(t=>(t[t.Forwards=0]=\"Forwards\",t[t.Backwards=1]=\"Backwards\",t))(tabs_Le||{}),tabs_e=(l=>(l[l.Less=-1]=\"Less\",l[l.Equal=0]=\"Equal\",l[l.Greater=1]=\"Greater\",l))(tabs_e||{}),tabs_De=(n=>(n[n.SetSelectedIndex=0]=\"SetSelectedIndex\",n[n.RegisterTab=1]=\"RegisterTab\",n[n.UnregisterTab=2]=\"UnregisterTab\",n[n.RegisterPanel=3]=\"RegisterPanel\",n[n.UnregisterPanel=4]=\"UnregisterPanel\",n))(tabs_De||{});let Se={[0](e,r){var d;let t=focus_management_(e.tabs,u=>u.current),l=focus_management_(e.panels,u=>u.current),a=t.filter(u=>{var T;return!((T=u.current)!=null&&T.hasAttribute(\"disabled\"))}),n={...e,tabs:t,panels:l};if(r.index<0||r.index>t.length-1){let u=match_u(Math.sign(r.index-e.selectedIndex),{[-1]:()=>1,[0]:()=>match_u(Math.sign(r.index),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0});if(a.length===0)return n;let T=match_u(u,{[0]:()=>t.indexOf(a[0]),[1]:()=>t.indexOf(a[a.length-1])});return{...n,selectedIndex:T===-1?e.selectedIndex:T}}let s=t.slice(0,r.index),b=[...t.slice(r.index),...s].find(u=>a.includes(u));if(!b)return n;let f=(d=t.indexOf(b))!=null?d:e.selectedIndex;return f===-1&&(f=e.selectedIndex),{...n,selectedIndex:f}},[1](e,r){if(e.tabs.includes(r.tab))return e;let t=e.tabs[e.selectedIndex],l=focus_management_([...e.tabs,r.tab],n=>n.current),a=e.selectedIndex;return e.info.current.isControlled||(a=l.indexOf(t),a===-1&&(a=e.selectedIndex)),{...e,tabs:l,selectedIndex:a}},[2](e,r){return{...e,tabs:e.tabs.filter(t=>t!==r.tab)}},[3](e,r){return e.panels.includes(r.panel)?e:{...e,panels:focus_management_([...e.panels,r.panel],t=>t.current)}},[4](e,r){return{...e,panels:e.panels.filter(t=>t!==r.panel)}}},V=(0,external_React_namespaceObject.createContext)(null);V.displayName=\"TabsDataContext\";function tabs_C(e){let r=(0,external_React_namespaceObject.useContext)(V);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,tabs_C),t}return r}let Q=(0,external_React_namespaceObject.createContext)(null);Q.displayName=\"TabsActionsContext\";function Y(e){let r=(0,external_React_namespaceObject.useContext)(Q);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Y),t}return r}function tabs_Fe(e,r){return match_u(r.type,Se,e,r)}let tabs_Ie=\"div\";function he(e,r){let{defaultIndex:t=0,vertical:l=!1,manual:a=!1,onChange:n,selectedIndex:s=null,...g}=e;const b=l?\"vertical\":\"horizontal\",f=a?\"manual\":\"auto\";let d=s!==null,u=use_latest_value_s({isControlled:d}),T=use_sync_refs_y(r),[p,c]=(0,external_React_namespaceObject.useReducer)(tabs_Fe,{info:u,selectedIndex:s!=null?s:t,tabs:[],panels:[]}),h=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:p.selectedIndex}),[p.selectedIndex]),m=use_latest_value_s(n||(()=>{})),M=use_latest_value_s(p.tabs),S=(0,external_React_namespaceObject.useMemo)(()=>({orientation:b,activation:f,...p}),[b,f,p]),P=use_event_o(i=>(c({type:1,tab:i}),()=>c({type:2,tab:i}))),A=use_event_o(i=>(c({type:3,panel:i}),()=>c({type:4,panel:i}))),E=use_event_o(i=>{_.current!==i&&m.current(i),d||c({type:0,index:i})}),_=use_latest_value_s(d?e.selectedIndex:p.selectedIndex),D=(0,external_React_namespaceObject.useMemo)(()=>({registerTab:P,registerPanel:A,change:E}),[]);use_iso_morphic_effect_n(()=>{c({type:0,index:s!=null?s:t})},[s]),use_iso_morphic_effect_n(()=>{if(_.current===void 0||p.tabs.length<=0)return;let i=focus_management_(p.tabs,R=>R.current);i.some((R,X)=>p.tabs[X]!==R)&&E(i.indexOf(p.tabs[_.current]))});let K={ref:T},J=render_L();return external_React_namespaceObject.createElement(stable_collection_f,null,external_React_namespaceObject.createElement(Q.Provider,{value:D},external_React_namespaceObject.createElement(V.Provider,{value:S},S.tabs.length<=0&&external_React_namespaceObject.createElement(focus_sentinel_b,{onFocus:()=>{var i,G;for(let R of M.current)if(((i=R.current)==null?void 0:i.tabIndex)===0)return(G=R.current)==null||G.focus(),!0;return!1}}),J({ourProps:K,theirProps:g,slot:h,defaultTag:tabs_Ie,name:\"Tabs\"}))))}let ve=\"div\";function Ce(e,r){let{orientation:t,selectedIndex:l}=tabs_C(\"Tab.List\"),a=use_sync_refs_y(r),n=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:l}),[l]),s=e,g={ref:a,role:\"tablist\",\"aria-orientation\":t};return render_L()({ourProps:g,theirProps:s,slot:n,defaultTag:ve,name:\"Tabs.List\"})}let Me=\"button\";function Ge(e,r){var ee,te;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-tab-${t}`,disabled:a=!1,autoFocus:n=!1,...s}=e,{orientation:g,activation:b,selectedIndex:f,tabs:d,panels:u}=tabs_C(\"Tab\"),T=Y(\"Tab\"),p=tabs_C(\"Tab\"),[c,h]=(0,external_React_namespaceObject.useState)(null),m=(0,external_React_namespaceObject.useRef)(null),M=use_sync_refs_y(m,r,h);use_iso_morphic_effect_n(()=>T.registerTab(m),[T,m]);let S=stable_collection_C(\"tabs\"),P=d.indexOf(m);P===-1&&(P=S);let A=P===f,E=use_event_o(o=>{var $;let L=o();if(L===focus_management_T.Success&&b===\"auto\"){let q=($=owner_u(m))==null?void 0:$.activeElement,re=p.tabs.findIndex(ce=>ce.current===q);re!==-1&&T.change(re)}return L}),_=use_event_o(o=>{let L=d.map(q=>q.current).filter(Boolean);if(o.key===keyboard_o.Space||o.key===keyboard_o.Enter){o.preventDefault(),o.stopPropagation(),T.change(P);return}switch(o.key){case keyboard_o.Home:case keyboard_o.PageUp:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.First));case keyboard_o.End:case keyboard_o.PageDown:return o.preventDefault(),o.stopPropagation(),E(()=>focus_management_P(L,focus_management_F.Last))}if(E(()=>match_u(g,{vertical(){return o.key===keyboard_o.ArrowUp?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowDown?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error},horizontal(){return o.key===keyboard_o.ArrowLeft?focus_management_P(L,focus_management_F.Previous|focus_management_F.WrapAround):o.key===keyboard_o.ArrowRight?focus_management_P(L,focus_management_F.Next|focus_management_F.WrapAround):focus_management_T.Error}}))===focus_management_T.Success)return o.preventDefault()}),D=(0,external_React_namespaceObject.useRef)(!1),K=use_event_o(()=>{var o;D.current||(D.current=!0,(o=m.current)==null||o.focus({preventScroll:!0}),T.change(P),micro_task_t(()=>{D.current=!1}))}),J=use_event_o(o=>{o.preventDefault()}),{isFocusVisible:i,focusProps:G}=$f7dceffc5ad7768b$export$4e328f61c538687f({autoFocus:n}),{isHovered:R,hoverProps:X}=$6179b936705e76d3$export$ae780daf29e6d456({isDisabled:a}),{pressed:Z,pressProps:ue}=use_active_press_w({disabled:a}),Te=(0,external_React_namespaceObject.useMemo)(()=>({selected:A,hover:R,active:Z,focus:i,autofocus:n,disabled:a}),[A,R,i,Z,n,a]),de=render_({ref:M,onKeyDown:_,onMouseDown:J,onClick:K,id:l,role:\"tab\",type:use_resolve_button_type_e(e,c),\"aria-controls\":(te=(ee=u[P])==null?void 0:ee.current)==null?void 0:te.id,\"aria-selected\":A,tabIndex:A?0:-1,disabled:a||void 0,autoFocus:n},G,X,ue);return render_L()({ourProps:de,theirProps:s,slot:Te,defaultTag:Me,name:\"Tabs.Tab\"})}let Ue=\"div\";function tabs_He(e,r){let{selectedIndex:t}=tabs_C(\"Tab.Panels\"),l=use_sync_refs_y(r),a=(0,external_React_namespaceObject.useMemo)(()=>({selectedIndex:t}),[t]),n=e,s={ref:l};return render_L()({ourProps:s,theirProps:n,slot:a,defaultTag:Ue,name:\"Tabs.Panels\"})}let we=\"div\",Oe=O.RenderStrategy|O.Static;function Ne(e,r){var A,E,_,D;let t=(0,external_React_namespaceObject.useId)(),{id:l=`headlessui-tabs-panel-${t}`,tabIndex:a=0,...n}=e,{selectedIndex:s,tabs:g,panels:b}=tabs_C(\"Tab.Panel\"),f=Y(\"Tab.Panel\"),d=(0,external_React_namespaceObject.useRef)(null),u=use_sync_refs_y(d,r);use_iso_morphic_effect_n(()=>f.registerPanel(d),[f,d]);let T=stable_collection_C(\"panels\"),p=b.indexOf(d);p===-1&&(p=T);let c=p===s,{isFocusVisible:h,focusProps:m}=$f7dceffc5ad7768b$export$4e328f61c538687f(),M=(0,external_React_namespaceObject.useMemo)(()=>({selected:c,focus:h}),[c,h]),S=render_({ref:u,id:l,role:\"tabpanel\",\"aria-labelledby\":(E=(A=g[p])==null?void 0:A.current)==null?void 0:E.id,tabIndex:c?a:-1},m),P=render_L();return!c&&((_=n.unmount)==null||_)&&!((D=n.static)!=null&&D)?external_React_namespaceObject.createElement(hidden_f,{\"aria-hidden\":\"true\",...S}):P({ourProps:S,theirProps:n,slot:M,defaultTag:we,features:Oe,visible:c,name:\"Tabs.Panel\"})}let ke=K(Ge),Be=K(he),We=K(Ce),je=K(tabs_He),Ke=K(Ne),Tt=Object.assign(ke,{Group:Be,List:We,Panels:je,Panel:Ke});\n\n;// ./src/images/login-playground.png\n/* harmony default export */ const login_playground = (__webpack_require__.p + \"020bb5f9e6abbf80f12321f0e7771a22.png\");\n;// ./src/images/feature-code.svg\n/* harmony default export */ const feature_code = (__webpack_require__.p + \"a7b10863bbe3fbfc41866841fa68b986.svg\");\n;// ./src/images/feature-users.svg\n/* harmony default export */ const feature_users = (__webpack_require__.p + \"f333a678e8afc5ee2a0d5213d6496862.svg\");\n;// ./src/images/feature-unlock.svg\n/* harmony default export */ const feature_unlock = (__webpack_require__.p + \"511bf24fada771734184ab0703182525.svg\");\n;// ./src/components/step/Features.tsx\n\n\n\nfunction replaceWithBr(str) {\n    return str.replace(/\\n/g, '<br />');\n}\n\n\n\n\nconst tabs = [\n    {\n        name: 'Overview',\n        features: [\n            {\n                name: 'Overview',\n                description: ' Regularly updating your installation, along with its installed plugins and themes, is crucial for maintaining security.\\n\\n' +\n                    'On a standard installation, this plugin provides protection for logins and comments. Since WordPress doesn’t support forms without plugins, we’ve made an effort to support the most widely used form plugins. If your preferred form plugin isn&rsquo;t supported, please contact us, and we&rsquo;ll do our best to add it to the development roadmap.\\n\\n' +\n                    'You can also use this plugin in development mode or in the WordPress playground. A test version of the plugin, complete with examples, has been made available for you to experiment with.',\n                imageSrc: login_playground,\n                imageAlt: 'Isometric preview of the login page.',\n            },\n        ],\n    },\n    {\n        name: 'How does it work?',\n        features: [\n            {\n                name: 'How does it work?',\n                description: 'This plugin works by requesting a captcha to be generated by our cloud service. This captcha is delivered to your site with some encrypted data. When a user attempts to solve the captcha, the service uses this data to validate their response. The plugin then passes or fails the action, thereby protecting your site.',\n                imageSrc: feature_code,\n                imageAlt: 'Isometric screenshot illustraitng a code sample',\n            },\n        ],\n    },\n    {\n        name: 'Authorised roles',\n        features: [\n            {\n                name: 'Authorised roles',\n                description: 'These are the roles that won&rsquo;t be presented a captcha: Administrator and Editor roles are always treated as Authorised roles. However, since WordPress allows for open registration without email authentication, we don&rsquo;t assume that other roles are safe.',\n                imageSrc: feature_users,\n                imageAlt: 'Isometric illustration of users',\n            },\n        ],\n    },\n    {\n        name: 'Protect',\n        features: [\n            {\n                name: 'Protect',\n                description: 'You can configure what you want this plugin to protect, forms, comments and login can be individually managed. Toggling options applies the settings immediately.\\n\\n' +\n                    'We fund the development of this plugin by making a tiny charge for each successful login or submission, we believe is the fairest way to charge as it encourages us to deal with the issue in an efficient way.\\n\\n' +\n                    'New customers get free credits to try out the service and see if it fits their needs.',\n                imageSrc: feature_unlock,\n                imageAlt: 'Isometric illustration of a lock',\n            },\n        ],\n    },\n];\nfunction Features() {\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"section\", { \"aria-labelledby\": \"features-heading\", className: \"border-b border-white/20 pb-4 pt-4 text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mx-auto max-w-2xl px-8 lg:max-w-none lg:px-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"max-w-3xl\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl/7\", children: \"Web-Engine Sentry is a plugin that offers protection for comments, administrative login, and form submissions. While it won\\u2019t prevent human submissions, its primary objective is to make it challenging for automated programs to access your site.\" }) }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(Be, { className: \"my-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"-mx-4 flex overflow-x-auto sm:mx-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex-auto border-b border-white/20 px-4 sm:px-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(We, { className: \"-mb-px flex space-x-10\", children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Tt, { className: \"whitespace-nowrap border-b-2 border-transparent py-6 text-sm font-medium text-white/90 hover:border-sky-200 hover:text-sky-400 data-[selected]:border-sky-300 data-[selected]:text-sky-400\", children: tab.name }, tab.name))) }) }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(je, { as: external_React_namespaceObject.Fragment, children: tabs.map((tab) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Ke, { className: \"space-y-16 pt-10 lg:pt-16\", children: tab.features.map((feature) => ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex flex-col-reverse lg:grid lg:grid-cols-12 lg:gap-x-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-6 lg:col-span-5 lg:mt-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"h3\", { className: \"text-lg font-medium text-white\", children: feature.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-2 text-sm text-white/90\", dangerouslySetInnerHTML: {\n                                                            __html: replaceWithBr(feature.description),\n                                                        } })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"lg:col-span-7\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"img\", { alt: feature.imageAlt, src: feature.imageSrc, className: \"w-full object-cover\" }) })] }, feature.name))) }, tab.name))) })] })] }) }) }));\n}\n\n;// ./node_modules/@heroicons/react/24/solid/esm/CheckIcon.js\n\nfunction CheckIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M19.916 4.626a.75.75 0 0 1 .208 1.04l-9 13.5a.75.75 0 0 1-1.154.114l-6-6a.75.75 0 0 1 1.06-1.06l5.353 5.353 8.493-12.74a.75.75 0 0 1 1.04-.207Z\",\n    clipRule: \"evenodd\"\n  }));\n}\nconst CheckIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckIcon);\n/* harmony default export */ const esm_CheckIcon = (CheckIcon_ForwardRef);\n;// ./src/components/step/Documentation.tsx\n\n\n\n\n\n\n\n\n\nfunction Documentation({ registrationEmail, registrationName, testMode, onStep, logged, }) {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [plugins, setPlugins] = (0,external_React_namespaceObject.useState)([]);\n    const [installed, setInstalled] = (0,external_React_namespaceObject.useState)(['']);\n    const [selected, setSelected] = (0,external_React_namespaceObject.useState)('');\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        if (false === loaded) {\n            const data = {\n                action: 'we360cloud_sentry',\n                token: webEngineCaptcha.token,\n                we360cloud_sentry_route: 'plugins',\n            };\n            fetch(webEngineCaptcha.url, {\n                method: 'POST',\n                headers: {\n                    'content-type': 'application/x-www-form-urlencoded',\n                },\n                body: query_string.stringify(data),\n            })\n                .then((response) => response.json())\n                .then((json) => {\n                if (false === json ||\n                    undefined === json.payload ||\n                    undefined === json.payload.we360cloud_sentry_plugins) {\n                }\n                else {\n                    setPlugins(json.payload.we360cloud_sentry_plugins);\n                    setInstalled(json.payload.we360cloud_sentry_installed);\n                    if (json.payload.we360cloud_sentry_installed) {\n                        setSelected(json.payload.we360cloud_sentry_installed[0]);\n                    }\n                }\n                setLoaded(true);\n            });\n        }\n    }, [loaded]);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-5xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"mt-12\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white text-left\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-3 gap-4 mb-4 relative max-w-[512px]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('authenticated'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500\", children: \"Configure\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", disabled: true, className: \"inline-flex w-full mt-4 justify-center rounded-md bg-gradient-to-t from-black/10 to-transparent px-3 py-2 text-sm font-semibold [text-shadow:_0_1px_10px_rgb(0_0_0_/_50%)]\", children: \"Documentation\" }), !testMode && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: 'inline-flex w-full mt-4 justify-center rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg hover:bg-cyan-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cyan-500 ', children: \"Manage account\" }))] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(ze, { as: \"div\", appear: true, show: true, enter: \"transform transition duration-300 ease-out\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"transform transition duration-300 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Features, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"space-y-4 mt-8 max-w-screen-sm\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-black text-lg\", children: \"Supported forms plugins\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Plugins are listed alphabetically; support for a plugin doesn\\u2019t imply endorsement of its functionality. We recommend choosing a form plugin that best suits your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Captchas are enabled\" }), \" and will appear for all forms. The following supported plugins appear to be installed. Plugin-specific notes are listed below each one.\"] }), loaded && selected === '' ? ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"font-bold text-lg border-b border-white/20 pb-4\", children: \"It looks like you don't have any of the supported form plugins installed or activated. See the list of supported plugins below. Contact us if you'd like support for another form plugin.\" }) })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex gap-4 border-b border-white/20 pb-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: plugins.map((plugin) => installed.includes(plugin.name) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { className: \"py-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: plugin.name }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckIcon, { className: \"w-4 h-4 ml-2 align-top inline\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), plugin.notes] }) }, plugin.name))) }) }) })), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"You can also toggle the protection of comments and logins. We recommend enabling these options, but you can choose to disable this protection if it doesn\\u2019t suit your needs.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { children: \"Full list of officially supported plugins -\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"ul\", { className: \"list-disc ml-4\", children: plugins.map((plugin) => ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"li\", { children: plugin.name +\n                                                            ' ' +\n                                                            plugin.version }, plugin.name))) }) })] })] })] })] })] }));\n}\n\n;// ./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\n\nfunction CheckCircleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n  }));\n}\nconst CheckCircleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(CheckCircleIcon);\n/* harmony default export */ const esm_CheckCircleIcon = (CheckCircleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\n\nfunction ExclamationTriangleIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\"\n  }));\n}\nconst ExclamationTriangleIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(ExclamationTriangleIcon);\n/* harmony default export */ const esm_ExclamationTriangleIcon = (ExclamationTriangleIcon_ForwardRef);\n;// ./node_modules/@heroicons/react/20/solid/esm/XMarkIcon.js\n\nfunction XMarkIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/external_React_namespaceObject.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/external_React_namespaceObject.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/external_React_namespaceObject.createElement(\"path\", {\n    d: \"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z\"\n  }));\n}\nconst XMarkIcon_ForwardRef = /*#__PURE__*/ external_React_namespaceObject.forwardRef(XMarkIcon);\n/* harmony default export */ const esm_XMarkIcon = (XMarkIcon_ForwardRef);\n;// ./src/components/Alert.tsx\n'use client';\n\n\n\n\n\nfunction Alert({ text, type, title, visible }) {\n    const [show, setShow] = (0,external_React_namespaceObject.useState)(visible);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { \"aria-live\": \"assertive\", className: \"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex w-full flex-col items-center space-y-4 sm:items-end\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { show: show, children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black/5 transition data-[closed]:data-[enter]:translate-y-2 data-[enter]:transform data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-100 data-[enter]:ease-out data-[leave]:ease-in data-[closed]:data-[enter]:sm:translate-x-2 data-[closed]:data-[enter]:sm:translate-y-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"p-4\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"flex items-start\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"shrink-0\", children: [('' === type ||\n                                                'success' === type) && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_CheckCircleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-green-400\" })), 'warning' === type && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ExclamationTriangleIcon, { \"aria-hidden\": \"true\", className: \"size-6 text-orange-500-400\" })), ' '] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"ml-3 w-0 flex-1 pt-0.5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-sm font-medium text-gray-900\", children: title }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-1 text-sm text-gray-500\", children: text })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"ml-4 flex shrink-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"button\", { type: \"button\", onClick: () => {\n                                                setShow(false);\n                                            }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Close\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_XMarkIcon, { \"aria-hidden\": \"true\", className: \"size-5\" })] }) })] }) }) }) }) }) }) }));\n}\n\n;// ./src/components/Window.tsx\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction Window({ registrationStep, onStep, registrationEmail, onRegistrationEmail, registrationName, onRegistrationName, commAdministrative, commNews, commDeveloper, onCommAdministrative, onCommNews, onCommDeveloper, onPin, pin, balance, newUser, notice, testMode, logged, expires, }) {\n    const [showReg, setShowReg] = (0,external_React_namespaceObject.useState)(false);\n    const getPin = () => {\n        onStep('pin');\n    };\n    const retryLoad = () => {\n        onStep('reload');\n    };\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-9 h-[18rem] w-[18rem] -translate-y-[3.8rem] translate-x-[1rem]\", isLoading: false }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 1024 1024\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-2/3 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 512, cx: 512, cy: 512, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-3 sm:mt-5\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"mt-12\", children: [undefined !== notice && notice.text && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Alert, { text: notice.text, title: notice.title ? notice.title : '', visible: true, type: notice.type ? notice.type : 'warning' })), undefined === registrationStep ||\n                                ('error' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"Unable to connect to cloud service,\", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \" please\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { onClick: () => retryLoad(), className: \"underline inline-block\", children: \"try again in a moment\" }), \".\"] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-white\", children: [\"If the problem persists the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"a\", { href: \"https://www.web-engineer.co.uk/doc/sentry-wordpress\", target: \"_blank\", className: \"underline\", rel: \"noreferrer\", children: \"support page\" }), ' ', \"provides information, frequently asked questions and access to raise a request.\"] })] }))), 'init' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg/8 text-zinc-100\", children: \"Loading.\" })), 'register' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [!showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Intro, { onSetShowReg: setShowReg })), showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: [\"This plugin uses the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap font-black\", children: \"Web-Engine cloud\" }), ' ', \"to generate secure challenges, registration is required to use this service\"] }))] })), 'activate' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 mb-3 text-pretty text-lg text-zinc-100\", children: \"The Web-Engine cloud service is connected, however sentry isn\\u2019t enabled.\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('sentry-setup'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Enable \", (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Sentry\" })] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('force-disconnect'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { children: [\"Disconnect from all\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"Web-Engine cloud\" }), ' ', \"services\"] }) })] })), 'pin' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Check your email to verify your account to validate your account\" })), 'verified' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-zinc-300\", children: \"Account registered\" }))] })] }), 'manage' === registrationStep && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Manage, { registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, testMode: testMode, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt, true);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt, true);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt, true);\n                }, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged, expires: expires })), ('register' === registrationStep ||\n                'registering' === registrationStep) &&\n                showReg && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Register, { setShowReg: setShowReg, getPin: getPin, registrationStep: registrationStep, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, onRegistrationEmail: (email) => {\n                    onRegistrationEmail(email);\n                }, onRegistrationName: (name) => {\n                    onRegistrationName(name);\n                }, onCommAdministrative: (opt) => {\n                    onCommAdministrative(opt);\n                }, onCommNews: (opt) => {\n                    onCommNews(opt);\n                }, onCommDeveloper: (opt) => {\n                    onCommDeveloper(opt);\n                } })), (registrationStep === 'pin sent' ||\n                registrationStep === 'bad pin' ||\n                registrationStep === 'error pin' ||\n                registrationStep === 'pin check') && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(PinCheck, { registrationStep: registrationStep, registrationEmail: registrationEmail, pin: pin, onPin: (val) => {\n                    onPin(val);\n                }, onStep: (step) => {\n                    onStep(step);\n                } })), registrationStep === 'documentation' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'authenticated' && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Options, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                    onStep(step);\n                }, logged: logged })), registrationStep === 'welcome' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mt-6 text-pretty text-xl text-white\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"mb-2\", children: \"Welcome to the Web-Engine cloud captcha service, your site is now connected.\" }), newUser === true ? ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mb-2\", children: [\"To use the optional\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: \"premium services\" }), ' ', \"you will need to complete setting up your account and login to the our cloud services, an email has been sent with instructions.\"] })) : ((0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: Number(balance) > 0 && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"span\", { children: [' ', \"Your existing balance is\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"font-black\", children: undefined === balance\n                                                            ? '-'\n                                                            : Number(balance).toLocaleString() }), ' ', \"credits\"] })) }))] }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"w-full mt-4 justify-center rounded-md bg-sky-900 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700\", children: \"Get started\" })] })] })), (registrationStep === 'unregister' ||\n                registrationStep === 'force-disconnect') && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(User, { registrationName: registrationName, registrationEmail: registrationEmail, testMode: testMode, logged: logged }), registrationStep === 'unregister' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site from the\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Sentry\" }), \" service, this site will no longer be protected\"] })), registrationStep === 'force-disconnect' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"mt-6 text-pretty text-lg/8 text-white\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { children: \"Are you sure?\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"br\", {}), \"This action will disconnect this site entirely from\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"b\", { className: \"text-nowrap\", children: \"Web-Engine Cloud\" }), \".\"] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"grid grid-cols-2 gap-4\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep(registrationStep === 'unregister'\n                                    ? 'unregister-confirmed'\n                                    : 'force-disconnect-confirmed'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-pink-700 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-pink-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-600\", children: \"Yes\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => onStep('manage'), className: \"inline-flex w-full mt-4 justify-center rounded-md bg-sky-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-sky-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-600\", children: \"No\" })] })] })), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"p\", { className: \"text-center text-sm mt-8\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { href: \"https://www.web-engineer.co.uk/terms-conditions/privacy-policy\", target: \"_blank\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", rel: \"noreferrer\", children: [\"Privacy policy\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"a\", { rel: \"noopener noreferrer\", target: \"_blank\", href: \"https://www.we360.cloud\", className: \"font-semibold text-white/80 hover:text-sky-300 mx-4\", children: [\"Web-Engine cloud\", ' ', (0,external_ReactJSXRuntime_namespaceObject.jsx)(esm_ArrowTopRightOnSquareIcon, { className: \"inline-flex h-4 w-4\" })] })] })] }));\n}\n\n;// ./src/components/Loader.tsx\n'use client';\n\n\n\nfunction Loader({ visible, error, onRetry }) {\n    const dataProps = false === visible ? { 'data-closed': true } : {};\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", Object.assign({}, dataProps, { className: \"container min-w-[420px] relative transform overflow-hidden rounded-lg dark:bg-zinc-950 bg-sky-800 px-4 pb-4 pt-5 text-left shadow-black/70 shadow-2xl transition-all data-[closed]:translate-y-4 data-[closed]:opacity-0 data-[enter]:duration-300 data-[leave]:duration-200 data-[enter]:ease-out data-[leave]:ease-in sm:my-8 max-w-xl py-24 sm:px-6 sm:py-10 lg:px-8 data-[closed]:sm:translate-y-0 data-[closed]:sm:scale-95\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(WebUiLogo, { className: \"pointer-events-none absolute right-0 top-0 -z-10 h-[15rem] w-[15rem] -translate-y-[3.8rem] translate-x-[1rem] opacity-50\", isLoading: true }), (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"svg\", { viewBox: \"0 0 512 512\", \"aria-hidden\": \"true\", className: \"absolute left-0 top-0 -z-10 h-[80rem] w-[80rem] -translate-y-4/4 -translate-x-1/4 [mask-image:radial-gradient(closest-side,white,transparent)]\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"circle\", { r: 256, cx: 256, cy: 256, fill: \"url(#759c1415-0410-454c-8f7c-9a820de03641)\", fillOpacity: \"0.9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"defs\", { children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"radialGradient\", { id: \"759c1415-0410-454c-8f7c-9a820de03641\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { stopColor: \"#67e8f9\" }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"stop\", { offset: 1, stopColor: \"#67e8f9\" })] }) })] }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(Wordmark, {}), error && error !== '' && ((0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(\"p\", { className: \"text-xl text-white font-bold\", children: error }), error && error !== '' && onRetry && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"button\", { type: \"button\", onClick: () => {\n                            onRetry();\n                        }, className: \"inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"span\", { className: \"sr-only\", children: \"Retry\" }) }))] }))] })));\n}\n\n;// ./src/components/App.tsx\n\n\n\n\n\n\n\nconst App = () => {\n    const [loaded, setLoaded] = (0,external_React_namespaceObject.useState)(false);\n    const [status, setStatus] = (0,external_React_namespaceObject.useState)('init');\n    const [error, setError] = (0,external_React_namespaceObject.useState)('');\n    const [pin, setPin] = (0,external_React_namespaceObject.useState)('');\n    const [mailStep, setMailStep] = (0,external_React_namespaceObject.useState)(0);\n    const [notice, setNotice] = (0,external_React_namespaceObject.useState)();\n    const [balance, setBalance] = (0,external_React_namespaceObject.useState)(0);\n    const [newUser, setNewUser] = (0,external_React_namespaceObject.useState)(false);\n    const [registrationEmail, setRegistrationEmail] = (0,external_React_namespaceObject.useState)('');\n    const [registrationName, setRegistrationName] = (0,external_React_namespaceObject.useState)('');\n    const [testMode, setTestMode] = (0,external_React_namespaceObject.useState)(false);\n    const [logged, setLogged] = (0,external_React_namespaceObject.useState)(false);\n    const [expires, setExpires] = (0,external_React_namespaceObject.useState)(-1);\n    const [commAdministrative, setCommAdministrative] = (0,external_React_namespaceObject.useState)(false);\n    const [commNews, setCommNews] = (0,external_React_namespaceObject.useState)(false);\n    const [commDeveloper, setCommDeveloper] = (0,external_React_namespaceObject.useState)(false);\n    function handleCommAdministrativeChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_administrative', opt, setCommAdministrative);\n        }\n        else {\n            setCommAdministrative(opt);\n        }\n    }\n    function handleCommNewsChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_news', opt, setCommNews);\n        }\n        else {\n            setCommNews(opt);\n        }\n    }\n    function handleCommDeveloperChange(opt, update) {\n        if (true === update) {\n            updateComm('comm_developer', opt, setCommDeveloper);\n        }\n        else {\n            setCommDeveloper(opt);\n        }\n    }\n    function updateComm(option, value, callback) {\n        if (!loaded) {\n            return;\n        }\n        const data = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'updatecomm',\n            option,\n            value,\n        };\n        fetch(webEngineCaptcha.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(data),\n        })\n            .then((response) => response.json())\n            .then((json) => {\n            callback(json.payload.value === true);\n        });\n    }\n    const onStep = (requestedStep) => {\n        switch (requestedStep) {\n            case 'reload':\n                init();\n                break;\n            case 'manage':\n                setStatus('manage');\n                break;\n            case 'documentation':\n                setStatus('documentation');\n                break;\n            case 'authenticated':\n                setStatus('authenticated');\n                break;\n            case 'newly-authenticated':\n                init();\n                setStatus('authenticated');\n                break;\n            case 'force-disconnect':\n                setStatus('force-disconnect');\n                break;\n            case 'force-disconnect-confirmed':\n                const udata2 = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata2),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'unregister':\n                setStatus('unregister');\n                break;\n            case 'unregister-confirmed':\n                setLoaded(false);\n                const udata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(udata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (data.code === 200) {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'exit-testmode':\n                setLoaded(false);\n                const capdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'goodbye',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(capdata),\n                })\n                    .then((response) => response.json())\n                    .then((capjson) => {\n                    setLoaded(true);\n                    if (capjson.code === 200) {\n                        setTestMode(false);\n                        setStatus('register');\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n                break;\n            case 'pin':\n                setStatus('registering');\n                const pdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setStatus('pin sent');\n                    }\n                    else {\n                        setStatus('register');\n                    }\n                });\n                break;\n            case 'bad pin':\n                setStatus('bad pin');\n                break;\n            case 'pin check':\n                setStatus('pin check');\n                const pcdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'hello',\n                    name: registrationName,\n                    email: registrationEmail,\n                    commAdministrative,\n                    commNews,\n                    commDeveloper,\n                    pin,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(pcdata),\n                })\n                    .then((response) => response.json())\n                    .then((data) => {\n                    if (false === data.success ||\n                        Number(data.code) !== 200) {\n                        setStatus('error pin');\n                    }\n                    else if ('authenticated' === data.status) {\n                        if (false === data.success ||\n                            Number(data.code) !== 200) {\n                            setStatus('error pin');\n                        }\n                        else if ('authenticated' === data.status) {\n                            onStep('sentry-setup');\n                            setBalance(data.balance);\n                            setNewUser(data.newUser);\n                            setLogged(data.logged);\n                        }\n                        else {\n                            setStatus('bad pin');\n                        }\n                    }\n                });\n                break;\n            case 'sentry-setup':\n                setLoaded(false);\n                const setupdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'sentrysetup',\n                };\n                fetch(webEngineCaptcha.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(setupdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setLoaded(true);\n                        setStatus('welcome');\n                        setMailStep(0);\n                    }\n                    else {\n                        setError('Error with sentry setup');\n                        window.setTimeout(() => {\n                            location.reload();\n                        }, 10000);\n                    }\n                });\n                break;\n            case 'password-setup':\n                setMailStep(1);\n                const psdata = {\n                    action: 'we360cloud_account',\n                    token: webEngineAccount.token,\n                    route: 'resetemail',\n                    name: registrationName,\n                    email: registrationEmail,\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(psdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    if (true === json.success) {\n                        setMailStep(2);\n                    }\n                    else {\n                        setMailStep(3);\n                    }\n                });\n                break;\n            default:\n                setStatus('register');\n        }\n    };\n    const init = (0,external_React_namespaceObject.useCallback)(() => {\n        setLoaded(false);\n        const idata = {\n            action: 'we360cloud_account',\n            token: webEngineAccount.token,\n            route: 'hello',\n        };\n        fetch(webEngineAccount.url, {\n            method: 'POST',\n            headers: {\n                'content-type': 'application/x-www-form-urlencoded',\n            },\n            body: query_string.stringify(idata),\n        })\n            .then((response) => response.json())\n            .then((data) => {\n            if (false === data ||\n                (data.code && Number(data.code) !== 200)) {\n                setLoaded(true);\n                setStatus('error');\n            }\n            else {\n                if (data.email) {\n                    setRegistrationEmail(data.email);\n                }\n                if (data.name) {\n                    setRegistrationName(data.name);\n                }\n                setLogged(data.logged);\n                setExpires(data.expires);\n                if (!data.products ||\n                    !data.products.includes('sentry')) {\n                    if (data.status === 'register') {\n                        setLoaded(true);\n                        setStatus(data.status);\n                    }\n                    else if (data.status === 'reset') {\n                        setLoaded(true);\n                        setStatus('register');\n                    }\n                    else {\n                        setLoaded(true);\n                        setStatus('activate');\n                    }\n                    return;\n                }\n                const rqdata = {\n                    action: 'we360cloud_sentry',\n                    token: webEngineCaptcha.token,\n                    we360cloud_sentry_route: 'testmode',\n                };\n                fetch(webEngineAccount.url, {\n                    method: 'POST',\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded',\n                    },\n                    body: query_string.stringify(rqdata),\n                })\n                    .then((response) => response.json())\n                    .then((json) => {\n                    setLoaded(true);\n                    if (json.code === 200) {\n                        setTestMode(json.testmode);\n                        if (false === data.success) {\n                            setStatus('error');\n                        }\n                        else if ('authenticated' !== data.status) {\n                            setStatus(data.status);\n                        }\n                        if (data.notice) {\n                            setNotice(data.notice);\n                        }\n                        else {\n                            setNotice(undefined);\n                        }\n                        setCommAdministrative(data.communications.commAdministrative === 1);\n                        setCommNews(data.communications.commNews === 1);\n                        setCommDeveloper(data.communications.commDeveloper === 1);\n                        setBalance(data.balance);\n                        if (true === json.testmode) {\n                            setStatus('authenticated');\n                        }\n                        else {\n                            setStatus('manage');\n                        }\n                    }\n                    else {\n                        setStatus('error');\n                    }\n                });\n            }\n        });\n    }, []);\n    (0,external_React_namespaceObject.useEffect)(() => {\n        init();\n        return () => {\n        };\n    }, [init]);\n    return ((0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"pointer-events-auto relative top-0 left-0 w-full pr-[20px] pt-[20px]\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"inset-0 z-10 w-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(\"div\", { className: \"flex min-h-full items-end sm:p-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsxs)(\"div\", { className: \"relative flex\", children: [(0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded &&\n                                'documentation' !== status &&\n                                'manage' !== status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"opacity-0 -translate-x-full\", enterTo: \"opacity-100 translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100 translate-x-0\", leaveTo: \"opacity-0 translate-x-full\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'documentation' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Documentation, { registrationEmail: registrationEmail, registrationName: registrationName, testMode: testMode, onStep: (step) => {\n                                    onStep(step);\n                                }, logged: logged }) }), (0,external_ReactJSXRuntime_namespaceObject.jsx)(ze, { as: \"div\", show: true === loaded && 'manage' === status, enter: \"transform transition duration-300 ease-out origin-top-left\", enterFrom: \"-translate-x-full\", enterTo: \"translate-x-0\", leave: \"hidden transform duration-0 transition ease-in\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: (0,external_ReactJSXRuntime_namespaceObject.jsx)(Window, { registrationStep: status, registrationEmail: registrationEmail, registrationName: registrationName, commAdministrative: commAdministrative, commNews: commNews, commDeveloper: commDeveloper, notice: notice, pin: pin, balance: balance, newUser: newUser, testMode: testMode, mailStep: mailStep, onPin: (val) => {\n                                    setPin(val);\n                                }, onStep: (step) => {\n                                    onStep(step);\n                                }, onRegistrationEmail: (email) => {\n                                    setRegistrationEmail(email);\n                                }, onRegistrationName: (name) => {\n                                    setRegistrationName(name);\n                                }, onCommAdministrative: (opt, update = false) => {\n                                    handleCommAdministrativeChange(opt, update);\n                                }, onCommNews: (opt, update = false) => {\n                                    handleCommNewsChange(opt, update);\n                                }, onCommDeveloper: (opt, update = false) => {\n                                    handleCommDeveloperChange(opt, update);\n                                }, logged: logged, expires: expires }) }), true !== loaded && ((0,external_ReactJSXRuntime_namespaceObject.jsx)(Loader, { visible: !loaded, error: error }))] }) }) }) }));\n};\n/* harmony default export */ const components_App = (App);\n\n// EXTERNAL MODULE: ./src/components/styles/index.css\nvar components_styles = __webpack_require__(\"./src/components/styles/index.css\");\n;// ./src/components/DocRoot.tsx\n\n\n\n\n\nclass DocRoot extends HTMLElement {\n    constructor() {\n        super();\n        this._uiContainer = document.createElement('div');\n        const styles = new CSSStyleSheet();\n        const shadowRoot = this.attachShadow({ mode: 'closed' });\n        const uiRoot = (0,client.createRoot)(this._uiContainer);\n        shadowRoot.append(this._uiContainer);\n        styles.replace(components_styles[\"default\"].toString());\n        shadowRoot.adoptedStyleSheets = [styles];\n        uiRoot.render((0,external_ReactJSXRuntime_namespaceObject.jsx)(App, {}));\n    }\n}\n\n;// ./src/index.ts\n\ncustomElements.define('wp-we-captcha', DocRoot);\n\n\n//# sourceURL=webpack://we-capture-wordpress/./src/index.ts_+_86_modules?");
    6060
    6161/***/ }),
  • web-engine-sentry/trunk/build/sentry.js

    r3267777 r3268515  
    99            script.type = 'text/javascript';
    1010            script.src =
    11                 'https://cdn.we360.cloud/sentry/v1/client-1.0.14434.js';
     11                'https://cdn.we360.cloud/sentry/v1/client-1.0.14442.js';
    1212            script.id = 'web-engine-sentry-script';
    1313            document.head.appendChild(script);
  • web-engine-sentry/trunk/lib/weCap-wp-plugin-libs/src/Captcha.php

    r3267777 r3268515  
    3434    public static $instance;
    3535
    36     public const USERMETA_PASSWORD = 'we360cloud_sentry_password_reset_at';
    37     public const OPTION_PROTECT_FORMS = 'we360cloud_sentry_protectforms';
    38     public const OPTION_PROTECT_LOGIN = 'we360cloud_sentry_protectlogin';
     36    public const USERMETA_PASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_password_reset_at';
     37    public const OPTION_PROTECT_FORMS = Account::OPTION_NAME_PREFIX . 'sentry_protectforms';
     38    public const OPTION_PROTECT_LOGIN = Account::OPTION_NAME_PREFIX . 'sentry_protectlogin';
    3939    // public const OPTION_BLOCK_EXPIRE = 'we360cloud_sentry_blockonexpire';
    40     public const OPTION_PROTECT_COMMENTS = 'we360cloud_sentry_protectcomments';
    41     public const OPTION_EXEMPT = 'we360cloud_sentry_exempt';
    42     public const OPTION_TEST_MODE = 'we360cloud_sentry_testmode';
    43     public const OPTION_EXEMPT_USER = 'we360cloud_sentry_exempt_user';
    44     public const OPTION_DOMAIN = 'we360cloud_sentry_domain';
    45     public const OPTION_WCCHECKOUT = 'we360cloud_sentry_wccheckout';
     40    public const OPTION_PROTECT_COMMENTS = Account::OPTION_NAME_PREFIX . 'sentry_protectcomments';
     41    public const OPTION_EXEMPT = Account::OPTION_NAME_PREFIX . 'sentry_exempt';
     42    public const OPTION_TEST_MODE = Account::OPTION_NAME_PREFIX . 'entry_testmode';
     43    public const OPTION_EXEMPT_USER = Account::OPTION_NAME_PREFIX . 'sentry_exempt_user';
     44    public const OPTION_DOMAIN = Account::OPTION_NAME_PREFIX . 'sentry_domain';
     45    public const OPTION_LOSTPASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_lostpassword';
     46    public const OPTION_WCCHECKOUT = Account::OPTION_NAME_PREFIX . 'sentry_wccheckout';
    4647    public const NONCE = '_wesentry_nonce';
    4748    public const ACTION = 'web-engine_sentry-validate';
    4849
    49     public const CHALLENGE_TOKEN = 'we360cloud_sentry_challenge';
    50     public const MANAGE_TOKEN = 'we360cloud_sentry_manage';
     50    public const CHALLENGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_challenge';
     51    public const MANAGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_manage';
    5152
    5253    // Default exempt roles
     
    6667        ['name' => 'WPForms', 'version' => '1.9', 'notes' => 'Has custom field', 'classname' => 'WPForms_Field'],
    6768        ['name' => 'Gutena Forms', 'version' => '1.2.7', 'notes' => '', 'classname' => 'Gutena_Forms'],
    68         ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Login, register and checkout forms', 'classname' => 'WooCommerce']
     69        ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Enabled with protect login, protect forgot password and protect checkout', 'classname' => 'WooCommerce']
    6970    ];
    7071    // How long should a captcha be valid in the cache for (seconds)
     
    182183                        case Captcha::OPTION_PROTECT_COMMENTS:
    183184                        case Captcha::OPTION_WCCHECKOUT:
     185                        case Captcha::OPTION_LOSTPASSWORD:
    184186                            // case Captcha::OPTION_BLOCK_EXPIRE:
    185187                            update_option($option, $value);
     
    204206                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    205207                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     208                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    206209
    207210                    if (class_exists('WooCommerce')) {
     
    348351                        case Captcha::OPTION_PROTECT_COMMENTS:
    349352                        case Captcha::OPTION_WCCHECKOUT:
     353                        case Captcha::OPTION_LOSTPASSWORD:
    350354                            // case Captcha::OPTION_BLOCK_EXPIRE:
    351355                            update_option($option, $value);
     
    370374                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    371375                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     376                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    372377
    373378                    if (class_exists('WooCommerce')) {
     
    462467            }
    463468
     469            if ((bool) (get_option(Captcha::OPTION_LOSTPASSWORD, false) === 'true')) {
     470                // add captcha to lost password form
     471                add_action('lostpassword_form', [$this, 'wp_wecap']);
     472                add_action('woocommerce_lostpassword_form', [$this, 'wp_wecap']);
     473                // validate captcha on lost password form
     474                add_filter('lostpassword_post', [$this, 'wp_lost_password_check']);
     475            }
     476
    464477            // if protect comments is enabled
    465478            if ((bool) (get_option(Captcha::OPTION_PROTECT_COMMENTS, false) === 'true')) {
     
    591604    }
    592605
     606    public function wp_lost_password_check($errors) {
     607        if (!array_key_exists(Captcha::NONCE, $_POST) || (!wp_verify_nonce(sanitize_key($_POST[Captcha::NONCE]), Captcha::ACTION))) {
     608            $errors->add('user_captcha_error', 'Could not verify nonce');
     609        }
     610
     611        $pass = $this->captchaSubmit(sanitize_key(wp_unslash($_POST[Captcha::NONCE])), Captcha::ACTION);
     612        if (!$pass) {
     613            $errors->add('user_captcha_error', 'Captcha did not pass!');
     614        }
     615
     616        return $errors;
     617    }
     618
    593619    /**
    594620     * WordPress captcha validation
  • web-engine-sentry/trunk/readme.txt

    r3267777 r3268515  
    55Tested up to: 6.7
    66Requires PHP: 8.1
    7 Stable tag: 1.0.14434
     7Stable tag: 1.0.14442
    88License: Apache-2.0
    99License URI: https://www.apache.org/licenses/LICENSE-2.0
     
    4242= Is there a demo available?  =
    4343
    44 Yes, you can access the WordPress Playground at <a target="_blank" href="playground">link</a> to test the plugin’s development features, including examples.
     44Yes, you can access the WordPress Playground at <a target="_blank" href="?preview=1">link</a> to test the plugin’s development features, including examples.
    4545
    4646You can also use the plugin in development mode on locally hosted domains. The plugin, like the WordPress Playground, operates in a demonstration mode without requiring access to supporting services.
     
    9393
    9494= Stable =
     95* Added option for captchas on the forgotten password form
     96* Updated playground template
     97
     98= 1.0.14434 =
    9599* Added WooCommerce support. If WooCommerce is installed, an option to protect both legacy and new checkout experiences will be avaliable.
    96100
  • web-engine-sentry/trunk/src/components/step/Options.tsx

    r3267777 r3268515  
    4040
    4141    const [ wcCheckout, setWcCheckout ] = useState( true );
     42    const [ lostPassword, setLostPassword ] = useState( false );
    4243
    4344    function updateOption( option: string, value: any, callback: Function ) {
     
    8283    function updateWcCheckout( opt: boolean ) {
    8384        updateOption( 'we360cloud_sentry_wccheckout', opt, setWcCheckout );
     85    }
     86    function updateLostPassword( opt: boolean ) {
     87        updateOption( 'we360cloud_sentry_lostpassword', opt, setLostPassword );
    8488    }
    8589    function updateProtectComments( opt: boolean ) {
     
    142146                    );
    143147                    setWcCheckout( json.payload.we360cloud_sentry_wccheckout );
     148                    setLostPassword(
     149                        json.payload.we360cloud_sentry_lostpassword
     150                    );
    144151                }
    145152                setLoaded( true );
     
    225232                                    title="Protect login"
    226233                                />
     234                                <CheckOption
     235                                    checked={ lostPassword }
     236                                    onChange={ updateLostPassword }
     237                                    name="lostpassword"
     238                                    title="Protect forgot password"
     239                                />
    227240                                { wcCheckout !== undefined && (
    228241                                    <CheckOption
     
    258271                                    name="admin"
    259272                                    title="Protect login"
     273                                />
     274                                <CheckOption
     275                                    checked={ lostPassword }
     276                                    loading={ true }
     277                                    onChange={ () => null }
     278                                    name="lostpassword"
     279                                    title="Protect forgot password"
    260280                                />
    261281                            </div>
  • web-engine-sentry/trunk/vendor/autoload.php

    r3267777 r3268515  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5::getLoader();
     7return ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b::getLoader();
  • web-engine-sentry/trunk/vendor/composer/autoload_real.php

    r3267777 r3268515  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5
     5class ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit50422d41ab0db97f3064beacfa8f8de5', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit3c335db606d74991a94627a99c8ff48b', 'loadClassLoader'));
    3030
    3131        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3333            require __DIR__ . '/autoload_static.php';
    3434
    35             call_user_func(\Composer\Autoload\ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::getInitializer($loader));
     35            call_user_func(\Composer\Autoload\ComposerStaticInit3c335db606d74991a94627a99c8ff48b::getInitializer($loader));
    3636        } else {
    3737            $map = require __DIR__ . '/autoload_namespaces.php';
     
    5454
    5555        if ($useStaticLoader) {
    56             $includeFiles = Composer\Autoload\ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$files;
     56            $includeFiles = Composer\Autoload\ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$files;
    5757        } else {
    5858            $includeFiles = require __DIR__ . '/autoload_files.php';
    5959        }
    6060        foreach ($includeFiles as $fileIdentifier => $file) {
    61             composerRequire50422d41ab0db97f3064beacfa8f8de5($fileIdentifier, $file);
     61            composerRequire3c335db606d74991a94627a99c8ff48b($fileIdentifier, $file);
    6262        }
    6363
     
    7171 * @return void
    7272 */
    73 function composerRequire50422d41ab0db97f3064beacfa8f8de5($fileIdentifier, $file)
     73function composerRequire3c335db606d74991a94627a99c8ff48b($fileIdentifier, $file)
    7474{
    7575    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • web-engine-sentry/trunk/vendor/composer/autoload_static.php

    r3267777 r3268515  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5
     7class ComposerStaticInit3c335db606d74991a94627a99c8ff48b
    88{
    99    public static $files = array (
     
    7171    {
    7272        return \Closure::bind(function () use ($loader) {
    73             $loader->prefixLengthsPsr4 = ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$prefixLengthsPsr4;
    74             $loader->prefixDirsPsr4 = ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$prefixDirsPsr4;
    75             $loader->classMap = ComposerStaticInit50422d41ab0db97f3064beacfa8f8de5::$classMap;
     73            $loader->prefixLengthsPsr4 = ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$prefixLengthsPsr4;
     74            $loader->prefixDirsPsr4 = ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$prefixDirsPsr4;
     75            $loader->classMap = ComposerStaticInit3c335db606d74991a94627a99c8ff48b::$classMap;
    7676
    7777        }, null, ClassLoader::class);
  • web-engine-sentry/trunk/vendor/composer/installed.php

    r3267777 r3268515  
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => '58aa40a7ec669363498f64889874822bb2433b24',
     8        'reference' => 'c064f992ea19d1f677833f69b0438c25ec6ebdba',
    99        'name' => '__root__',
    1010        'dev' => true,
     
    1717            'install_path' => __DIR__ . '/../../',
    1818            'aliases' => array(),
    19             'reference' => '58aa40a7ec669363498f64889874822bb2433b24',
     19            'reference' => 'c064f992ea19d1f677833f69b0438c25ec6ebdba',
    2020            'dev_requirement' => false,
    2121        ),
  • web-engine-sentry/trunk/vendor/web-engine/wecap/src/Captcha.php

    r3267777 r3268515  
    3434    public static $instance;
    3535
    36     public const USERMETA_PASSWORD = 'we360cloud_sentry_password_reset_at';
    37     public const OPTION_PROTECT_FORMS = 'we360cloud_sentry_protectforms';
    38     public const OPTION_PROTECT_LOGIN = 'we360cloud_sentry_protectlogin';
     36    public const USERMETA_PASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_password_reset_at';
     37    public const OPTION_PROTECT_FORMS = Account::OPTION_NAME_PREFIX . 'sentry_protectforms';
     38    public const OPTION_PROTECT_LOGIN = Account::OPTION_NAME_PREFIX . 'sentry_protectlogin';
    3939    // public const OPTION_BLOCK_EXPIRE = 'we360cloud_sentry_blockonexpire';
    40     public const OPTION_PROTECT_COMMENTS = 'we360cloud_sentry_protectcomments';
    41     public const OPTION_EXEMPT = 'we360cloud_sentry_exempt';
    42     public const OPTION_TEST_MODE = 'we360cloud_sentry_testmode';
    43     public const OPTION_EXEMPT_USER = 'we360cloud_sentry_exempt_user';
    44     public const OPTION_DOMAIN = 'we360cloud_sentry_domain';
    45     public const OPTION_WCCHECKOUT = 'we360cloud_sentry_wccheckout';
     40    public const OPTION_PROTECT_COMMENTS = Account::OPTION_NAME_PREFIX . 'sentry_protectcomments';
     41    public const OPTION_EXEMPT = Account::OPTION_NAME_PREFIX . 'sentry_exempt';
     42    public const OPTION_TEST_MODE = Account::OPTION_NAME_PREFIX . 'entry_testmode';
     43    public const OPTION_EXEMPT_USER = Account::OPTION_NAME_PREFIX . 'sentry_exempt_user';
     44    public const OPTION_DOMAIN = Account::OPTION_NAME_PREFIX . 'sentry_domain';
     45    public const OPTION_LOSTPASSWORD = Account::OPTION_NAME_PREFIX . 'sentry_lostpassword';
     46    public const OPTION_WCCHECKOUT = Account::OPTION_NAME_PREFIX . 'sentry_wccheckout';
    4647    public const NONCE = '_wesentry_nonce';
    4748    public const ACTION = 'web-engine_sentry-validate';
    4849
    49     public const CHALLENGE_TOKEN = 'we360cloud_sentry_challenge';
    50     public const MANAGE_TOKEN = 'we360cloud_sentry_manage';
     50    public const CHALLENGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_challenge';
     51    public const MANAGE_TOKEN = Account::OPTION_NAME_PREFIX . 'sentry_manage';
    5152
    5253    // Default exempt roles
     
    6667        ['name' => 'WPForms', 'version' => '1.9', 'notes' => 'Has custom field', 'classname' => 'WPForms_Field'],
    6768        ['name' => 'Gutena Forms', 'version' => '1.2.7', 'notes' => '', 'classname' => 'Gutena_Forms'],
    68         ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Login, register and checkout forms', 'classname' => 'WooCommerce']
     69        ['name' => 'WooCommerce', 'version' => '9.7.1', 'notes' => 'Enabled with protect login, protect forgot password and protect checkout', 'classname' => 'WooCommerce']
    6970    ];
    7071    // How long should a captcha be valid in the cache for (seconds)
     
    182183                        case Captcha::OPTION_PROTECT_COMMENTS:
    183184                        case Captcha::OPTION_WCCHECKOUT:
     185                        case Captcha::OPTION_LOSTPASSWORD:
    184186                            // case Captcha::OPTION_BLOCK_EXPIRE:
    185187                            update_option($option, $value);
     
    204206                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    205207                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     208                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    206209
    207210                    if (class_exists('WooCommerce')) {
     
    348351                        case Captcha::OPTION_PROTECT_COMMENTS:
    349352                        case Captcha::OPTION_WCCHECKOUT:
     353                        case Captcha::OPTION_LOSTPASSWORD:
    350354                            // case Captcha::OPTION_BLOCK_EXPIRE:
    351355                            update_option($option, $value);
     
    370374                    // $options[Captcha::OPTION_BLOCK_EXPIRE] = (bool) (get_option(Captcha::OPTION_BLOCK_EXPIRE, 'false') === 'true');
    371375                    $options[Captcha::OPTION_EXEMPT_USER] = json_decode(get_option(Captcha::OPTION_EXEMPT_USER, ''));
     376                    $options[Captcha::OPTION_LOSTPASSWORD] = (bool) (get_option(Captcha::OPTION_LOSTPASSWORD, 'false') === 'true');
    372377
    373378                    if (class_exists('WooCommerce')) {
     
    462467            }
    463468
     469            if ((bool) (get_option(Captcha::OPTION_LOSTPASSWORD, false) === 'true')) {
     470                // add captcha to lost password form
     471                add_action('lostpassword_form', [$this, 'wp_wecap']);
     472                add_action('woocommerce_lostpassword_form', [$this, 'wp_wecap']);
     473                // validate captcha on lost password form
     474                add_filter('lostpassword_post', [$this, 'wp_lost_password_check']);
     475            }
     476
    464477            // if protect comments is enabled
    465478            if ((bool) (get_option(Captcha::OPTION_PROTECT_COMMENTS, false) === 'true')) {
     
    591604    }
    592605
     606    public function wp_lost_password_check($errors) {
     607        if (!array_key_exists(Captcha::NONCE, $_POST) || (!wp_verify_nonce(sanitize_key($_POST[Captcha::NONCE]), Captcha::ACTION))) {
     608            $errors->add('user_captcha_error', 'Could not verify nonce');
     609        }
     610
     611        $pass = $this->captchaSubmit(sanitize_key(wp_unslash($_POST[Captcha::NONCE])), Captcha::ACTION);
     612        if (!$pass) {
     613            $errors->add('user_captcha_error', 'Captcha did not pass!');
     614        }
     615
     616        return $errors;
     617    }
     618
    593619    /**
    594620     * WordPress captcha validation
  • web-engine-sentry/trunk/web-engine-sentry.php

    r3267777 r3268515  
    55 * Plugin URI: https://www.web-engineer.co.uk/doc/sentry-wordpress
    66 * description: Secure your forms and login
    7  * Version: 1.0.14434
     7 * Version: 1.0.14442
    88 * Author: Web Engineer
    99 * Author URI: https://www.web-engineer.co.uk
Note: See TracChangeset for help on using the changeset viewer.